ピアノ -シンプルなピアノ- 録音機能つき 鍵盤アプリ
7オクターブの鍵盤と録音機能で、ひとりアンサンブルが楽しめる本格ピアノアプリ。
アプリ概要
「ピアノ -シンプルなピアノ- 録音機能つき 鍵盤アプリ」は、シリーズ累計800万ダウンロードを達成した、録音機能つきの無料ピアノアプリです。7オクターブの鍵盤をスクロールしながら演奏でき、弾いた内容を録音して、その再生に合わせて別の楽器を重ねて録ることができます。ピアノ・エレピ・オルガン・ストリングスなど複数の音色を切り替えられるため、ひとりでアンサンブルを組み立てられます。録音されるのは音声ファイルではなく演奏そのもの(どの鍵盤をいつ、どれくらいの強さで押したか)なので、強弱もサスティンペダルの踏み替えも、再生時にそのまま再現されます。鍵盤を上下2段に分けて別々にスクロールできる2段モードや、鍵盤の表示位置を次回起動時まで覚えておく機能など、長く弾く人ほど効いてくる調整を重ねてきました。
主な機能
7オクターブのワイド鍵盤
左右にスクロールして低音から高音まで自由に行き来できます。鍵盤の大きさは6段階で調整でき、表示していた位置は次に起動したときも保たれます。
録音と重ね録り
演奏した内容を録音し、その再生に合わせて別の楽器を重ねて録れます。パートを足していけば、ひとりでアンサンブルを作れます。再生中にループの入り切りを切り替えることもできます。
演奏そのものを記録する録音方式
録音しているのは音声ではなく、どの鍵盤をいつ、どれくらいの強さで押したかという演奏データです。そのため強弱もペダル操作も再生時に再現され、停止ボタンを押すまでの余韻もそのまま残ります。
ベロシティ(強弱)対応
タップした位置から強弱を計算して音量に反映します。筆圧を取得できるスタイラスではその値を使います。強弱は録音データにも保存され、再生時に再現されます。設定でオフにもできます。
サスティンペダル
ペダルボタンを押している間、音が伸び続けます。踏み替えのタイミングも録音に含まれるため、再生した演奏でも同じ響き方になります。押している間はボタンの色が変わり、状態がひと目で分かります。
鍵盤2段モード
鍵盤を上下2段に分けて表示し、それぞれ独立してスクロールできます。左手と右手で離れた音域を同時に押さえられるため、両手演奏の幅が広がります(広告非表示中の特典機能です)。
タップ離鍵サスティン
鍵盤から指を離した後に残す余韻の長さを0〜5秒で設定できます。初期値は0.5秒です。多くの指で同時に押さえてから離したときも、音が一斉に途切れないよう処理しています。
複数の楽器音色
ピアノに加え、エレピ・オルガン・ストリングスなど複数の音色を選べます。重ね録りのときにパートごとに音色を変えると、アンサンブルらしさが出ます。
こんな場面で役立ちます
- 簡単なアンサンブル曲を一人で作ってみたい
- 録音した演奏を後から聴き返して、上達を確かめたい
- 思いついたメロディをその場で記録しておきたい
- 音色の違いを聴き比べて編曲のアイデアを試したい
- 2段モードで左手と右手の音域を離して両手演奏を試したい
- ペダルの踏み替えを含めて、自分の演奏を後から聴き返したい
使い方
- アプリを起動し、画面に表示された鍵盤をタップして演奏します。
- 録音ボタンを押すと、そこからの演奏が記録されます。もう一度押すと停止します。
- 録音停止後に再生し、別の楽器を選んで演奏すると重ね録りになります。
- サスティンペダルのボタンを押している間は音が伸び続けます。押している間はボタンの色が変わります。
- 鍵盤を上下2段で使いたいときは、設定から2段モードに切り替えます。上段・下段は別々にスクロールできます。
- 指を離した後の余韻を変えたいときは、設定のサスティン時間を0〜5秒の範囲で調整します。
- 設定画面からベロシティのON/OFFや音色の切り替えができます。
よくある質問
Q. 録音した音源を外部に書き出せますか?
A. いいえ、音声ファイルとしての書き出し・共有には対応していません。録音した演奏はアプリ内で再生して聴き返す形になります。
Q. 録音されるのは音声ファイルですか?
A. いいえ、記録しているのは「どの鍵盤をいつ、どれくらいの強さで押したか」という演奏データです。そのため再生時に強弱やペダル操作まで再現されますが、音声ファイルそのものが保存されるわけではありません。
Q. ベロシティはどう機能しますか?
A. 鍵盤のどこを押したかを基準に強弱を計算しています。筆圧を取得できるスタイラスを使っている場合はその値を優先します。強弱は録音にも保存され、再生時に再現されます。設定からON/OFFを切り替え可能です。
Q. 2段モードはどうすれば使えますか?
A. 広告非表示中の特典機能として提供しています。有効にすると鍵盤が上下2段で表示され、それぞれ独立してスクロールできます。上段・下段のスクロール位置は個別に保存されます。
Q. サスティンペダルの色が押下中に変わりません
A. 最新版(v5.2.x以降)では押下中ずっと色が変化する仕様になっています。アプリを最新にアップデートしてください。
Q. たくさんの指で同時に押さえると、音が一斉に途切れることがあります
A. v5.5.2 で修正済みです。ただし、同時に認識できる指の本数は端末の仕様によって異なるため、上限を超えた分は反応しません。
Q. 電話がかかってきた後、音が出なくなることがあります
A. v1.7以降のアップデートで電話着信後の音声停止問題は修正済みです。最新版にアップデートしてください。
Q. 鍵盤のスクロール位置は毎回リセットされますか?
A. いいえ、最後に表示していた位置を保存しており、次回起動時も同じ音域から演奏を再開できます。2段モードの場合は上段・下段それぞれの位置を別々に覚えています。
更新履歴
バージョン 5.6.3(2026年9月3日)
- 設定スイッチの ON/OFF を見分けやすく改善
- 軽微なバグの修正とパフォーマンスの改善
バージョン 5.6.2(2026年9月2日)
- 演奏中にまれに発生するクラッシュの修正
- 軽微なバグの修正とパフォーマンスの改善
バージョン 5.6.1(2026年8月27日)
- アプリ起動の高速化
- 軽微なバグの修正とパフォーマンスの改善
バージョン 5.5.2(2026年7月21日)
- 多くの指で同時に演奏したときに、鳴っている音がすべて同時にブツッと途切れることがある問題を修正しました(同時に認識できる指の本数は端末の仕様により異なります)
- 「サスティン時間」設定の初期値を0.5秒に変更しました
- 軽微なバグの修正とパフォーマンスの改善
バージョン 5.5.1(2026年6月15日)
- 【新機能】鍵盤を上下2段に分けて表示する「2段モード」を追加。各段を独立してスクロールでき、両手演奏の幅が広がります(広告非表示中の特典機能)
- 録音再生中でもループのON/OFFを切り替えられるように改善
- 「サスティン時間」設定を追加。鍵盤を離した後の音の余韻を0〜5秒で調整できます
- 鍵盤のスクロール位置を保存。次回起動時も最後に表示していた位置から演奏を再開できます
- 軽微なバグの修正とパフォーマンスの改善
バージョン 5.2.14(2026年5月13日)
- サスティンペダル機能を追加。設定でON/OFFできます
- 録音データに演奏の強弱(ベロシティ)を保存し、再生時に再現
- 録音再生の末尾がより自然に。停止ボタンを押すまでの余韻・響きを再現
- 軽微なバグの修正とパフォーマンスの改善
バージョン 5.2.11(2026年4月)
- タッチの強弱(ベロシティ)に対応。設定でON/OFF可能
- 音が鳴りっぱなしになる不具合を修正
- アプリが突然終了してしまう不具合を修正
- 演奏時の鍵盤アニメーションを改善
バージョン 5.2.9(2026年3月)
- 鍵盤サイズを小さくした際にクラッシュする不具合を修正
- その他軽微なバグの修正とパフォーマンスの改善
バージョン 5.2.6(2026年1月)
- 黒鍵盤のデザインを変更
- その他軽微なバグの修正とパフォーマンスの改善
バージョン 5.2.2(2025年12月)
- アプリ起動中に電話の着信があると音が鳴らなくなるバグを修正
- その他軽微なバグの修正とパフォーマンスの改善
開発の背景
このピアノアプリは、もともと知り合いに頼まれて作った超シンプルなピアノアプリが原点です。正直に言うと、僕はピアノをぜんぜん弾けません。でも弾けないからこそ、押したときの手応えと音の自然さにはこだわってきました。シリーズの中核として、いちばん長くアップデートを続けているアプリです。
やることは一つに絞っています。見た目はシンプルなまま、演奏体験だけを本物に近づける。それだけです。鍵盤の数を増やす、譜面表示のような大きな機能を足す。そういう方向より、押した手応えと、録音を聴き返したときの自然さを積み上げるほうが、実際に使う人には効くと考えています。
その方針がいちばん出ているのが録音の仕組みです。音声ファイルとして録るのではなく、どの鍵盤をいつ、どれくらいの強さで押したかを演奏データとして記録します。強弱を保存できるようにし、そのあとサスティンペダルの踏み替えも記録できるようデータベースの構造を広げました。再生時は鍵盤とペダルのイベントを 1 本のタイムラインに統合し、順序を保ったまま再現します。ペダルを踏んだまま次の音に移る演奏でも、録音と再生で響き方が変わらないようにするための作りです。
不具合の修正は、ユーザーからの報告と実機での再現に助けられてきました。特定の Android 端末でだけサスティンが勝手に解除される。たくさんの指で同時に押さえてから離すと、音が一斉にブツッと途切れる。どちらも報告がなければ気付けませんでした。後者は、システム側から入力のキャンセルが通知されたときに、通常の離鍵と同じ余韻処理を通すようにして直しています。レビューで教えてもらった不具合は、できるだけその日のうちに手を付けるようにしています(できない日もあります)。
無料アプリなので広告は入っています。ただ、広告まわりの不具合が演奏体験を壊すことだけは許していません。広告を閉じた直後に音が出なくなる、広告の在庫がないときにアプリが不安定になる。こういう問題は、演奏そのものの不具合と同じ重さで扱ってきました。広告を非表示にしている間は鍵盤 2 段モードを使えるようにするなど、広告と機能の関係も少しずつ整理しています。
音源を鳴らす部分は外部のライブラリに依存しています。なので、その更新に振り回されることもあります。ライブラリ側の変更で挙動が変わる事故を避けるため、参照先を特定の時点に固定して運用する方針に切り替えました。個人開発で長く続けるには、機能を足すことと同じくらい「壊れない状態を保つ」判断が大事です。地味ですが、そこはコツコツやっています。
このアプリの開発記事
ピアノアプリを二段鍵盤に対応させた話 — 同時押下の参照カウントとスクロール永続化
「鍵盤を 2 段にしてほしい」。以前からいただいていた要望に、ピアノアプリ v5.5.0 で応えました。高さの等分割、同じ鍵盤を上下から同時に押せる問題の参照カウント解決、段ごとのスクロール位置永続化、切り替え時の音鳴りっぱなし対策。実装で踏んだ穴まで含めて記録します。
サスティンペダルを CC#64 イベントとして録音再生する仕組み
自分の録音を聴き返して、ぶつ切りなことに気づきました。ペダルが入っていないからです。サスティン(CC#64)を録音タイムラインに載せるため、DB スキーマを v6 にして CcEvents テーブルを追加。ON と OFF のエッジだけ記録し、停止時の同期でつまずいた記録です。
ピアノアプリにベロシティ(強弱)を実装するまで
もう少し強弱を付けたい、というレビューの要望から、鍵盤のベロシティ対応を始めました。0〜127 の MIDI 値を返す純関数にして、pressure 非対応の端末は Y 座標に逃がす。stylus と通常タッチの取り違えで緊急修正も出しました。14 言語ぶんの設定 UI までの記録です。
AUSamplerクラッシュとの戦い — オーディオ再初期化を整理する
Crashlytics を入れたら、AUSampler のクラッシュが一気に見えるようになりました。電話着信や Bluetooth 切替のたびに再初期化が連鎖していたのが原因です。旧サウンドフォントのアンロード、再初期化回数の上限、トリガを中断イベントだけに絞る。この三段構えで落ち着くまでの記録です。
AdMob の落とし穴 4 つを一度に塞ぐ — 在庫切れ・オフライン・ライフサイクル・GDPR
ピアノアプリの AdMob まわりを見直したら、問題が 4 つ同時に出てきました。ロード完了を待てていない、失敗をユーザーに伝えていない、バックグラウンドでもリクエストが飛ぶ、GDPR 同意の位置が揃っていない。Completer と WidgetsBindingObserver と connectivity_plus で一度に整えた記録です。
評価10万件・400万DL・ドラマ出演 — ピアノアプリ開発で起きたうれしかった出来事
ピアノアプリのストア評価数が 10 万件を超えました。ダウンロード数も 400 万目前です。解読できない星 5 レビュー、テレビドラマ「ボーダレス」への登場。2013 年から個人開発を続けてきた中で、うれしかった出来事を時系列で振り返ります。
ANR 率が品質基準の 9 倍 — 犯人は runApp() の前で await していた AdMob 初期化だった
Play Console の ANR 率が 4.41%、Google のしきい値の約 9 倍でした。犯人は main() で AdMob 初期化を await して first frame を遅らせていた 1 行。「開始」と「完了待ち」を分ける AdsInitializer で直し、レビューで見つかった 3 つの穴を塞ぎ、公開後はバージョン別 ANR 率 0.65% で効果を確かめるまでの記録です。