Séquence de Fibonacci : un conte musical en Python
La série Fibonacci est une séquence mathématique fascinante qui a capturé l'imagination des mathématiciens, des scientifiques et des artistes pendant des siècles. Cette séquence de nombres, qui commence par 0 et 1, et chaque nombre suivant est la somme des deux précédents, s'est avérée se produire dans la nature, l'art et la musique. En fait, de nombreux musiciens et compositeurs ont utilisé la séquence de Fibonacci pour créer des œuvres musicales magnifiques et complexes.
L'une des applications les plus intéressantes de la séquence de Fibonacci en musique est la création de ce qu'on appelle le "rythme de Fibonacci". Ce rythme est basé sur la séquence de Fibonacci, chaque numéro de la séquence représentant un battement dans le rythme. Par exemple, les premiers battements d'un rythme de Fibonacci seraient :
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144...
Pour créer un rythme de Fibonacci en Python, nous pouvons définir une fonction qui génère une liste de battements basée sur la suite de Fibonacci :
def fibonacci_rhythm(num_beats):
# Initialize the first two numbers in the sequence
fib_seq = [1, 1]
# Generate the Fibonacci sequence up to the desired number of beats
while len(fib_seq) < num_beats:
next_num = fib_seq[-1] + fib_seq[-2]
fib_seq.append(next_num)
# Return the list of beats
return fib_seq[:num_beats]
import winsound
# Generate a 13-beat Fibonacci rhythm
fib_rhythm = fibonacci_rhythm(13)
# Play the rhythm using simple sine wave tones
for beat in fib_rhythm:
frequency = 440 * (2 ** (beat / 12))
frequency = int(max(32,min(frequency,32767)))
duration = 200
winsound.Beep(frequency,duration)
Un exemple est l'utilisation de la séquence de Fibonacci pour créer une gamme pentatonique, qui est une gamme à cinq notes couramment utilisée dans de nombreuses formes de musique. Pour créer une gamme pentatonique de Fibonacci, nous pouvons utiliser la formule suivante :
scale = [0, 1, 3, 5, 8]
for i in range(5,21):
next_note = scale[-1] + scale[-2]
scale.append(next_note % 12)
from midiutil import MIDIFile
# Generate a Fibonacci pentatonic scale
scale = [0, 1, 3, 5, 8]
for i in range(5, 21):
next_note = scale[-1] + scale[-2]
scale.append(next_note % 12)
# Create a MIDI file with a Fibonacci melody
midi_file = MIDIFile(1)
# Add notes to the MIDI file based on the Fibonacci sequence
time = 0
for beat in fibonacci_rhythm(13):
note = scale[beat % 5] + (beat // 5) * 12
midi_file.addTempo(0,0,120)
midi_file.addNote(0, 0,note,time,1,127)
time += 0.5
# Write the MIDI file to disk
with open("fibonacci.mid", "wb") as output_file:
midi_file.writeFile(output_file)
Écoutez la douce beauté de la séquence de Fibonacci en musique par aSongScout :https://youtu.be/IGJeGOw8TzQ. Perdez-vous dans ce jeu fascinant de mathématiques et de musique, alors que chaque note se déroule avec la précision et l'élégance des chiffres.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































