Fibonacci Dizisi: Python'da Müzikal Bir Hikaye
Fibonacci serisi, yüzyıllardır matematikçilerin, bilim adamlarının ve sanatçıların hayal gücünü ele geçiren büyüleyici bir matematiksel dizidir. 0 ve 1 ile başlayan ve sonraki her sayı bir öncekinin toplamı olan bu sayı dizisinin doğada, sanatta ve müzikte var olduğu görülmüştür. Aslında birçok müzisyen ve besteci, güzel ve karmaşık müzik eserleri yaratmak için Fibonacci dizisini kullanmıştır.
Fibonacci dizisinin müzikteki en ilginç uygulamalarından biri, "Fibonacci ritmi" olarak bilinen şeyin yaratılmasıdır. Bu ritim Fibonacci dizisine dayalıdır ve dizideki her sayı ritimdeki bir atımı temsil eder. Örneğin, bir Fibonacci ritminin ilk birkaç vuruşu şöyle olacaktır:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144...
Python'da bir Fibonacci ritmi oluşturmak için, Fibonacci dizisine dayalı olarak bir vuruş listesi oluşturan bir işlev tanımlayabiliriz:
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)
Bir örnek, birçok müzik biçiminde yaygın olarak kullanılan beş notalı bir ölçek olan pentatonik bir ölçek oluşturmak için Fibonacci dizisinin kullanılmasıdır. Bir Fibonacci pentatonik ölçeği oluşturmak için aşağıdaki formülü kullanabiliriz:
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)
aSongScout'un müziğindeki Fibonacci dizisinin yumuşak güzelliğini dinleyin:https://youtu.be/IGJeGOw8TzQ. Her nota, sayıların kesinliği ve zarafeti ile ortaya çıkarken kendinizi matematik ve müziğin bu büyüleyici etkileşiminde kaybedin.

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































