以前、楽曲構造の分析を行う支援ツールとして楽曲構成タグ付けWebアプリを実装しました。
さっそくアプリを使って自身で楽曲構造タグ付けの作業をするうちに、分析の効率化のために機能を追加したくなりました。
3か所ほど機能を追加・修正したので、追加・修正内容を紹介します。
修正点
jsonフォーマットの変更
以前は楽曲構成情報オブジェクトの配列データとしていました。
しかし、jsonファイルには様々な分析用の情報も一緒に格納したほうが便利なので、オブジェクトの"sections"に楽曲構成情報オブジェクトの配列データを格納する形式に変更しました。
{ "creationDate": "2022/3/8 23:49:30", "audiofileName": "audiofile", "audiofilePath": "", "audiofilepath":"./audiofile.flac", "sections":[ { "id":0, "section":"Verse", "startTime":"00:00", "endTime":"00:48" }, { "id":1, "section":"2nd-verse", "startTime":"00:48", "endTime":"00:59" }, { "id":2, "section":"Chorus", "startTime":"00:59", "endTime":"01:27" }, # .... ] }
json アップロード
作成した楽曲構成JSONファイルを修正する際に、Jsonファイルをテキストエディタで開いて編集するのは面倒であり、また、入力ミスが起こりやすことが問題となりました。
そこで、一度作成した楽曲構成JSONファイルをWebアプリ上にアップロードして編集できるようにしました。
ローカルのjsonファイルのアップロードの実装は以下を参考にしました。
楽曲構成の候補の追加
楽曲構成のタグ付けを行う中で、2nd-verseを多用したり、電子音楽系の楽曲用の楽曲構成タグが欲しいと感じたので、楽曲構成候補テキストを追加しました。
まとめ
追加しないと不便と感じた機能から追加修正しました。
もしご要望等ありましたら、コメントやTwitterDM等でご連絡いただければ幸いです。
今後、以下のような機能の追加を検討しています。
- 楽曲構成だけでなく、楽器構成も素早くタグ付けできるように、テキスト候補に追加する
- 楽曲/楽器構成タイムラインの画像データ出力
- wavesurfer.jsのRigion利用→波形の上にタグ付けした区間をマッピング
- セクションを開始時間でソート
- (半自動タグ付け)