Bleep drum "samples.h" customize guide
-with Audacity, Excel, Arduino
Author: T.Yamaguchi@2018 lang: JP/EN

準備

ソフト関係

  1. BleepLabsのgithubから code 一式をダウンロード
  2. Arduino IDEのインストール(バージョンは1.8.5でも問題なくできました)
  3. bleep drumのコードで使用する"MIDI.h"と"Bounce2.h(Bounce1も念のため)"をlibrariesにインストールしておく
  4. WAV音源CSV編集用にAudacityをインストール
  5. なんらかのWAV音源(効果音程度に短く収まっている音)
  6. Excelとテキストエディタ(文字列一括置換機能付推奨)

ハード関係

  1. Arduino UNO (or互換機)とUSBケーブル
  2. ATmega328P-PU (マルツなどで売っているブートローダ書込済のものが便利)
  3. 細いマイナスドライバー(ATmega328を入替える際に使用)
  4. ジャンパーワイヤー×4本(bleep drumとArduino UNOをつなぐ)

参考: https://bleeplabs.com/bleep-drum-user-guide/

WAV音源をCSVに変換

  1. bleep drumに入れたいサンプル音源をWAV形式で用意し、Audacityに読み込む。
  2. サンプリング周波数を8000Hzにし、音源の一部カット、フェードなどを使いなるべく短くしておく。8000Hzにした時点で音はかなりlo-fiになるのだが、ATmega328の容量は限られているので、この程度になると思った方が良さそう。
  3. BleepLabs公式には"モノラルで"とあるが、サンプル音声は必ずしもモノラルに書き出せない場合もあるので、今の段階ではステレオでも問題無し。最終的にL-Rどちらかの音声を消すことになる。
  4. 編集後は、音声が選択された状態(薄い水色)で「解析」>「Sample Data Export」を選択↓

Sample Data Exportの設定で注意が必要なのは、まずLimit output to first。この値を大きめにとっておかないと、書き出す音源データが途中で切れてしまったりする。
File data formatはData(csv)、Include header informationは邪魔になるのでNone。ほかは後でどうにでもなるので適当。OKを押して書き出す。Audacityで特に設定をしていない場合、MacではUser第一階層(書類とかダウンロードとかある階層)にファイルが書き出される(やや注意)。

WAV音源をCSVに変換完了。

【トラブルシューティング】
モノラルで書き出したつもりが、ステレオになってしまった=ステレオの場合2つの列で書き出されてしまう(モノラルで書き出されている場合は1列)。bleep drumは"モノラル対応"なので、この場合、列のどちらかを削除しデータをモノラルにすることで解決する。

書き出されたcsvにはマイナス値から始まる小数点以下の数値が並んでいるBleepLabsのgithub code にある「samples.h」を開くとどのような数値が音源として扱われるか分かりやすい。Excelの数式を使い全ての数値に(n+1)×127 を設定することで、bleep drum仕様の数列に変換できる。

全ての列に数式が適用されたら右の列を選択し、セルの書式設定で「数値」を選び、3桁の整数、小数点以下切り捨ての値に変更する。
一旦この状態でcsvを保存して閉じる。

再びcsvを開くことで数式が外れるので、左側の列を丸ごと削除し→再びcsvを保存する。Excelでの作業はこれで終了。

次に、テキストエディタで先ほどのcsvを開いてみる。おそらく「,」で区切られていない数値が並んでいると思う。(テキストエディタは一括置き換え機能があるものを使用)

改行部分を「,」に全て置き換える。

「,」に置き換わり、全ての数値が1行に収まった(ちょっと読みにくい)。
同時に、bleep drumで音源を扱う際に数値の個数(length)も記述する項目があるので、テキストエディタに「,」の数を全て検索させ、該当数に+1することでlengthの値になる。この数字も控えておく。
※lengthの要/不要については調査中。

ATmega328に音源をインストール

-原稿準備中-