PyAudioでドレミファソラシド
PyAudioというAudio I/Oライブラリがあると知ったのでさっそく使ってみた。
easy_installではエラーになったので、以下のURLからdmgをダウンロードしてインストールしたらOKだった。
http://people.csail.mit.edu/hubert/pyaudio/
とりあえずドレミファソラシド。
全然音楽的なコードじゃないし、クリック音がしてる。。
#!/usr/bin/env python # -*- coding: utf-8 -*- import math import array import pyaudio def tone(freq, sec=1, velocity=.2, rate=44100): w = rate / freq def gen(): for i in xrange(int(rate * sec)): yield math.sin(float(i % w) / w * 2. * math.pi) * velocity return array.array('f', gen()).tostring() p = pyaudio.PyAudio() stream = p.open(rate=44100, channels=1, format=pyaudio.paFloat32, output=True) scale = [ 261.63, # C 293.66, # D 329.63, # E 349.23, # F 392.00, # G 440.00, # A 493.88, # H 261.63 * 2, # C ] for freq in scale: stream.write(tone(freq, sec=.5)) stream.close() p.terminate()