TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

2015-01-01から1年間の記事一覧

ボーカル音程モニター(Vocal Pitch Monitor)をバージョンアップ 1.2.0

ボーカル音程モニター(Vocal Pitch Monitor)をバージョンアップしました。1.2.0 ・Cメジャー以外のスケールを設定できるようにした ・各音階に色を付ける設定を追加した どちらも要望をもらって加えた機能です。ユーザ数が増えてくるとリリースするのに心理…

スケールの一覧

スケールを一覧から選択できるようにしたが、 C,D,E,F,G,A,Bのそれぞれの♯と♭とメジャーとマイナーを 単純に組み合わせていたが、 よく考えたら音楽的にあり得ない組み合わせが混じっている。ちゃんと五度圏の図から拾ってくるように修正した。 あやうく恥を…

AudioRecordの初期化失敗

ターゲットのAPIレベルを23にすると、 以下のエラーがでてAudioRecordの初期化が失敗するようになった。 E/AudioRecord: AudioFlinger could not create record track, status: -1 E/AudioRecord-JNI: Error creating AudioRecord instance: initialization …

スケールの設定

スケールの設定を実装した。キーとMajorとMinorを選択するのをコントロールを分けると スマホだとUIがごちゃごちゃになりそうなので、 メイン画面では現在のスケールをクリックしたら、 MajorもMinorも一緒の一覧にしてAlertDialogを使って選べるようにした…

色の設定

各トーンに色を付ける設定を実装中です。Androidに色選択ダイアログがないため、 PopupWindowを使って、ダイアログ風の色選択画面を作りこみました。スマホの小さい画面での操作性考えて、試しては直してを繰り返したので思ったより大変でした。色の設定は主…

広告なし版の実装方法

要望メールを何通かもらったので広告なし版をやはり考えようかと思う。別アプリで公開するか、アプリ内課金で実装するか悩みどころ。 別アプリだと実装不要で簡単だけど、 アプリ内課金の方がスマートだよな。iOS版は有料版しか公開してないが、 こちらは逆…

Androidのアプリ内課金アプリ

アプリ内課金アプリの方法を調べていたら、有料アプリとアプリ内課金アプリをGoogle Playで販売するには、 住所を公開しないといけないらしい。個人開発者の住所をさらされるのは・・・。広告なしバージョンを作ってくれと要望をもらっていたが、 見送ろうと…

アプリ内課金の勉強中

アプリ内課金で広告なしにする方法を調査中です。Google Play の課金システムの概要 | Android Developersとりあえずこのサンプルを動かしてみるかな。

アプリの機能追加要望

ボーカル音程モニター - Google Play のアプリ と ‎「VocalPitchMonitor」をApp Storeで について、アプリの機能追加要望をいくつかもらっている。・日本語ローカライズ(iOSのみ) ・調(キー)の設定追加 ・広告なしバージョン(Androidのみ)現在のバージョンで…

iOS版VocalPitchMonitorのバグ修正

先月バージョンアップしたiOS版のVocalPitchMonitorのレビューで 問題を指摘いただいたので改善版を審査に提出しました。ノイズに反応しやすくなっていたようで、原因をなんとなく予想して確認したら、 窓関数の計算の括弧の位置を間違っていたという予想し…

iPhone/iPadアプリ「AudioSpectrumMonitor」バージョンアップ

iPhone/iPadアプリ「AudioSpectrumMonitor」をバージョンアップしました。Android版に実装した録音/再生、保存/読み込み機能をiOS版にも実装しました。 機械学習でパラメータ調整した結果も反映しているので、解析精度も上がっていると思います。iOS版はAndr…

ボーカル音程モニター(Vocal Pitch Monitor)をバージョンアップ

Androidアプリの「ボーカル音程モニター(Vocal Pitch Monitor)」をバージョンアップしました。海外のユーザからメールで、ノイズで自動スクロールするのがうざいので、 オフにするオプションをつけてほしいという要望があったので、 自動スクロールをオフに…

iOS9対応

iOSアプリの「AudioSpectrumMonitor」と「VocalPitchMonitor 」がiOS9では動かなくなってるみたいです。Android版で追加した録音再生機能をiOS版の方にもちょうど追加していたところだったので、 急いで完成させて審査に出しました。iOS9が出たばかりで審査…

ボーカル音程モニター(Vocal Pitch Monitor)をバージョンアップ

Androidアプリ「ボーカル音程モニター(Vocal Pitch Monitor)」をバージョンアップしました。同じくAndroidアプリの「音声スペクトルモニター(Audio Spectrum Monitor)」に実装していた録音機能を ボーカル音程モニター(Vocal Pitch Monitor)の方にも追加しま…

音声スペクトルモニター(Audio Spectrum Monitor)バージョンアップ

Androidアプリ「音声スペクトルモニター(Audio Spectrum Monitor)」をバージョンアップしました。ピッチの解析精度を上げるために、機械学習を使ってパラメータの調整を行いました。声の音声データに加えてアコギの音も学習データとして使用したので、 ギタ…

Windowsデスクトップアプリの描画処理

Windowsデスクトップアプリで描画処理をするときに、 ちらつき防止と、再描画の負荷軽減のためにオフスクリーンバッファを アプリ側で管理して、WM_PAINTではオフスクリーンバッファから転送する方法をとっていたが、 Windows Vista以降では、Desktop Window…

音声スペクトルモニター(Audio Spectrum Monitor)バージョンアップ その2

先週に引き続きAudio Spectrum Monitor - Apps on Google Playのバージョンアップを行った。バグが結構残っていたのと、レビューコメントでの酷評?に対応するため、 バージョンアップで変更した内容を元に戻せるように、 対数表示と線形表示の切り替えと、…

Androidでメニューをグレーアウトさせる

openOptionsMenuで開いたメニューのアイテムを状態によって無効化したい場合、 onPrepareOptionsMenuで、 item.setEnabled(false); のようにすればよいのだが、 こうすると、確かにメニューは押しても反応しなくなるのだが、 見た目がグレーアウトしない。い…

音声スペクトルモニター(AudioSpectrumMonitor)のバージョンアップ

Audio Spectrum Monitor - Apps on Google Playを久しぶりにバージョンアップした。けっこう前に公開して、少しバグを改修したくらいで、 しばらく放置していたがプログラミング熱が再開したので、 勢いにのって前々から追加したかった録音機能を追加した。…

ボーカル音程モニター(Vocal Pitch Monitor)をバージョンアップ その2

先日アップしたVocal Pitch Monitor - Apps on Google Playに細かなバグがあったので修正した。ついでにピンチズームとドラッグに対応。Android Studioをバージョンアップしたら、APKのアップ時に権限が追加されていた。 AdMob関連だと思うが、ローケーショ…

ボーカル音程モニター(Vocal Pitch Monitor)をバージョンアップ

ボーカル音程モニター(Vocal Pitch Monitor)をバージョンアップしました。音量のしきい値と画面表示のズームを設定できるようにしたのと、 広告がオーバーラップしないようにしました。 設定画面の実装は、はじめAndroid 3.0以降で追加されたPreferenceFragm…

機械学習の勉強

序論で躓きかけて、確率統計の本を先に読んだりしていた パターン認識と機械学習 上 の勉強を再開した。以前躓いたのは、1.2.1.確率密度の 「変数に非線形な変換を施すと、確率密度はヤコビ行列により単純な関数とは異なる仕方で変換される。」 という1文。…

AndroidアプリでAdMobを使って広告表示する

公開したVocal Pitch Monitor - Apps on Google Playですが、AdMobを使って無料広告アプリとしました。 AdMobを組み込む際に、はまった点など書いておきます。 AdMobに登録すると、設定手順のページのリンクを教えられますが、Eclipse用の設定の解説になって…

ボーカル音程モニター(VocalPitchMonitor)

iPhoneアプリのVocalPitchMonitorのAndroid版を公開しました。歌声や楽器の音程をリアルタイムに表示できます。 ボーカル音程モニター制作: TadaoYamaoka評価: 0.0 / 5段階中価格: undefined (2015/5/2 時点)⬇ ダウンロードposted by: AndroidHTML v3.1 Andr…

Javaでリングバッファ

自分が作成しているアプリは音声の波形データを一定サイズバッファしてから、処理するといことをよく行っている。 その際に、メモリを効率よく扱うために、リングバッファを用いている。リングバッファというのは、固定サイズのバッファに順番に値を書き込ん…

音程解析 VSTプラグイン(vst_pitch)にREAPERでの使用例を追加

音程解析VSTプラグイン(vst_pitch)にREAPERでの使用例を追加しました。フリーのDAWソフトで、VSTプラグインに対応しているソフトを探していましたが、 AudacityやMusic Studioは、VSTプラグインに対応していましたが、 リアルタイムにモニタリングしながらは…

確率統計を勉強中

プログラミングのための確率統計をほぼ読み終わったが、後半はほとんど頭に入ってこなかった。レビューではやさしいと評判だったが、紙と鉛筆を使って数式を確認しながら理解していかないと読むだけでは理解は難しいようだ。 紙と鉛筆でもよいが、せっかくな…

Androidのソースコード

AudioRecordの問題を調べるためにAndroidのソースコードを眺めることになったが、 SDKのJavaのソースコードは、SDK Managerからインストールできるが、 AudioRecordのJavaのソースコードにはほとんど処理はなく、実態は、 jniのネイティブコード(C++)で処理…

AudioRecordの問題(解決)

AndroidのAudioRecordの問題 - TadaoYamaokaの開発日記で、 03-28 21:17:52.498 1081-1097/com.tadaoyamaoka.recordsample W/AudioRecord﹕ obtainBuffer timed out (is the CPU pegged?) user=00065320, server=00065320というエラーがでると書いたが、勘違…

ループ処理のコーディング

ループ処理でループに入る前に1回呼んで、ループの中では末尾で処理したいような処理をコーディングするとき、 line = get_line(); while (ready()) { // 処理 // ... line = get_line(); } このようにコードを書いている。line = get_line();の部分が重複し…