S-aiueo32 / arduino_minty_synth

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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などの定数を書き込む予定です.

About


Languages

Language:C++ 61.5%Language:Objective-C 38.5%