2022/11/23
初版
コンピュータ音楽向けのプログラム言語として、chuckがあるが、CCMapperを実装する。
windows版chuckはオーディオとしてDirectSoundを前提にしているが、windowsのソフト音源が遅延を最小化するために、ASIO4ALLを使用している。この状況で、chuck起動するとエラーになり使用できない。ソフト音源をDirectSoundに切り替えるとエラーが出ずに使用できるが、遅延が増えてウィンド・コントローラとしては実用性が低い。
したがって、実用的にはMacのみと思われる。
参照:
ChucK : Strongly-timed, Concurrent, and On-the-fly Music Programming Language
ChucK : Release version:1.4.1.1 (numchucks)
上のリンクからOS(MacOS,Linux,Windows)に応じたインストールプログラムをダウンロードしてインストールする。
miniAudicleといわれるIDEも同時にインストールされるが、本記事では、プログラミング言語chuckのみを使用する。
CCMapper.ck
// CCMapper for Mac
// 2022/11/23
// disp device status
//chuck --probe
// the message
MidiMsg msg;
//create object
MidiOut mout;
MidiIn min;
//connect to port loopMIDI
mout.open(0);
//connect to port Elefue/re.corder
min.open(1);
while(true){
// Use the MIDI Event from MidiIn
min => now;
while( min.recv(msg) ){
<<<msg.data1,msg.data2,msg.data3,"MIDI Message">>>;
if (msg.data1 == 176) {
// for Aria
2 => msg.data2;
mout.send(msg);
7 => msg.data2;
mout.send(msg);
26 => msg.data2;
mout.send(msg);
} else {
// will NOT send NoteOn/NoteOff at Mac Env.
if (!(msg.data1 == 128 || msg.data1 == 144)) {
mout.send(msg);
}
}
}
}
以下のデバイス番号は実行環境に依存するので、自分の環境に合わせること。
//connect to port loopMIDI
mout.open(0);
//connect to port Elefue/re.corder
min.open(1);
自分の環境を確認する場合は
以下のコマンドを実行するとデバイス状況を表示する:
chuck --probe
出力例(MIDI/HIDデバイスのみ):
[chuck]: ------( chuck -- 2 MIDI inputs )------
[chuck]: [0] : "loopMIDI bus1"
[chuck]: [1] : "Elefue Bluetooth"
[chuck]:
[chuck]: ------( chuck -- 2 MIDI outputs )-----
[chuck]: [0] : "loopMIDI bus1"
[chuck]: [1] : "Elefue Bluetooth"
[chuck]:
[chuck]: ------( chuck -- 1 mouse device )------
[chuck]: [0] : "Apple Internal Keyboard / Trackpad"
[chuck]:
[chuck]: ------( chuck -- 1 keyboard device )------
[chuck]: [0] : "Apple Internal Keyboard / Trackpad"
[chuck]:
osx_version = 4865
[chuck]: ------( chuck -- 1 multitouch device )------
[chuck]: [0] : "MultiTouch Device"
[chuck]:
CCMapper関連:
CCMapper改良版(openFrameworks)
CCMapper(C#版/RtMidi)
processingでCCMapperを実装する
python版CCMapper - re.corder/ElefueをCCMapper経由で外部音源(Aria/Windows)と接続する(WIDI_Bud_Pro使用)
openframework関連:
openFrameworksを使用して独自のMIDI生成のリアルタイムビジュアルを作成します。
Novation LauchpadとopenFrameworksを使ってResolumeのVJコントローラを作る : コーディング編
プロジェクトにアドオンを追加する方法
新規プロジェクトの作成
Listen to events
変数の値を見る
ofLog
openFrameworks-コンソール表示する
oF:Windowsのopenframeworksでコンソールウインドウを出さない方法
openFrameworks-Log vol.1/環境設定と導入
openFramewoks – OSC (Open Sound Control) を利用したネットワーク連携
pygame.midi関連:
PythonでMIDI
pygame.midi
loopMIDI関連:
loopMIDI
loopMIDIでつなぐ
WIDI_Bud_Pro関連:
WIDI Bud Pro
WIDI Bud Pro 技術情報
re.corder関連:
owner’s manual re.corder
re.corder Downloads
re.corder Frequently Asked Questions
MIDI関連:
現時点、最強のBluetooth MIDIかも!? 各種BLE-MIDI機器と自動でペアリングしてくれるWIDI Masterがスゴイ!
Midi View
ASIO関連:
asio4all - ASIOドライバーのないオーディオインターフェイスをASIO対応にできるソフト
Aria関連:
EWI MASTER BOOK CD付教則完全ガイド【改訂版】のp100-p119の音色の設定方法がある
以上