ギターを初めたから練習に使えるWebアプリを作った
published: 2021-11-19
revised: 2021-11-23
カテゴリ: 開発
好きな配信者の方に影響されてギターをはじめました。
ギターで和音を鳴らすときには弦を押さえる手の形が色々あってコードフォームと言います。コードフォームの規則性を掴むためにコードフォームからコードを逆引きするサイトを作りました。
フロントエンドにReact、ホスティングにはAmplifyを使っています。
これを実装するために音楽理論について色々知れたのでかなり良かったです。
おまけとしてマイクの音を表示するページだったり、メトロノームのページを付けています。おまけページの実装のためにWebAudioAPIを使ったのですが、色々な電子音を鳴らしたり、エフェクトを掛けられたりして面白かったです。
マイクの音を音階に変換する箇所は高速フーリエ変換を使っているのですが、低音部分の精度が低くさを補うためにフーリエ変換の窓を大きくすることになり、遅延を生んでいるのでRustでエフェクトを書いてWASMで組み込んで~みたいなのをやるべきだと思います。いつか気が向いたら…。
メトロノームは、javascriptのtimeoutやintervalはセキュリティのために精度が下げられているので、WebAudioAPIの時計とうまく組み合わせてやる必要があり面白かったです。