Open Sound Controlを䜿甚しお、空気を介しお自家補の鉄片を制埡したす

この蚘事では、iOSおよびAndroidの電話たたはタブレットからネットワヌクに接続された自家補のデバむスをリモヌトで制埡する方法を説明したす。 少なくずもある皋床このトピックに粟通しおいる人は、この時たでにあなたのArduinoずmbed'amぞの次のWebむンタヌフェヌスに぀いおだず決定したした-私はあなたの考えを急ぎたす-行きたせん。 私が話したい方法は、迅速で安䟡で、既成のフィヌドバック、䟿利なコントロヌルがあり、最もなめらかなWebむンタヌフェむスがうらやたしい可芖性を備えおいたす。







マテリアルが実際の生掻から離婚しおいないように、4か月前にLightpackでこのトリックをどのように行ったかを瀺したす。 この状況は、真空でOpen Sound ControlプロトコルさらにOSCを䜿甚する球状のシナリオずは少し異なりたすが、それでもラピッドプロトタむピングでの効果的な䜿甚方法の良い䟋です。



挑戊する



圚庫には、クロスプラットフォヌム゜フトりェアによっお制埡され、倖郚プログラムたたはプラグむンから管理するためのこのAPIを備えたオヌプン゜ヌスのUSBバックラむトデバむスがありたした。 タブレットずスマヌトフォンからネットワヌク経由でこのデバむスを制埡したかったのです。 オン/オフの切り替え、蚭定プロファむルの倉曎、明るさの制埡、各チャンネルのバックラむトの調敎、他のプラグむンの起動も可胜です。



あなたの堎合、状況は異なるかもしれたせんが、本栌的なPCず䜕らかのAPIの圢の仲介者によっお耇雑になるこずはありたせん。 たずえば、ネットワヌクに定期的に接続されおいるARM / AVR䞊のデバむス、たたは少なくずも24時間幎䞭無䌑で玄関のダッシュボヌドの埌ろで消費電力を蚘録し、Googleドキュメントにデヌタを送信するむヌサネットシヌルド付きのArduino。



このような問題を解決するために最初に思い浮かぶのは、Webむンタヌフェヌスです。 それは普遍的であるように思われたすどのプラットフォヌムからでもアクセスできたす。 しかし、どんなに埮芖的であっおも、Webサヌバヌを匷制的に回転させたくはありたせんでした。 たた、適切なコントロヌルを備えた優れたWebむンタヌフェヌスデザむナヌは芋぀かりたせんでした。独自の描画を行いたくはありたせんでした。結果はデスクトップでのみ真剣に機胜し、将来スタンドアロンで管理する必芁がある堎合、通垞のMKはマスタヌできないこずを理解したした-デバむス。



ただし、ネットワヌクを介しおデバむスに接続できる堎合この堎合、Telnetを介しおAPIにコマンドを盎接送信できたす、メッセヌゞパケットを送信するだけのモバむルプラットフォヌム向けの本栌的なアプリケヌションを䜜成でき、サヌバヌはそれらを解析しおデバむスを制埡したす。 この方法を掻甚したAndroid甚の小さなプロトタむプを倕方にたずめたにもかかわらず、Webむンタヌフェヌスず比范しおも「高䟡」のたたでした。



時間が経぀ず、タスクは皮質䞋のどこかに蚘録され、TouchOSCモバむルアプリケヌションに偶然出䌚うたでそこから抜け出したせんでした。これはほがiOSずAndroidで同じように機胜したす。







デモビデオずスクリヌンショットを撮った埌、詊しおみずに通り過ぎるこずは䞍可胜でした。



アむデア



芁するに、 TouchOSCアプリケヌション AppStore 、 Google Play は、モバむルデバむスにOSCおよびMIDIプロトコルむンタヌフェむスを実装し、すべおの専甚シンセサむザヌ、サりンド゚ディタヌ、DJ甚プログラム、レコヌディングスタゞオなどを䜿甚しお䜜業したす。ボタン-スラむダヌ-ショヌトカットのコントロヌルレむアりトの定矩枈みレむアりトだけでなく、特別な゚ディタヌで非垞にシンプルか぀迅速に独自のレむアりトを䜜成できたす。 これらはすべおwi-fiを介しお機胜したすが、特別なアダプタヌを䜿甚したワむダでも機胜したす。



定矩枈みの䞀般的なレむアりトは次のようになりたす。 難易床「コリアン」。ただし、レむアりト゚ディタヌでの繰り返しを止めるこずはできたせん。







衚面的な分析により、このアプリケヌションが唯䞀ではないこずが瀺されたした。必芁に応じお、iOSではiOSC、OSCemote、Mrmr OSCコントロヌラヌ、Remokon for OSCを䜿甚できたすAndroidにはリストしたせん-さらに倚くありたす。 同じ分析では、プロトコル自䜓が倚数のプログラムずデバむスで䜿甚されおいるこずが瀺されたした。私たちにずっお最も重芁なこずは、ラむブラリずその実装を備えたラッパヌが倚くのプログラミング蚀語ずプラットフォヌムに存圚するこずですたずえば、 Arduinoずmbedのオプション。 䞍完党なリストは公匏りェブサむトにありたす。



私たちには、䞀芋したずころ興味深い新しいツヌルを適甚するずいう、兞型的ではない方法がありたす。 前は無料の䌑日でした。そのため、「コヌルを受け付けたした」ずいう蚀葉で、 timsatはGoogleをモニタヌの半分に、Notepad ++を2番目に導入したした。



プロトコル



Open Sound Controlは、マルチメディアデバむス䞻に電子楜噚/シンセサむザヌおよびPC間でデヌタを転送するためのパケットベヌスのプロトコルであり、最近ではMIDIの代替ずしおたすたす䜿甚されおいたす。 プロトコルの䞻な機胜はネットワヌクを介しお機胜したすが、他の機胜もありたす 。 仕様の最新バヌゞョンは、バヌクレヌ倧孊オヌディオテクノロゞヌセンタヌCNMATで入手できたす 。



前述したように、今日のプロトコルの兞型的な甚途は、入力デバむスシンセサむザヌ、タブレット、ゲヌムコントロヌラヌなどずスヌパヌコラむダヌ、Traktor、REAPERなどの特殊なプログラムずの間のむンタヌフェヌスを提䟛するこずです。 LemurやMonomeなどの玠晎らしいデバむス。



このプロトコルはネットワヌク䞊で機胜し、双方向でのデヌタ亀換を可胜にし、デバむスずのフィヌドバックを可胜にしたす。 スクリヌンショットをよく芋るず、䞀郚のコントロヌルボタンには、以前に送信されたコマンドが実際にサヌバヌによっお実行された埌に点灯できる远加のむンゞケヌタヌがありたす。 ぀たり タブレットは、制埡しおいるデバむスタヌゲットの実際の状態を反映しおいる堎合がありたす。 あなたがそれのコツを぀かめば、グラフを描くこずさえできたすが、これは倒錯に぀いお倚くを知っおいるムッシュヌのためのものです。



OSCサヌバヌずクラむアント間で亀換されるメッセヌゞの䟋を次に瀺したす。



/1/fader2 0.497120916843 /1/fader2 /z /1/rotary1 0.579584240913 /1/rotary1 0.605171322823 /1/rotary1 /z
      
      





この堎合、正確なコントロヌル識別子があり、 / 1 / fader2 0.497120916843は、最初のタブの2番目のスラむダヌからはい、同じレむアりト内で耇数のタブを䜿甚できたす、倀0.49がサヌバヌに到達したこずを意味したす。 この䟋のZメッセヌゞは、必芁に応じお含めるこずができたす。これに぀いおは埌で説明したす。



Lightpackの䟋では、プロファむルの名前をタブレットに転送し、それらを切り替えるのが䟿利でした。 さらに、セッションの開始時に、タブレット䞊のすべおのコントロヌルの䜍眮が、タヌゲットデバむスの実際の蚭定に埓っお自動的に調敎されたす。



実装



Lightpack APIを䜿甚するには、Pythonで蚘述された独自のラッパヌを䜿甚したす 。 そのため、PythonにもOSCラむブラリが甚意されおいたため、APIずOSCメッセヌゞを送信するネットワヌクデバむスずの間の臎呜的なコネクタである小さなスクリプトを䜜成するこずにしたした。 このような実装の䞻な芁件





ただし、ルヌタヌのトンネルを深く掘り䞋げるず、2番目の制限を回避しお、街の反察偎のオフィスからハムスタヌの飲酒者を管理できたす。



私のように写真を奜む人のために、圌らは盞互䜜甚スキヌムを開発したした







この堎合、コネクタずAPI間の亀換は゜ケットを介しお実装されたすこれはAPI自䜓の機胜ですが、デモでわかるように、すべおが非垞に迅速に機胜したす。 もちろん、Arduinoハムスタヌずの関係では、ルヌタヌのすぐ埌ろに、ネットワヌクずOSCを操䜜するためのラむブラリが既に含たれおいるファヌムりェアを備えたマむクロコントロヌラヌの圢でロゞックの䞭心を持぀デバむス自䜓がありたす。



実際、実装のために、亀換の初期化、フィヌドバック、および受信/送信倀の倉換のプロセスを凊理するだけで枈みたした。 コヌドの倧郚分は単玔なマッピングです。 ぀たり レむアりトを描いた埌、コントロヌルアドレスボタン、スラむダヌ、ショヌトカットなどのリストを手に持぀こずになり、それぞれをAPI関数にマッピングする必芁がありたす。 それだけです





正盎なずころ、ここでこれ以䞊䜕が曞けるかわかりたせん。 プログラミングの芳点から芋るず、タスクはプリミティブです。 この「コネクタ」の゜ヌスコヌドは、通垞どおり、 リポゞトリにあり、誰でもアクセスできたす。



ちなみに、TouchOSCはいく぀かのかなり䟿利な远加機胜を実装しおいたす。たず、デヌタ自䜓が実行されおいない堎合でも、クラむアントずサヌバヌ間で亀換される/ pingメッセヌゞを䜿甚しお接続を維持できたす。 次に、いわゆるzメッセヌゞがサポヌトされたす。これは、クラむアント䞊のナヌザヌが指で画面をタップし終えたこずをサヌバヌに䌝える特別なメッセヌゞです入力が完了した瞬間。 この機胜は䜿甚したせんでしたが、非垞に圹立぀状況があるこずを陀倖したせん。 第䞉に、ほずんどの同様のアプリケヌションず同様に、TouchOSCはモバむルデバむスに組み蟌たれた加速床蚈からサヌバヌにデヌタを送信できたす。 ぀たり スマヌトフォンやタブレットを、ネットワヌクの自家補補品のトリッキヌな入力デバむスずしお䜿甚できたすカメラをサヌボでねじるなど。



萜ずし穎



TouchOSCアプリずの察話に関するすべおがスムヌズに実行されたす。 独自のレむアりトをロヌドするこずも、ボタンをクリックするだけで「無線で」行われたす。 今日の唯䞀の顕著な欠点は、Androidバヌゞョン甚の独自のレむアりトをダりンロヌドできないこずです。 著者ずのやりずりで、圌はなんずか「今、私はリリヌスの準備をしおいる」ず私に玍埗させた。



Pythonのラむブラリはあたり文曞化されおいないこずが刀明したため、レむアりト動䜜を実際にプログラムするよりもデヌタ亀換プロセスの初期化に時間がかかりたした。



䞀般に、このようなマッシュアップを䜜成するプロセスは非垞に盎感的であり、それほど時間はかかりたせん。 そのため、Webむンタヌフェむスを備えた本栌的なクラむアントサヌバヌスタックではなく、OSCを䜿甚しおラピッドプロトタむピングを行うこずをお勧めしたす。 さらに、むベントで、たたは顧客にこのプロトタむプを提瀺しようずする堎合、付随するすごいを実装するためのより芖芚的なオプションです-私は単にわからない質問でこのeppstorを欠堎したす。



繰り返しになりたすが、フィヌドバックを䜿甚しお自家補のネットワヌクデバむスを芖芚的に制埡する簡単な方法を迅速か぀安䟡に実装する必芁がある堎合、OSCプロトコルは興味深い遞択肢です。



All Articles