pygameを利用したMIDIフットスイッチの情報送信

前回からの続き
受信したMIDIのプログラムチェンジを判定して、MIDI音源(ポケット・ミク)やマルチフットエフェクター(GP-10)にMIDI信号を送信してみました

pygame.midiの受信ができれば送信も同じ文法で記述できるので、書き方自体はそんなに難しくないです
受信したスタンダードMIDIファイルが3次元のリストになっているので、そこの扱いさえ注意すれば
プログラムは以下の通り

続きを読む

pygameを利用したMIDIフットスイッチの情報受信

前回の続き

Pygame ライブラリを利用してMIDIフットスイッチの情報を受信してみました。

#!/usr/bin/python3
#!/usr/bin/python3
# coding:utf-8
import time
import pygame
import pygame.midi

pygame.init()
pygame.midi.init()
sw_name = 'UM-1G'

for i in range(pygame.midi.get_count()):
    print (i,end=' ')
    midi_info = (pygame.midi.get_device_info(i))
    if_name = str(midi_info[1])
    print (midi_info)
    if midi_info[2] == 1:
        if sw_name in if_name:
            print ("footSW ID = ",i)
            foot_sw = i print(pygame.midi.get_default_input_id())

while True:
    out = pygame.midi.Input(foot_sw)
    a = out.read(1)
    time.sleep(0.1)
    out.close()
        if a:
            print (a)

続きを読む

pygameを利用したMIDIフットスイッチの情報受信

前回の続き

Pygame ライブラリを利用してMIDIフットスイッチの情報を受信してみました。

#!/usr/bin/python3
#!/usr/bin/python3
# coding:utf-8
import time
import pygame
import pygame.midi
pygame.init()
pygame.midi.init()sw_name = 'UM-1G'
for i in range(pygame.midi.get_count()):
print (i,end=' ') midi_info = (pygame.midi.get_device_info(i)) if_name = str(midi_info[1]) print (midi_info) if midi_info[2] == 1: if sw_name in if_name: print ("footSW ID = ",i) foot_sw = i print(pygame.midi.get_default_input_id())
while True:
out = pygame.midi.Input(foot_sw) a = out.read(1) time.sleep(0.1) out.close() if a: print (a) print (a[1])

pygameライブラリのテスト

ネットを徘徊してたらラズパイでMIDIをリアルタイムで処理したい場合はpygameってライブラリを使うのが常套手段らしいので、早速試してみました。

まずはライブラリがインポートできてデバイスがちゃんと認識できるかの確認。

 こちらのサイトの記事を参考にしました。

ブラウザとMIDIコントローラを繋げてみる。 - 閉村観光

 

続きを読む

MIDIフットスイッチの状態取得

前回からの続きです

MIDIフットスイッチが踏まれたら"footsw on!"と表示するプログラムです。

スタンダードMIDIファイルの最初のイベントは頭から38Byte目に書かれるので、1秒毎にインターフェースの状態を書き出して、38Byte目にプログラムチェンジ(c0)が書かれたかどうかを判定しています。

一応期待通りに動くのですが、

  • 都度ファイルに書き出してそれを再度読み込んで内容を確認しているブサイクさと
  • スイッチを踏むタイミングによっては取りこぼしがある

ので、正直実用化には厳しいかと、、、

 

arecordmidi を使う方法以外に何かいいアイデアがないか考えてみます。。。

 

続きを読む

MIDI受信メッセージを保存するスクリプトをPythonで書く

MIDIメッセージを受信するコマンドはわかりましたが、自動でスタート・ストップをする方法が必要なので、とりあえず一定時間受信したら止まるスクリプトを書いてみました。

参考しにしたのはこちらのサイト

python でコマンド実行。サブプロセスの終了待ち・強制終了・親プロセスと一緒に殺す。 - それマグで!

続きを読む

Blogタイトルに「お金がない」と書いたので、どれくらい金がかかってるか主要機器のお値段を調べてみる

今回色々と機器が登場するので、それぞれどれくらいするものなのかを再確認してみました。

もともと持ってたものは実質費用0円と言いたいところですが、当時買ったときにおいくら万円くらいしたのか、一応記載しときました。

続きを読む