cps2pch

cps2pch — Converts a pitch-class value into cycles-per-second (Hz) for equal divisions of the octave.

Description

Converts a pitch-class value into cycles-per-second (Hz) for equal divisions of the octave.

Syntax

icps cps2pch ipch, iequal

Initialization

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] Note

  1. The following are essentially the same

    ia  =  cpspch(8.02)
    ib     cps2pch  8.02, 12
    ic     cpsxpch  8.02, 12, 2, 1.02197503906

  2. These are opcodes not functions

  3. Negative values of ipch are allowed.

Examples

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

Example 143. 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 144. 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 145. 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

See Also

cpspch, cpsxpch

Credits

Author: John ffitch
University of Bath/Codemist Ltd.
Bath, UK
1997

New in Csound version 3.492