落下ボールバウンドMIDIジェネレーター【Pythonソースファイル】
- ダウンロード商品¥ 0

ボールがバウンドする物理演算とMIDIを組み合わせたMIDIジェネレーターです。 ソースファイルで配布し、Windows, macOSのPythonで動作します。 画面上でボールを落下させ、床にバウンドするたびに設定したMIDIノートが発音されます。 ボールの反発力やMIDIの音程を操作できるUIを備えており、視覚と聴覚で音楽を体験できます。 DAWのMIDIインプットに接続すれば、様々なソフトウェア音源を鳴らすことが可能です。※単体では発音しません。 このプログラムは、どなたでも自由にご利用、改変、再配布いただけます。MITライセンスの下で提供されます。
操作について
・スタートボタン: ボールを初期位置にリセットし、落下を開始します。 ・反発力スライダー: ボールが床に衝突した際の跳ね返りの強さを調整します。 スライダーを上に動かすと反発力が強くなり、下に動かすと弱くなります。 ・リセットボタン: 反発力を初期値の0.8にリセットします。 ・音程(Pitch)の入力ボックスとボタン: ボールが床に衝突した際に発せられるMIDIノート(音程)を設定します。 ・音程ボックス: 現在のMIDIノート番号と、それがどの音名に当たるか(例: C3, A#4など)を表示します。 ボックスをクリックすると直接数値入力モードになります。 数値を入力しEnterキーを押すことで音程を確定できます。 Backspaceキーで入力ミスを修正でき、Escapeキーで入力モードをキャンセルし、元の音程に戻せます。 「-」ボタン: MIDIノートを1つ下げます。 「+」ボタン: MIDIノートを1つ上げます。 マウスホイール: 音程UIの上でマウスホイールを回転させると、MIDIノートを上下に1つずつ変更できます
はじめて使用する方へ
1. 仮想MIDIケーブルの準備 loopMIDI をインターネットで検索してダウンロードし、インストールしてください。 インストール後、loopMIDI を起動して、新しいポートを作成し「loopMIDI Port 1」と命名します。このポートにプログラムがMIDI信号を送ります。 2.Pythonを検索しインストール。今回のプログラムは3.13で動作確認しています。 追加で必要なライブラリもインストールします。コマンドプロンプトを開き、以下のコマンドを実行して必要なライブラリをインストールします。 pip install pygame mido 3.ダウンロードしたZIPファイルを展開し、midi_drop_ball.py というファイルをデスクトップ(または分かりやすい任意の場所)に置きます。 4.コマンドプロンプトやターミナルでcdコマンドを使って、ダウンロードしたファイルがあるフォルダに移動します。 cd C:\Users\あなたのユーザー名\Desktop ※ 「あなたのユーザー名」は、お使いのPCのユーザー名に置き換えてください。 5.プログラムの実行 ファイルがあるフォルダに移動できたら、以下のコマンドを入力してプログラムを実行します。 python midi_drop_ball.py 6.loopMIDIにうまく連携されないときは 50行目のMIDI_PORT_NAME = 'loopMIDI Port 1 8' をあなたの環境のポート名に書き換えてください。 コマンドプロンプト/ターミナルで Python を使って確認する Python がインストールされていれば、midoライブラリを使ってコマンドラインから直接確認することもできます。 コマンドプロンプトを開き、Pythonのインタラクティブシェルを起動します。 python 加えて以下のコマンドを入力して実行します。 import mido print(mido.get_output_names()) これにより、PCで利用可能なすべてのMIDI出力ポート名のリストが表示されます。その中に loopMIDI で作成したポート名が含まれているはずです。 50行目のMIDI_PORT_NAME = 'loopMIDI Port 1 8' をその中のポート名に書き換えてください。 —------------------------ これらの手順で、プログラムが起動し、画面にボールが跳ねるアプリケーションが表示されるはずです。もし何か問題があれば、エラーメッセージをChatGPTやGeminiなどの生成AIに直接貼り付けることで解決手順を教えてもらえます。
動作環境
OS: Windows, macOS, または Linux Python: Python 3.x系
サポート
このプログラムはGemini 2.5 Proを使用しバイブコーディングで作成されています。 こおろぎ本人には問題解決能力はありません。ご了承ください。また、テキストなど、内容をクリーンナップせず配布しております。