FLAGS

筆者おかあつ 大きな区分 記事の区分 記事の一覧 検索 ツイート

2017年6月2日金曜日

a2jmididの正しい起動方法 (oka01-uoupzyvpvopuzdwp)

Ubuntuを使って音楽作成するときに必須になるアプリに  a2jmidid というものがある。これは、Ubuntu上でJACK音楽環境を構築した時、JACKに対応していないMIDIデバイスをJACKに橋渡し(ブリッヂ)するためのアプリだ。

このアプリの起動方法、実は 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 Hedekar 

SEE 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 から出力されるので、それを好きなシーケンサー(ここでは hydrogenRXポート )につなぐことで、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上で音楽作成環境を作るための立役者たちを紹介している。



オープンソース 〜 本当の精神的自由を求めて