pythonでドミソの和音を作るプログラム作成をしているのですが一箇所音を重ねる部分の表現がうまくできなくてドの音しか鳴りません。
addToneの部分もし分かる方いたら教えていただきたいです。
Python
1# -*- coding: utf-8 -*- 2 3import numpy as np 4from scipy.io.wavfile import write 5 6 7class GenFreq(object): 8 def __init__(self, Fs=44100., dur=1.): 9 # 諸々の初期化 10 self.Fcs = {'C':262., 'D':294., 'E':330., 'F':349., 'G':392., 'A':440., 'B':494.} 11 self.Amp = 2000 12 13 self.Fs = Fs 14 self.dur = dur 15 self.N = int( dur * Fs ) 16 self.x = np.zeros( self.N ) 17 18 delta = 1./Fs 19 self.t = np.arange( self.N ) * delta 20 21 def getSound(self): 22 # 波形データ配列を返す 23 return self.x 24 25 def getLen(self): 26 # データ配列長を返す 27 return self.N 28 29 def addTone(self, code='C'): 30 # おとを重ねる 31 f = self.Fcs[code] 32 self.x = self.Amp * np.sin( 2. * np.pi * f * self.t ) 33 # ここがうまく書けない 34 35# ド・ミ・ソの和音(CEG) を作ってみる 36 37Fs = 44100 38s = GenFreq(Fs, dur=1.) 39s.addTone('C') 40s.addTone('E') 41s.addTone('G') 42N = s.getLen() 43 44# scipy.wav.iofile の write をインポート 45write('soundtest.wav', Fs, s.getSound()) 46
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。