Python音乐库?

时间:2008-09-20 17:42:54

标签: python audio

我正在寻找用Python编写一个小鼓机来获得乐趣。我用Google搜索了一些,发现了musicbasic audio上的python页面以及generating audio files上的StackOverflow问题,但 我正在寻找的是体面的音乐创作图书馆 。有没有人在这里尝试做过这样的事情?如果是这样,你的解决方案是什么?什么,无论是我找到的,还是我没有找到的东西,都会成为一个体面的音频处理库?

最低限度,我希望能够在python中执行与Audacity's范围类似的操作,但如果有人知道可以执行更多操作的库...我很满意。

5 个答案:

答案 0 :(得分:14)

仔细查看cSounds。 Python绑定允许您进行非常灵活的数字合成。还有一些非常完整的包。

有关软件包,请参阅http://www.csounds.com/node/188

有关cSounds中Python脚本的信息,请参阅http://www.csounds.com/journal/issue6/pythonOpcodes.html

答案 1 :(得分:7)

多年前我不得不做这件事。我用过pymedia。我不确定它是否仍然存在,这是我在玩它时写的一些测试代码。它虽然大约3岁。

编辑:示例代码播放MP3文件

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'

答案 2 :(得分:4)

有各种Python音乐软件,你可以找到目录here

如果您向下滚动链接页面,可以找到用Python编写的音乐编程中的一节,介绍几个音乐创作包,包括MusicKitPySndObj

答案 3 :(得分:2)

答案 4 :(得分:1)

除了前面提到的,我还写了一个简单的Python音频编辑器。 http://code.google.com/p/yaalp/source/browse/#svn/trunk 见main.py。

它还具有音频处理和一些效果。

代码的GPL,所以这可能是你的起点。