前提・実現したいこと
C/C#/D/D#/E/F/F#G/G#/A/A#/Bの音が出るwavファイルを一括で作成したい。
pythonによる作曲を行いたいと思いまず、基本である音階を作成しようと試みました。
一括でそれぞれの音階のデータが入ったwavファイルを作成しようと思いプログラムを作成していたら
27for i in range(12):
28 MSlist.append(ampnp.sin(2np.pi*Flist(i)*t))
でつまずいてしまった。
発生している問題・エラーメッセージ
TypeError: 'list' object is not callable
エラーメッセージ
該当のソースコード
from Root import polyroot as root import numpy as np import struct amp = 1.00 #振幅 A_1 = 440 # A sampling = 441000 #可聴領域220500[Hz]くらい def ms_1(f,n): F = f for i in range(n): F = F / root.polyroot(2,12) return F def ms_2(f,n): F = f for i in range(n): F = F * root.polyroot(2,12) return F C_1 = ms_1(A_1,9) # C Flist =[] #各音階の振動数の列 for i in range(12): num = 1 for j in range(i): num = num * root.polyroot(2,12) Flist.append(C_1 * num) t = np.arange(0,1,1/sampling) MSlist = [] #各音階の列 __**for i in range(12): MSlist.append(amp*np.sin(2*np.pi*Flist(i)*t))** __ for i in range(12): frame = 'MS_' + str(i) wf = wave.open(frame,'w') ch = 1 width = 2 wf.setnchannel(ch) wf.setsampwidth(width) wf.setframerate(sampling) time = 1 #[s] y = MSlist(i) y = np.rint(32767*y/max(abs(y))) y = y.astype(np.int16) y = y[0:sampling] data = struct.pack("h" * sampling,*y) wf.writefname(data) wf.close()
試したこと
とりあえず、エラーの意味とそれに関する記事をインターネット上で2時間以上調べてみた。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
問題が解決したら質問のステータスを「受付中」から「解決済」に変更してください。
回答1件
あなたの回答
tips
プレビュー