iOSで音声圧縮

 iOSで音声通信なアプリを作ってた時のこと。音声データを生のPCMのまま送るのは、サンプリングレートを落としても大変なデータ量なので、音声圧縮をどうするかという話。

  オープンソースVOIPアプリ/関連ライブラリには音声通信部分はもちろん、いろんな音声圧縮コーデックの実装コードも含まれているので、とても参考になります。色々眺めてみた結果、実装が簡単かつ圧縮率と音声品質的に効果が高そうな G.711 と GSM-FR と ADPCM あたりに目をつけてみました。参考にしたのはsipdroidとかpjsipとかlinphoneとかsnapdspとか。中でもsnapdspは色んなコーデックをCで実装してくれているので読みやすいです。

 snapdspのコードはここからダウンロードできます。

 http://www.soft-switch.org/downloads/

 

 最終的にはGSM-FRのコーデックの部分だけiOSアプリとVC++に移植しました。音声通信のデータ量がPCMの1/8以下になって、満足。

 

基礎からわかるTCP/IP SIPによるVoIPプログラミング―Linux対応

基礎からわかるTCP/IP SIPによるVoIPプログラミング―Linux対応

monotronをWX5で吹いてみた

ずいぶん間が開きましたがなんとか形になりました。

基本の構成は前記事と変わらず、WX5MIDI入力をMaxでGATEとPitch, VCF CutOffのCV値に変換して → Arduino → monotron と繋いでいます。
monotronのラインアウトをMaxに戻しての音量コントロールも追加。


今週のNT名古屋4にも持っていく予定なので、ケースもそれっぽく作成。

というわけで吹いてみた

渡りの詩 (麻枝准)

Download
http://dl.dropbox.com/u/33321517/watarinouta.mp3

ブレス量に対する音量とVCFのカーブの調整に気を遣っただけあって、吹奏感はそこそこ良い感じです。ES2ほど素直なレスポンスではないので吹くのがちょっと難しいですが…


KORG コルグ 手の平サイズ アナログ・シンセサイザー monotron

KORG コルグ 手の平サイズ アナログ・シンセサイザー monotron


YAMAHA ウインドMIDIコントローラ [WX5]

YAMAHA ウインドMIDIコントローラ [WX5]

monotronをウィンドシンセ用音源に改造する

4,000円ちょっとで買えるKORGの手のひらサイズ・アナログシンセ monotronをウィンドシンセ(WX5)で吹けると楽しそうってことで、改造してみました。

KORG コルグ 手の平サイズ アナログ・シンセサイザー monotron

KORG コルグ 手の平サイズ アナログ・シンセサイザー monotron

購入 → しばらく遊んで即分解。


monotronをCV制御するための改造については、既に詳しい情報を公開して下さっている方々がいらっしゃるので、真似させてもらいます。

monotronの改造とMaxパッチ作成

今回、monotronをMIDI改造するのではなく、後々の拡張のためウィンドシンセ(WX5)からのMIDI入力をMaxで加工してArduinoに送り、VCOのPitchとVCFのCutoffをコントロールすることにしました。

予想以上の吹奏感

Gate、Pitch(7オクターブ)、Cutoffのみの制御ですが、とりあえずWX5で吹けるようになったのでちょっと録音。(monotronのライン出力からの生音)
Download
http://dl.dropbox.com/u/33321517/monotron.mp3



SNが悪い、Gateのon/offでプチっと鳴る、VCAがそもそも付いていないので、現状はブレスで音量コントロールができないのが物足りないところですが、吹奏感は予想以上に良かったです。


CV制御で使用したMCP4822は12bit DACですが、7オクターブのPitchコントロールで特に違和感は感じません。WX5のリップセンサが吐くピッチベンド情報は、そもそも6bit分くらいの分解能しか無いので、ノートナンバーとあわせても12bitあればちょうど良いのかもしれません。


WX5用にアナログシンセを買うとなると、たぶん少なくとも$400以上は出さないといけないところを、monotronでこれだけできれば上等?
ただこのままではダイナミクスレンジが狭くて窮屈なので、引き続き拡張していきます。


達人と作る アナログシンセサイザー自作入門

達人と作る アナログシンセサイザー自作入門

iPadにUSB MIDI I/Fを繋ぐ

iOS 4.2.1のiPadにCamera Connection Kitを使って、

の2つのUSB MIDI I/Fを買ってきて繋いでみた実験結果。


MIDI Monitorと、自作アプリで動作確認。


M-AUDIO Uno

Unoは最初は認識して使えるが、アプリ側で一回でも接続した後にケーブルを抜くと、再度繋いでも反応せず。


Core MIDIのMIDINotification等はちゃんと飛んでくるし、デバイス名も取得できるのに、再接続した後MIDISendしても反応がない。かといってエラーにもならない。そうなると、MIDIを使用する全てのアプリをDockから完全に終了させてケーブルを再接続しないと正常動作しなかった。たぶんUno側の問題かなー。

ALESIS USB-MIDI Cable

USB-MIDI Cableはいまのところ特の問題なく、アプリ実行中に抜き差ししても正常動作。



というわけで、標準のドライバで動作するI/Fでもやっぱりメーカ/製品によって挙動が違う部分もあるらしい。

参考 : iPadで動作確認されたMIDI /I/Fのリスト
http://iosmidi.com/devices/

ouiLead for iPad Demo Video 1

ver 1.0.1


iPhone版 ouiLeadを、iPad向けに移植したもので1曲。
4poly化 & 大画面化に伴ない、iPhoneではほぼ人差し指一本で演奏していたのに対し、ずいぶん弾きやすくなりました。


曲によっては鍵盤1段(2オクターブ)で足りてしまうことが多いので、上下で別の音色を設定するとか、装飾音などのために別の用途に使うとどうなるかなと考え中。

ouiLead for iPad


Category: Music
Released: 2010/06/01
Version: 1.0.1 (2010/06/11)

Download

Description

ouiLead is a simple polyphonic FM synthesizer.
ouiLeadはシンプルなポリフォニック・FMシンセサイザーです。


タッチパネル上で連続的に指をすべらせる、あるいは揺することでいくつかの音色効果を提供します。

プレーヤは指の位置を繊細にコントロールすることで、多彩なアーティキュレーションで演奏することができます。

(柔らかい音色/明るい音色, クレッシェンド/ディミヌエンド, グリッサンド, 装飾音)


Screenshot

Features
  • 22 instruments
  • Up to 4 notes can sound at the same time
  • Low-pass filter, pitch bend and volume control with a finger
  • Velocity controlled attack time and portamento time
  • Various keys and scales (e.g. Chromatic, Pentatonic, Blues)
  • 21種類の音色
  • 最大4音まで同時発音
  • タッチ位置によるLow-passフィルタ、音程、音量のコントロール
  • 発音時のタッチ位置によるアタックタイム、ポルタメントタイムのコントロール
  • 音域とスケールの設定が可能(クロマチック, ペンタトニック, ブルース等)
Requirements

Compatible with iPad
Requires iPhone 3.2 or later

Contact us

ouiLeadに対するご意見、問題の報告などはこちらにお願い致します。
ouipanda27@gmail.com
twitter : @ouipanda

その他

Demo Video 1

Trilian専用キーボード?

Omnisphereというシンセについて調べていたところ、おもしろいキーボードを発見。
この動画の4分半ぐらいからのところ


ショルダーキーボードとしても使えるし、エンドピン(?)をつけるとバスのようにも弾けるらしい。
Omnisphereも良い音するけど、Trilianも弾いてて楽しそうなシンセ。(OmnisphereとTrilianは同じメーカーのシンセ)
このキーボードはTrilianを弾くために作られたと言ってもいいくらい相性よさそうな気がするけど、どうなんやろ? 詳細不明。


こっちでもベース弾いてる


同じ人が弾くOmnisphereもかっこいい。Omnisphereは鍵盤で弾くとすごい気持ちよさそうやけど、鍵盤以外のコントローラで演奏するとどんな感じになるんかなー


SPECTRASONICS Omnisphere

SPECTRASONICS Omnisphere


Trilian

Trilian