@@ -82,52 +82,52 @@ <h3>Code</h3>
8282 < p class ="txt "> Example 1</ p >
8383
8484 < pre >
85- < span style ="color: #666666; "> /**</ span >
86- < span style ="color: #666666; "> * In this example, five sine waves are layered to construct a cluster </ span >
87- < span style ="color: #666666; "> * of frequencies. This method is called additive synthesis. Use the </ span >
88- < span style ="color: #666666; "> * mouse position inside the display window to detune the cluster.</ span >
89- < span style ="color: #666666; "> */</ span >
90-
91- < span style ="color: #33997E; "> import</ span > processing.sound.*;
92-
93- SinOsc[] sineWaves; < span style ="color: #666666; "> // Array of sines</ span >
94- < span style ="color: #E2661A; "> float</ span > [] sineFreq; < span style ="color: #666666; "> // Array of frequencies</ span >
95- < span style ="color: #E2661A; "> int</ span > numSines = 5; < span style ="color: #666666; "> // Number of oscillators to use</ span >
96-
97- < span style ="color: #33997E; "> void</ span > < span style ="color: #006699; "> < b > setup</ b > </ span > () {
98- < span style ="color: #006699; "> size</ span > (640, 360);
99- < span style ="color: #006699; "> background</ span > (255);
100-
101- sineWaves = < span style ="color: #33997E; "> new</ span > SinOsc[numSines]; < span style ="color: #666666; "> // Initialize the oscillators</ span >
102- sineFreq = < span style ="color: #33997E; "> new</ span > < span style ="color: #E2661A; "> float</ span > [numSines]; < span style ="color: #666666; "> // Initialize array for Frequencies</ span >
103-
104- < span style ="color: #669900; "> for</ span > (< span style ="color: #E2661A; "> int</ span > i = 0; i < numSines; i++) {
105- < span style ="color: #666666; "> // Calculate the amplitude for each oscillator</ span >
106- < span style ="color: #E2661A; "> float</ span > sineVolume = (1.0 / numSines) / (i + 1);
107- < span style ="color: #666666; "> // Create the oscillators</ span >
108- sineWaves[i] = < span style ="color: #33997E; "> new</ span > SinOsc(< span style ="color: #33997E; "> this</ span > );
109- < span style ="color: #666666; "> // Start Oscillators</ span >
110- sineWaves[i].play();
111- < span style ="color: #666666; "> // Set the amplitudes for all oscillators</ span >
112- sineWaves[i].amp(sineVolume);
113- }
114- }
115-
116- < span style ="color: #33997E; "> void</ span > < span style ="color: #006699; "> < b > draw</ b > </ span > () {
117-
118- < span style ="color: #666666; "> //Map mouseY from 0 to 1</ span >
119- < span style ="color: #E2661A; "> float</ span > yoffset = < span style ="color: #006699; "> map</ span > (< span style ="color: #D94A7A; "> mouseY</ span > , 0, < span style ="color: #D94A7A; "> height</ span > , 0, 1);
120- < span style ="color: #666666; "> //Map mouseY logarithmically to 150 - 1150 to create a base frequency range</ span >
121- < span style ="color: #E2661A; "> float</ span > frequency = < span style ="color: #006699; "> pow</ span > (1000, yoffset) + 150;
122- < span style ="color: #666666; "> //Use mouseX mapped from -0.5 to 0.5 as a detune argument</ span >
123- < span style ="color: #E2661A; "> float</ span > detune = < span style ="color: #006699; "> map</ span > (< span style ="color: #D94A7A; "> mouseX</ span > , 0, < span style ="color: #D94A7A; "> width</ span > , -0.5, 0.5);
124-
125- < span style ="color: #669900; "> for</ span > (< span style ="color: #E2661A; "> int</ span > i = 0; i < numSines; i++) {
126- sineFreq[i] = frequency * (i + 1 * detune);
127- < span style ="color: #666666; "> // Set the frequencies for all oscillators</ span >
128- sineWaves[i].freq(sineFreq[i]);
129- }
130- }
85+ < span style ="color: #666666; "> /**</ span >
86+ < span style ="color: #666666; "> * In this example, five sine waves are layered to construct a cluster </ span >
87+ < span style ="color: #666666; "> * of frequencies. This method is called additive synthesis. Use the </ span >
88+ < span style ="color: #666666; "> * mouse position inside the display window to detune the cluster.</ span >
89+ < span style ="color: #666666; "> */</ span >
90+
91+ < span style ="color: #33997E; "> import</ span > processing.sound.*;
92+
93+ SinOsc[] sineWaves; < span style ="color: #666666; "> // Array of sines</ span >
94+ < span style ="color: #E2661A; "> float</ span > [] sineFreq; < span style ="color: #666666; "> // Array of frequencies</ span >
95+ < span style ="color: #E2661A; "> int</ span > numSines = 5; < span style ="color: #666666; "> // Number of oscillators to use</ span >
96+
97+ < span style ="color: #33997E; "> void</ span > < span style ="color: #006699; "> < b > setup</ b > </ span > () {
98+ < span style ="color: #006699; "> size</ span > (640, 360);
99+ < span style ="color: #006699; "> background</ span > (255);
100+
101+ sineWaves = < span style ="color: #33997E; "> new</ span > SinOsc[numSines]; < span style ="color: #666666; "> // Initialize the oscillators</ span >
102+ sineFreq = < span style ="color: #33997E; "> new</ span > < span style ="color: #E2661A; "> float</ span > [numSines]; < span style ="color: #666666; "> // Initialize array for Frequencies</ span >
103+
104+ < span style ="color: #669900; "> for</ span > (< span style ="color: #E2661A; "> int</ span > i = 0; i < numSines; i++) {
105+ < span style ="color: #666666; "> // Calculate the amplitude for each oscillator</ span >
106+ < span style ="color: #E2661A; "> float</ span > sineVolume = (1.0 / numSines) / (i + 1);
107+ < span style ="color: #666666; "> // Create the oscillators</ span >
108+ sineWaves[i] = < span style ="color: #33997E; "> new</ span > SinOsc(< span style ="color: #33997E; "> this</ span > );
109+ < span style ="color: #666666; "> // Start Oscillators</ span >
110+ sineWaves[i].play();
111+ < span style ="color: #666666; "> // Set the amplitudes for all oscillators</ span >
112+ sineWaves[i].amp(sineVolume);
113+ }
114+ }
115+
116+ < span style ="color: #33997E; "> void</ span > < span style ="color: #006699; "> < b > draw</ b > </ span > () {
117+
118+ < span style ="color: #666666; "> //Map mouseY from 0 to 1</ span >
119+ < span style ="color: #E2661A; "> float</ span > yoffset = < span style ="color: #006699; "> map</ span > (< span style ="color: #D94A7A; "> mouseY</ span > , 0, < span style ="color: #D94A7A; "> height</ span > , 0, 1);
120+ < span style ="color: #666666; "> //Map mouseY logarithmically to 150 - 1150 to create a base frequency range</ span >
121+ < span style ="color: #E2661A; "> float</ span > frequency = < span style ="color: #006699; "> pow</ span > (1000, yoffset) + 150;
122+ < span style ="color: #666666; "> //Use mouseX mapped from -0.5 to 0.5 as a detune argument</ span >
123+ < span style ="color: #E2661A; "> float</ span > detune = < span style ="color: #006699; "> map</ span > (< span style ="color: #D94A7A; "> mouseX</ span > , 0, < span style ="color: #D94A7A; "> width</ span > , -0.5, 0.5);
124+
125+ < span style ="color: #669900; "> for</ span > (< span style ="color: #E2661A; "> int</ span > i = 0; i < numSines; i++) {
126+ sineFreq[i] = frequency * (i + 1 * detune);
127+ < span style ="color: #666666; "> // Set the frequencies for all oscillators</ span >
128+ sineWaves[i].freq(sineFreq[i]);
129+ }
130+ }
131131 </ pre >
132132
133133 < hr />
0 commit comments