ビットレートの神話 – LadioCast開発記その45

in LadioCast
ビットレートで音質が改善できるのはエンコードする前の音質が良好な場合のみ 周波数スペクトラムを表示させているが高周波数の領域がすっぱり無くなっていることがある

iPhone/iPod Touch用ねとらじプレイヤーの実装について

in Ladiopa
DSCN0275.JPG DSCN0276.JPG

はじめに。このエントリーはソフトウェアのリリースでも、リリースの予告でもありません。 単に技術的な話題を書いたものです、と念のため思いっ切りことわっておきます。

iPhone SDKでソフトウェアを開発する場合の実際を経験するために、題材としてそのサービスを比較的よく知っているlivedoorねとらじを選びました。 目標は「iPhone/iPod Touchでねとらじ番組表を表示し、放送を再生し、関連URLをWeb表示できること」です。ソフトウェアとしての完成度は二の次三の次、まがりなりにも動作する最低限のものとしました。

足かけ5月からのぐだぐだした試行錯誤の結果、一応その最低限の目標は達成できました。しかしここから、誰でも使えるようソフトウェアの完成度を上げ、さらにAppStoreに登録してダウンロード可能にするまでにはかなりの距離を感じ、ソフトウェアが日の目を見ない可能性が大きくなりましたので^^;、区切りをつける意味でエントリーを書くことにしました。 本来ならここでハマったポイントなどを詳しく書いて開発者の方に情報を提供したいのですが、iPhone SDKについてはAppleが包括的な秘密保持契約(NDA)をかけてしまっており、ブログの類ではほぼ一切詳細を書くことができません。ですので以下の基本的な内容と、写真だけになってしまうことを許して下さい。なお私はiPhoneを未だ持っていませんので、実機としてはiPod Touchでのみのテストです。

  • Appleから提供されるiPhone SDKに関する情報はほぼ英語のみ、よって技術英語程度が読めることは大前提となる。 Objective-C、Xcode、Cocoaフレームワークを経験していれば問題無く始められるが、この際に覚えるでも可。
  • iPhoneシミュレーター環境では使用できるフレームワークやクラスが、実機環境では使用できないケースが多々ある。確認はビルドをシミュレーター向けから実機向けに変更して行うことなどで判かる。
  • ソフトウェアから外部プログラムを起動することが許されていないので、プレイヤーが必要なら実装することになる。これは別途ライブラリ等を導入しなくともCoreAudioフレームワークを組み合わせれば最低限のものは実装できる。

個人でも会社でも有償でも無償でも、ぜひ日本からラジオネタでAppStoreまで行ってくれることを望みます^^。

7 Responses to “iPhone/iPod Touch用ねとらじプレイヤーの実装について”

  1. 岩石巌エコなっち

    すばらしいです! そして、見事に先を越されました!
    さすがですねぇ〜
    NDA の条件ってクローズドの ML での話し合いでもだめのようですが、完全に個人的にかわうそさんを広島に招聘して根掘り葉掘りハマったポイントなどを詳しく聞き出すというのでもだめなのでしょうかねえ。

  2. かわうそ

    岩石巌エコなっちさんこんにちは!
    広島、久しぶりに行ってみたいですね〜^^; 前に行ったのは確か・・・。
    セキュリティーのためなんでしょうがこのNDAはほんとにやっかいです。
    NDAを満たしつつ手軽に情報共有できる方法があるといいですね。
    まあでも今私の知り得たレベルならどんな方法でも訊かれればごにょごにょごにょ^^。

  3. 岩石巌エコなっち

    本当に不便な規約ですねぇ。
    ちなみにごにょごにょするためにどのような方法で訊けばよいのでしょうか。広島招聘計画はうまくいけばちゃんと招聘できますので是非ともよろしくお願いしたいところであります。
    前に広島に来られたのは何のときだったのでしょう・・・。

  4. かわうそ

    広島マジ話でしたか!いや〜ほんとそういう系の柄じゃないですから^^;。NDA事情口頭でも同じじゃないかな〜。
    この前というのはぶっちゃけXX年前で、いろんな型の路面電車に乗りまくったことを覚えています。
    お訊ねいただくのはメール(blog@kawauso.com)でもなんでも。でも岩石巌エコなっちさんならMac OS Xの素養充分ですからiPhone OS詰まることはあまり無いと予想します。この記事はゴール自体が存在することを示したものというか。
    ではでは〜。

  5. はじめまして!
    iPhoneのユーザーです。
    鹿児島ではきちんときけてましたが、
    東京ではぶちぶち切れてしまいます。
    対処法はないでしょうか?

  6. かわうそ

    kanさんこんにちは!
    インターネット接続が不安定なのかなと思います。
    東京の方が建物が多いとか電波がたくさん飛んでいるとかあるかもしれませんね。
    残念ながら安定させる方の知識があまり無いので別途調べてみてください。


これはのびる

in Uncategorized
DSCN0197.jpg

困ったときの、スーパーで見つけた変った野菜ネタ。 のびるって!

生で味噌をつけて食べたら結構いけました、それで良かったんだろうか?


ネタ凸にも使える「Macでねとらじ(拡張編)」情報 – LadioCast開発記その32

in LadioCast

AkicksさんのページAkicks Antenna – Macでねとらじ(拡張編)、Macでの放送方法を極めてる感がありますね^^。 SkypeとSoundflowerをからめたサウンド回りの方法というのはDJをやるときに役に立ち、さらにネタ凸するときにもほとんどそのまま使えたりすると思います。 Macは設定に少し苦労する分、応用の見通しの良さで報われるところですね。

2 Responses to “ネタ凸にも使える「Macでねとらじ(拡張編)」情報 – LadioCast開発記その32”

  1. Akicks

    ご紹介いただきありがとうございます!!
    以前、「俺もDJやってみたいけどMacはWinみたいにSEつかえないからなぁ」と
    言ってた人も見かけたりしました。こういう情報が出回って、
    Macだってこれだけできるんだぜ!ってのを見せつけてやりたいですね!

  2. かわうそ

    そうですね〜。ねとらじ本体Macコンテンツとか放置なんでユーザで主導権取っちゃいましょう。


バージョン0.7.1リリース – LadioCast開発記その31

in LadioCast

LadioCastバージョン0.7.1をリリースします。

0.7.0から0.7.1への変更点は以下のとおりです。

  • ネットワーク通信回復処理のバグを修正
  • 説明フィールドの値としてジャンルの値を送信していたバグを修正

基本、バグフィックスのみです。ReadMeに説明のため0.7のミキサーのダイアグラムを描いて入れました。こちらにも載せます。
mixer_diagram.png

4 Responses to “バージョン0.7.1リリース – LadioCast開発記その31”

  1. Scatman

    Scatmanです。いつもバージョンアップを楽しみにしています。
    ところでちょっと気づいたのですが、バージョン0.7.1をテストしようとしてふと気づいた事があります。
    私の環境では、出力を選択するプルダウンが「内蔵オーディオ」「Soundflower(2ch)」「Soundflower(16ch)」となっておりますが、初期設定を捨てて、バージョン0.7.1を立ち上げたときに出力選択のデフォルトで「内蔵オーディオ」が表示されますが、なぜか「内蔵オーディオ」が選択できない様になっていて(灰色表示。しかし、この状態で音のモニターはとりあえずできています)、別の出力選択に切り替えてしまうと、もう「内蔵オーディオ」の選択は出来なくなります。
    初期設定を捨てないともとに戻りません。しかも、以前は「内蔵オーディオ」を選択できていたバージョン0.6.2でもその症状が出て来てしまっています。しかし、入力1,2,3の「内蔵オーディオ」は選択できます。
    出力選択の「内蔵オーディオ」は放送しながらモニターできるため、大変重宝しておりますが、それが選択出来なく無くなってしまったのには、何か原因があるのでしょうか?
    機種はiBook G4、CPU: PPC 1.33GHz、Memory:1GB、OSは10.4.11です。
    こちらに原因があるかどうか判断しかねますので、よろしくお願い致します。

  2. かわうそ

    Scatmanこんばんは!
    デバイス選択可不可の仕様は0.7で変ってませんので、再起動して再現性があるかどうか試してみて下さい。LadioCastがコンソールログに何か書いていればそれを貼って下さい。
    (仕様的には設定ファイルが無い際の出力Mainのデバイスは、Macの出力デバイスと同じものになります)

  3. Scatman

    Scatmanです。
    ありがとうございます。
    バージョン0.7.1についての話ですが、先日書き込み致しました出力の「内蔵オーディオ」の選択不可の件は、
    あの後いろいろやっているうちにもしやと思い、[Audio MIDI 設定]にて、オーディオ入/出力設定のマスターストリームのフォーマット設定がなぜか32KHzの設定となっていましたので、それを44.1KHzに設定の上、LadioCastを立ち上げると元通り「内蔵オーディオ」を選択する事が出来ました。この件に関しては慌てていた事もありお騒がせした事をお詫び致します。
    しかし、一度、出力設定を「内蔵オーディオ」から一度「Soundflower(2ch/16ch)」に切り替え、再度「内蔵オーディオ」に切り替えても音は出力されます。私のiBookはUSBより外部の音を取り込むアダプタをつけており、そのアダプタをつけていないときはそこは「機器セット」という名前になります。出力設定を「内蔵オーディオ」から「機器セット」に設定すると音が出ますが、「機器セット」から「内蔵オーディオ」に切り替えると音が出力されません。一度それをやると「機器セット」でしか音が出なくなります。
    「機器セット」>「内蔵オーディオ」切り替え時のコンソールログは以下の通りになります。このログが出力され続けて切り替わらず、音が出ません。
    2008-02-03 22:30:46 ERROR[LCAudioBuffer.m 32] audio buffer exhausted, writing size = 2048, stored size = 0
    2008-02-03 22:30:46 ERROR[LCAudioBuffer.m 32] audio buffer exhausted, writing size = 2048, stored size = 0
    2008-02-03 22:30:46 ERROR[LCAudioBuffer.m 32] audio buffer exhausted, writing size = 2048, stored size = 0
    2008-02-03 22:30:46 ERROR[LCAudioBuffer.m 32] audio buffer exhausted, writing size = 2048, stored size = 0
    2008-02-03 22:30:46 ERROR[LCAudioBuffer.m 32] audio buffer exhausted, writing size = 2048, stored size = 0
    2008-02-03 22:30:46 ERROR[LCAudioBuffer.m 32] audio buffer exhausted, writing size = 2048, stored size = 0
    2008-02-03 22:30:46 ERROR[LCAudioBuffer.m 32] audio buffer exhausted, writing size = 2048, stored size = 0
    2008-02-03 22:30:46 ERROR[LCAudioBuffer.m 32] audio buffer exhausted, writing size = 2048, stored size = 0
    LadioCastを再度立ち上げ、出力の設定が「機器セット」の状態から「内蔵オーディオ」に切り替えてた場合は音が出ますが、そこから「機器セット」の設定にして再度「内蔵オーディオ」の設定にするとやはり音が出なくなります。
    その他は特別に変だと言う事は今の所ありませんでした。
    ボタンでのソースの切り替えは以外と重宝しています。
    今後の更なるバージョンアップを期待しています。

  4. かわうそ

    LadioCastの出力デバイスはサンプリング周波数44.1kHzを持つものからの選択になりますね。ただし前設定の当該デバイス自体が生きていれば、今はHzにかかわらず優先して設定されます。これが1度離したら選べない等の動作の理由かと思います。
    出力サンプリング周波数が変っていた場合、音声系はたぶんいけますがエンコーディング系がそれに追随しないので放送はうまくいかないんじゃないかな〜と予想です。

Leave a Reply to Scatman

Click here to cancel reply.

*