2008-09-20 27 views
39

Eğlenmek için Python'da küçük bir davul makinesi yazmayı düşünüyorum. Bazı googled ve generating audio files üzerine music ve basic audio üzerine piton sayfalarını yanı sıra StackOverflow soru bulundu, ancak ne arıyorum müzik oluşturma için iyi bir kütüphane var. Burada daha önce böyle bir şey yapmaya çalıştı mı? Öyleyse çözümünüz neydi? Ne, bulduklarımdan biri, ya da bulamadığım bir şey, ses manipülasyonu için iyi bir kütüphane olurdu?Python Müzik Kütüphanesi?

Minimal olarak, python içinde Audacity's kapsamına benzer bir şey yapabilmeyi isterdim, ancak daha fazla şey yapabilen bir kütüphaneyi bilen varsa ... Ben tüm kulaklarım.

+0

+1 mos def. İlham için teşekkürler :) Oradaki ilerleme nasıl? – ohnoes

+0

potansiyel olarak yararlı kaynaklar http://wiki.python.org/moin/PythonInMusic adresinde de bulunabilir. – ohnoes

cevap

4

Çeşitli Python müzik yazılımı var, here kataloğunu bulabilirsiniz. bağlantılı sayfayı aşağı kaydırarak

, sen MusicKit ve PySndObj dahil olmak üzere birçok müzik oluşturma paketleri açıklayan Python yılında Müzik Programlama üzerine bölümünü bulun.

+0

Bağlantılarımı ziyaret etmediniz mi? – akdom

+0

Bunlardan herhangi birinde çalıştınız mı yoksa yalnızca özellik listesinden mi okuyorsunuz? – akdom

7

Bunu yıllar önce yapmak zorundaydım. Pymedia kullandım. Hala herhangi bir şekilde olup olmadığından emin değilim, burada oynadığım sırada yazdığım bazı test kodları. Yine de yaklaşık 3 yaşında.

Düzenleme: örnek kod

import pymedia 
import time 

demuxer = pymedia.muxer.Demuxer('mp3') #this thing decodes the multipart file i call it a demucker 

f = open(r"path to \song.mp3", 'rb') 


spot = f.read() 
frames = demuxer.parse(spot) 
print 'read it has %i frames' % len(frames) 
decoder = pymedia.audio.acodec.Decoder(demuxer.streams[0]) #this thing does the actual decoding 
frame = decoder.decode(spot) 
print dir(frame) 
#sys.exit(1) 
sound = pymedia.audio.sound 
print frame.bitrate, frame.sample_rate 
song = sound.Output(frame.sample_rate, frame.channels, 16) #this thing handles playing the song 

while len(spot) > 0: 
    try: 
     if frame: song.play(frame.data) 
     spot = f.read(512) 
     frame = decoder.decode(spot) 
    except: 
     pass 

while song.isPlaying(): time.sleep(.05) 
print 'well done' 
+1

PyMedia gerçekten de etrafta. Bu örnek belirli bir mp3 dosyasını çalıyor mu? Sadece cevabını biraz açıklığa kavuşturmak için ne olduğunu not etmek güzel olabilir. – akdom

İlgili konular