40

楽しみのために、Python で小さなドラム マシンを作成することを考えています。私はいくつかをグーグルで検索し、音楽基本的なオーディオに関するPythonページと、オーディオファイルの生成に関するStackOverflowの質問を見つけましたが、私が探しているのは音楽作成のためのまともなライブラリです. ここにいる誰かが以前にこのようなことをしようとしたことがありますか? もしそうなら、あなたの解決策は何でしたか? 私が見つけたもの、または私が見つけていないもののいずれかが、オーディオ操作のためのまともなライブラリになるでしょうか?

最低限、Python内でAudacityのスコープに似たことができるようにしたいのですが、もっとできるライブラリを誰かが知っていれば...私はすべて耳にします。

4

5 に答える 5

14

cSoundsをよく見てください。かなり柔軟なデジタル合成を可能にする Python バインディングがあります。かなり完全なパッケージも利用できます。

パッケージについては、http://www.csounds.com/node/188を参照してください。

cSounds 内の Python スクリプトについては、http: //www.csounds.com/journal/issue6/pythonOpcodes.htmlを参照してください。

于 2008-09-20T19:51:39.457 に答える
8

私はこの数年前にやらなければなりませんでした。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'
于 2008-09-20T18:33:16.010 に答える
4

さまざまなPython音楽ソフトウェアがあります。ここでカタログを見つけることができます。

リンク先のページを下にスクロールすると、Pythonでの音楽プログラミングに関するセクションがあり、 MusicKitPySndObjなどのいくつかの音楽作成パッケージについて説明しています。

于 2008-09-20T18:01:39.707 に答える
3

http://code.google.com/p/pyo/もチェックしてください

于 2010-09-21T15:40:27.687 に答える
2

前に述べたことに加えて、単純な Python オーディオ エディターを作成しました。 http://code.google.com/p/yaalp/source/browse/#svn/trunk main.py を参照してください。

また、オーディオ操作といくつかの効果があります。

コードの GPL であるため、これが出発点になる可能性があります。

于 2008-09-20T22:39:12.067 に答える