5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

USB-MIDIキーボードでpyxelの音を鳴らしてみた

Last updated at Posted at 2025-12-09

pyxelをシーケンサーにしたい💫

ふと、そんなことをふと思いつき、MIDIキーボードを使ってpyxelから音を出してみようと試みました。

Pyxel(ピクセル)は、 Python 向けのレトロゲームエンジンです。
使える色は 16 色のみ、同時に再生できる音は 4 音までなど、レトロゲーム機を意識したシンプルな仕様で、Python を使ってドット絵スタイルのゲームづくりが気軽に楽しめます。

mido ライブラリを使う

Mido は、MIDI 1.0 ポート、メッセージ、およびファイルを操作するための Python ライブラリです。
つまりはmidoとpyxelを連携させればMIDIキーボードを使って音を出すことが可能になります。

作ってみたけど思った通りの動作にならない

同時に鳴らせる音を3つにしたかったけど、pyxelの理解が乏しかったので方法がわからず。
またMIDIキーボードの鍵盤を離してから次の鍵盤を押さないと、次の鍵盤の音が途切れてしまう状態に。

pyxelのドキュメントや仕様とにらめっこ

pyxelの理解を深めて行くことで、4和音まで鳴らせるようになりました。
pyxelの仕様を超える高音域のB4以上の音程を出そうとするとバグってしまうので、B4以上の音程は無視するようにしつつ、和音演奏時に鍵盤を離しても他の音が切れないようにも修正。
これでやっと普通にMIDIキーボードで演奏できるようになりました。

さらにpyxelの仕組みを理解していく

pyxelでは4つの音色とエフェクトを利用することができます。

  • 音色
    1. パルス波
    2. スクエア波
    3. 三角派
    4. ノイズ
  • エフェクト
    1. フェードアウト
    2. バイブレーション(ビブラート)

これらの音色とエフェクトをリアルタイムで切り替えるために、中華ゲーム機のコントローラ or 普通のキーボードを使うことに。

これによって音色の表現が増えたので演奏の幅が広がるようになりました。

pyxel+MIDIキーボードのデモ

中華ゲーム機と組み合わせたミニマルなMIDIキーボードシステム

ファミコン ミネルバトンサーガの町のBGMを弾いてみた

ファミコン ハイドライドスペシャルのBGMを弾いてみた

DAWを使って1曲作ってみた

所管

MIDIキーボードの取り回しが良くなった

スピーカーが無いMIDIキーボードを使って音を出そうとする場合、PCやDAWなどを用意しなければなりません。
つまりは「MIDIキーボードの置く場所が限定される」ということになりますので、寝室やリビングなどで気軽に音を出すことはできないわけです。

しかし今回作成したpyxel_midi-keybordアプリと中華ゲーム機を組み合わせることで、MIDIキーボードをサッと利用可能になり、膝の上でも気軽に音を出すことができるようになりました。
(USBケーブルが1本あれば良い)

アプリ制作において感じたこと

実はMIDI鍵盤を叩いてから音が出るまでにラグがあるのですが、pyxelのfpsを上げればそのラグはどんどん短くなるのも面白い発見でした。

肝心のアプリについてはまだまだMIDIの機能を網羅できていませんし、ピッチベンド機能なども実装したいと思っていますが、pyxelの理解が乏しいので実現できていません。
でも工夫次第できっと実現できると思っていますので、時間があるときにまた挑戦したいと思っています!✨


Qiita記事のリンク

USB-MIDIキーボードでpyxelの音を鳴らしてみるテスト その1
https://qiita.com/moto_game_de_it/items/d99593379c317087e000

USB-MIDIキーボードでpyxelの音を鳴らしてみるテスト その2
https://qiita.com/moto_game_de_it/items/d89de2e234d227725f3c

USB-MIDIキーボードでpyxelの音を鳴らしてみるテスト その3
https://qiita.com/moto_game_de_it/items/95b41e7f8e037f65d483

以上

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?