iRig BlueBoardからAbleton LiveのSceneをLaunchする

2ヶ月ぶりくらいの更新です。

IK Multimedia iRig BlueBoardをもっとフレキシブルに使用するために勝手appを制作しようとしていたのですが、Ableton Liveのシーンをトリガーしたい場合、PythonのAPIを利用したScriptを作成した方が早そうなので、そちらで実装してみました。

本スクリプトを利用するとiRig Blueboardの各スイッチを下記の様に動作させることが可能になります。

A = Sceneの選択を上へ移動
B = Sceneの選択を下へ移動
C = 選択されているSceneを再生
D = ストップ

動作環境は、iRig BlueBoard AppがMac OSのみの対応のため、Mac OSのみになります。

設定方法は、ダウンロードしたファイルを解凍した後に現れるreadme.rtfを参照して下さい。

Download
iRigBlueBoard Ableton Live Scene Launch Script

LINEで送る
このエントリーをはてなブックマークに追加
Share on Facebook

IK Multimedia iRig Blueboardの勝手app for Macを制作する その3

IK Multimedia iRig Blueboardの勝手app for Macを制作すると意気込んで、頑張っているもののなかなか進みません。
…とは言っても、まだ3日目。

本日は、GUI部分を少し作ってみます。
IK Multimedia本体のサイトから入手した画像を加工して、NSButtonの画像にしてみました。

iRig BlueBorad Test
iRig BlueBorad Test

コーディングしていた時間よりも、Photoshopをいじっていた時間の方が長かった…そんな感じです。
InterfaceBuilderでviewにただの背景画像を貼り付ける方法がわからなかったので、AppDelegate.mのapplicationDidFinishLaunchingにて直接NSImageを描画させてしまっているという体たらくっぷりです。
逆にInterfaceBuilderを使用しないで、UIコンポーネントは全てソースに記述したら硬派だったかもしれないとか考えたりしますが、しばらくはベストプラクティスを模索しつつ、色々やってみます。

アプリを立ち上げると、DAW等のMIDI INにiRig BlueBoardが出現します。
フットスイッチを押すと青く光ります。

…現バージョンでは、これ以上は何も起こりません。

↓ iRig BlueBoard Test 1.appダウンロード
iRig BlueBoard Test 1

次はフットスイッチ毎の設定部分を作ろうかと考えております。

LINEで送る
このエントリーをはてなブックマークに追加
Share on Facebook

IK Multimedia iRig Blueboardの勝手app for Macを制作する その2

IK Multimedia iRig Blueboardの勝手app for Macを制作すると意気込んでみましたが、10年前と勝手が違い過ぎて、Xcodeの使用方法やらを覚え直すのにてんてこ舞いです。
そして2日目。
まずInterfaceBuilderの操作方法が全然違うので画面作成で躓いております。

iRig BlueBoard
iRig BlueBoard

言語面のリハビリとして『詳細 Objective-C 2.0』や『Objective-C 逆引きハンドブック』を引っ張りだしてきて、言語仕様に慣れようとかと思います。

LAMP環境の開発にどっぷり浸かった身としては、かなり茨の道ですね。

本日は仮想MIDIデバイスを作成します。
インポートの宣言に下記を追加します。

#import <CoreMIDI/CoreMIDI.h>

そしてMIDIクライアントとエンドポイントを作成すれば、DAW等のMIDI INPUTに作成した仮想MIDIデバイスが現れます。

//MIDIクライアントを作成する
MIDIClientRef clientRef;
NSString *clientName = @"iRig BlueBoard";
MIDIClientCreate((__bridge CFStringRef)clientName, NULL, NULL, &clientRef);

//エンドポイントを作成する
MIDIEndpointRef outputEndpointRef;
NSString *endpointName = @"iRig BlueBoard";
MIDISourceCreate(clientRef, (__bridge CFStringRef)endpointName, &outputEndpointRef);

今日はここまで。

LINEで送る
このエントリーをはてなブックマークに追加
Share on Facebook

IK Multimedia iRig Blueboardの勝手app for Macを制作する その1

お久しぶりです。

3月19日に予定していた音楽配信とレコ初ライブが終わりまして、やっと余裕が出てきました。
「よし!これからバリバリ自分の音楽制作をやるぞ!」っとはならずに、タイトル通り、iRig BlueBoardの勝手アプリを制作したいと思います。

iRig BlueBoard
iRig BlueBoard

このiRig BlueBoard。
Bluetooth接続のMacとiOSデバイスに対応したMIDIフットコントローラーであり、コンセプトも良いしハードウェアに将来性も感じているのですが、iRig BlueBoardと接続先アプリケーションのブリッジとなるiRig Blueboard appの性能が残念すぎます。

・MIDI CCモードではトグルにしかならない。(ラッチでも使用したいです)
・プログラムチェンジモードとMIDI CCモードしかない。(モードの概念を無くして、4スイッチと2エクスプレッション・ペダルに自由にMIDIメッセージを割り当てたい)
・頻繁に接続が切れる。(アプリの問題では無いかもしれません)

というわけで、ライブでの使用に耐えうるiRig BlueBoardアプリの開発をしてみたいと思います。
(結局出来なかったらゴメンなさいだけど…一応やってみます)
(MacOSのアプリを開発するのは実に10年ぶり。当時はCocoa+JavaでLaTexのフロントエンドを開発してAppleのサイトにも掲載してもらってました)
(…が、10年ぶりにXcodeを起動してみたら、当時とかなり変わっていてチンプンカンプン…という現状です)

まずは、iRig BlueBoardの勝手アプリの仕様を決めます。

・モードの概念は無し
・4つのボタンと2つのエクスプレッション・ペダルに、自由にMIDIメッセージを割り当てられる
・4つのボタンと2つのエクスプレッション・ペダルに、複数のMIDIメッセージを割り当てられる
・4つのボタンはトグルとラッチのどちらかを選択することが出来る
・メニューバー常駐型(優先度:低)

MacOSアプリに関してほぼゼロからの知識で始めるため、サーベィが必要なTODOをまとめます。

・Xcode 5でアプリケーション作成
・仮想MIDIデバイスを作成する
・仮想MIDIデバイスからホストアプリケーション等にMIDIメッセージを送信する
・iRig BlueboardとMacの接続
・iRig BlueboardとMacのメッセージのやり取り
・エディタ画面の作成
・エディタの設定をアプリ内保存
・エディタの設定をインポート(優先度:低)
・エディタの設定をインポート(優先度:低)

結構、未知なる領域ですね。
頑張ります。

というわけで、今回はこのへんで。

LINEで送る
このエントリーをはてなブックマークに追加
Share on Facebook

DentakuのOtotoが凄い!

イギリスのロンドンにあるDentakuという会社のOtotoという電子楽器が凄い!
そして欲しい!

Dentaku Ototo
Dentaku Ototo

導電するものに電極をつないで身の回りのものを何でも楽器にしてしまうモノらしい。
これは明和電機っぽいな…と思ったら、明和電機のアシストワークをしていた鈴木さんという方が開発したらしいです。
…納得。

これがあれば、Ableton Liveのシーンやクリップのトリガーとして様々なオブジェを使用可能になる。
例えば衣装とか、ステージに持ち込む小道具とか…。
かなり可能性を秘めた機材だと思う。

3月3日までwww.kickstarter.comで出資を募っていて、期日までに50,000ポンド集まると製品化され、出資者の元に届くらしい。

https://www.kickstarter.com/projects/905018498/ototo-make-music-from-anything?ref=card

出資はイギリス国外からでもOK。
ちゃんと日本にも発送されるみたい。

早速、投資しておきました。

LINEで送る
このエントリーをはてなブックマークに追加
Share on Facebook

一ヶ月坊主さん

三日坊主ならず一ヶ月坊主か…。

モチベーションと作業時間を確保するのは案外難しいですね。
ヘッドホンとMacbook Proさえあれば!と思っていたけど作業に入り込むには意外と難しい。

3月19日以降までまってケロ。

3月19日リリースの作品が無事にリリース出来たらこちらの制作に戻ってきます。
それまではゆる〜い日記を書き溜めていきます。

P.S.
先日クーレンズから発売されたフェンダーのメガネを買いました。
http://the-eyewear.com/fender/lineup

fender001AS C92
fender001AS C92

ギタリストとしてはフェンダーのロゴがメガネに付いているだけでテンション上がります!

LINEで送る
このエントリーをはてなブックマークに追加
Share on Facebook

EMGのソルダーレスは便利

弦交換を行うついでに、8弦ギターのPU交換をしました。

Seymour Duncan Blackouts AHB-1 8 stringからEMG 808へ。

Seymour Duncan Blackouts AHB-1 8 string
Seymour Duncan Blackouts AHB-1 8 string

ソルダーレスなので半田ゴテ不要。

EMGのソルダーレスなら…
EMGのソルダーレスなら…

PUを外してコネクタをつなぎ替えるのみ。

EMG 808に換装完了
EMG 808に換装完了

普段なら30分〜1時間コースの作業も5分で終了です。

リプレイスメントPUから純正PUに戻した感じになります。

以前は無機質なEMG 808よりも、Blackouts AHB-1 8 stringのブリッジはハイが出てネックはまろやかな感じが良いと思ってましたが、今はEMG 808のタイトな感じがIbanez RG8228には合っている様な気がします。

DiMarzioのPUのPUの種類で音のキャラを選ぶ音作りから、EMG等のアクティブPUのプリアンプに入る前段階でEQを接続して不要部分を削ったり、レスポンスを上げたい部分をブーストしたりする音作りに慣れたので、全体的にフラットなEMG 808の方が扱いやすいと感じるようになったのかもしれません。

Seymour Duncanのパッシブの8弦用PUも気になってますが、もしかしたらEMG 808で落ち着くかも。

LINEで送る
このエントリーをはてなブックマークに追加
Share on Facebook

せーいさくーは明日から…

…というわけで、明日から制作モードに戻ります。

とは云っても、制作をしていなかったわけではなく、本日のCOMITIA107に出展するCDのシークレットトラック制作やらCDのマスタリングをしてました。

今回、44.1kHzのオケを48kHzのプロジェクトに取り込んでちょっとテンポが速くなってちょっとピッチが高くなってしまったという音源に合わせて、ギターやベースを入れるという貴重な体験をしました。
だいたい146セント高くすると合う感じ。
仕方ないのでレギュラーチューニングしたギターとベースをAmplitubeのピッチシフターで半音と46セントピッチを上げてみました。
よく聴くと濁って気持ち悪い感じだったのですが、計算を間違えたのかな?

…うーん。
過ぎてしまったことはもういいや。

次回、同じ様なシチュエーションになった場合は、WAVファイルのヘッダを書きなおして元のテンポとピッチに直してからギターとベースを入れて、逆の手順で戻して返そう。

直近の予定をこなしたので、あとは3月19日リリース予定の某プロジェクトの音源作成に専念しよう。
毎日1音源アップも再開しよう。

…明日から。

今日は一日中ブースで売り子だったのでぐったりんこ。

LINEで送る
このエントリーをはてなブックマークに追加
Share on Facebook

PHPで大きいファイルのダウンロード

音楽配信システムでオーディオだけでなく動画ファイルのダウンロードに対応させようとしたときに、PHPで大きいファイルのダウンロードに対応させないとならなくなりました。
その時に利用した方法を忘れないように書いておこうと思います。

普通にreadfile()で出力させていたら、out of memoryエラーになってしましたが、下記の通りに修正したら無事にファイルのダウンロードが出来るようになりました。


$filePath = 'ファイルのパス';
ob_end_clean();
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="ファイル名"');
header('Content-Length: '.filesize($filePath));
readfile($filePath);
exit;

出力前にob_end_clean()を記述してアウトプットバッファのレベルを0にしてやれば、fread()を使用して少しずつ出力したりしなくても大丈夫っぽいです。
これだけなので、ダウンロードが必要なコードには忘れないでob_end_clean()を記述するようにしよう。

LINEで送る
このエントリーをはてなブックマークに追加
Share on Facebook