curious4dev

中国旅行、Arduinoなどを使った電子工作、その他色々。

*

異邦人をArduino+YMZ294で演奏させてみた

 

お疲れ様です。高橋です。

Arduino+YMZ294で、久保田早紀の異邦人(1979)を演奏させてみました。

Arduinoに演奏させた、耳コピ8bitアレンジしたのがこれで・・・

原曲はこれです。

 

 

曲の構成は、

一回だけ {
   冒頭の4小節();
   その他();
}
ループ {
   冒頭の4小節();
}

という感じです。

Arduino用スケッチは下記からDL可能です。

ihoujin.zip

上記スケッチで使っているYMZ294ライブラリはwp.hrmux.comさんのサイトにあるココからダウンロードして下さい。

耳コピArduinoで思うこと: バージョン管理

耳コピ&修正を繰り返す事に、原曲を留めない事が良くあるのですが、修正途中に原曲に戻ろうと思っても、updateを繰り返して元の状態を別名保存しないので、一度作ったらそれっきりです。これはArduinoとは全然関係無く、ただ単にSMFファイル作成の際のバージョン管理の問題です。

いつか、subversionなりgitなりを使ってみようかと思いました。

曲のダイエット

今回の異邦人は、ビッグブリッヂの時に発生した容量オーバー問題が再発する程、音の数が多かったのですが、ダイエットする事で乗り切りました。低い音の数を75%に減らし、その他ところどころで減量しています。

下記は、SMFをYMZ用Cコードに変換するツールが出した物の一部です。

 delay(249);
 set_ch(ADDR_FREQ_A,0);
 set_ch(ADDR_FREQ_A,84);
 set_ch(ADDR_FREQ_B,0);
 set_ch(ADDR_FREQ_B,65);
 set_ch(ADDR_FREQ_C,0);
 set_ch(ADDR_FREQ_C,56);

これは同じタイミングにA, B, Cの音を発音させる事を意味しているのですが、それぞれの音の前に、周波数0をセットしています。これは明らかに無駄なコードです。同じタイミング同じチャンネルで発音する場合は、周波数0の行を削除します。

下記のような感じに。

delay(249);
 set_ch(ADDR_FREQ_A,84);
 set_ch(ADDR_FREQ_B,65);
 set_ch(ADDR_FREQ_C,56);

この技を思いついたのが、曲自体のダイエットを行った後ですので、もしかしたらコレをやるだけで曲のダイエットしなくても良かったのかもしれません。

YMZを使う意味

YMZ294はPSG音源です。

8bitゲーム機っぽい音が出ます。逆に言うとコレ以外の音色は出ません。なので、どんな曲でもゲーム音楽っぽい仕上がりになります。より、ゲーム音楽らしさを出したい場合、真ん中の音(メロディでもベースでもない音)をグワングワンにアルペジオさせるとか、ベースを単音16分音符連続、とやると、なんとなくソレっぽく聞こえるなーと。

 

 

 

以上、よろしくお願い致します。

 - 耳コピArduino

  関連記事

ファイナルファンタジー2 戦闘テーマ1

お疲れ様です。高橋です。 最近耳コピしてなかったので、耳コピしました。 3和音し …

【完全版】グラディウスメドレー by Arduino+YMZ294

お疲れ様です。高橋です。 前に作ったグラディウスメドレーを増強したものを作りまし …

YMZ294で鳴らすためのビッグブリッヂの死闘を作ってみた。

お疲れ様です。高橋です。 Arduino+YMZ294で鳴らすため、「ビッグブリ …

シャロム 名前入力画面

お疲れ様です。高橋です。 前回に引き続き、シャロムを耳コピ。 今回は16小節の2 …

FF3のオープニングをArduino+YMZシールドで鳴らしてみた

お疲れ様です。高橋です。 ファイナルファンタジー3のオープニング曲を耳コピし、こ …

シャロム グリーク城

お疲れ様です。高橋です。 シャロムから、グリーク城の楽曲です。 名曲で、opの次 …

Castlevania SotN “Dance of Pales”を耳コピ

お疲れ様です。高橋です。 久々に耳コピ。Castlevania Symphony …

Pro Mini互換機でFF2戦闘音楽を使ったYMZ動作試験

お疲れ様です。高橋です。 電子オルゴールの最終形をイメージしてブレッドボード上で …

シャロム オープニング

お疲れ様です。高橋です。   もう30年以上昔、MSX2を持っていた私 …

グラディウスのメドレーをArduino+YMZ294で演奏してみた。

お疲れ様です。高橋です。 Arduino+YMZ294で、グラディウスの空中戦の …