🎨 このアプリ、実はこんな想いから作りました(開発秘話)
「長時間のラジオ録音や英会話の音声を小分けにしたいけれど、専用の編集ソフトをパソコンにインストールするのは面倒だし、使い方が難しすぎる…」と感じたことはありませんか?また、インターネット上の無料の音声カットサービスを使う際、「自分の音声ファイルや音楽データが海外の怪しいサーバーにアップロードされるのはセキュリティ面で非常に不安だ」と感じる方も少なくないはずです。
「それなら、安全性も処理スピードも完璧で、ブラウザだけでサクサク動く、プロ仕様のローカル完結型スプリッターを自分で作ろう!」
そんな強い想いから、この「SonicSplit」の開発が始まりました。
このアプリの最も誇れるこだわりは、**「どれだけ大きな音声ファイルを読み込ませても、データはあなたのパソコンやスマートフォンから一歩も外に出ない」**という点です。HTML5のWeb Audio APIを活用し、すべてのデコードや波形解析をブラウザ内部で瞬時に完結させています。
特に苦労したのは、ブラウザの中だけで「MP3への圧縮エンコード」と「ZIPファイルの一括生成」を同時に行う処理の実装でした。ピュアJavaScriptによるMP3エンコーダー(lamejs)とZIP書庫生成ライブラリ(JSZip)をシームレスに結合させ、メモリリークを起こすことなく大容量データを一括圧縮・ダウンロードできる仕組みを作るのは、開発者として本当に泥臭く困難な戦いでした。また、分割された音声のつなぎ目部分で「プツッ」というノイズ(ポップノイズ)が発生しないよう、ミリ秒単位で音量がフェードアウトする超繊細なADSRエンベロープ(音量カーブ)のロジックをJavaScriptで書き上げたのも、私の強いこだわりです。