17
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MATLABでAudio Plugin開発~スーパーMATLABミュージシャンに俺はなる~

Last updated at Posted at 2022-05-30

はじめに

こんにちは!MATLAB AmbassadorのKMと申します!

先日開催されたMATLAB EXPOのLightning Talkにて発表をさせていただきました!タイトルは

MATLABでAudio Plugin開発 ~スーパーMATLABミュージシャンに俺はなる~

でした.こんなにふざけちゃってよかったんでしょうか?(笑)

内容はMATLABのAudio Toolboxを用いたオーディオプラグイン開発事例の紹介です.この記事では,当日の話をところどころ補足しながら,発表の内容をまとめます.

きっかけ

「スーパーMATLABミュージシャン」という名前は,大学の先生から頂きました.というのも,授業の質問ついでに「いつもTwitter見てます!」と連絡したら,こんな返信を頂いたんですよね.
image.png
「スーパーMATLABミュージシャンって何?🤔」と内心思いつつも,

「俺がスーパーMATLABミュージシャンになってやる🔥」

という気持ちがこみ上げてきました(嘘です).
image.png

ちなみにですが,私は矢田部先生のこちらのツイートのおかげでMATLABに出会いました.なんとも感慨深いですね.

MATLAB×ミュージシャン?

そんなこんなで,私は「スーパーMATLABミュージシャンになる」という使命を負ってしまったわけです.しかし,当然以下の疑問が生じます

そもそもMATLABとミュージシャンって,何か関係あるの?
image.png

でも大丈夫!Audio Toolboxとオーディオプラグインが私の味方です.

オーディオプラグイン とは

タイトルにもあるオーディオプラグインですが,もしかしたらあまり馴染みのない言葉かもしれません.

オーディオプラグインは音楽制作などに用いられるプラグインです.DAW(音楽制作のためのソフトウェア)にプラグインを追加することで,さまざまな音源やエフェクタが利用可能になります.音源としては,シンセサイザやピアノ,オーケストラ音源などがあげられ,エフェクタとしては残響音を追加するリバーブや音を整えるイコライザ,コンプレッサ,リミッターなどがあげられます.

要するに,オーディオプラグインは音の幅を広げてくれるわけです.

オーディオプラグイン開発

もしもオーディオプラグインを自分で作れたら,音作りの幅はさらに広がります.では,オーディオプラグインはどうやって作ればよいのでしょうか?

オーディオプラグインにはVSTと呼ばれる規格が存在しています.したがって,オーディオプラグインを作るには,VSTの仕様に合わせてC++でプログラムを書く必要があります.

generateAudioPlugin

ではC++を書かねばならないのか?というと,そんなことはありません.実は,MATLABのAudio ToolboxにはgenerateAudioPluginという関数が存在します.

名前の通りの関数で,MATLABで作成したオーディオプラグインのクラスファイルから,VSTプラグインを生成できる優れものです.

AudioToolbox,すごすぎる......
image.png

オーディオプラグイン作ってみた!

というわけで,私もオーディオプラグインを作ってみました!

今回作成したプラグインはケロケロエフェクタです.オートチューンと呼ばれることもありますね.

ケロケロエフェクタは,声の高さを音階にピッタリ合わせます.これにより,声の高さが階段状に変化するようになり,ロボットのような声が得られます.

例えばPerfume - ポリリズムはケロケロボイスが特徴的な楽曲の一つです.

ほかにも,dodo & tofubeats - nirvana とかもケロケロエフェクタが用いられていますね(めっちゃ好き).

完成したプラグイン

完成したプラグインがこちらです.Autotuneのチェックボックスを有効にすると,声がロボットっぽくなるのがわかるかと思います.また,後半でHarmonic Shiftのつまみを動かしますが,これを活用すればハモリを作り出すこともできます.

プラグインの効果はスペクトログラムをみるとよくわかります.まず,エフェクタをかけない状態がこちら.音高が滑らかに変化していますね.
image.png
これに対し,ケロケロエフェクタを適用すると,音高が真っ平になりました!これがケロケロエフェクタの効果です.
image.png
また,ハモリをつくって元の声と重ねると,こんな感じになります.
image.png

完成した曲(!?)

さて,これまで技術的な話ばかりしてきましたが,せっかくなのでミュージシャンっぽいこともしなければ!

というわけで,曲を作ってきました!それでは聴いてください.スーパーMATLABミュージシャンで「線形代数できたらな」

切実な歌詞にうるっときますね.線形代数,できたらな......

おわりに

当日は,久しぶりの対面でのプレゼンテーションでめちゃくちゃ緊張しましたが,MathWorksの方々と初めて対面でお話しできたり,多くの魅力的な展示を見ることができたりと,非常に充実した一日でした!来年も参加したいですね!

ソースコード

完成したケロケロエフェクタのプログラムは以下からダウンロードできます!
https://jp.mathworks.com/matlabcentral/fileexchange/112420-autotune

17
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?