dumpk4 — Periodically writes four orchestra control-signal values to an external file.
Periodically writes four orchestra control-signal values to a named external file in a specific format.
ifilname -- character string (in double quotes, spaces permitted) denoting the external file name. May either be a full path name with target directory specified or a simple filename to be created within the current directory
iformat -- specifies the output data format:
1 = 8-bit signed char(high order 8 bits of a 16-bit integer
4 = 16-bit short integers
5 = 32-bit long integers
6 = 32-bit floats
7 = ASCII long integers
8 = ASCII floats (2 decimal places)
Note that A-law and U-law output are not available, and that all formats except the last two are binary. The output file contains no header information.
iprd -- the period of ksig output in seconds, rounded to the nearest orchestra control period. A value of 0 implies one control period (the enforced minimum), which will create an output file sampled at the orchestra control rate.
ksig1, ksig2, ksig3, ksig4 -- control-rate signals
This opcode allows four generated control signal values to be saved in a named external file. The file contains no self-defining header information. But it contains a regularly sampled time series, suitable for later input or analysis. There may be any number of dumpk4 opcodes in an instrument or orchestra but each must write to a different file.
Here is an example of the dumpk4 opcode. It uses the file dumpk4.csd. Note that the example must be run from a directory for which the user has write access.
Example 257. Example of the dumpk4 opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform -odac ;;;realtime audio out ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o dumpk4.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 giSine ftgen 0, 0, 2^10, 10, 1 instr 1 ;writes four control signals to a file kcf randh 950, 1, 2, 1, 1050 ;generates one random number between 100 and 2000 per second kq randh 10, 1, 2, 1, 11 ;generates another random number between 1 and 21 per second kdb randh 9, 1, 2, 1, -15 ;amplitudes in dB between -24 and -6 kpan randh .5, 1, 2, 1, .5 ;panning between 0 and 1 dumpk4 kcf, kq, kdb, kpan, "dumpk4.txt", 8, 1 ;writes the control signals prints "WRITING:\n" printks "kcf = %f, kq = %f, kdb = %f, kpan = %f\n", 1, kcf, kq, kdb, kpan ;prints them endin instr 2 ;reads the file written by instr 1 kcf,kq,kdb,kp readk4 "dumpk4.txt", 8, 1 prints "READING:\n" printks "kcf = %f, kq = %f, kdb = %f, kpan = %f\n", 1, kcf, kq, kdb, kp ;prints values kdb lineto kdb, .1 ;smoothing amp transition kp lineto kp, .1 ;smoothing pan transition anoise rand ampdb(kdb), 2, 1 kbw = kcf/kq ;bandwidth of resonant filter abp reson anoise, kcf, kbw aout balance abp, anoise aL, aR pan2 aout, kp outs aL, aR endin </CsInstruments> <CsScore> i 1 0 5 i 2 5 5 e </CsScore> </CsoundSynthesizer>
The output should include lines like these:
WRITING: kcf = 1122.469723, kq = 11.762839, kdb = -14.313445, kpan = 0.538142 kcf = 1122.469723, kq = 11.762839, kdb = -14.313445, kpan = 0.538142 kcf = 1148.638412, kq = 12.040490, kdb = -14.061868, kpan = 0.552205 kcf = 165.796855, kq = 18.523179, kdb = -15.816977, kpan = 0.901528 kcf = 147.729960, kq = 13.071911, kdb = -11.924531, kpan = 0.982518 kcf = 497.430113, kq = 13.605512, kdb = -21.586611, kpan = 0.179229 READING: WARNING: Seeding from current time 3308160476 kcf = 1122.469700, kq = 11.762800, kdb = -14.313400, kpan = 0.538100 kcf = 1122.469700, kq = 11.762800, kdb = -14.313400, kpan = 0.538100 kcf = 1148.638400, kq = 12.040500, kdb = -14.061900, kpan = 0.552200 kcf = 165.796900, kq = 18.523200, kdb = -15.817000, kpan = 0.901500 kcf = 147.730000, kq = 13.071900, kdb = -11.924500, kpan = 0.982500 kcf = 497.430100, kq = 13.605500, kdb = -21.586600, kpan = 0.179200