[chuck] Classic scales and note frequencies
Mikael Johansson
mikael at johanssons.org
Sun Oct 24 10:42:33 EDT 2004
Just as a little benefit to everyone out there (and mainly because I
myself grew annoyed), I looked up the frequencies for a welltempered
scale, hacked out the ChucK commands assigning those frequencies to names
I could cope with, looked up a list of MANY canonical scales, hacked that
to a format I liked, and produced a small example ChucK script that will
play a mandolin tune in any "cultural" melodic context you want. =)
By the way. I WANT arrays. This'd be SO much easier with arrays!
Enjoy:
<<<<<<<< ChucK definitions for "common" note names >>>>>>>>
55.000=>float A0;
110.000=>float A1;
220.000=>float A2;
440.000=>float A3;
880.000=> float A4;
1760.000=>float A5;
58.270 =>float Bb0;
116.541 =>float Bb1;
233.082 =>float Bb2;
466.164 =>float Bb3;
932.328 =>float Bb4;
1864.655=>float Bb5;
61.735 =>float B0;
123.471=> float B1;
246.942=> float B2;
493.883=> float B3;
987.767=> float B4;
1975.533=>float B5;
65.406 =>float C0;
130.813 =>float C1;
261.626 =>float C2;
523.251 =>float C3;
1046.502 =>float C4;
2093.005=>float C5;
69.296 =>float Db0;
138.591 =>float Db1;
277.183 =>float Db2;
554.365 =>float Db3;
1108.731 =>float Db4;
2217.461=> float Db5;
73.416 =>float D0;
146.832 =>float D1;
293.665 =>float D2;
587.330 =>float D3;
1174.659 =>float D4;
2349.318=> float D5;
77.782 =>float Eb0;
155.563 =>float Eb1;
311.127 =>float Eb2;
622.254 =>float Eb3;
1244.508 =>float Eb4;
2489.016=>float Eb5;
82.407 =>float E0;
164.814 =>float E1;
329.628 =>float E2;
659.255 =>float E3;
1318.510 =>float E4;
2637.020=>float E5;
87.307 =>float F0;
174.614 =>float F1;
349.228 =>float F2;
698.456 =>float F3;
1396.913 =>float F4;
2793.826=>float F5;
92.499 =>float Gb0;
184.997 =>float Gb1;
369.994 =>float Gb2;
739.989 =>float Gb3;
1479.978 =>float Gb4;
2959.955=>float Gb5;
97.999 =>float G0;
195.998 =>float G1;
391.995 =>float G2;
783.991 =>float G3;
1567.982 =>float G4;
3135.963=>float G5;
103.826 =>float Ab0;
207.652 =>float Ab1;
415.305 =>float Ab2;
830.609 =>float Ab3;
1661.219 =>float Ab4;
3322.438=>float Ab5;
<<<<<<<< >>>>>>>>>
<<<<<<<< Commented list of scales >>>>>>>
// Scale references
// 1 2 3 4 5 6 7 8 9 10 11 12 13
// Chromatic C Db D Eb E F Gb G Ab A Bb B C
// Spanish 8 Tone C Db Eb E F Gb Ab Bb C
// Flamenco C Db Eb E F G Ab Bb C
// Symmetrical C Db Eb E Gb G A Bb C
// Diminished C D Eb F Gb Ab A B C
// Whole Tone C D E Gb Ab Bb C
// Augmented C Eb E G Ab B C
// 3 semitone C Eb Gb A C
// 4 semitone C E Ab C
//
// Ultra Locrian C Db Eb E Gb Ab A C
// Super Locrian C Db Eb E Gb Ab Bb C (Ravel)
// Indian-ish* C Db Eb E G Ab Bb C
// Locrian C Db Eb F Gb Ab Bb C
// Phrygian C Db Eb F G Ab Bb C
// Neapolitan Min C Db Eb F G Ab B C
// Javanese C Db Eb F G A Bb C
// Neapolitan Maj C Db Eb F G A B C
// Todi (Indian) C Db Eb Gb G Ab B C
// Persian C Db E F Gb Ab B C
// Oriental C Db E F Gb A Bb C
// Maj.Phryg. (Dom)C Db E F G Ab Bb C Spanish/ Jewish
// Double Harmonic C Db E F G Ab B C Gypsy/
Byzantine/ Charhargah
// Marva (Indian) C Db E Gb G A B C
// Enigmatic C Db E Gb Ab Bb B C
//
// Locrian Natural 2nd C D Eb F Gb Ab Bb C
// Minor (natural) C D Eb F G Ab Bb C Aeolian/
Algerian (oct2)
// Harmonic Minor C D Eb F G Ab B C Mohammedan
// Dorian C D Eb F G A Bb C
// Melodic Minor (Asc) C D Eb F G A B C Hawaiian
// Hungarian Gypsy C D Eb Gb G Ab Bb C
// Hungarian Minor C D Eb Gb G Ab B C Algerian (oct1)
// Romanian C D Eb Gb G A Bb C
//
// Maj. Locrian C D E F Gb Ab Bb C Arabian
// Hindu C D E F G Ab Bb C -
// Ethiopian C D E F G Ab B C
// Mixolydian C D E F G A Bb C -
// Major C D E F G A B C Ionian
// Mixolydian Aug. C D E F Ab A Bb C -
// Harmonic Major C D E F Ab A B C -
// Lydian Min. C D E Gb G Ab Bb C -
// Lydian Dominant C D E Gb G A Bb C Overtone
// Lydian C D E Gb G A B C -
// Lydian Aug. C D E Gb Ab A Bb C -
// Leading Whole Tone C D E Gb Ab Bb B C -
// Bluesy R&R* C Eb E F G A Bb C -
// Hungarian Major C Eb E Gb G A Bb C Lydian sharp2nd
//
// "pB" C Db Eb Gb Ab C -
// Balinechuck at lists.cs.princeton.eduse 1 C Db Eb G Ab C "pE"
// Pelog (Balinese) C Db Eb G Bb C -
// Iwato (Japanese) C Db F Gb Bb C -
// Japanese 1 C Db F G Ab C Kumoi
// Hirajoshi (Japanese) C D Eb G Ab C "pA"
// "pD" C D Eb G A C -
// Pentatonic Major C D E G A C Chinese 1/ Mongolian/ "pFCG"
// Egyptian C D F G Bb C -
// Pentatonic Minor C Eb F G Bb C -
// Chinese 2 C E Gb G B C -
<<<<<<<< ChucK script that, given the notes above, plays a tune in a
specified scale >>>>>>>
75::ms => dur T;
Mandolin s => Echo e => NRev r => dac;
0.2 => r.mix;
2::T => e.delay;
1 => int m;
0 => int tone;
2 => int octave;
5 => int n_tones;
while(true) {
if(m%2==0) tone+1 => tone;
if(m%3==0) tone-2 => tone;
if(m%5==0) tone+3 => tone;
if(m%7==0) tone-4 => tone;
if(m%11==0) tone+5 => tone;
std.rand2(0,3)+tone => tone;
while(tone<0) { tone+n_tones => tone; octave-1=>octave; }
while(tone>=n_tones) {tone-n_tones => tone; octave+1 => octave; }
// Egyptian C D F G Bb C -
if(tone==0)
C2 => s.freq;
if(tone==1)
D2 => s.freq;
if(tone==2)
E2 => s.freq;
if(tone==3)
G2 => s.freq;
if(tone==4)
A2 => s.freq;
if(tone==5)
A2 => s.freq;
if(tone==6)
Bb2 => s.freq;
if(tone==7)
Bb2 => s.freq;
m+1 => m;
1.0 => s.pluck;
std.rand2f(0.9,1.0)::T => now;
0.8 => s.pluck;
std.rand2f(0.9,1.0)::T => now;
0.9 => s.pluck;
std.rand2f(0.9,1.0)::T => now;
0.7 => s.pluck;
std.rand2f(0.9,1.0)::T => now;
// 5::T => now;
}
<<<<<<< >>>>>>>
--
Mikael Johansson To see the world in a grain of sand
mikael at johanssons.org And heaven in a wild flower
http://www.mikael.johanssons.org To hold infinity in the palm of your hand
http://blog.mikael.johanssons.org And eternity for an hour
More information about the chuck
mailing list