ターボモード不要です。 ①演奏するMIDIファイルを用意する。 ② MIDI変換サイト(https://t.co/ud1cgi6KcC)を使ってMIDIを変換し、変換したファイルをダウンロードする。 ③このプロジェクトの背景を押し、表示されたリスト「midi」を右クリック、出てきたメニューから「読み込み」を選び、変換サイトでダウンロードしたファイルを選択して読み込む。 ⑤プロジェクトページに戻り「解析開始」ボタンを押す。「解析完了」になるまで待つ。 ⑥旗を押して再生! 【各種パラメータの解説】 ・楽器を統一...1にすると「楽器を選択」の変数で指定した番号の楽器に楽器が統一されます。打楽器は無視されます。 ・楽器を選択...「楽器を統一」が1になっているときの楽器を選べます。 ・ピアノロール... 非表示:1 2D:2 3D:3 処理能力の低いスマホ等のデバイスでもピアノロールをオフにすれば大抵の曲は演奏可能です。@hevean_3 さんに3Dピアノロールのリミックス(https://scratch.mit.edu/projects/663853644/)をしていただいたので真似してみました。 ・描画範囲...ピアノロールの描画範囲を指定します。小さいほど演奏が安定します。 ・音量精度...音量をどれだけ細かく分けるかを設定します。5であれば5段階に区分されます。 ・和音耐性...音量ごとのクローンの数を指定します。クローンを増やすほどscratchの音の重なりの上限を引き上げることができます。音量精度×和音耐性 がクローンの総数となり、これが多いほど端末に負荷がかかります。 ーーーーーーーー更新履歴ーーーーーーーーー 22/3/17 共有 22/3/18 音量の調整方法を変更 22/3/23 サステインペダル(CC64)対応 22/3/24 音量精度、和音耐性を実装 22/3/25 ピアノロールの3D表示を実装。
※※※※※※※※※※※※※※※※※※※※※※※※ 楽曲だけでなくMIDIファイル自体にも著作隣接権が発生します。このプロジェクトは自由にリミックスしていただいて構いませんが、MIDIで演奏するときは「MIDIを作ってくれた人」にも感謝の気持ちを忘れず、使ったMIDIのクレジットもちゃんと書くようにしましょう!!! ※※※※※※※※※※※※※※※※※※※※※※※※ MIDI(Standard MIDI File)のバイナリデータをscratch内で解釈して演奏させる挑戦のリベンジです。 MIDI変換サイトのほうも自作です。既存ツールや変換済みcsvを使用せずに完全に自力で演奏できるようにしました。 前回よりさらに進化したお手軽MIDI演奏をお楽しみください! 前回の「midi解析演奏プログラム」で妥協した部分 ・テンポ(メタイベント51)の反映 ・音量(ベロシティ)の反映 ・音長(note off,ベロシティ0)の反映 ・楽器情報(プログラムチェンジ及びチャンネル情報)の反映 ・0以外のフォーマットの読み込み ・ランニングステータスの解析 ・マルチトラックの再生 ・読み込み可能なデータ量の拡張 ・演奏の軽量化 ・ピアノロール表示 ・サステインペダル(CC64) 2022/3/23 に対応しました。個人的にはリベンジとして満足の仕上がりです。 残るはメタイベント、コントロールチェンジ、ポリフォニックキープレッシャー、SysEx(システムエクスクルーシブメッセージ)、ピッチベンドかな?scratchの音楽拡張機能では再現困難なものや演奏に無関係なものが多いです。もし良い再現方法がありましたら教えていただけると嬉しいです。 前回と同じくショパンの黒鍵のエチュード入れておきました。解析してから旗押すと再生できます。前より情緒豊かな演奏になっているはず! MIDIは下記のサイトのものを使わせていただきました。製作者様に感謝申し上げます。 https://windy-vis.com/art/classic-midi/chopin.htm 音量ブロックの重さをどう回避するかが一番難しかったかな。演奏の軽量化には特に力を入れました。 楽器の切り替えにも対応していますが、scratchの楽器の音色にめっちゃ癖があったり音量にムラがあったりするのでGM規格(General MIDI)をもとに独断と偏見で楽器を選ばせていただきました。もとのMIDIより多少不自然な感じに聞こえるかも。 スプライト「演奏制御」の定義「楽器リスト」を書き換えると楽器を変更できます。 フォーマット1,2はトラックを合成することで再生を可能としました。音数が多い曲ほど合成に時間がかかります。DominoなどのMIDIシーケンサーであらかじめフォーマット0に変換しておくと時短になります。 最大約10万イベントまで読み込み可能です。これを超えてくるのは超真っ黒ナイト・オブ・ナイツとかその辺でしょうか。超えた場合も途中まで再生できるようにしておきました。 このプロジェクトを使えば誰でも短時間で演奏を作成できてしまいますが、これらを「スクリプト演奏」として共有すると、手作業でブロックを配置して表現している方が不利になってしまうかもしれません。 私はMIDIを用いたプロジェクトを「MIDI演奏」と呼び「スクリプト演奏」と区別して共有しようと思います。 私の過去のプロジェクトで「スクリプト演奏」として共有したものはMIDIを使用しておらず、Scratchで作成した音ブロックシーケンサ(未共有)で編集しています。 スクリプト演奏に限界なし?!