SSブログ

VVVF音和音 [ds-DCCデコーダ]

 今日は(というかすでに昨日か?)は江ノ電のタンコロ祭りに行きました。まあ、目新しいものとしては、なぜか湘南モノレールのゆるキャラ「しょもたん」がいました。もちろん、「えのん」と「あらん」もいましたが。江ノ電の部品が売っており、ホーンが3000円だったので、一瞬買おうかと思いましたが、部屋に置くとしまう場所に困りそうだと、冷静に考え直して、やめました。
 で、せっかく極楽寺まで来たので、稲村ケ崎とか海で遊んでから帰りました。冬は太陽が低いので、まぶしいです。
 本題ですが、VVVF音は、このごろ22KHzの周波数にノコギリ波を乗せるようにスケッチを変えたので、ノコギリ波を複数入れてやれば、これまでよりもきれいに複数音が鳴らせそうだということで、スケッチをいじっていました。
 最初、以下のように波形を作る割り込み(45usごとに呼ばれる)を作ったら、悲しいことに割り込みが重すぎるようで、プログラム自体がほぼ動かなくなりました。
void vvvf_int1()
{
//波形生成用interrupt
//和音
unsigned int pwm_state = (pwm_state1 >> (pwm_shift+1)) + (pwm_state2 >> (pwm_shift+1));
Timer1.setPwmDuty(VVVF_SOUND_PIN, pwm_state);
pwm_state1 += pwm_add1;
pwm_state2 += pwm_add2;
}
(ここでPWM_Shift=8)
 どうも、ビットシフト命令は1ビットシフトに1クロックかかるようで、ビットシフトをたくさん入れると処理がおもくなってしまうようです。
で、いろいろと試して、
void vvvf_int1()
{
//波形生成用interrupt
//和音
unsigned int pwm_state = (pwm_state1 >> 1) + (pwm_state2 >> 2);
Timer1.setPwmDuty(VVVF_SOUND_PIN, pwm_state >> pwm_shift);
pwm_state1 += pwm_add1;
pwm_state2 += pwm_add2;
}
としたら、計算量も減ったようで、まあ、動くようにはなりました。ちょっと音質が悪くなったので、ときどき割り込みが間に合っていないようですが。
(こうすると軽くなるというお話がありましたら、誰か教えてください)
 で、せっかくだから、東海道線のE231系の音を作ってみました。
 参考にした動画は、こちらで、
 これをWaveToneで解析しました。(どういう音が出ているかと大体の周波数の目星をつけるため)
E231_2.png
 東海道線のE231は墜落インバーターというやつらしくて、最初一定音でそこから音が落ちます。そのタイミングあたりから、いわゆる速度比例の音が低音から始まり、墜落が終わった後に中音から高音に上がる音が一つあり、その後は速度比例の音だけが残るような感じです。
 で、音だけですが、動画です。まあ、ノコギリ波ですので、実際の電車の柔らかい音にはなりませんが、周波数だけは大体あっていると思います。また、線路の継ぎ目音をいれましたが、実際の家の近くの東海道線はロングレールでポイント以外はほとんど継ぎ目音がしません・・・。


 あと、もう一つ、マルツからATMega328PBが届きました。あやのすけ様のBlogのコメントにArduinoでコンパイル環境があるということでしたので、いつか試そうと思います。(いつになるだろう・・・。)
re_DSC01186.jpg
 
コメント(2)  トラックバック(0) 

コメント 2

やあさん

VVVFだと、ノコギリ波をあえて使う意味は無いかなと思いました。処理も軽くなって良いんじゃ無いでしょうか。

柔らかい音は、たぶん、周波数成分をランダムに振っている(スペクトルを分散させてノイズのピークを下げる)のでああやって聞こえるのだと思います。東芝の論文で、このランダム変調の話が書いてあるのがネットにありましたよ。
by やあさん (2016-12-06 10:25) 

fujigaya2

コメントありがとうございます。

>VVVFだと、ノコギリ波をあえて使う意味は無いかなと思いました。処理も軽くなって良いんじゃ無いでしょうか。
→矩形波で試してみようと思います。ただし、ちゃんとした和音にしようと思うので、そうすると、まあ、処理的には似たような周波数になるとは思います。

現状のノコギリ波和音は
・ちょっと位相がずれると低周波で音が変わってしまう
・音割れがする。
など一部変な挙動があります。

by fujigaya2 (2016-12-07 00:15) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。