はじめに
情報系の学科で学部1年をしていますminです。クリスマスも終わり、仕事(バイト)納めも終わったということでためにためたアドベントカレンダーを書いていきます。ほんとそういうとこだよ私って毎回思う。無理なスケジュールは立てるなよな。
ボコボコにされた経緯
大学の先生が「機械学習と音楽生成に関する授業を開講する、希望者がいれば履修対象者でなくても授業を潜ることが出来る」とのお知らせを学科全体に発信しており、私はまんまと引っかかってしまいました。もともと音楽が好きなのもあり、また興味のあることはやるに越したことはないだろうという脳筋の精神から「潜りたい!!」と即レス。ちなみにその授業が大学院のものだったことは後から知りました。ちゃんと先生の文章を読もう。そして自分のキャパを考えようね。
お前はそこで何を学んだん?
機械学習による音楽生成について学びました。といっても、コードもまともに(いや、まったく)かけない私が学べたことはほとんどありません。また、この授業は水曜日5,6限だったのですが丁度サークルのライブ練習(不定期)と被ってしまいほとんど対面で参加できませんでした、、、なら潜るなよな。
- Googleコラボの使い方
- MIDIファイルの仕様
- MuseScoseの大まかな使い方
- エラーを吐かれることの恐怖
- ほうれん草の重要性
- マウントの仕方
については基本的な知識を得ることができました。(ほんとか???)
ボコボコにされる流れ
そんなこんなで潜っていた私ですが、とうとうやってきました。最終発表会!!!
二人一組になって成果物を作ります。テーマは特になし。さあ困った。
何を作ったん???
なんとか相方は見つかったのですが、なんと相方は当日予定あり。困りました。さあ授業資料を見返します。
- ソプラノパートが与えられ、アルト・テノール・バスパートを作る
入力:ソプラノ → 出力:アルト・テノール・バス
いわゆるソプラノ課題
これも自動編曲と考えることが多い第3回授業資料より
お、これは気になる。やってみたい。
「そろそろクリスマスだし、ジングルベルでも作ろう」ということでジングルベルでソプラノ課題に挑戦することにします。
さあ、ジングルベルのメロディーを用意しよう。
「うーーーーん、とりあえずジングルベルのメロディーは手打ちでいいか」
ということで手打ちしました。機械学習じゃないんかい。
カス。あまりにもカスなので音色はかわいいシロフォンにしました。
とりあえずできた。
ついでに、ピアノロールも出してみよう。
- pretty_midiをインストールします。
!pip install pretty_midi
- 次に自分のデバイスからさっきのMIDIファイルを持ってきます。
マウントを忘れない。
midi = pretty_midi.PrettyMIDI("drive/MyDrive/chorales/midi/000101b_.mid")
notes = midi.instruments[0].notes
print(notes)
- ピアノロールを出力
pianoroll = midi.get_piano_roll()
plt.matshow(pianoroll[:, 10000:10400])
出力されたものがこちら。
ん?????????
なんでこんなに音が重なっているの?????
多分事故った。おそらくファイルの挿入がうまくいっていない。
ソプラノ課題をやってみよう
と思ったもののうーーーーーんわからん。ああ困った、、、とここで時間切れ。もう発表するしかありません。さらに、相方は音信不通。とにかく発表スライドを作ります。音信不通なので相方のことをスライドでボコボコにします。
スライドを作ろう
何とかスライドも作成。
カススライドの一部。
連絡つかないからってこんなに弄り倒してごめん(あとでちゃんと謝りました)。
まとめ
とまあなんとか「できませんでした」を最終発表することができました。本当に良くない。そして、「B1なのによくやった」「逃げなくてえらい」と評価されるまで落ちぶれてしまい情けない。この情けない経験は一生忘れずにしたい。