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で和音を奏でられる(ポリフォニック)シンセサイザーを

Last updated at Posted at 2020-09-16

前の記事

Maxでエンベロープを使ってポーーをポーンやホワーァンに

バージョン

Version 8.1.5(9359645)(64-bit windows)

複数の音を同時に鳴らすには?

前回作ったやつは一度に一つの音しか出せない…。ドの鍵盤を押しながらミの鍵盤を押すと、ドの音が消えてミの音が流れ出す。

Q. 複数の音を鳴らせるシンセサイザーにするにはどうすりゃいいのさ?
A. 音を作る部分を別部品化 そして MIDI鍵を押すたびに音を作る部品を呼び出す
image.png
なんかちょっとオブジェクト指向っぽい。
音を作る部分を別部品化 = クラス
MIDI鍵を押すたびに音を作る部品を呼び出す = インスタンス
っぽいイメージ。

参考サイトさん 簡易的なポリフォニック・シンセサイザーを作る

音を作る部分を別部品化するぞ

別部品化 = 別ファイル。
音を出す部品を『synth_cycle』、部品を呼び出す方を『root』にしてみました。
image.png
synth_cycleの中をいじっていきます。
まずは in オブジェクトで引数を設定。
image.png
buttonオブジェクトはやめて t オブジェクトを使ってみるぞい!
(tはtriggerの略、引数のbは『bang信号に変えろ』って意味)
image.png
out~ オブジェクトで戻り値設定。
image.png
thispoly~ オブジェクトでこの部品は音を出して『いるのか』『いないのか』を呼び出し元のpoly~オブジェクトに伝えることができる。
image.png
最終的にsynth_cycle君はこんな感じ。
(inとoutには何番目の引数or戻り値なのかを設定する為の引数が必要)
image.png

部品を呼び出す側を作る

まずは部品を呼び出す poly~ オブジェクトを追加!
image.png
続いて prepend オブジェクトを追加!
こいつの役割がまだぼんやりとしか理解できない…(´・ω・`)
image.png

最終的にはこんな感じ。無事和音が鳴らせるようになり申した(๑•᎑•๑)
image.png
試しにprepend無しにしてみたら『単音しか出ない状態』になった。
ということはprependは『poly~をマルチに使えるように信号を蓄えるやつ』というのが役割なのかな?
prependの理解については残課題って感じですなぁ…。

次の記事

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

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?