MintySynth4.2
追記(2018/11/17)
本日の作業内容まとめ
- 距離センサ接続
- ノイズがすごい以外は概ね良好
- コンデンサでノイズ除去しているため,静電容量とかを最適化するといいかも?
- データシートに色々書いているらしい
- 音符の入力
- メロディーラインはほぼ入力
- 三連符辛い
- 伴奏とかあると良さそう,まだ余裕アリそう
- かなり単純作業,誰でもできそう
- 主旋律ともう1つは別々のプログラムになるらしい
- センサのせいで可変抵抗が不安定になるっぽいので,テンポは決め打ちにしたい
- パートごとにファイル分けました(主旋律って言ってた方が
melody2.ino
)
- メロディーラインはほぼ入力
- コード変更点
userPitch
周り- センサを接続しない場合,607行目をコメントアウトしてください.
song.h
全般
概要 (2018/11/08記)
- 256個の音符をループ(デフォルトは16個)
- Live Modeでの再生にのみ対応
song.h
の中の音楽を再生(後述)- 可変抵抗の大きさで音声コントロール(第4パート)
- 可変抵抗の割り当ては,左からテンポ,ピッチ,デュレーション,エンベロープ,スイング
- 下記機能は無効化
- LDR Mode
- Tripwire Mode
- Sequencer Mode
- Program Mode
- Save & Load Song
- Song Shift and Scale Shift
使用方法
音楽の入力
song.h
内の配列song
に数値を書き込むことで曲を作ることができます.おそらくC5=60
を基準に音階を考えればいいのではないかと思います.
uint8_t song[1][4][256] =
{
{
//第1パート
{ 39, 67, 31, 75, 87, 72, 0, 79, 0, 72, 43, 75, 99, 63, 55, 72,
...
39, 67, 31, 75, 87, 72, 0, 79, 0, 72, 43, 75, 99, 63, 55, 72,},
//第2パート
...
}
};
voicePrefs
を下記のように変更すると,音色やピッチが統一されて編集しやすくなるかもしません.
uint8_t voicePrefs[6][4][7] =
{
{
// {wave, pitch, envelope, length, mod, MIDI channel, MIDI instruments}
{0, 60, 0, 80, 64, 1, 1},
{0, 60, 0, 80, 64, 1, 1},
{0, 60, 0, 80, 64, 1, 1},
{0, 60, 0, 80, 64, 1, 1},
},
};
問題点
最終的にNeoPixelとの接続を想定していますが,現状動作せず.
原因はRAMの不足と突き止めたので,フラッシュメモリにsong
などの定数を書き込む予定です.