Pitch Convertors: Tuning Opcodes

## cps2pch, cpsxpch

icps **cps2pch** ipch, iequal
icps **cpsxpch** ipch, iequal, irepeat, ibase

### Description

Converts a pitch-class notation into cycles-per-second (Hz) for equal divisions of the octave (for **cps2pch**) or for equal divisions of any interval. There is a restriction of no more than 100 equal divisions.

### 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.

*irepeat* – Number indicating the interval which is the 'octave.' The integer 2 corresponds to octave divisions, 3 to a twelfth, 4 is two octaves, and so on. This need not be an integer, but must be positive.

*ibase* – The frequency which corresponds to pitch 0.0

**Note**:

The following are essentially the same

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

- These are opcodes not functions
- Negative values of
*ipch* are allowed, but not negative *irepeat*, *iequal* or *ibase*.

### Example

inote **cps2pch **p5, 19 ; convert oct.pch to
; cps in 19ET
inote **cpsxpch** p5, 12, 3, 261.62561 ; Pierce scale centered
; on middle A
inote **cpsxpch **p5, 21, 4, 16.35160062496 ; 10.5ET scale

The use of a table allows exotic scales by mapping frequencies in a table. For example the table:

f2 0 16 -2 1 1.1 1.2 1.3 1.4 1.6 1.7 1.8 1.9

can be used with:

ip **cps2pch **p4, -2

to get a 10 note scale of unequal divisions.

### Author

John ffitch

University of Bath/Codemist Ltd. Gabriel Maldonado

Italy

1998 (New in Csound version 3.492)

Bath, UK

1997

Pitch Convertors: Tuning Opcodes