floor — Returns the largest integer not greater than x
floor(x) (init-, control-, or audio-rate arg allowed)
where the argument within the parentheses may be an expression. Value converters perform arithmetic translation from units of one kind to units of another. The result can then be a term in a further expression.
Here is an example of the floor opcode. It uses the file floor.csd.
Example 276. Example of the floor 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 floor.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 idiv init 1 loop: inumber = 9 i1 = inumber / idiv ifl = floor(i1) print inumber, idiv, ifl ;print number / idiv = result using floor idiv = idiv + 1 if (idiv <= 10) igoto loop endin </CsInstruments> <CsScore> i 1 0 0 e </CsScore> </CsoundSynthesizer>
The output should include lines like these:
instr 1: inumber = 9.000 idiv = 1.000 ifl = 9.000 instr 1: inumber = 9.000 idiv = 2.000 ifl = 4.000 instr 1: inumber = 9.000 idiv = 3.000 ifl = 3.000 instr 1: inumber = 9.000 idiv = 4.000 ifl = 2.000 instr 1: inumber = 9.000 idiv = 5.000 ifl = 1.000 instr 1: inumber = 9.000 idiv = 6.000 ifl = 1.000 instr 1: inumber = 9.000 idiv = 7.000 ifl = 1.000 instr 1: inumber = 9.000 idiv = 8.000 ifl = 1.000 instr 1: inumber = 9.000 idiv = 9.000 ifl = 1.000 instr 1: inumber = 9.000 idiv = 10.000 ifl = 0.000