当前位置:  开发笔记 > 编程语言 > 正文

Python音乐库?

如何解决《Python音乐库?》经验,为你挑选了2个好方法。

我正在寻找用Python编写一个小鼓机来获得乐趣.我搜索了一些,发现了关于音乐和基本音频的python页面以及关于生成音频文件的StackOverflow问题,但我正在寻找的是一个体面的音乐创建库.有没有人在这里尝试做过这样的事情?如果是这样,你的解决方案是什么?什么,无论是我发现的,还是我没有找到的东西,都会成为一个体面的音频处理库?

最低限度,我希望能够在Python中做类似于Audacity的范围,但是如果有人知道可以做更多的库...我都是耳朵.



1> S.Lott..:

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

有关包,请访问http://www.csounds.com/node/188.

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



2> tim.tadh..:

几年前我不得不做这件事.我用过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'

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有