1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775
|
Release Notes for 3.50
======================
These are the release notes for version 3.50. This accumulates a
number of changes which have been released in bits, but there are even
more here than previously released.
It incorporates significant bodies of code from Gabriel Maldonado and
hans Mikelson, with contributions from Richard Boulanger, V.Lazzarini,
Greg Sulliven, rasmus ekman, matt ingalls, Ed Hall, and many others
who assisted in identifying bugs etc. (I really should maintain
records of them all, but they know who they are I hope).
Bug Fixes
---------
Pow now available again.
Internal changes to parser to make fewer calls to strcmp
Corrections to rand in a-rate case and 16 bit randoms
Two bugs in extending labels and goto tables corrected
Minor bug in extending instrument numbers fixed
Language Changes
----------------
hetro had a wrong constant which would give rise to a little noise.
If the incorrect out opcode is used it now attempts to correct to the
correct one, which is not necessarily correct.
new names dumpk rather than kdump introduced.
kon renamed midion
kfilter2 renamed filter2 (still not sure it works though)
The opcodes rand randi and randh take an additional, optional argument
which if non zero gives a 31bit random nuber rather than the 16bit one.
Rising to a power is available in expressions with the ^ operator.
use with some caution as I am not sure that the precidence is correct.
An internal changes has changed the conditional compilation flag for
the Ingalls' port from __MWERKS__ to macintosh; this should help the
BeOS port.
The single file .csd input has been extended for all command-line
versions, and possibly for Windows. It can not decode additional
parameters.
Id a file .csoundrc exists, it is read to set parameters first, which
can be overridden. It used the .csd form so options are written as on
the command line, with optional newlines at appropriate places. It
does not set orc/sco names (as far as i can understand it)
Opcode Fixes
------------
sndwarp had bugs on Linux
rand, randh and randi now take an additional operand, which if
non-zero use a better randon number generator
bug in ntrpol fixed
MIDI on Linux may work, or may not....
Many changes to the pitchbend opcodes
moogvcf and rezzy can accept a-rate parameters, and moogvcf takes an
optional scaling factor
foscil/foscili can take a-rate amplitude and frequency
biquad has an additional optional argument, which if non zero skips
initialisation.
New Opcodes
-----------
schedule -- schedule an instrument event
schedwhen -- conditional scheduling
lfo -- Low Frequency Oscilator with 6 shapes
midion2 -- MIDI turnon (G.Maldonado)
midiin -- (G.Maldonado)
midiout -- (G.Maldonado)
nrpn -- (G.Maldonado)
cpstmid -- (G.Maldonado)
streson -- string resonator (V.Lazzarini)
mod opcodes -- to complete arithmetic operations
slider8, slider8f, islider8
slider16, slider16f, islider16
slider32, slider32f, islider32
slider64, slider64f, islider64
s16b14, is16b14, s32b14, is32b14 -- MIDI slider controls (G.Maldonado)
vco -- (Hans Mikelson)
planet -- (Hans Mikelson)
distort1 -- (Hans Mikelson)
pareq -- Implementation of Zoelzer's Parmentric Equalizer Filters (Hans Mikelson)
deltapn -- (Hans Mikelson)
Experimental opcodes:
--------------------
oscil3 -- Just like oscili but with cubic interpolation
foscil3
losil3
table3
itable3
deltap3
vdelay3
Other Changes:
-------------
use of kdump or kon, while still allowed gives a message about
deprecated opcodes.
Windows GUI Changes
-------------------
None i think
------------------------------------------------------------------------
==John ff
1999 Orthodox Christmas
========================================================================
schedule, schedwhen
schedule inst, iwhen, idur, ....
schedwhen ktrigger, kinst, kwhen, kdur, ....
PERFORMANCE
schedule adds a new score event. The arguments are the same as in a
score. The when time (p2) is measured from the time of this event.
If the duration is zero or negative the new event is of MIDI type, and
inherits the release sub-event from the scheduling instruction.
In the case of schedwhen the event is only scheduled when the krate
value ktrigger is first non-zero.
Examples:
;; Double hit and 1sec separation
instr 1
schedule 2, 1, 0.5, p4, p5
a1 shaker p4, 60, 0.999, 0, 100, 0
out a1
endin
instr 2
a1 marimba p4, cpspch(p5), p6, p7, 2, 6.0, 0.05, 1, 0.1
out a1
endin
instr 3
kr table kr, 1
schedwhen kr, 1, 0.25, 1, p4, p5
endin
------------------------------------------------------------------------
lfo
kr lfo kamp, kcps[, itype]
ar lfo kamp, kcps[, itype]
DESCRIPTION
A LFO of various shapes
INITALIZATION
itype -- determine the form of the oscilator
(default) 0: sine
1: triangles
2: square (biplar)
3: square (unipolar)
4: saw-tooth
5: saw-tooth(down)
The sine wave is implemented as a 4096 table and linear
interpolation. The others are calculated.
PERFORMANCE
ar, kr - output signal
kamp - amplitude
kcps - frequency of oscilator
EXAMPLE:
instr 1
kp lfo 10, 5, 4
ar oscil p4, p5+kp, 1
out ar
endin
------------------------------------------------------------------------
minion2
midion2 kchn, knum, kvel, ktrig
DESCRIPTION
sends note on and off messages to the midi out port when triggered by a
value different than zero.
PERFORMANCE
kchn - midi channel
knum - midi note number
kvel - note velocity
ktrig - trigger input signal (normally 0)
Similary to 'midion', this opcode sends note-on and note-off messages
to the midi out port, but only when ktrig is different than zero. This
opcode is thinked to work toghether with the output of the 'trigger' opcode.
(G.Maldonado)
------------------------------------------------------------------------
midiin
kstatus, kchan, kdata1, kdata2 midiin
DESCRIPTION
returns a generic midi message received by the midi in port
PERFORMANCE
kstatus - the type of midi message. Can be:
128 (note off),
144 (note on),
160 (polyphonic aftertouch),
176 (control change),
192 (program change),
208 (channel aftertouch),
224 (pitch bend)
or 0 if no midi message are pending in the MIDI IN buffer.
kchan - midi channel (1-16)
kdata1, kdata2 - message-dependent data values
midiin has no input arguments, because it reads at the midi in port
implicitly. It works at k-rate. Normally (i.e. when no messages are
pending) kstatus is zero, only each time midi data are present in the
midi in buffer, kstatus is set to the type of the relative messages.
(G.Maldonado)
------------------------------------------------------------------------
midiout
midiout kstatus, kchan, kdata1, kdata2
DESCRIPTION
sends a generic midi message to the midi out port
PERFORMANCE
kstatus - the type of midi message. Can be:
128 (note off),
144 (note on),
160 (polyphonic aftertouch),
176 (control change),
192 (program change),
208 (channel aftertouch),
224 (pitch bend)
or 0 when no midi messages must be sent to the MIDI OUT port.
kchan - midi channel (1-16)
kdata1, kdata2 - message-dependent data values
midiout has not output arguments, because it sends the message to the
midi out port implicitly. It works at k-rate. It sends a midi message
only when kstatus is different than zero.
Warning! Normally kstatus should be set to 0, only when the user
intend to send a midi message, it can be set to the corresponding
message type number.
(G.Maldonado)
------------------------------------------------------------------------
nrpn
nrpn kchan, kparmnum, kparmvalue
DESCRIPTION
sends a nprn (Non Registered Parameter Number) message to the midi out port
each time one of the input arguments changes.
PERFORMANCE
kchan - midi channel
kparmnum - number of NRPN parameter
kparmvalue - value of NRPN parameter
This opcode sends new message when the MIDI translated value of one of
the input arguments changes. It operates at k-rate. Useful with the
midi instruments that recognize NRPNs (for example with the newest
sound-cards with internal midi synthesizer such as SB AWE32, AWE64,
GUS etc. in which each patch parameter can be changed during the
performance via NRPN)
(G.Maldonado)
------------------------------------------------------------------------
cpstmid
icps cpstmid ifn
INITIALIZATION
ifn - function table containing the parameters
(numgrades, interval, basefreq, basekeymidi) and
the tuning ratios.
(init rate only)
This unit is similar to cpsmidi, but allows fully customized
micro-tuning scales. It requires five parameters, the first ifn is
the function table number of the tuning ratios, and the other
parameters must be stored in the function tables itself. The function
table ifn should be generated by the GEN2 and the first four values
stored in this function are: numgrades (the number of grades of the
micro-tuning scale), interval (the frequency range covered before
repeating the grade ratios, for example 2 for one octave, 1.5 for a
fift etcetera), basefreq (the base frequency of the scale in cps),
basekeymidi (the midi-note-number to which to assign the basefreq
unmodified).
After these four values, the user can begin to insert the tuning
ratios. For example, for a standard 12-grade scale with the
base-frequency of 261 cps assigned to the key-number 60, the
corresponding f-statement in the score to generate the table should
be:
; numgrades basefreq tuning-ratios (eq.temp) ..
.....
; nterval basekeymidi
f1 0 64 -2 12 2 261 60 1 1.059463094359 1.122462048309 1.189207115003 ..etc...
Another example with a 24-grade scale with a base frequency
of 440 assigned to the key-number 48, and a repetition interval of 1.5:
; numgrades basefreq tuning-ratios .......
; interval basekeymidi
f1 0 64 -2 24 1.5 440 48 1 1.01 1.02 1.03 ..etc...
(G.Maldonado)
------------------------------------------------------------------------
ar streson asig, kfr, ifdbgain
An audio signal is modified by an string resonator with variable
fundamental frequency.
INITIALIZATION
ifdbgain - feedback gain, between 0 and 1, of the internal
delay line. A value close to 1 creates a slower decay and
a more pronounced resonance. Small values may leave the
input signal unaffected. Depending on the filter frequency,
typical values are > .9.
PERFORMANCE
streson passes the input asig through a network composed of comb,
low-pass and all-pass filters, similar to the one used in some
versions of the Karplus-Strong algorythm, creating a string resonator
effect. The fundamental frequency of the "string" is controled by
the k-rate variable kfr.This opcode can be used to simulate sympathetic
resonances to an input signal.
streson is an adaptation of the StringFlt object of the SndObj Sound
Object Library developed by the author.
Victor Lazzarini
Music Department
National University of Ireland, Maynooth
Maynooth Co.Kildare
Ireland
------------------------------------------------------------------------
Expression:
kr = ka % kb
ar = ka % ab
ar = aa % kb
ar = aa % ab
PERFORMANCE
Returns the valus a reduced by b, so the result in absolute value that
the absoute value of b, by repeated subtraction. This is the same as
a modulus function in the integer case.
------------------------------------------------------------------------
ar vco kamp, kfqc, iwave, kpw, isine, imaxd
Implementation of an band limited analog modeled oscillator based on
integration of band limited impulses.
Performance
vco can be used to simulate a variety of analog wave forms.
kamp determines the amplitude, kfqc is the frequency of the wave,
iwave determines the waveform 1 = sawtooth, 2 = Square/PWM, 3 = triangle/Saw
Ramp
kpw determines the pulse width when iwave is set to 2 and determines
Saw/Ramp character when iwave is set to 3. The value of kpw should be
between 0 and 1. A value of .5 will generate a square wave or a triangle
wave depending on iwave.
isine should be the number of a stored sine wave table.
imaxd is the maximum delay time. A time of 1/ifqc may be required for the
pwm and triangle waveform. To bend the pitch down this value must be as
large as 1/(minimum frequency).
Example
instr 10
idur = p3 ; Duration
iamp = p4 ; Amplitude
ifqc = cpspch(p5) ; Frequency
iwave = p6 ; Selected wave form 1=Saw, 2=Square/PWM, 3=Tri/Saw-Ramp-Mod
isine = 1
imaxd = 1/ifqc*2 ; Allows pitch bend down of two octaves
kpw1 oscil .25, ifqc/200, 1
kpw = kpw1 + .5
asig vco iamp, ifqc, iwave, kpw, 1, imaxd
outs asig, asig ; Ouput and amplification
endin
f1 0 65536 10 1
; Sta Dur Amp Pitch Wave
i10 0 2 20000 5.00 1
i10 + . . . 2
i10 . . . . 3
i10 . 2 20000 7.00 1
i10 . . . . 2
i10 . . . . 3
i10 . 2 20000 9.00 1
i10 . . . . 2
i10 . . . . 3
i10 . 2 20000 11.00 1
i10 . . . . 2
i10 . . . . 3
Author
Hans Mikelson
December 1998
------------------------------------------------------------------------
aout distort1 asig, kpregain, kpostgain, kshape1, kshape2
Implementation of modified hyperbolic tangent distortion.
Performance
distort1 can be used to generate wave shaping distortion based on a
modification of the tanh function.
exp(asig * (pregain + shape1)) - exp(asig*(pregain+shape2))
aout = -----------------------------------------------------------
exp(asig*pregain) + exp(-asig*pregain)
asig is the input signal.
kpregain determines the amount of gain applied to the signal before
waveshaping. A value of 1 gives slight distortion.
kpostgain determines the amount of gain applied to the signal after
waveshaping.
kshape1 determines the shape of the positive part of the curve. A value of
zero gives a flat clip, small positive values give sloped shaping.
kshape2 determines the shape of the negative part of the curve.
Example
gadist init 0
instr 1
iamp = p4
ifqc = cpspch(p5)
asig pluck iamp, ifqc, ifqc, 0, 1
gadist = gadist + asig
endin
instr 50
kpre init p4
kpost init p5
kshap1 init p6
kshap2 init p7
aout distort1 gadist, kpre, kpost, kshap1, kshap2
outs aout, aout
gadist = 0
endin
; Sta Dur Amp Pitch
i1 0.0 3.0 10000 6.00
i1 0.5 2.5 10000 7.00
i1 1.0 2.0 10000 7.07
i1 1.5 1.5 10000 8.00
; Sta Dur PreGain PostGain Shape1 Shape2
i50 0 3 2 1 0 0
Author
Hans Mikelson
December 1998
PS Name chosen to avoid clash with XTC's distort opcode
------------------------------------------------------------------------
outx, outy, outz planet kmass1, kmass2, ksep, ix, iy, iz, ivx, ivy, ivz,
idelta, ifriction
Signal generator which loosely simulates a planet orbiting in a binary star
system.
Performance
planet simulates a planet orbiting in a binary star system. The outputs are
the x, y and z coordinates of the orbiting planet. It is possible for the
planet to achieve escape velocity by a close encounter with a star. This
makes this system somewhat unstable.
kmass1 is the mass of the first star,
kmass2 is the mass of the second star,
ksep determines the distance between the two stars,
ix, iy, iz are the initial x, y and z coordinates of the planet,
ivx, ivy, ivz are the initial velocity vector components for the planet.
idelta is the step size used to approximate the differential equation.
ifriction is a value for friction which can used to keep the system from
blowing up.
Example
instr 1
idur = p3
iamp = p4
km1 = p5
km2 = p6
ksep = p7
ix = p8
iy = p9
iz = p10
ivx = p11
ivy = p12
ivz = p13
ih = p14
ifric = p15
kamp linseg 0, .002, iamp, idur-.004, iamp, .002, 0
ax, ay, az planet km1, km2, ksep, ix, iy, iz, ivx, ivy, ivz, ih, ifric
outs ax*kamp, ay*kamp
endin
; Sta Dur Amp M1 M2 Sep X Y Z VX VY VZ h Frict
i1 0 1 5000 .5 .35 2.2 0 .1 0 .5 .6 -.1 .5 -0.1
i1 + . . .5 0 0 0 .1 0 .5 .6 -.1 .5 0.1
i1 . . . .4 .3 2 0 .1 0 .5 .6 -.1 .5 0.0
i1 . . . .3 .3 2 0 .1 0 .5 .6 -.1 .5 0.1
i1 . . . .25 .3 2 0 .1 0 .5 .6 -.1 .5 1.0
i1 . . . .2 .5 2 0 .1 0 .5 .6 -.1 .1 1.0
Author
Hans Mikelson
December 1998
------------------------------------------------------------------------
Banks of sliders
slider8,slider16,slider32,slider64
slider8f, slider16f,slider32f,slider64f
islider8,islider16,islider32,islider64
s16b14,is16b14,s32b14,is32b14
SYNTAX
k1,k2,k3,k4,k5,k6,k7,k8 slider8 ichan, ictlnum1, imin1, imax1, init1, ifn1, ...,\
ictlnum8, imin8, imax8, init8, ifn8
k1, ... , k16 slider16 ichan, ictlnum1, imin1, imax1, init1, ifn1, ...., \
ictlnum16, imin16, imax16, init16, ifn16
k1, ... , k32 slider32 ichan, ictlnum1, imin1, imax1, init1, ifn1, ...., \
ictlnum32, imin32, imax32, init32, ifn32
k1, ... , k64 slider64 ichan, ictlnum1, imin1, imax1, init1, ifn1, ...., \
ictlnum64, imin64, imax64, init64, ifn64
k1,k2,k3,k4,k5,k6,k7,k8 slider8f ichan, ictlnum1, imin1, imax1, init1, ifn1, icutoff1, ...., \
ictlnum8, imin8, imax8, init8, ifn8, icutoff8
k1, ... , k16 slider16f ichan, ictlnum1, imin1, imax1, init1, ifn1, icutoff1, .... , \
ictlnum16, imin16, imax16, init16, ifn16, icutoff16
k1, ... , k32 slider32f ichan, ictlnum1, imin1, imax1, init1, ifn1, icutoff1, .... , \
ictlnum32, imin32, imax32, init32, ifn32, icutoff32
k1, ... , k64 slider64f ichan, ictlnum1, imin1, imax1, init1, ifn1, icutoff1, .... , \
ictlnum64, imin64, imax64, init64, ifn64, icutoff64
i1, ... , i8 islider8 ichan, ictlnum1, imin1, imax1, ifn1, ...., \
ictlnum8, imin8, imax8, ifn8
i1, ... , i16 islider16 ichan, ictlnum1, imin1, imax1, ifn1, ...., \
ictlnum16, imin16, imax16, ifn16
i1, ... , i32 islider32 ichan, ictlnum1, imin1, imax1, ifn1, ...., \
ictlnum32, imin32, imax32, ifn32
i1, ... , i64 islider64 ichan, ictlnum1, imin1, imax1, ifn1, ...., \
ictlnum64, imin64, imax64, ifn64
i1, ... , i16 s16b14 ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1, initvalue1, ifn1, ....., \
ictlno_msb16, ictlno_lsb16, imin16, imax16, initvalue16, ifn16
i1, ... , i16 is16b14 ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1, ifn1, .......... \
ictlno_msb16, ictlno_lsb16, imin16, imax16, ifn16
i1, ... , i32 s32b14 ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1, initvalue1, ifn1, ....., \
ictlno_msb32, ictlno_lsb32, imin32, imax32, initvalue32, ifn32
i1, ... , i32 is32b14 ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1, ifn1, .......... \
ictlno_msb32, ictlno_lsb32, imin32, imax32, ifn32
DESCRIPTION
MIDI slider control banks
INITIALIZATION
i1 ... i64 - output values
ichan - midi channel (1-16)
ictlnum1 ... ictlnum64 - midi control number
ictlno_msb1 .... ictlno_msb32 - midi control number (most significant byte)
ictlno_lsb1 .... ictlno_lsb32 - midi control number (less significant byte)
imin1 ... imin64 - minimum values for each controller
imax1 ... imax64 - maximum values for each controller
init1 ... init64 - inital value for each controller
ifn1 ... ifn64 - function table for conversion for each controller
icutoff1 ... icutoff64 - low pass filter frequency cutoff for each controller
PERFORMANCE
k1 ... k64 - output values
isliderN, sliderN and sliderNf are banks of MIDI controller
(useful when using midi mixer such as KAWAI MM-16 or others for
changing whatever sound parameter in realtime. A software slider bank
will be avalaible within short time).
The raw midi control messages at the input port are converted to agree
with iminN and imaxN, and an initial value can be set. Also an
optional non-interpolated function table with a custom translation
curve is allowed, useful for enabling exponential response curves.
When no function table translation is required, set the ifnN value to
0, else set ifnN to a valid function table number. When table
translation is enabled (i.e. setting ifnN value to a non-zero number
referring to an already allocated function table), initN value should
be set equal to iminN or imaxN value, else the initial output value
will not be the same as specified in initN argument.
slider8 allows a bank of 8 different midi control message numbers,
slider16 does the same with a bank of 16 controls, and so on.
sliderNf filter the signal before output for eliminating
discontinuities due to the low resolution of the MIDI (7 bit); the
cutoff frequency can be set separately for each controller (suggested
range: .1 to 5 cps). Warning! sliderNf opcodes do not output the
required initial value immediately, but only after some k-cycle
because the filter slightly delays the output.
As the input and output arguments are many, you can split the line
using '\' (backslash) character (new in 3.47 version) to improve the
readability. Using these opcodes is quite more efficient than using
the separate ones (ctrl7 and ktone) when more controllers are
required.
In isliderN there is not an initial-value input argument because the
output is get directly from current status of internal controller
array of Csound.
isNb14 and sNb14 opcodes are the 14-bit versions of these banks of
controllers.
------------------------------------------------------------------------
ar pareq asig, kc, iv, iq, imode
iv is volume boost or cut
iq is the quality factor (sqrt(.5) is no resonance)
imode is 0=Peaking EQ, 1=Low Shelf, 2=High Shelf
Performance
kc is the centre of shelf value
asig is the incoming signal
Eqample:
instr 15
ifc = p4 ; Center / Shelf
iq = p5 ; Quality factor sqrt(.5) is no resonance
iv = ampdb(p6) ; Volume Boost/Cut
imode = p7 ; Mode 0=Peaking EQ, 1=Low Shelf, 2=High Shelf
kfc linseg ifc*2, p3, ifc/2
asig rand 5000 ; Random number source for testing
aout pareq asig, kfc, iv, iq, imode ; Parmetric equalization
outs aout, aout ; Output the results
endin
; SCORE:
; Sta Dur Fcenter Q Boost/Cut(dB) Mode
i15 0 1 10000 .2 12 1
i15 + . 5000 .2 12 1
i15 . . 1000 .707 -12 2
i15 . . 5000 .1 -12 0
Hans Mikelson
------------------------------------------------------------------------
oscil3, foscil3, loscil3, vdelay3, table3, itable3, deltap3
These are experimental opcodes which use cubic interpolation rather
than teh linear interpolation of oscili, foscili, loscili, vdelay,
tablei, itablei and deltapi. Testing so far has shown that oscil3
works and gives a better sound (on a 32 point sine wave). The others
have not been tested and so shoudl be used with some care. Feedback
on these is most acceptable
JPff
------------------------------------------------------------------------
|