eVY1+Arduinoで打ち込み歌謡曲(続き)
花岡ちゃんのウィークエンド
前回のスケッチを解説します。
■曲の入力
データの持ち方は以前の投稿どおりです。(このシリーズの投稿をみてください)
score.hに入力します。「小節データ」の部分に数値配列の形で、データを打ち込みます。順番は、ピッチ、ステップタイム、ゲートタイム、ベロシティです。データの最後には必ず128を置きます。
この小節データを、「ソングセクション」でチャンネルごとに集めて、演奏譜面とします。チャンネルごとのsong配列の最後には、endplayを指定します。シーケンサはここまでくると実行終了します。
■使わないチャンネル
使わないチャンネルはsongの最初にchoffを指定しておきます。
■歌詞の送り方
score.hの「歌詞セクション」を見てもらえば作り方はわかると思います。問題は、どこで歌詞を送り込むかです。歌詞送信コマンドは、直前の音符が送られた後、わずかな時間遅れを伴って送信されます。人間が歌うときのブレス(息継ぎ)のタイミングに近いところがあります。使い方はsm3を見ろとありますが、これはsm4の間違いです。
■リズムの入力
score.hの「リズムセクション」に小節ごとに登録します。こちらは、タイコの種類、ステップタイム、ベロシティの3データです。タイコの種類については、GM音源の資料を探してください。(GM音源では、楽器の番号が1から始まっていますが、本システムでは0からなので、1を引いて設定する必要があります)
■MIDIチャンネル
MIDIのチャンネルはnew_ev1_seq.inoファイルの、setup()で設定指定しています。0はボーカロイド固定、6,7はドラムになっています。ドラムが2チャンネルになっているのは、基本モノフォニックなので、8ビートのように、複数のタイコを同じタイミングで叩く場合のことを考えてのことです。
■エフェクト
console.hには、チャンネルの音量や定位、エフェクトなどを記載します。見てもらえばわかると思います。
最後の、VOCAL_SKEWは重要です。ボーカロイドは少し遅れるので、これを補正するために、ボーカルを進める定数です。score.hのvstart[]の記述に、ここで遅れを補正しているように書いてありますが、これは古い情報で、これは普通の一小節の休符(歌詞の送信はありますが)です。補正はシーケンサでかけています。
以上、簡単な解説です。試してみたい方は、ソロの簡単な譜面からスタートするといいと思います。
« eVY1+Arduinoで打ち込み歌謡曲 | トップページ | 【昔語り5】SC/MP3で見た夢 - 前編 »
「花岡ちゃんのウィークエンド」カテゴリの記事
- レーザー距離センサVL53L0Xを複数使うには(2022.05.01)
- 【訂正!】PIC24Fでレーザー距離センサVL53L0Xを使う(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(おしまい)(2022.04.14)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その3)(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その2)(2022.04.12)
コメント