このアプリの起動方法、実は a2jmidid を直接起動するだけでは不充分らしい。
実は、a2jmididには、 a2j_control という a2jmidid の起動・終了を管理するアプリが含まれている。これを使わないと、a2jmididの全ての機能が利用できないらしい。
a2j_control のマニュアルを読んでみると、次のようになっている。
a2j_control(1) User Manuals a2j_control(1) NAME a2j_control - utility to control a2jmidid daemon SYNOPSIS a2j_control [OPTIONS] OPTIONS start starts the a2jmidid bridging daemon stop stops the a2jmidid bridging daemon status queries the a2jmidid bridge status exit deactivates the a2jmidid D-Bus service AUTHOR Eric HedekarSEE ALSO a2jmidid(1), a2jmidi_bridge(1), j2amidi_bridge(1) Linux July 2009 a2j_control(1)
特に変わったところはない。だが、実際のアプリのヘルプは次のようになっている。
> a2j_control Usage: a2j_control [command] [command] ... Commands: exit - exit a2j bridge dbus service start - start bridging stop - stop brdiging status - get bridging status gjcn - get JACK client name ma2jp- map ALSA to JACK playback port ma2jc - map ALSA to JACK capture port mj2a - map JACK port to ALSA port ehw - enable export of hardware ports dhw - disable export of hardware ports
いくつかのマニュアルには乗っていないコマンドが書かれている。
このなかで、ehw dhw の重要性は、いくら強調しても強調しすぎということはないだろう。何故なら、ehw を実行しない限り、USBで繋いだ音楽キーボードがJACKにブリッヂされることはないからだ。
2017年現在では、Ubuntuに接続した音楽キーボードは、ALSAデバイスとして認識される。これでは、レスポンスの良いJACK MIDI対応のシーケンサーアプリケーションから直接利用できない。そこで a2jmidid の出番になる。
ところが、a2jmidid はソフトウェアの ALSA MIDIポートをJACKにブリッヂするだけで、外部から繋いだ音楽キーボードなどの ハードウェア ALSA MIDI ポートはブリッヂしてくれない。これはなかなか頭の痛い問題だった。
だがデフォルトで ALSA MIDI THROUGH ポートは、JACK のMIDI CAPTURE デバイスにブリッヂしてくれるので、これをつかってなんとか、頭の痛い問題をしのぐことが出来た。
これはどういうことかというとつまり、Xkey37(僕の環境で使っている外部音楽キーボード)を、Midi Through につなぐと、Xkey37で演奏した内容が midi_capture_1 から出力されるので、それを好きなシーケンサー(ここでは hydrogen の RXポート )につなぐことで、ALSA MIDIのデバイスをJACK MIDI から利用することができる… ということだ。
しかしこの方法だと、気をつけないとMIDIデータが合せ鏡のように無限ループしてシステムがクラッシュしたりするので、神経を使った。
実は、
1.a2jmidid は ALSA MIDI デバイスをブリッヂすることが可能だ。
2.この機能はデフォルトでオフになっている。
これをオンにするのが、 ehw の役割だ。
> a2j_control ehw
これだけだ。
ehw は、a2jmidid のハードウェア MIDI ポートのブリッヂ作成を有効化するコマンドということらしい。廉価で高速なUSB3対応の音声デバイスが花盛りの2017年。 これを使わないかぎり、JACKに実用性はない…と言っても過言でないほどに重要なコマンドだ。
この記事を書いたのは、2017年6月2日だ。この時点でネット上でこの問題について日本人で言及している人は一人も見当たらなかった。ということはつまり、恐らくだが、日本人でUbuntuを使って本格的にDTM環境を構築している人は、ほとんどいない、ということなのだろう。
つまり、現在の段階で、このことを日本語でブログに書いても、 誰も読むことはない ─── だが敢えて、未来の読者の為にここに情報を置いておこうと思う次第である。
取り敢えず、2017年の現在、JACK が何なのか、ALSA が何なのか、PulseAudioがなんなのか、それすらもさっぱり判らない、という人々が大半ではないか、と思われる。それは次の記事に記した。
UbuntuでJACKとPulseAudioを同時に使う
そもそもこの記事は、違う問題を解決するために書いたものだ。だがここで駆け足で、Linux上で音楽作成環境を作るための立役者たちを紹介している。
オープンソース 〜 本当の精神的自由を求めて