はじめに
こんにちは!MATLAB AmbassadorのKMと申します!
先日開催されたMATLAB EXPOのLightning Talkにて発表をさせていただきました!タイトルは
MATLABでAudio Plugin開発 ~スーパーMATLABミュージシャンに俺はなる~
でした.こんなにふざけちゃってよかったんでしょうか?(笑)
内容はMATLABのAudio Toolboxを用いたオーディオプラグイン開発事例の紹介です.この記事では,当日の話をところどころ補足しながら,発表の内容をまとめます.
きっかけ
「スーパーMATLABミュージシャン」という名前は,大学の先生から頂きました.というのも,授業の質問ついでに「いつもTwitter見てます!」と連絡したら,こんな返信を頂いたんですよね.
「スーパーMATLABミュージシャンって何?🤔」と内心思いつつも,
「俺がスーパーMATLABミュージシャンになってやる🔥」
ちなみにですが,私は矢田部先生のこちらのツイートのおかげでMATLABに出会いました.なんとも感慨深いですね.
「4月だけど大学始まらないし何か勉強したいけど何しよう」って思ってる理系の皆さん,MATLABをやるのはいかがでしょう?
— 矢田部浩平 (@yatabe_) April 2, 2020
学部1年必修のプログラミングや線形代数の勉強になるだけでなく,2年生以降の専門科目に関連した内容を最も手っ取り早く試せるツールなのでオススメです!
MATLAB×ミュージシャン?
そんなこんなで,私は「スーパーMATLABミュージシャンになる」という使命を負ってしまったわけです.しかし,当然以下の疑問が生じます
でも大丈夫!Audio Toolboxとオーディオプラグインが私の味方です.
オーディオプラグイン とは
タイトルにもあるオーディオプラグインですが,もしかしたらあまり馴染みのない言葉かもしれません.
オーディオプラグインは音楽制作などに用いられるプラグインです.DAW(音楽制作のためのソフトウェア)にプラグインを追加することで,さまざまな音源やエフェクタが利用可能になります.音源としては,シンセサイザやピアノ,オーケストラ音源などがあげられ,エフェクタとしては残響音を追加するリバーブや音を整えるイコライザ,コンプレッサ,リミッターなどがあげられます.
要するに,オーディオプラグインは音の幅を広げてくれるわけです.
オーディオプラグイン開発
もしもオーディオプラグインを自分で作れたら,音作りの幅はさらに広がります.では,オーディオプラグインはどうやって作ればよいのでしょうか?
オーディオプラグインにはVSTと呼ばれる規格が存在しています.したがって,オーディオプラグインを作るには,VSTの仕様に合わせてC++でプログラムを書く必要があります.
generateAudioPlugin
ではC++を書かねばならないのか?というと,そんなことはありません.実は,MATLABのAudio ToolboxにはgenerateAudioPluginという関数が存在します.
名前の通りの関数で,MATLABで作成したオーディオプラグインのクラスファイルから,VSTプラグインを生成できる優れものです.
オーディオプラグイン作ってみた!
というわけで,私もオーディオプラグインを作ってみました!
今回作成したプラグインはケロケロエフェクタです.オートチューンと呼ばれることもありますね.
ケロケロエフェクタは,声の高さを音階にピッタリ合わせます.これにより,声の高さが階段状に変化するようになり,ロボットのような声が得られます.
例えばPerfume - ポリリズムはケロケロボイスが特徴的な楽曲の一つです.
ほかにも,dodo & tofubeats - nirvana とかもケロケロエフェクタが用いられていますね(めっちゃ好き).
完成したプラグイン
完成したプラグインがこちらです.Autotuneのチェックボックスを有効にすると,声がロボットっぽくなるのがわかるかと思います.また,後半でHarmonic Shiftのつまみを動かしますが,これを活用すればハモリを作り出すこともできます.
MATLAB EXPOで紹介したMATLAB製ケロケロエフェクタです.
— K.M.@MATLAB Ambassador (@km_MATLAB_Amb) May 30, 2022
発表だと伝わりづらかったかもしれませんが,実際はリアルタイムでパラメータを調整できます. pic.twitter.com/7SlSLWIwK0
プラグインの効果はスペクトログラムをみるとよくわかります.まず,エフェクタをかけない状態がこちら.音高が滑らかに変化していますね.
これに対し,ケロケロエフェクタを適用すると,音高が真っ平になりました!これがケロケロエフェクタの効果です.
また,ハモリをつくって元の声と重ねると,こんな感じになります.
完成した曲(!?)
さて,これまで技術的な話ばかりしてきましたが,せっかくなのでミュージシャンっぽいこともしなければ!
というわけで,曲を作ってきました!それでは聴いてください.スーパーMATLABミュージシャンで「線形代数できたらな」
本日のMATLAB EXPO Lighting Talkで流した曲です.
— K.M.@MATLAB Ambassador (@km_MATLAB_Amb) May 25, 2022
声の加工(ケロケロボイス)にMATLABで実装したVSTプラグインを用いています😎 pic.twitter.com/aVpPde8LxH
切実な歌詞にうるっときますね.線形代数,できたらな......
おわりに
当日は,久しぶりの対面でのプレゼンテーションでめちゃくちゃ緊張しましたが,MathWorksの方々と初めて対面でお話しできたり,多くの魅力的な展示を見ることができたりと,非常に充実した一日でした!来年も参加したいですね!
ソースコード
完成したケロケロエフェクタのプログラムは以下からダウンロードできます!
https://jp.mathworks.com/matlabcentral/fileexchange/112420-autotune