Table lookup: lookup~
waveshaping synthesis에서audio signal은lookup table에 접근하는데 사용된다. Lookuptable은 shaping function을 가진다. 입력신호의 각각 샘플값은 table에 저장된 값(숫자의 배열)을 조사(look up)하는데에 사용된다. Lookup table은 순서에 관계없이 어떤 값들을 포함하고있기 때문에, 선형범위에서의 값을( 예를들면 -1 에서 1까지) 비 선형(lookup에 저장되어있는게 무엇이든 간에)으로 mapping하는데 유용하다. Table 오브젝트가 lookup table의 예이다. Input에 수를 받으면(0~127) table에 저장되어있는 값이 무엇이든 access하는데 사용된다.
lookup~은 buffer~에 저장된 샘플을 lookup table로 사용하게 해준다. Lookup table은 -1에서 1까지의 범위에서 access된다. 만약 512의 샘플이 사용된다면, input값 범위 -1~0이 처음 256값으로 map되며, 0~1이 그 다음 256값으로 map된다. Lookup~은 그 두 값사이에 필요에 따라서 내삽값을 줄수 있다.
Lookup~의 상세
right inlet으로 받은 tablesize에서(1미만으로 주어야함) left inlet으로 받는 signal(숫자)를 middle inlet으로 받는수를 offset으로 하여 읽는다. Argument값은 buffer~에서 들어오는 이름이 쓰이며(즉 이미 존재하는 waveform이 들어오는것임) default는 위에서 말한것처럼 512 samples이다.
1. by band. : 미리 보내진 gtr512 aiff가 55의 frequency로 나가고 있는 신호에서, line에서 100ms의 시간으로 직접 입력한 숫자에 의해 waveshaping된다. lookup위의 *는 amplitude를 결정한다. 즉, cycle~의 amplitude는 lookup table의 scanning range에 의해 결정되어진다. 그 후 *~에서는 또 다른 기본 amplitude와 결합 한 후 출력한다.
2, by envelope : function table에서 읽혀진 수들이 amplitude에 적용된다.
3. by modulating wave (0.15와 1을 대입한 경우) “ 1이 cycle에서 0.45 amplitude와 결합하고, 다시 0.5와 결합한 cycle이 0.15의 depth로 50 ms와 line으로 결합한다. 즉, 1은 modulation rate로, 0.15는 modulation depth로 적용된다.