Floaout
高品質・高機能で聴かせたいありのままの音を残せる次世代の音声フォーマットです。
全チャンネル対応の高音質なイマーシブサウンドであり、誤り訂正符号や様々な付加情報などを含めることもできます。
Timeline
アイデアの考案
考案開始
大体この時期に、素晴らしいアーティスト方の曲をいつの時代でも残って聴き続けられるようにするために、高機能、高品質で作品性を上げるフォーマットを作成したいと思いました。そのため高品質でイマーシブサウンド等を含むフォーマットを考案し始めました。このときはアルゴリズムや仕様とかはまだ決まっていませんでした。
開始
大学に入り、Randamateの方もひと段落ついたので、本格的に作成に向けて動き始めました。
使用言語決定
Rustで書くことを決定しました。
名称決定
Floaout
名称を「Floaout」に決定しました。大体15分で考えました。
仕様を書き始める
頭の中にあった構成をとりあえず書き記しました。仕様はまだ甘いが、イマーシブサウンドを実現するための離散型と連続型のアルゴリズムなどのアイデアが、この時期にはある程度固まっていました。
開発開始
離散型のフォーマットの読み書きができるようにするまでを第一目標にし、まずはwavの読み書きから開発を始めました。
似たようなフォーマットの存在
Dolby AtmosとDTS:Xの存在を知りました。これらの素晴らしいフォーマットに負けないくらいのフォーマットを作成したいという思いと同時に同志がいたという嬉しさもありました。ここでイマーシブという言葉も知りました。
2段階の構成
Bubble
拡張性を上げるために、個々の音源でフォーマットを持たせるようにしました。
離散型フォーマット完成1
何度も仕様を調整しつつ、離散型のフォーマットが完成しました。
自作OSに挑戦
GUIのソフトウェアを作成するくらいならOS作成した方が一石二鳥だと思い、UEFIやRISC-Vなどについて調べたり開発し始めました。
OS断念と書き直し
フォーマット完成の後ちょっとした変更をしつつ、自作OSを作っていたが、立ちはだかる高い壁がありました。そのため一旦OSは断念し、それらの勉強で少し自分のRust能力が少し上昇しリファクタリングしたかったので、ライブラリの開発をもう一度1から始めました。
離散型フォーマット完成2
ライブラリとしてある程度完成しました。
方向性の確定
未踏への応募をきっかけに方向性とかを文書として作成しました。
フォーマットの計画
もう一つの未踏に応募をきっかけにどうしたら普及するかやビジネスモデルなどを文書としてまとめました。ちなみに未踏は両方落ちました。
関数型を主に
離散型と連続型両方にメリット・デメリットがあったが、より広く表現可能であるのが連続型であったので、連続型を主にするようにしました。
誤り訂正符号の勉強
フォーマットで使用する誤り訂正符号について詳しく勉強し始めました。
連続型開発開始
ウォーターフォールで連続型の開発を開始しました。
連続型完成
連続型のFloaoutの読み書きが完成しました。再生もしました。
パーサコンビネータ(MPL)開発開始
PEGの論文等を読んで、TDPLに似た形式文法のパーサジェネレータの開発を開始し始めました。
パーサコンビネータ(MPL) 0.1.0 のリリース
パーサコンビネータのMPLのバージョン0.1.0をリリースしました。
Floaout 0.2.0 のリリースとコンテストへの応募
Floaoutのバージョン0.2.0のリリースとU-22プログラミング・コンテストに何とか応募できました。再生ソフトウェアのPOPも作成しました。経済産業大臣賞を受賞したいです。
U22プロコン最終審査会にて、経済産業大臣賞を受賞
U-22プログラミング・コンテストの事前審査と一次審査を経て、最終審査会がオンラインでありました。アイデアにおいて経済産業大臣賞をいただきました。