0
0

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 3 years have passed since last update.

MaxでMIDI鍵を弾く強さによって音の大きさが変わるポリフォニックシンセサイザーを

Last updated at Posted at 2020-09-18

前の記事

Maxで和音を奏でられる(ポリフォニック)シンセサイザーを

バージョン

Version 8.1.5(9359645)(64-bit windows)

鍵盤を弾いた強さはどうやって取得するの?

noteinオブジェクトのVelocityから取ってくるぞい!
image.png
一番弱く弾いた時のVelocityの値は1、逆に一番強く弾いた時の値は127でごわす。

キーボード番号とベロシティをセットにしたメッセージにしてあげる必要あり

味噌になるのが pack オブジェクト。
image.png
packオブジェクトでキーボード番号とベロシティを一つにまとめてあげないといけない。

『キーボード番号を第1引数、ベロシティを第2引数にして音を作る部品に渡す』という風に作るとうまくいかなかった(´・ω・`)

音を作る部品を呼び出す側はこんな感じ

image.png
print オブジェクト(=Maxコンソールに出力するやつ)に繋げるとpackが何をしているのかが分かるっ!
image.png
60番の鍵盤を116の強さで弾いた時の例。コンソールは2行にならずに1行にまとまってる。
image.png

packされたメッセージを受け取った側ではpackの逆を

unpack オブジェクで届いたメッセージを分解しまする。
image.png

ベロシティの値にはscaleとdbtoaをかませる

ベロシティの値を単純に÷127せずに、まずはデシベルに変換します。
その為に scale オブジェクトを使う!
image.png
んでもってデシベルを音の大きさをコントロールする値に変換!
dbtoa オブジェクト。
image.png

参考サイトさん https://music.arts.uci.edu/dobrian/maxcookbook/use-midi-velocity-amplitude-envelope
参考サイトさん https://natuch.com/2014/12/26/decibel/

音を作る部品はこんな感じ

image.png
(音を作る部品はsynth_cycle.maxpatという名前のファイルにしています)

次の記事

Maxで音の波の加算合成(AM)

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?