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

  関連記事

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

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

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

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

グラディウス モーニングミュージックをArduino+YMZ294用に耳コピしてみた。

お疲れ様です。高橋です。 アーケード版グラディウスの磁気バブルメモリが暖まるまで …

シャロム 海の音楽

お疲れ様です。高橋です。 長きに渡ったシャロムの耳コピは、この曲でそろそろ終わり …

「DQ2 – Lovesong探して」for Arduino+YMZ294

お疲れ様です。高橋です。 最近、音系を全然やってなかったので、久しぶりに耳コピし …

異邦人/久保田早紀 for Arduino+YMZ294

お疲れ様です。高橋です。 毎日プログラム書くのは疲れるので、今日は耳コピの日です …

久しぶりに耳コピ。FF4バトルテーマ。

お疲れ様です。高橋です。 とても久しぶりに耳コピしました。ファイナルファンタジー …

ArduinoでPSG音源(YAMAHA YMZ294)を鳴らしてみた。

お疲れ様です。高橋です。 先日秋葉原にて「Arduino」という物を買ってきまし …

グラディウス2の3面 古代惑星のテーマをArduino+YMZ294で鳴らしてみた。

お疲れ様です。高橋です。 グラディウス2の3面、古代惑星のテーマをArduino …

Arduino+YMZでドラクエ2の「Lovesong探して」を鳴らしてみた。

お疲れ様です。高橋です。 先日作った「DQ2 – Lovesong探して」for …