ftp.nice.ch/pub/next/unix/audio/cmusic.bs.N.tar.gz#/lib/help/cmusic/cmusic.h

This is cmusic.h in view mode; [Download] [Up]

/* cmusic.h - standard macro definitions for cmusic scores */
#define QUAD(In,Out)\
set quad;\
set space = Out/2,Out/2 -Out/2,Out/2 -Out/2,-Out/2 Out/2,-Out/2 ;\
set room = In/2,In/2 -In/2,In/2 -In/2,-In/2 In/2,-In/2 ;\
set speakers = In/2,In/2 -In/2,In/2 -In/2,-In/2 In/2,-In/2 ;\
set revscale = .1 ;\
set t60 = (Out/10)^.5 
#define STEREO(In,Out)\
set stereo;\
set space = Out/2,Out/2 -Out/2,Out/2 -Out/2,-Out/2 Out/2,-Out/2 ;\
set room = In/2,In/2 -In/2,In/2 -In/2,-In/2 In/2,-In/2 ;\
set speakers = In/2,In/2 -In/2,In/2 ;\
set revscale = .1 ;\
set t60 = (Out/10)^.5 
/*
 * unit generator statement abbreviations
 */
#define SPACE(b,n) space b n d d d d d d d d d d d d
#define NRES(out,in,gain,cf,bw) nres out in gain cf bw d d d d d d d d d d
#define FLTDELAY(b) fltdelay b d d d d d d d d d d d d d d d
#define AIRABSORB(OUT,IN,X,Y) airabsorb OUT IN X Y d d d d d d d d d d
/*
 * waveform components
 */
#define PLS(num) num,1,0 
#define SAW(num) num,1/num,0 
#define TRI(num) num,1/num^2,0 
/*
 * useful signal waveforms
 */
#define SINE(func) gen p2 gen5 func 1 1 0
#define COS(func)  gen p2 gen5 func 1 1 90Deg
#define TRIANGLE(func) gen p2 gen5 func TRI(1) TRI(3) TRI(5) TRI(7); NORM(func)
#define SQUARE(func) gen p2 gen5 func SAW(1) SAW(3) SAW(5) SAW(7); NORM(func)
#define SAWTOOTH(func) gen p2 gen5 func SAW(1) SAW(2) SAW(3) SAW(4) SAW(5) \
SAW(6) SAW(7) SAW(8); NORM(func)
#define PULSE(func) gen p2 gen5 func PLS(1) PLS(2) PLS(3) PLS(4) PLS(5) \
PLS(6) PLS(7) PLS(8); NORM(func)
/*
 * use envelope waveforms
 */
#define ENV(func) gen p2 gen4 func 0,0 -1 .1,1 -1 .8,.5 -1 1,0
#define SLOWENV(func) gen p2 gen4 func 0,0 -1 1/3,1 -1 2/3,.5 -1 1,0
#define PLUCKENV(func) gen p2 gen4 func 0,0 -1 .005,1 -2 1,0
/*
 * gen statement abbreviations
 */
#define GEN0(func) gen p2 gen0 func 
#define NORM(func) gen p2 gen0 func 1
#define GEN1(func) gen p2 gen1 func 
#define GEN2(func) gen p2 gen2 func 
#define GEN3(func) gen p2 gen3 func 
#define GEN4(func) gen p2 gen4 func 
#define GEN5(func) gen p2 gen5 func 
#define GEN6(func) gen p2 gen6 func 
#define CHUBBY(func) gen p2 chubby func 
#define CSPLINE(func) gen p2 cspline func 
#define GENRAW(func) gen p2 genraw func 
#define QUADGEN(func) gen p2 quad func 
#define SHEPENV(func) gen p2 shepenv func 
/*
 * generates random number between low and high
 */
#define RAND(low,high)(rand(high-low)+low)
/*
 * general period definition
 */
#define P (p4sec)
/*
 * pitch reference = middle C
 */
#define REF (220*2^(3/12))
/*
 * 12-tone temperament frequencies
 */
#define FR(pitch,oct)(REF*2^(oct)*2^(pitch/12))
/*
 * tempered scale pitch classes (0 octave = middle C up to B)
 */
#define C(oct)(FR(0,oct)Hz)
#define Cs(oct)(FR(1,oct)Hz)
#define Df(oct)(FR(1,oct)Hz)
#define D(oct)(FR(2,oct)Hz)
#define Ds(oct)(FR(3,oct)Hz)
#define Ef(oct)(FR(3,oct)Hz)
#define E(oct)(FR(4,oct)Hz)
#define F(oct)(FR(5,oct)Hz)
#define Fs(oct)(FR(6,oct)Hz)
#define Gf(oct)(FR(6,oct)Hz)
#define G(oct)(FR(7,oct)Hz)
#define Gs(oct)(FR(8,oct)Hz)
#define Af(oct)(FR(8,oct)Hz)
#define A(oct)(FR(9,oct)Hz)
#define As(oct)(FR(10,oct)Hz)
#define Bf(oct)(FR(10,oct)Hz)
#define B(oct)(FR(11,oct)Hz)
/*
 * just intervals for major scale
 */
#define P1(oct)(2^(oct))
#define M2(oct)(2^(oct)*9/8)
#define M3(oct)(2^(oct)*5/4)
#define P4(oct)(2^(oct)*4/3)
#define P5(oct)(2^(oct)*3/2)
#define M6(oct)(2^(oct)*5/3)
#define M7(oct)(2^(oct)*15/8)
#define TT(oct)(2^(oct)*2^.5)
/*
 * just intervals for minor scale
 * major second is different in minor scale
 */
#define mM2(oct)(2^(oct)*10/9)
#define m3(oct)(2^(oct)*6/5)
#define m6(oct)(2^(oct)*8/5)
#define m7(oct)(2^(oct)*9/5)
#define xy(distance, direction) distance*cos(direction) distance*sin(direction)
#define LOG10(x)(ln(x)/ln(10))
#define LOG2(x)(ln(x)/ln(2))
/*
 * vowel formant frequencies and amplitudes (.A) for men (M.), women (W.) and
 * children (C.) per Peterson & Barney (1952)
 */
#define M_IY1 (270Hz)
#define M_IY2 (2290Hz)
#define M_IY3 (3010Hz)

#define W_IY1 (310Hz)
#define W_IY2 (2790Hz)
#define W_IY3 (3310Hz)

#define C_IY1 (370Hz)
#define C_IY2 (3200Hz)
#define C_IY3 (3730Hz)

#define IY1_A (-4dB)
#define IY2_A (-24dB)
#define IY3_A (-28dB)

#define M_I1 (390Hz)
#define M_I2 (1990Hz)
#define M_I3 (2550Hz)

#define W_I1 (430Hz)
#define W_I2 (2480Hz)
#define W_I3 (3070Hz)

#define C_I1 (530Hz)
#define C_I2 (2730Hz)
#define C_I3 (3600Hz)

#define I1_A (-3dB)
#define I2_A (-23dB)
#define I3_A (-27dB)

#define M_E1 (530Hz)
#define M_E2 (1840Hz)
#define M_E3 (2480Hz)

#define W_E1 (610Hz)
#define W_E2 (2330Hz)
#define W_E3 (2990Hz)

#define C_E1 (690Hz)
#define C_E2 (2610Hz)
#define C_E3 (3570Hz)

#define E1_A (-2dB)
#define E2_A (-17dB)
#define E3_A (-24dB)

#define M_AE1 (660Hz)
#define M_AE2 (1720Hz)
#define M_AE3 (2410Hz)

#define W_AE1 (860Hz)
#define W_AE2 (2050Hz)
#define W_AE3 (2850Hz)

#define C_AE1 (1010Hz)
#define C_AE2 (2320Hz)
#define C_AE3 (3320Hz)

#define AE1_A (-1dB)
#define AE2_A (-12dB)
#define AE3_A (-22dB)

#define M_UH1 (640Hz)
#define M_UH2 (1190Hz)
#define M_UH3 (2390Hz)

#define W_UH1 (760Hz)
#define W_UH2 (1400Hz)
#define W_UH3 (2780Hz)

#define C_UH1 (850Hz)
#define C_UH2 (1590Hz)
#define C_UH3 (3360Hz)

#define UH1_A (-1dB)
#define UH2_A (-10dB)
#define UH3_A (-27dB)

#define M_A1 (730Hz)
#define M_A2 (1090Hz)
#define M_A3 (2440Hz)

#define W_A1 (850Hz)
#define W_A2 (1220Hz)
#define W_A3 (2810Hz)

#define C_A1 (1030Hz)
#define C_A2 (1370Hz)
#define C_A3 (3170Hz)

#define A1_A (-1dB)
#define A2_A (-5dB)
#define A3_A (-28dB)

#define M_OW1 (570Hz)
#define M_OW2 (840Hz)
#define M_OW3 (2410Hz)

#define W_OW1 (590Hz)
#define W_OW2 (920Hz)
#define W_OW3 (2710Hz)

#define C_OW1 (680Hz)
#define C_OW2 (1060Hz)
#define C_OW3 (3180Hz)

#define OW1_A (0dB)
#define OW2_A (-7dB)
#define OW3_A (-34dB)

#define M_U1 (440Hz)
#define M_U2 (1020Hz)
#define M_U3 (2240Hz)

#define W_U1 (470Hz)
#define W_U2 (1160Hz)
#define W_U3 (2680Hz)

#define C_U1 (560Hz)
#define C_U2 (1410Hz)
#define C_U3 (3310Hz)

#define U1_A (-1dB)
#define U2_A (-12dB)
#define U3_A (-34dB)

#define M_OO1 (300Hz)
#define M_OO2 (870Hz)
#define M_OO3 (2240Hz)

#define W_OO1 (370Hz)
#define W_OO2 (950Hz)
#define W_OO3 (2670Hz)

#define C_OO1 (430Hz)
#define C_OO2 (1170Hz)
#define C_OO3 (3260Hz)

#define OO1_A (-3dB)
#define OO2_A (-19dB)
#define OO3_A (-43dB)

#define M_ER1 (490Hz)
#define M_ER2 (1350Hz)
#define M_ER3 (1690Hz)

#define W_ER1 (500Hz)
#define W_ER2 (1640Hz)
#define W_ER3 (1960Hz)

#define C_ER1 (560Hz)
#define C_ER2 (1820Hz)
#define C_ER3 (2160Hz)

#define ER1_A (-5dB)
#define ER2_A (-15dB)
#define ER3_A (-20dB)

#define MF1BW (50Hz)
#define MF2BW (50Hz)
#define MF3BW (50Hz)

#define WF1BW (50Hz)
#define WF2BW (50Hz)
#define WF3BW (100Hz)

#define CF1BW (50Hz)
#define CF2BW (100Hz)
#define CF3BW (150Hz)

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.