cps2pch — Converts a pitch-class value into cycles-per-second (Hz) for equal divisions of the octave.
Converts a pitch-class value into cycles-per-second (Hz) for equal divisions of the octave.
ipch -- Input number of the form 8ve.pc, indicating an 'octave' and which note in the octave.
iequal -- If positive, the number of equal intervals into which the 'octave' is divided. Must be less than or equal to 100. If negative, is the number of a table of frequency multipliers.
Note | |
---|---|
|
Here is an example of the cps2pch opcode. It uses the file cps2pch.csd.
Example 78. Example of the cps2pch 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 ; Audio out Audio in -odac -iadc ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o cps2pch.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1. instr 1 ; Use a normal twelve-tone scale. ipch = 8.02 iequal = 12 icps cps2pch ipch, iequal print icps endin </CsInstruments> <CsScore> ; Play Instrument #1 for one second. i 1 0 1 e </CsScore> </CsoundSynthesizer>
Its output should include lines like this:
instr 1: icps = 293.666
Here is an example of the cps2pch opcode using a table of frequency multipliers. It uses the file cps2pch_ftable.csd.
Example 79. Example of the cps2pch opcode using a table of frequency multipliers.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in -odac -iadc ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o cps2pch_ftable.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1. instr 1 ipch = 8.02 ; Use Table #1, a table of frequency multipliers. icps cps2pch ipch, -1 print icps endin </CsInstruments> <CsScore> ; Table #1: a table of frequency multipliers. ; Creates a 10-note scale of unequal divisions. f 1 0 16 -2 1 1.1 1.2 1.3 1.4 1.6 1.7 1.8 1.9 ; Play Instrument #1 for one second. i 1 0 1 e </CsScore> </CsoundSynthesizer>
Its output should include lines like this:
instr 1: icps = 313.951
Here is an example of the cps2pch opcode using a 19ET scale. It uses the file cps2pch_19et.csd.
Example 80. Example of the cps2pch opcode using a 19ET scale.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in -odac -iadc ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o cps2pch_19et.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1. instr 1 ; Use 19ET scale. ipch = 8.02 iequal = 19 icps cps2pch ipch, iequal print icps endin </CsInstruments> <CsScore> ; Play Instrument #1 for one second. i 1 0 1 e </CsScore> </CsoundSynthesizer>
Its output should include lines like this:
instr 1: icps = 281.429