DAW悪戦苦闘記

DAWやMIDIを通じてDTMを楽しむ記録。MIDI検定試験にもチャレンジするなり。

Python

Python認定試験の模擬試験を試す

MIDIやDAW関連の本筋から脱線してしまうが、Pythonネタでちょっと余談。わざわざサブブログ用意してまで書くほどでもないと思ったので、以下の過去記事シリーズに無理やりかこつけてこの場で書き留めておきたい。 daw-jones.hatenablog.com 機械学習および人…

Magentaによるメロディ生成 (4) コード進行の活用

前回記事の続編、というかおまけ。前回は単純に出だしの単音だけ与えてメロディを生成させてみたが、今回はコード進行の制約を与えるモデルを試用してみる。 daw-jones.hatenablog.com 使用するモデル 今回は、Melody RNN ではなく、Improv RNN を用いる。 …

Magentaによるメロディ生成 (3) MIDIデータ生成

随分と間が空いてしまったが、前回の環境構築に引き続き、MIDIデータの生成を試してみる(かなりマニアックです)。 daw-jones.hatenablog.com プリセットの学習済みデータ 有難いことに、Magentaには数千曲のMIDIデータを使って学習したモデル一式が添付さ…

Magentaによるメロディ生成 (2) Magenta実行環境

前回の続き(かなりマニアックです)。 daw-jones.hatenablog.com 前回記事の最後で触れたように、Magentaの実行環境を構築する方法はいくつか存在するが、私は今回はDockerを使った導入方法を選んだ*1。というのも、これが最も単純明快で、かつ既存環境との…

Magentaによるメロディ生成 (1) 資料など

夏休みの自動作曲探求シリーズの終章として、AIベースの楽曲生成モデルをできる範囲で実際に試してみたいと思う。これまでは、アプリやWebサービスの形態でお手軽にすぐ使えるツールのみを少々漁ってきたが、ここから先はMIDIの基本や(若干の)Pythonプログ…

PythonでSMFを操作する (7) 不要メッセージの削除とファイル保存

前回からの続きだが、PythonによるSMFの編集加工シリーズは一旦これで終了とする。ここまでの一連の操作を経た修正後のSMFをDominoに読み込み、再生してみた結果については稿を改める。 daw-jones.hatenablog.com 不要メッセージの削除 前回まで放置したまま…

PythonでSMFを操作する (6) 移調

前回の続き(注: かなりマニアックです)。操作要領はほとんど同じである。 daw-jones.hatenablog.com ノート番号と移調 MIDIでは音程をすべて半音単位のノート番号で管理しているので、移調・転調については各メッセージのノート番号を一斉に同一インターバ…

PythonでSMFを操作する (5) MIDIチャネル変更

前回の続き(注: かなりマニアックです)。今回は既存メッセージのMIDIチャネルを変更するが、要領は前回のデルタタイム修正とほぼ同じである。 daw-jones.hatenablog.com Studio One で書き出したSMFの大きな問題 Studio One (Prime版)で Presence XT を使…

PythonでSMFを操作する (4) デルタタイム修正

前回記事の続き(注: かなりマニアックです)。今回は、前回未解決であった最初のノートオン・メッセージのデルタタイム、すなわち発音タイミングをシフトして修正する。 daw-jones.hatenablog.com データ挿入に伴うズレ 途中挿入したセットアップ・データの…

DominoでSMF保存した場合の注意点

今になって気づいたのだが、Domino上で各トラックの音色を選択設定した後にSMF保存すると、Domino独自の余計なバンクセレクトMSB/LSBメッセージが挿入されてしまう。 MIDI検定実技では、2級と1級を問わず、レギュレーション違反で減点対象になる可能性がある…

PythonでSMFを操作する (3) セットアップデータ挿入

前回の続き(注: かなりマニアックです)。前準備は済んでいるものとする。 daw-jones.hatenablog.com セットアップデータの生成 セットアップ用のデータは、コントロール・チェンジとプログラム・チェンジを組み合わせた一連のメッセージ・リストとして定義…

PythonでSMFを操作する (2) SysEx挿入

前回記事の続き(注: かなりマニアックです)。今回はトラック1の1小節目冒頭に所定のSysExメッセージを挿入してみる。 daw-jones.hatenablog.com 下準備 midoパッケージのインポートと、Studio One から書き出したサンプルのSMFファイルをmid変数に読み込む…

PythonでSMFを操作する (1) 下準備と読み込み

今回より、少々マニアックにはなるが、PythonによるSMFの加工編集処理について何度かに分けて(五月雨式に)書いていく。なんでそんなことするの?、という根拠については以下に記す。なお最初に断っておくが、以下の話はあくまでMIDI検定実技対策上の要請で…