Music21 ile yapılan müzikten gerçek zamanlı ses çıkışı nasıl üretebilirim. Başarısız olan şey, açık kaynaklı bir yazılım aracılığıyla Music21 ile yapılan müzikten HERHANGİ bir ses çıkışı nasıl üretebilir? Yardım için teşekkürler.Music21 ile yapılan müzikten gerçek zamanlı ses çıkışı nasıl üretebilirim?
cevap
İşte öğrendiklerim burada. İşte Windows XP'de çalışan bir python betiği. Müziğe ek olarak pygame'e ihtiyaç duyar21. Gördüğünüz gibi
# genPlayM21Score.py Generates and Plays 2 Music21 Scores "on the fly".
#
# see way below for source notes
from music21 import *
# we create the music21 Bottom Part, and do this explicitly, one object at a time.
n1 = note.Note('e4')
n1.duration.type = 'whole'
n2 = note.Note('d4')
n2.duration.type = 'whole'
m1 = stream.Measure()
m2 = stream.Measure()
m1.append(n1)
m2.append(n2)
partLower = stream.Part()
partLower.append(m1)
partLower.append(m2)
# For the music21 Upper Part, we automate the note creation procedure
data1 = [('g4', 'quarter'), ('a4', 'quarter'), ('b4', 'quarter'), ('c#5', 'quarter')]
data2 = [('d5', 'whole')]
data = [data1, data2]
partUpper = stream.Part()
def makeUpperPart(data):
for mData in data:
m = stream.Measure()
for pitchName, durType in mData:
n = note.Note(pitchName)
n.duration.type = durType
m.append(n)
partUpper.append(m)
makeUpperPart(data)
# Now, we can add both Part objects into a music21 Score object.
sCadence = stream.Score()
sCadence.insert(0, partUpper)
sCadence.insert(0, partLower)
# Now, let's play the MIDI of the sCadence Score [from memory, ie no file write necessary] using pygame
import cStringIO
# for music21 <= v.1.2:
if hasattr(sCadence, 'midiFile'):
sCadence_mf = sCadence.midiFile
else: # for >= v.1.3:
sCadence_mf = midi.translate.streamToMidiFile(sCadence)
sCadence_mStr = sCadence_mf.writestr()
sCadence_mStrFile = cStringIO.StringIO(sCadence_mStr)
import pygame
freq = 44100 # audio CD quality
bitsize = -16 # unsigned 16 bit
channels = 2 # 1 is mono, 2 is stereo
buffer = 1024 # number of samples
pygame.mixer.init(freq, bitsize, channels, buffer)
# optional volume 0 to 1.0
pygame.mixer.music.set_volume(0.8)
def play_music(music_file):
"""
stream music with mixer.music module in blocking manner
this will stream the sound from disk while playing
"""
clock = pygame.time.Clock()
try:
pygame.mixer.music.load(music_file)
print "Music file %s loaded!" % music_file
except pygame.error:
print "File %s not found! (%s)" % (music_file, pygame.get_error())
return
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
# check if playback has finished
clock.tick(30)
# play the midi file we just saved
play_music(sCadence_mStrFile)
#============================
# now let's make a new music21 Score by reversing the upperPart notes
data1.reverse()
data2 = [('d5', 'whole')]
data = [data1, data2]
partUpper = stream.Part()
makeUpperPart(data)
sCadence2 = stream.Score()
sCadence2.insert(0, partUpper)
sCadence2.insert(0, partLower)
# now let's play the new Score
sCadence2_mf = sCadence2.midiFile
sCadence2_mStr = sCadence2_mf.writestr()
sCadence2_mStrFile = cStringIO.StringIO(sCadence2_mStr)
play_music(sCadence2_mStrFile)
## SOURCE NOTES
## There are 3 sources for this mashup:
# 1. Source for the Music21 Score Creation http://web.mit.edu/music21/doc/html/quickStart.html#creating-notes-measures-parts-and-scores
# 2. Source for the Music21 MidiFile Class Behaviour http://mit.edu/music21/doc/html/moduleMidiBase.html?highlight=midifile#music21.midi.base.MidiFile
# 3. Source for the pygame player: http://www.daniweb.com/software-development/python/code/216979/embed-and-play-midi-music-in-your-code-python
, music21 bir müzik çalma sistemi olarak tasarlanmıştır değil, ancak diğer oynatma sistemleri içerisinde gömülü olarak veya sistem içerisinde onları çağırmak için tasarlanmıştır. Çalma sistemlerine çok fazla çalışma yapmayı planlamıyoruz (donanım desteği, küçük bir araştırma laboratuvarımız, hala müzikal analizde yapılması gereken işler, vs.), fakat çözümünüz o kadar şık ki şimdi music21.midi.realtime modülü olarak music21'in (post v1.1) tüm sürümlerine dahil edilmiştir.
# Set up a detuned piano
# (where each key has a random
# but consistent detuning from 30 cents flat to sharp)
# and play a Bach Chorale on it in real time.
from music21 import *
import random
keyDetune = []
for i in range(0, 127):
keyDetune.append(random.randint(-30, 30))
b = corpus.parse('bach/bwv66.6')
for n in b.flat.notes:
n.microtone = keyDetune[n.midi]
sp = midi.realtime.StreamPlayer(b)
sp.play()
StreamPlayer en .play() fonksiyonu da olabilir: Burada dinamik mikrotonal oynatmayı (çoğu midi oynatma için büyük bir sorun) simüle etmek için farklı zifiri bend nesnelerle midi kanalları tahsis etmek music21 yeteneğini alır bir örnek busyFunction ve busyArgs ve busyWaitMilliseconds işlevlerinin çoğunu her meşgulWaitMilliseconds değerinde argümanlarla çağırmak için bir işlev belirten argümanlar (sisteminiz daha yavaşsa). Ayrıca, bir tür iş parçacığı oynatmayı kurmak istediğinizde, sonunda çağrılacak bir endFunction ve endArgs vardır. - Myke Cuthbert (Music21 oluşturucu)
- 1. Java ses görselleştiricisi - Hoparlörde gerçek zamanlı ses çıkışı nasıl alınır?
- 2. Gerçek Zamanlı Ses Döngüsü iPhone için Değiştirme
- 3. Gerçek zamanlı
- 4. AngularJs & Yii2 ile gerçek zamanlı
- 5. NSTask'nın gerçek zamanlı çıktısı
- 6. CodeMirror ile gerçek zamanlı işbirliği
- 7. Gerçek zamanlı Uygulama Facebook ile
- 8. Phonegap/Cordova ile gerçek zamanlı mikrofon seviyeleri nasıl edinilir?
- 9. Gerçek zamanlı güncellemeler nasıl çalışır?
- 10. gtfs-gerçek zamanlı bağlamalar
- 11. Eclipse'de gerçek zamanlı işbirliği
- 12. OS X çekirdek ses çalma/çıkışı ile ses çıkışları yaşanıyor
- 13. Gerçek zamanlı görüntüleme
- 14. gerçek zamanlı midi giriş ve sesle senkronizasyon
- 15. Gerçek zamanlı ajax
- 16. Bir UITextfield'da NSNumberFormatter ile gerçek zamanlı biçimlendirme
- 17. Gerçek zamanlı müzik transkripsiyonu
- 18. Gerçek Zamanlı Araç Sayısı
- 19. Push bildirimi ile gerçek zamanlı sohbet
- 20. Android Anadili Ses çıkışı
- 21. JavaFX Ses Çıkışı Seçimi
- 22. Android MPandroidchart Çizim gerçek zamanlı
- 23. Haskell ses çıkışı?
- 24. h264 gerçek zamanlı video akışı
- 25. JavaFx TreeTableView Gerçek Zamanlı Veriler
- 26. JQuery ile gerçek zamanlı giriş değeri nasıl görüntülenir?
- 27. Her saniye sonra gerçek zamanlı veriler nasıl?
- 28. Sphinx'te gerçek zamanlı endeks nasıl silinir?
- 29. Gerçek Zamanlı Yüz İzleme Iphone'da
- 30. .NET Gerçek Zamanlı Veri Tablosu
Sorunuz oldukça belirsiz. Tam olarak sorun nedir? Ayrıca, [dokümanlar okuyun] (http://mit.edu/music21/doc/html/contents.html)? –