2009年12月29日火曜日



f:id:bs-android:20090215001008p:image


2010/02/19にスイートバレーから拡がるITとものづくりネットワーク様と財団法人ソフトピアジャパン様主催の組込みソフトウェア技術動向セミナーに登壇することになりました。


詳しい内容は以下の通りです。






日時


2009/02/19(金) 13:30~16:40 (受付開始13:15~)





会場



大きな地図で見る


岐阜県大垣市加賀野4丁目1番地7


ソフトピアジャパンセンタービル 11階 中会議室3





主催


スイートバレーから拡がるITとものづくりネットワーク様、財団法人ソフトピアジャパン様





内容


「戦略的再利用『プロダクトライン』 ~その本質とは何か~」

講師:山崎 進 氏(北九州市立大学 国際環境工学部 情報メディア工学科 講師)


概要:プロダクトラインに関する素朴な疑問「プロダクトラインとは何か」「今までと何が違うのか」に学の立場からお答えします。次に、プロダクトラインを成功させる4つの鍵とプロダクトラインの全体像であるBAPOモデル、いくつかの重要な技術要素を紹介します。最後に、最も重要なポイントであるビジネス戦略との関わりについて方向性を示します。





「Androidのポテンシャルを引き出す ~Androidの波に乗り遅れないための基本知識~」

講師:近藤 昭雄((株)ブリリアントサービス 技術部 研究開発課 Android担当リーダー  / 日本Androidの会 組み込みWGリーダー)


概要:Androidの概要の解説と、そのポテンシャルによってどんなことができるようになるのかを解説します。また、Androidが拓く未開のフロンティアに旗印を立て、先行者利益を得るにはどうすればよいかのヒントを提供します。





対象者


スイートバレーから拡がるITとものづくりネットワーク会員、本テーマに関心がある企業など、広く一般の方





定員


40名(先着順・事前申込が必要です)





参加費


無料





申し込み


こちらのページからお申し込みください。


http://it-mono.jp/news/20100219.html






お近くの方は是非ご参加ください。





2010/02/19の組込みソフトウェア技術動向セミナーに登壇します



f:id:bs-android:20090215001008p:image


2010/02/19にスイートバレーから拡がるITとものづくりネットワーク様と財団法人ソフトピアジャパン様主催の組込みソフトウェア技術動向セミナーに登壇することになりました。


詳しい内容は以下の通りです。






日時


2009/02/19(金) 13:30~16:40 (受付開始13:15~)





会場



大きな地図で見る


岐阜県大垣市加賀野4丁目1番地7


ソフトピアジャパンセンタービル 11階 中会議室3





主催


スイートバレーから拡がるITとものづくりネットワーク様、財団法人ソフトピアジャパン様





内容


「戦略的再利用『プロダクトライン』 ~その本質とは何か~」

講師:山崎 進 氏(北九州市立大学 国際環境工学部 情報メディア工学科 講師)


概要:プロダクトラインに関する素朴な疑問「プロダクトラインとは何か」「今までと何が違うのか」に学の立場からお答えします。次に、プロダクトラインを成功させる4つの鍵とプロダクトラインの全体像であるBAPOモデル、いくつかの重要な技術要素を紹介します。最後に、最も重要なポイントであるビジネス戦略との関わりについて方向性を示します。





「Androidのポテンシャルを引き出す ~Androidの波に乗り遅れないための基本知識~」

講師:近藤 昭雄((株)ブリリアントサービス 技術部 研究開発課 Android担当リーダー  / 日本Androidの会 組み込みWGリーダー)


概要:Androidの概要の解説と、そのポテンシャルによってどんなことができるようになるのかを解説します。また、Androidが拓く未開のフロンティアに旗印を立て、先行者利益を得るにはどうすればよいかのヒントを提供します。





対象者


スイートバレーから拡がるITとものづくりネットワーク会員、本テーマに関心がある企業など、広く一般の方





定員


40名(先着順・事前申込が必要です)





参加費


無料





申し込み


こちらのページからお申し込みください。


http://it-mono.jp/news/20100219.html






お近くの方は是非ご参加ください。





2009年12月23日水曜日



f:id:bs-android:20091119161132p:image


先日クライアントソースコード・WebAPIを公開しましたUki2Serverですが、「まずデバッグできる環境を作成して動作・実装を把握しつつ改良・リビルドしてみたい!」という方の為に簡単ではありますがEclipseでの環境構築の仕方を以下に記述致しました。


また、今後不定期ではありますが、ソースコードについての解説も掲載していく予定です。


実施環境


MacOSX 10.6.2


Eclipse3.5


AndroidSDK for MacOSX 2009/12/21 時点


ADT0.9.5


※尚、Eclipseを用いAndroidアプリ開発が可能な環境を構築済みである前提で記述してあります。


ソースコードの取得


・ターミナルウィンドウ(コマンドプロンプト)から下記のように入力しソースコードを取得します。


「trunk」下にディレクトリが「UkiukiView」「OpenAR」の2つが作成されることになります。



mkdir ~/UkiukiView
cd ~/UkiukiView
svn checkout http://open-ar.googlecode.com/svn/trunk/





「OpenAR」プロジェクトの作成


・Eclipseを起動し、"新規Javaプロジェクトの作成"で"外部ソースからプロジェクトを作成"「OpenAR」のディレクトリを指定します。


f:id:bs-android:20091223020921p:image





・"次へ"を押下し"ライブラリ"タブで"外部JARの追加"からAndroidSDK環境下にある"android.jar"と"maps.jar"を追加します。


この時にJREライブラリは除去します。


f:id:bs-android:20091223020922p:image





「UkiukiView」プロジェクトの作成


・"新規Androidプロジェクトの作成"で"外部ソースからプロジェクトを作成"「UkiukiView」のディレクトリを指定し完了を押下します。


f:id:bs-android:20091223020923p:image





・"パッケージ・エクスプローラ"の「UkiukiView」で右クリックから"プロパティー""Javaのビルドパス"と選択します。


f:id:bs-android:20091223020924p:image


・"ライブラリ"タブで"JARの追加"から「OpenAR」内にある"j_scalc.jar"と"OpenAR.jar"を追加します。


f:id:bs-android:20091223020925p:imagef:id:bs-android:20091223020926p:image


・"プロジェクト"タブで「OpenAR」を追加します。


f:id:bs-android:20091223020928p:image


・最後に"GoogleMapsAPIキー"を開発環境に合わせて、"Uki2ServerAPIキー"を開発者毎に書き換えます。


いずれも取得にはGoogleアカウントが必要となります。


下記ファイル中に"replace your api key"の文字列がありますので取得したAPIキーへ置換してください。


GoogleMapsAPIキー:"res/layout/frame.xml"


Uki2ServerAPIキー:"src/Uki2ServerApi.java"


Uki2ServerAPIキー取得





オープンソースARクライアント開発環境導入編



f:id:bs-android:20091119161132p:image


先日クライアントソースコード・WebAPIを公開しましたUki2Serverですが、「まずデバッグできる環境を作成して動作・実装を把握しつつ改良・リビルドしてみたい!」という方の為に簡単ではありますがEclipseでの環境構築の仕方を以下に記述致しました。


また、今後不定期ではありますが、ソースコードについての解説も掲載していく予定です。


実施環境


MacOSX 10.6.2


Eclipse3.5


AndroidSDK for MacOSX 2009/12/21 時点


ADT0.9.5


※尚、Eclipseを用いAndroidアプリ開発が可能な環境を構築済みである前提で記述してあります。


ソースコードの取得


・ターミナルウィンドウ(コマンドプロンプト)から下記のように入力しソースコードを取得します。


「trunk」下にディレクトリが「UkiukiView」「OpenAR」の2つが作成されることになります。



mkdir ~/UkiukiView
cd ~/UkiukiView
svn checkout http://open-ar.googlecode.com/svn/trunk/





「OpenAR」プロジェクトの作成


・Eclipseを起動し、"新規Javaプロジェクトの作成"で"外部ソースからプロジェクトを作成"「OpenAR」のディレクトリを指定します。


f:id:bs-android:20091223020921p:image





・"次へ"を押下し"ライブラリ"タブで"外部JARの追加"からAndroidSDK環境下にある"android.jar"と"maps.jar"を追加します。


この時にJREライブラリは除去します。


f:id:bs-android:20091223020922p:image





「UkiukiView」プロジェクトの作成


・"新規Androidプロジェクトの作成"で"外部ソースからプロジェクトを作成"「UkiukiView」のディレクトリを指定し完了を押下します。


f:id:bs-android:20091223020923p:image





・"パッケージ・エクスプローラ"の「UkiukiView」で右クリックから"プロパティー""Javaのビルドパス"と選択します。


f:id:bs-android:20091223020924p:image


・"ライブラリ"タブで"JARの追加"から「OpenAR」内にある"j_scalc.jar"と"OpenAR.jar"を追加します。


f:id:bs-android:20091223020925p:imagef:id:bs-android:20091223020926p:image


・"プロジェクト"タブで「OpenAR」を追加します。


f:id:bs-android:20091223020928p:image


・最後に"GoogleMapsAPIキー"を開発環境に合わせて、"Uki2ServerAPIキー"を開発者毎に書き換えます。


いずれも取得にはGoogleアカウントが必要となります。


下記ファイル中に"replace your api key"の文字列がありますので取得したAPIキーへ置換してください。


GoogleMapsAPIキー:"res/layout/frame.xml"


Uki2ServerAPIキー:"src/Uki2ServerApi.java"


Uki2ServerAPIキー取得





2009年12月15日火曜日



f:id:bs-android:20090616170847j:image


ITサービス様がBeagleBoard上のAndroidでAudioのダウンサンプリング動作を実装してくれましたので、その成果を公開させていただきたいと思います。





1.はじめに


 昨今話題となっているAndroid。既に多くの企業が参入しているなか、我々もキーワードとして注目していました。


そんな中、2009年度の組込み総合技術展に参加し、手作りAndroidケータイを拝見しながら、我々も何かをAndroidで作ってみようということで、Audioのダウンサンプリングを作成する運びになりました。





なぜAudioダウンサンプリングなのかというと・・・・


・BeagleBoard Rev C3 での公開実績はまだ無い


・Androidを作成の中で把握する


・Audio,Videoといったメディアに必要な部分の構造を理解し、カスタマイズできるようになる


といった所が挙げられます。





作成したAudioダウンサンプリング処理について、Android内のAudio入出力の流れを交えながら書いていきたいと思います。





1.1.ダウンサンプリングシステムについて

 BeagleBoardで起動するAndroidを使用し、Audioのサンプリング周波数を1/2にして再生するシステムを作成します。AudioのデバイスドライバにはAlsa Driverを用いることとします。


システム作成において、追加する内容は以下二点です。


・ ダウンサンプリング処理


・ ダウンサンプリング ON / OFFコマンド





1.2使用環境

 今回のダウンサンプリングシステムを導入した環境は以下の通りです。





表1.使用環境一覧











使用環境一覧
メインボードBeagleBoard Rev.C3
Android VerAndroid 1.6(Donut)
Audio DriverALSA
Android Kernel Ver2.6.29(embinuxより取得)
PC環境Ubuntu 8.10




□環境設定


 主にブリリアントサービス様 のRev.C2立ち上げの資料を参考にさせていただきました。ソースコードのVerに合わせ、Androidの初期化設定ファイルである、init.rcの内容を変更しました。





2.既存の音楽再生の流れ


□Android内のAudio処理の流れ


 Android内のAudioの処理に新たな機能を追加する為に、Android上でのAudioの流れを簡略図で表した物が下図です。


 Javaアプリケーション内で、MediaPlayerクラスのメソッドを呼ぶことで、フレームワーク内でいくつかのコマンドが作成されます。


コマンドはOpencore内のキューを用いてスケジューリングされ、実行されます。


Opencore内にてコマンドが実行されることで、Audio データのデコードやAudio再生の処理が起動し、Driver、HardWareへと処理が渡り、音楽が再生されます。


f:id:bs-android:20091214200804j:image:w400


図1.Android Audio処理の流れ図





3.システム作成での変更点


□ダウンサンプリングシステムの作成


 2節で取り上げたAndroid内のAudio処理の流れにおいて、Javaフレームワーク内に「ダウンサンプリング ON / OFF コマンド」を、Android ミドル部分Opencore内に「ダウンサンプリング処理」を追加します。


 2点を追加することで、Audioの1/2倍ダウンサンプリングに成功しています。以下項目にて詳細を説明します。





3.1.ダウンサンプリング ON / OFFコマンドの追加

 AndroidフレームワークのMediaPlayerクラスにダウンサンプリングコマンドを追加します。


 ダウンサンプリングコマンドは、JavaアプリケーションからダウンサンプリングのON/OFFを受け取り、Opencore内部に追加するダウンサンプリングの処理部分まで渡します。


以下に詳細実装方法を記します。





3.1.1.JAVAのソース変更箇所

 フレームワークに追加を行ったため、JAVAアプリケーションもダウンサンプリングコマンドを受け渡す処理を追加する必要があります。


処理を追加したアプリケーションのソースコードは下図のようになります。





f:id:bs-android:20091214201157j:image


図2.JAVAアプリケーションからの追加コマンドの使用方法





コマンドを追加することにより既存の再生関数(start())との変更点は下図のようになります。





f:id:bs-android:20091214201242j:image


図3.既存の再生関数との変更点





3.1.2.ソース変更後の処理シーケンス

 コマンドを追加した後の再生関数の処理シーケンスは下図のようになります。





f:id:bs-android:20091214201322j:image


図4.ソース変更後の処理シーケンス





3.1.3.実装箇所

 ダウンサンプリングコマンドで修正を加えたソースは以下の通りです。





表2. ダウンサンプリング ON / OFFコマンド ソース変更点一覧


f:id:bs-android:20091214201359j:image





3.2.ダウンサンプリング処理の変更点

3.2.1.Opencore内の処理の流れ

 Androidにデフォルトで備わっているMediaPlayerであるOpencoreの処理の流れの概略を下図に記述しました。





f:id:bs-android:20091214201450j:image


f:id:bs-android:20091214202304p:image


図5.Android Audio処理の流れ





今回のダウンサンプリングの処理では、Audioのデコード後データが表面化している、以下関数内で行うことにします。






○FilePath

android_root/external/opencore/android/android_audio_output.cpp

○関数名

AndroidAudioOutput::writeAudioBuffer()






3.2.2.ダウンサンプリング処理と追加内容

 ダウンサンプリングの処理の概念に関しては以下リンクを参考してください。





サンプリング周波数変換





 本システムでは、下記内容で実装します。




○ローパスフィルタ

取得したデコード後のAudioデータについて、4点移動平均を取ることで実装する。ただし、1サンプル量は量子化ビット16bitより、2byteとして扱う。

○間引き

ローパスフィルタを通した後のデータを、1サンプルデータ置きに間引く。ただし本システムでは、Audioデータをステレオ2chデータと考え、1サンプルを L+R の 4byte として扱う。







3.2.3.実装箇所

 追加するダウンサンプリングの処理のフローチャートは下図の通りです。





f:id:bs-android:20091214202419j:image


図6.Android Audio処理の流れ





 これに従い、下記の内容でソースコードの追加変更を行います。


 まず、3.1節にて作成した「 ON / OFF コマンド 」によって作成されるフラグを受け取る部分(getDownSamplFlag関数)を作成します。





f:id:bs-android:20091214202451j:image





 次に、作成したgetSamplFlag関数を使用し、フラグがONであれば現在のサンプリング周波数を1/2倍にします。





f:id:bs-android:20091214202539j:image





 次に、デコード後のAudioデータが表面化した部分にローパスフィルタと間引き処理を挿入します。


ソースコード内「 AudioDownSamplingExec関数 」はダウンサンプリングを行う自作関数です。





f:id:bs-android:20091214202551j:image








 最後に、ダウンサンプリングを行うAudioDownSamplingExec関数を(android_audio_output.cpp)内に記述します。





f:id:bs-android:20091214202614j:image





AudioDownSamplingExec関数内のwhileループ内がローパスフィルタの処理、forループ内が間引き処理に当たります。





4.まとめ


4.1.動作確認済み環境

 作成したシステムの動作確認のために下図のようなテストアプリを作成し、以下表の環境において、動作を確認しました。





f:id:bs-android:20091214202634j:image


図7.アプリケーション実行画面

















 元データとダウンサンプリングされたデータを耳で比較した場合にも、出力された音の質が下がっていることが確認できました。


(特に、元データのサンプリング周波数が48Khz以下の場合に顕著に差を感じました。)





4.2.あとがき

 ダウンサンプリングの処理を行う関数の作成には、まず間引き処理の実装から入りました。


間引き処理のみの実装段階で音楽データが正常に再生されていましたので、後はローパスフィルタを入れるだけ!と作成したフィルタを間引き処理の前に挿入すると・・・





「ザーー・・・」





ほんの一時前まで鳴っていた音楽データが再生されなくなってしまいました。


原因は、移動平均を取る際にunsignedデータのまま計算していたことでした。


単純な話でしたが、気づくまではあれやこれやと修正をかけ、再生してみるの繰り返しでした。。。


signed / unsigned には気をつけようと学んだ入社一年目の新人のあとがきでした。





本システムの説明は以上で終了です。


長々と失礼致しました。


また、内容に間違い等がありましたらご指摘いただけると幸いです。







開発メンバ


 小林 弘典


 藤田 武大


 山形 泰之


 小林 慎治


 鈴木 匠


 嶋田 大輔





窓口担当


 今井利久





株式会社 アイティサービス


 URL http://www.upload-gp.co.jp/


 TEL 06-6910-8780








Android+BeagleBoardでAudioのダウンサンプリング



f:id:bs-android:20090616170847j:image


ITサービス様がBeagleBoard上のAndroidでAudioのダウンサンプリング動作を実装してくれましたので、その成果を公開させていただきたいと思います。





1.はじめに


 昨今話題となっているAndroid。既に多くの企業が参入しているなか、我々もキーワードとして注目していました。


そんな中、2009年度の組込み総合技術展に参加し、手作りAndroidケータイを拝見しながら、我々も何かをAndroidで作ってみようということで、Audioのダウンサンプリングを作成する運びになりました。





なぜAudioダウンサンプリングなのかというと・・・・


・BeagleBoard Rev C3 での公開実績はまだ無い


・Androidを作成の中で把握する


・Audio,Videoといったメディアに必要な部分の構造を理解し、カスタマイズできるようになる


といった所が挙げられます。





作成したAudioダウンサンプリング処理について、Android内のAudio入出力の流れを交えながら書いていきたいと思います。





1.1.ダウンサンプリングシステムについて

 BeagleBoardで起動するAndroidを使用し、Audioのサンプリング周波数を1/2にして再生するシステムを作成します。AudioのデバイスドライバにはAlsa Driverを用いることとします。


システム作成において、追加する内容は以下二点です。


・ ダウンサンプリング処理


・ ダウンサンプリング ON / OFFコマンド





1.2使用環境

 今回のダウンサンプリングシステムを導入した環境は以下の通りです。





表1.使用環境一覧











使用環境一覧
メインボードBeagleBoard Rev.C3
Android VerAndroid 1.6(Donut)
Audio DriverALSA
Android Kernel Ver2.6.29(embinuxより取得)
PC環境Ubuntu 8.10




□環境設定


 主にブリリアントサービス様 のRev.C2立ち上げの資料を参考にさせていただきました。ソースコードのVerに合わせ、Androidの初期化設定ファイルである、init.rcの内容を変更しました。





2.既存の音楽再生の流れ


□Android内のAudio処理の流れ


 Android内のAudioの処理に新たな機能を追加する為に、Android上でのAudioの流れを簡略図で表した物が下図です。


 Javaアプリケーション内で、MediaPlayerクラスのメソッドを呼ぶことで、フレームワーク内でいくつかのコマンドが作成されます。


コマンドはOpencore内のキューを用いてスケジューリングされ、実行されます。


Opencore内にてコマンドが実行されることで、Audio データのデコードやAudio再生の処理が起動し、Driver、HardWareへと処理が渡り、音楽が再生されます。


f:id:bs-android:20091214200804j:image:w400


図1.Android Audio処理の流れ図





3.システム作成での変更点


□ダウンサンプリングシステムの作成


 2節で取り上げたAndroid内のAudio処理の流れにおいて、Javaフレームワーク内に「ダウンサンプリング ON / OFF コマンド」を、Android ミドル部分Opencore内に「ダウンサンプリング処理」を追加します。


 2点を追加することで、Audioの1/2倍ダウンサンプリングに成功しています。以下項目にて詳細を説明します。





3.1.ダウンサンプリング ON / OFFコマンドの追加

 AndroidフレームワークのMediaPlayerクラスにダウンサンプリングコマンドを追加します。


 ダウンサンプリングコマンドは、JavaアプリケーションからダウンサンプリングのON/OFFを受け取り、Opencore内部に追加するダウンサンプリングの処理部分まで渡します。


以下に詳細実装方法を記します。





3.1.1.JAVAのソース変更箇所

 フレームワークに追加を行ったため、JAVAアプリケーションもダウンサンプリングコマンドを受け渡す処理を追加する必要があります。


処理を追加したアプリケーションのソースコードは下図のようになります。





f:id:bs-android:20091214201157j:image


図2.JAVAアプリケーションからの追加コマンドの使用方法





コマンドを追加することにより既存の再生関数(start())との変更点は下図のようになります。





f:id:bs-android:20091214201242j:image


図3.既存の再生関数との変更点





3.1.2.ソース変更後の処理シーケンス

 コマンドを追加した後の再生関数の処理シーケンスは下図のようになります。





f:id:bs-android:20091214201322j:image


図4.ソース変更後の処理シーケンス





3.1.3.実装箇所

 ダウンサンプリングコマンドで修正を加えたソースは以下の通りです。





表2. ダウンサンプリング ON / OFFコマンド ソース変更点一覧


f:id:bs-android:20091214201359j:image





3.2.ダウンサンプリング処理の変更点

3.2.1.Opencore内の処理の流れ

 Androidにデフォルトで備わっているMediaPlayerであるOpencoreの処理の流れの概略を下図に記述しました。





f:id:bs-android:20091214201450j:image


f:id:bs-android:20091214202304p:image


図5.Android Audio処理の流れ





今回のダウンサンプリングの処理では、Audioのデコード後データが表面化している、以下関数内で行うことにします。






○FilePath

android_root/external/opencore/android/android_audio_output.cpp

○関数名

AndroidAudioOutput::writeAudioBuffer()






3.2.2.ダウンサンプリング処理と追加内容

 ダウンサンプリングの処理の概念に関しては以下リンクを参考してください。





サンプリング周波数変換





 本システムでは、下記内容で実装します。




○ローパスフィルタ

取得したデコード後のAudioデータについて、4点移動平均を取ることで実装する。ただし、1サンプル量は量子化ビット16bitより、2byteとして扱う。

○間引き

ローパスフィルタを通した後のデータを、1サンプルデータ置きに間引く。ただし本システムでは、Audioデータをステレオ2chデータと考え、1サンプルを L+R の 4byte として扱う。







3.2.3.実装箇所

 追加するダウンサンプリングの処理のフローチャートは下図の通りです。





f:id:bs-android:20091214202419j:image


図6.Android Audio処理の流れ





 これに従い、下記の内容でソースコードの追加変更を行います。


 まず、3.1節にて作成した「 ON / OFF コマンド 」によって作成されるフラグを受け取る部分(getDownSamplFlag関数)を作成します。





f:id:bs-android:20091214202451j:image





 次に、作成したgetSamplFlag関数を使用し、フラグがONであれば現在のサンプリング周波数を1/2倍にします。





f:id:bs-android:20091214202539j:image





 次に、デコード後のAudioデータが表面化した部分にローパスフィルタと間引き処理を挿入します。


ソースコード内「 AudioDownSamplingExec関数 」はダウンサンプリングを行う自作関数です。





f:id:bs-android:20091214202551j:image








 最後に、ダウンサンプリングを行うAudioDownSamplingExec関数を(android_audio_output.cpp)内に記述します。





f:id:bs-android:20091214202614j:image





AudioDownSamplingExec関数内のwhileループ内がローパスフィルタの処理、forループ内が間引き処理に当たります。





4.まとめ


4.1.動作確認済み環境

 作成したシステムの動作確認のために下図のようなテストアプリを作成し、以下表の環境において、動作を確認しました。





f:id:bs-android:20091214202634j:image


図7.アプリケーション実行画面

















 元データとダウンサンプリングされたデータを耳で比較した場合にも、出力された音の質が下がっていることが確認できました。


(特に、元データのサンプリング周波数が48Khz以下の場合に顕著に差を感じました。)





4.2.あとがき

 ダウンサンプリングの処理を行う関数の作成には、まず間引き処理の実装から入りました。


間引き処理のみの実装段階で音楽データが正常に再生されていましたので、後はローパスフィルタを入れるだけ!と作成したフィルタを間引き処理の前に挿入すると・・・





「ザーー・・・」





ほんの一時前まで鳴っていた音楽データが再生されなくなってしまいました。


原因は、移動平均を取る際にunsignedデータのまま計算していたことでした。


単純な話でしたが、気づくまではあれやこれやと修正をかけ、再生してみるの繰り返しでした。。。


signed / unsigned には気をつけようと学んだ入社一年目の新人のあとがきでした。





本システムの説明は以上で終了です。


長々と失礼致しました。


また、内容に間違い等がありましたらご指摘いただけると幸いです。







開発メンバ


 小林 弘典


 藤田 武大


 山形 泰之


 小林 慎治


 鈴木 匠


 嶋田 大輔





窓口担当


 今井利久





株式会社 アイティサービス


 URL http://www.upload-gp.co.jp/


 TEL 06-6910-8780








2009年12月3日木曜日



f:id:bs-android:20090902163248p:image


公式発表から、この記事までちょっと時間があいてしまいましたが、弊社が開発に関わったAndroidアプリケーションのスポットメッセージ(株式会社バンプールさま)が、みなさんの投票のお陰でSocialのカテゴリで3位の入賞を果たしました!


Round2でもAndroidのプラットフォームを活かしていた作品はあまり多くなかったので、そのあたりが入賞の決め手かもしれません。





公式発表記事はこちら







入賞者一覧







その他の紹介記事







今後の動向は現時点では何も書けませんが、進展があれば報告していきたいと思います。





ADC2でスポットメッセージが入賞しました!



f:id:bs-android:20090902163248p:image


公式発表から、この記事までちょっと時間があいてしまいましたが、弊社が開発に関わったAndroidアプリケーションのスポットメッセージ(株式会社バンプールさま)が、みなさんの投票のお陰でSocialのカテゴリで3位の入賞を果たしました!


Round2でもAndroidのプラットフォームを活かしていた作品はあまり多くなかったので、そのあたりが入賞の決め手かもしれません。





公式発表記事はこちら







入賞者一覧







その他の紹介記事







今後の動向は現時点では何も書けませんが、進展があれば報告していきたいと思います。





2009年11月20日金曜日



2009/11/18(水)~11/20(金)にパシフィコ横浜で開催中のEmbedded Technology 2009に日本Androidの会のブースで出展しています。


その他開発協力として、株式会社モリサワ様のブース、WCMF様のブース、NECエレクトロニクス様のブースの出展にも携わっています。


展示内容


以下の展示内容、全てブリリアントサービスのAndroidの開発として携わっています。



・日本Androidの会 ブース番号E-06


 1. 3.5Gの通信モジュールをEMMA Mobile1にポーティングしたAndroid上から動かし音声通話のデモを行います。(ハフトテクノロジー様と協業)


 2. BeagleBoardとW-SIMをつかった「てづくりケータイでんわ」を出展します。


 3. ウキウキ!VIEW Android AR(現実拡張)感情視覚表現アプリ のデモをします。


・株式会社モリサワ様 ブース D-15


 Android KeiType ラスタライザフォントエンジンデモ 絵文字対応


・WCMF様 ブース B-07


 日本初!AndroidからNFC制御





・NECエレクトロニクス様 ブース B-36


 3.5Gの通信モジュールをEMMA Mobile1にポーティングしたAndroid上から動かし音声通話のデモを行います。(ハフトテクノロジー様と協業)





・日時


 2009/11/18(水) 10:00~17:00


 2009/11/19(木) 10:00~18:00


 2009/11/20(金) 10:00~17:00





・開催場所


 会場:パシフィコ横浜


 〒220-0012


 横浜市西区みなとみらい1丁目1番1号


 総合案内:045-221-2155


 交通案内:045-221-2166





・ブース:


 日本Androidの会 E-06


 NECエレクトロニクス B-36


 株式会社モリサワ D-15


 WCMF B-07





■地図



大きな地図で見る





■NECエレクトロニクス様 B-36


f:id:bs-android:20091119102437j:image


f:id:bs-android:20091119163100g:image


f:id:bs-android:20091119162817j:image





■株式会社モリサワ様 D-15


f:id:bs-android:20091119102213j:image


f:id:bs-android:20091119163736g:image





■WCMF様 B-07


f:id:bs-android:20091119102719j:image


f:id:bs-android:20091119163942j:image












ET2009に出展中!



2009/11/18(水)~11/20(金)にパシフィコ横浜で開催中のEmbedded Technology 2009に日本Androidの会のブースで出展しています。


その他開発協力として、株式会社モリサワ様のブース、WCMF様のブース、NECエレクトロニクス様のブースの出展にも携わっています。


展示内容


以下の展示内容、全てブリリアントサービスのAndroidの開発として携わっています。



・日本Androidの会 ブース番号E-06


 1. 3.5Gの通信モジュールをEMMA Mobile1にポーティングしたAndroid上から動かし音声通話のデモを行います。(ハフトテクノロジー様と協業)


 2. BeagleBoardとW-SIMをつかった「てづくりケータイでんわ」を出展します。


 3. ウキウキ!VIEW Android AR(現実拡張)感情視覚表現アプリ のデモをします。


・株式会社モリサワ様 ブース D-15


 Android KeiType ラスタライザフォントエンジンデモ 絵文字対応


・WCMF様 ブース B-07


 日本初!AndroidからNFC制御





・NECエレクトロニクス様 ブース B-36


 3.5Gの通信モジュールをEMMA Mobile1にポーティングしたAndroid上から動かし音声通話のデモを行います。(ハフトテクノロジー様と協業)





・日時


 2009/11/18(水) 10:00~17:00


 2009/11/19(木) 10:00~18:00


 2009/11/20(金) 10:00~17:00





・開催場所


 会場:パシフィコ横浜


 〒220-0012


 横浜市西区みなとみらい1丁目1番1号


 総合案内:045-221-2155


 交通案内:045-221-2166





・ブース:


 日本Androidの会 E-06


 NECエレクトロニクス B-36


 株式会社モリサワ D-15


 WCMF B-07





■地図



大きな地図で見る





■NECエレクトロニクス様 B-36


f:id:bs-android:20091119102437j:image


f:id:bs-android:20091119163100g:image


f:id:bs-android:20091119162817j:image





■株式会社モリサワ様 D-15


f:id:bs-android:20091119102213j:image


f:id:bs-android:20091119163736g:image





■WCMF様 B-07


f:id:bs-android:20091119102719j:image


f:id:bs-android:20091119163942j:image














f:id:bs-android:20091119161132p:image





こちらの専用ブログで詳細を記載していますが、


感情を投稿、閲覧できるARクライアントアプリを開発しました。


先ほど、Android Marketにもリリースしました!


こちらからダウンロードできます


f:id:bs-android:20091119161453p:image





まだ未実装機能が多いですが、よろしくお願いいたしますっ!!





ARクライアントアプリのウキウキViewリリース!



f:id:bs-android:20091119161132p:image





こちらの専用ブログで詳細を記載していますが、


感情を投稿、閲覧できるARクライアントアプリを開発しました。


先ほど、Android Marketにもリリースしました!


こちらからダウンロードできます


f:id:bs-android:20091119161453p:image





まだ未実装機能が多いですが、よろしくお願いいたしますっ!!





2009年11月18日水曜日



技術部 藤井 洋祐



※※重要 必ず読んでください※※


下記方法でProxy越えを行った場合、使用する環境、会社によってはネットワーク利用規約違反となり、問題と得ることがあります。規約違反など問題が無いことをネットワーク管理者に確認の上、実施してください。また、当方法を実施し、何らかの問題、損害賠償などが発生した場合、当社は一切の責任を負いません。これらのことを認識頂いた上で、各自の責任において、実施お願いします。



Proxy認証が存在するネットワーク環境で、



repo init -u git://android.git.kernel.org/platform/manifest.git



を使用すると、次のようなエラーが発生する場合があります。



~/mydoroid$ repo init -u git://android.git.kernel.org/platform/manifest.git


Getting repo ...


from git://android.git.kernel.org/tools/repo.git


fatal: Unable to look up android.git.kernel.org (port 9418) (Name or service not known)



下記の方法でそれらを回避することが出来ます。


手順




  1. corkscrewをインストール

  2. Proxyとportの編集

  3. ProxyUserとProxyPass ※Proxy認証が必要な場合

  4. gitコマンドを登録


手順に従って、実際の操作を例として記述します。


1.corkscrewをインストール



# apt-get install corkscrew



2.Proxyとportの編集


任意ディレクトリに任意のファイルを作成。


ここでは、proxy-hoge.shとします。



/usr/local/bin/proxy-hoge.sh



下記のように編集





  1. #!/bin/bash

  2. CORKSCREW=`which corkscrew`

  3. $CORKSCREW proxy.hoge.com 8080 $1 $2


※proxy.hoge.comはProxyサーバー


192.168.0.1のようにIDアドレスでも構いません。


# chmod 755 /usr/local/bin/proxy-hoge.sh



3.ProxyUserとProxyPass ※Proxy認証が必要な場合


Proxy認証が必要な場合があります。


corkscrewのヘルプを見ますと



$ corkscrew --h


corkscrew 2.0 (agroman@agroman.net)


usage: corkscrew <proxyhost> <proxyport> <desthost> <destport> [authfile]



と表示されます。


[authfile]がProxy認証に必要な情報が設定されたFileとなります。


3行目を以下のように変更してください。



$CORKSCREW 192.168.0.1 8080 $1 $2 /usr/local/bin/hoge_auth



Proxy認証情報ファイルの作成



/usr/local/bin/hoge_auth



下記のように編集



<user>:<password>



※Proxyサーバ管理者からIDとパスワードをもらう必要があります。


もらえない場合は、諦めましょう・・・



# chmod 600 /usr/local/bin/hoge_auth



gitコマンドを登録


~/.bashrc


下記を追加



export GIT_PROXY_COMMAND=/usr/local/bin/proxy-hoge.sh



以上で終わりです。





Proxyが存在するネットワーク上でのgit使用



技術部 藤井 洋祐



※※重要 必ず読んでください※※


下記方法でProxy越えを行った場合、使用する環境、会社によってはネットワーク利用規約違反となり、問題と得ることがあります。規約違反など問題が無いことをネットワーク管理者に確認の上、実施してください。また、当方法を実施し、何らかの問題、損害賠償などが発生した場合、当社は一切の責任を負いません。これらのことを認識頂いた上で、各自の責任において、実施お願いします。



Proxy認証が存在するネットワーク環境で、



repo init -u git://android.git.kernel.org/platform/manifest.git



を使用すると、次のようなエラーが発生する場合があります。



~/mydoroid$ repo init -u git://android.git.kernel.org/platform/manifest.git


Getting repo ...


from git://android.git.kernel.org/tools/repo.git


fatal: Unable to look up android.git.kernel.org (port 9418) (Name or service not known)



下記の方法でそれらを回避することが出来ます。


手順




  1. corkscrewをインストール

  2. Proxyとportの編集

  3. ProxyUserとProxyPass ※Proxy認証が必要な場合

  4. gitコマンドを登録


手順に従って、実際の操作を例として記述します。


1.corkscrewをインストール



# apt-get install corkscrew



2.Proxyとportの編集


任意ディレクトリに任意のファイルを作成。


ここでは、proxy-hoge.shとします。



/usr/local/bin/proxy-hoge.sh



下記のように編集





  1. #!/bin/bash

  2. CORKSCREW=`which corkscrew`

  3. $CORKSCREW proxy.hoge.com 8080 $1 $2


※proxy.hoge.comはProxyサーバー


192.168.0.1のようにIDアドレスでも構いません。


# chmod 755 /usr/local/bin/proxy-hoge.sh



3.ProxyUserとProxyPass ※Proxy認証が必要な場合


Proxy認証が必要な場合があります。


corkscrewのヘルプを見ますと



$ corkscrew --h


corkscrew 2.0 (agroman@agroman.net)


usage: corkscrew <proxyhost> <proxyport> <desthost> <destport> [authfile]



と表示されます。


[authfile]がProxy認証に必要な情報が設定されたFileとなります。


3行目を以下のように変更してください。



$CORKSCREW 192.168.0.1 8080 $1 $2 /usr/local/bin/hoge_auth



Proxy認証情報ファイルの作成



/usr/local/bin/hoge_auth



下記のように編集



<user>:<password>



※Proxyサーバ管理者からIDとパスワードをもらう必要があります。


もらえない場合は、諦めましょう・・・



# chmod 600 /usr/local/bin/hoge_auth



gitコマンドを登録


~/.bashrc


下記を追加



export GIT_PROXY_COMMAND=/usr/local/bin/proxy-hoge.sh



以上で終わりです。





2009年11月9日月曜日



f:id:bs-android:20091030224436p:image


先週の金曜日の2009/11/6より、日本Androidの会主催のAndroid Bazaar and Conference 2009 Fallの参加申し込みが開始されました



日時


2009/11/30(月) 9:30~19:30 (開場9:00)


場所


国立オリンピック記念青少年総合センター



大きな地図で見る





東京駅から

■ 小田急線


 JR中央線 約14分 新宿駅乗り換え


 小田急線 各駅停車 約3分 参宮橋駅 下車


  徒歩約7分 参宮橋駅下車 徒歩約7分


羽田空港から

■ 地下鉄千代田線


 東京モノレール 約23分 浜松町駅乗り換え


 JR山手線(外回り) 約23分 新宿駅乗り換え


 小田急線 各駅停車 約3分 参宮橋駅 下車


 徒歩約7分 代々木公園駅(C02)下車


 (代々木公園方面4番出口)徒歩約10分


成田空港から

■ 京王バス


 JR総武線 成田エクスプレス 約80~90分


 新宿駅乗り換え


 小田急線 各駅停車 約3分 参宮橋駅 下車


 徒歩約7分 新宿駅西口(16番)より 代々木5丁目下車


 渋谷駅西口(14番)より 代々木5丁目下車





参加費用


無料





申し込み


申し込みフォーム


未会員の方は、先に日本Androidの会に入会してからお申し込みください。


日本Androidの会、会員申し込み


Googleさん、*1 DoCoMoさん、KDDIさん、総務省さん、もしかするともうひとつ事業者さんが講演されるかもしれません。


ふるってご応募くださいませ!




*1:残念ながら、今回はGoogleさんの講演は無くなりました。





日本Androidの会主催 ABC 2009 Fall の参加申し込み



f:id:bs-android:20091030224436p:image


先週の金曜日の2009/11/6より、日本Androidの会主催のAndroid Bazaar and Conference 2009 Fallの参加申し込みが開始されました



日時


2009/11/30(月) 9:30~19:30 (開場9:00)


場所


国立オリンピック記念青少年総合センター



大きな地図で見る





東京駅から

■ 小田急線


 JR中央線 約14分 新宿駅乗り換え


 小田急線 各駅停車 約3分 参宮橋駅 下車


  徒歩約7分 参宮橋駅下車 徒歩約7分


羽田空港から

■ 地下鉄千代田線


 東京モノレール 約23分 浜松町駅乗り換え


 JR山手線(外回り) 約23分 新宿駅乗り換え


 小田急線 各駅停車 約3分 参宮橋駅 下車


 徒歩約7分 代々木公園駅(C02)下車


 (代々木公園方面4番出口)徒歩約10分


成田空港から

■ 京王バス


 JR総武線 成田エクスプレス 約80~90分


 新宿駅乗り換え


 小田急線 各駅停車 約3分 参宮橋駅 下車


 徒歩約7分 新宿駅西口(16番)より 代々木5丁目下車


 渋谷駅西口(14番)より 代々木5丁目下車





参加費用


無料





申し込み


申し込みフォーム


未会員の方は、先に日本Androidの会に入会してからお申し込みください。


日本Androidの会、会員申し込み


Googleさん、*1 DoCoMoさん、KDDIさん、総務省さん、もしかするともうひとつ事業者さんが講演されるかもしれません。


ふるってご応募くださいませ!




*1:残念ながら、今回はGoogleさんの講演は無くなりました。





2009年11月5日木曜日



f:id:bs-android:20090215001008p:image


2009/11/7(土)に日本Androidの会 関西支部の第5回勉強会を開催します。


すでに定員いっぱいになっていますが、立ち見でも構わなければ参加が可能です。


※立ち見の場合でも、申し込み手続きはお願いします。





内容


・株式会社ブリリアントサービス 藤井洋祐


「意外と簡単、GPSアプリ」





・有限会社シーリス 有山圭二


「Androidアプリ失敗事例集 ~ 俺の屍を越えてゆけ」





・エモーションプラス 原秀樹


「ワールドなアプリで世界を狙え!」





・日本Androidの会 日高正博


「Android SDK1.6 新機能紹介 ジェスチャーの仕組み」





・日本Androidの会 赤井忠昭


「Android開発基礎から設定画面まで」





・日本Androidの会 宮川彬央


「OpenGLとNDK1.6」





日時


2009/11/07 13:30 to 17:30


受付時間:13:00~13:30





参加費


無料





開催場所


大阪市北区西天満2-6-8堂島ビルヂング9F 大会議室



大きな地図で見る





第5回日本Androidの会関西支部勉強会



f:id:bs-android:20090215001008p:image


2009/11/7(土)に日本Androidの会 関西支部の第5回勉強会を開催します。


すでに定員いっぱいになっていますが、立ち見でも構わなければ参加が可能です。


※立ち見の場合でも、申し込み手続きはお願いします。





内容


・株式会社ブリリアントサービス 藤井洋祐


「意外と簡単、GPSアプリ」





・有限会社シーリス 有山圭二


「Androidアプリ失敗事例集 ~ 俺の屍を越えてゆけ」





・エモーションプラス 原秀樹


「ワールドなアプリで世界を狙え!」





・日本Androidの会 日高正博


「Android SDK1.6 新機能紹介 ジェスチャーの仕組み」





・日本Androidの会 赤井忠昭


「Android開発基礎から設定画面まで」





・日本Androidの会 宮川彬央


「OpenGLとNDK1.6」





日時


2009/11/07 13:30 to 17:30


受付時間:13:00~13:30





参加費


無料





開催場所


大阪市北区西天満2-6-8堂島ビルヂング9F 大会議室



大きな地図で見る







f:id:bs-android:20091104160553p:image


2009/11/6(金)~11/7(土)に開催される関西オープンフォーラムに日本Androidの会の枠で出展します。


展示内容


3.5Gの通信モジュールをAndroid上で動かし、音声通話のデモを行います。





講演内容


事例紹介 アンドロイド


有限会社シーリス 有山圭二さん





有山さんによるAndroidの事例紹介です。





日時




  • 2009/11/6(金) 13:00~18:00

  • 2009/11/7(土) 10:00~18:00





開催場所


大阪南港ATC ITM棟 6F マーレギャラリー(受付・展示会場)


〒559-0034 大阪市住之江区南港北2-1-10



大きな地図で見る





ご興味のある方は是非お立ち寄りくださいまし。





関西オープンフォーラム(KOF) 2009にAndroidの音声通話のデモを出展します



f:id:bs-android:20091104160553p:image


2009/11/6(金)~11/7(土)に開催される関西オープンフォーラムに日本Androidの会の枠で出展します。


展示内容


3.5Gの通信モジュールをAndroid上で動かし、音声通話のデモを行います。





講演内容


事例紹介 アンドロイド


有限会社シーリス 有山圭二さん





有山さんによるAndroidの事例紹介です。





日時




  • 2009/11/6(金) 13:00~18:00

  • 2009/11/7(土) 10:00~18:00





開催場所


大阪南港ATC ITM棟 6F マーレギャラリー(受付・展示会場)


〒559-0034 大阪市住之江区南港北2-1-10



大きな地図で見る





ご興味のある方は是非お立ち寄りくださいまし。





2009年10月28日水曜日



f:id:bs-android:20091028135840p:image


Android 2.0からHTML5の対応が入ったので、iPhoneで表示できるHTML5のサイトを2.0のエミュレータで試してみました。





電卓


普通に表示でき、計算も行えました。


f:id:bs-android:20091028140059p:image





3D Photos


横に伸び縮みするだけで、回転はしてくれませんでした。1.6ではただ画像が出るだけなので、マシにはなっているようです。


f:id:bs-android:20091028140330p:image


f:id:bs-android:20091028140336p:image


f:id:bs-android:20091028140338p:image


Matrix風Twitter Visualization


かなりカクカクしていますが、なんとか動いていました。


f:id:bs-android:20091028140626p:image


f:id:bs-android:20091028140627p:image


3D Clock


これが一番スムーズに動いていました。


f:id:bs-android:20091028140816p:image


f:id:bs-android:20091028140843p:image





Tiwtterのタイムラインを3Dで


他にもHTML5のGoogleGroupに流れていたデモサイトにtwitterのタイムラインを3D表示させるデモがあったので試してみました。


f:id:bs-android:20091028141254p:image


f:id:bs-android:20091028141323p:image


f:id:bs-android:20091028141339p:image


エミュレータ上にも関わらず、それなりの速度で動いていました。





Videoタグ


youtubeのHTML5のデモサイトを見ようとしてもモバイル向けのページにリダイレクトされてしまうので、ソースコードをコピーして、自前サイトに置いて確認してみました。


f:id:bs-android:20091028141648p:image


f:id:bs-android:20091028141647p:image


再生ボタンを押すと一瞬フルスクリーンになろうとしてから、再生できないと言われてしまいました。残念。


そのうちめげずにトライしてみようと思います。





Android 2.0のHTML5の実力



f:id:bs-android:20091028135840p:image


Android 2.0からHTML5の対応が入ったので、iPhoneで表示できるHTML5のサイトを2.0のエミュレータで試してみました。





電卓


普通に表示でき、計算も行えました。


f:id:bs-android:20091028140059p:image





3D Photos


横に伸び縮みするだけで、回転はしてくれませんでした。1.6ではただ画像が出るだけなので、マシにはなっているようです。


f:id:bs-android:20091028140330p:image


f:id:bs-android:20091028140336p:image


f:id:bs-android:20091028140338p:image


Matrix風Twitter Visualization


かなりカクカクしていますが、なんとか動いていました。


f:id:bs-android:20091028140626p:image


f:id:bs-android:20091028140627p:image


3D Clock


これが一番スムーズに動いていました。


f:id:bs-android:20091028140816p:image


f:id:bs-android:20091028140843p:image





Tiwtterのタイムラインを3Dで


他にもHTML5のGoogleGroupに流れていたデモサイトにtwitterのタイムラインを3D表示させるデモがあったので試してみました。


f:id:bs-android:20091028141254p:image


f:id:bs-android:20091028141323p:image


f:id:bs-android:20091028141339p:image


エミュレータ上にも関わらず、それなりの速度で動いていました。





Videoタグ


youtubeのHTML5のデモサイトを見ようとしてもモバイル向けのページにリダイレクトされてしまうので、ソースコードをコピーして、自前サイトに置いて確認してみました。


f:id:bs-android:20091028141648p:image


f:id:bs-android:20091028141647p:image


再生ボタンを押すと一瞬フルスクリーンになろうとしてから、再生できないと言われてしまいました。残念。


そのうちめげずにトライしてみようと思います。





Related Posts Plugin for WordPress, Blogger...