scale — Arbitrary signal scaling.


Scales incoming value to user-definable range. Similar to scale object found in popular dataflow languages.


kscl scale kinput, kmax, kmin[, kimax, kimin]


kin -- Input value. Can originate from any k-rate source as long as that source's output is in range kimin to kimax.

kmin -- Minimum value of the resultant scale operation.

kmax -- Maximum value of the resultant scale operation.

kimin -- Optional; Minimum of the incoming value range, defaulting to zero.

kimax -- Optional; Maximum of the incoming value range, defaulting to one.

[Warning] Warning
Take care with the order of the arguments which has maximum before minimum


Here is an example of the scale opcode. It uses the file scale.csd.

Example 949. Example of the scale opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

; Select audio/midi flags here according to platform
; Audio out   Audio in    Silent
-odac           -iadc     -d    ;;;realtime output

sr	=	44100
ksmps	=	10
nchnls	=	2

/*--- ---*/

	instr	1	; scale test

kmod	ctrl7	1, 1, 0, 1
	printk2	kmod

kout	scale	kmod, 0, -127
	printk2	kout


/*--- ---*/

i1	0	8888


See also

Linear and Exponential Generators


Author: David Akbari
John ffitch
Modified to add input range values in 2020