round — Returns the integer value nearest to x ; if the fractional part of x is exactly 0.5, the direction of rounding is undefined.
The integer value nearest to x ; if the fractional part of x is exactly 0.5, the direction of rounding is undefined.
round(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 round opcode. It uses the file round.csd.
Example 776. Example of the round 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 round.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 iro = round(i1) print inumber, idiv, iro ;print number / idiv = result using round idiv = idiv + 1 if (idiv <= 10) igoto loop endin </CsInstruments> <CsScore> i 1 0 0 e </CsScore> </CsoundSynthesizer>
Its output should include a line like these:
instr 1: inumber = 9.000 idiv = 1.000 ifl = 9.000 instr 1: inumber = 9.000 idiv = 2.000 ifl = 5.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 = 2.000 instr 1: inumber = 9.000 idiv = 6.000 ifl = 2.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 = 1.000