cSounds.com - тъюториалы – Тъюториал по дизайну инструментов
Тъюториал 12: Таблицы и метки

Это наш наиболее сложный инструмент. Мы внедрили в него возможность хранить высоты в таблице, а затем ссылаться на них по номерам тремя различными способами: 1) напрямую, 2) посредством lfo и 3) в случайном порядке. В качестве средства переключения между этими тремя способами мы использовали команды программного управления Csound'а, а также логические и условные операторы.


 
Навигация

[индекс] [предыдущая] [следующая]


cSounds.com

[+] На главную

Руководство по Csound

[+] if
[+] igoto
[+] kgoto

Прослушать

[+] Toot12.mp3 477k


 
Toot12.orc

                    instr 12

          iseed     =         p8

          iamp      =         ampdb(p4)

          kdirect   =         p5

          imeth     =         p6

          ilforate  =         p7                            ; частота для lfo и случайных индексов

          itab      =         2

          itabsize  =         8



if (imeth == 1)     igoto     direct

if (imeth == 2)     kgoto     lfo

if (imeth == 3)     kgoto     random



direct:   kpitch    table     kdirect, itab                 ; индексируем f2 через p5

                    kgoto     contin



lfo:      kindex    phasor    ilforate

          kpitch    table     kindex * itabsize, itab

                    kgoto     contin



random:   kindex    randh     int(7), ilforate, iseed

          kpitch    table     abs(kindex), itab



contin:   kamp      linseg    0, p3 * .1, iamp, p3 * .9, 0  ; амплитудная огибающая

          asig      oscil     kamp, cpspch(kpitch), 1       ; аудио осциллятор

                    out       asig

                    endin

Toot12.sco

f1   0    4096 10 1                                         ; Синус

f2   0    8    -2 8.00 8.02 8.04 8.05 8.07 8.09 8.11 9.00   ; параметры до-мажорной гаммы для cpspch



; метод 1 – прямое индексирование значений в таблице

; инстр    нач длит амп индекс метод частlfo   rndнач

  i12     0    .5   86   7         1         0         0

  i12     .5   .5   86   6         1         0

  i12     1    .5   86   5         1         0

  i12     1.5  .5   86   4         1         0

  i12     2    .5   86   3         1         0

  i12     2.5  .5   86   2         1         0

  i12     3    .5   86   1         1         0

  i12     3.5  .5   86   0         1         0

  i12     4    .5   86   0         1         0

  i12     4.5  .5   86   2         1         0

  i12     5    .5   86   4         1         0

  i12     5.5  2.5  86   7         1         0

  f0      10

s

; метод 2 – индексирование посредством lfo

; инстр    нач длит амп индекс метод частlfo   rndнач

  i12     0    2    86   0         2         1         0

  i12     3    2    86   0         2         2

  i12     6    2    86   0         2         4

  i12     9    2    86   0         2         8

  i12     12   2    86   0         2         16

  f0      16

s

; метод 3 – случайный индекс

; инстр    нач длит амп индекс метод частlfo   rndнач

  i12     0    2    86   0         3         2         .1

  i12     3    2    86   0         3         3         .2

  i12     6    2    86   0         3         4         .3

  i12     9    2    86   0         3         7         .4

  i12     12   2    86   0         3         11        .5

  i12     15   2    86   0         3         18        .6

  i12     18   2    86   0         3         29        .7

  i12     21   2    86   0         3         47        .8

  i12     24   2    86   0         3         76        .9

  i12     27   2    86   0         3         123       .9

  i12     30   5    86   0         3         199       .

Рисунок 12: Таблицы и метки

[+] Какие-либо вопросы, комментарии или предложения? Пожалуйста, дайте нам знать:
support@csounds.com