失敗メモ

Yamaha USB-MIDI Driverでlinux用がない!

はじめに

大学のイベントでmidiを使ってピアノを動かすことになりました。色々調べた結果、Yamaha USB-MIDI Driverを使おうと思ったのですがlimux用がなく困ったときのメモです。

現象

Yamaha USB-MIDI Driverのインストールガイドがあるのですが…

いやいやいやいや、linuxは?
となりました。まあしょうがないといえばしょうがないのですが…

解決方法

実はドライバを入れる必要がないんです。 もともとmidi用のドライバ?がはいっているらしくて

import mido
import time

ports = mido.get_output_names()
with mido.open_output(ports[0]) as outport:
    for msg in mido.MidiFile('new_song.mid'):
        time.sleep(msg.time)
        if not msg.is_meta:
            print(outport, msg)
            outport.send(msg) 

例えばこのようなコードを書いて音がならない!というときはports[0]のところが間違っています。
以下のコマンドを打ってみてください

aplaymidi -l

これは今現在pcが認識しているmidiになります。自分の環境ではこのような出力になりました。

この状態でport[0]とするとMidi Throughが 使われます。自分の場合はPiaggeroというYamahaのmidiキーボードで出力したかったのでport[1]とすれば音が出力されました。

もちろんoutportはただの文字列なので手で指定することもできます。

with mido.open_output("Piaggero:Piaggero MIDI 1 20:0") as outport:

おわりに

最初はlinuxだとmidiできないと思って超焦ってしまった…

そーたの技術ブログ

コメント

タイトルとURLをコピーしました