| 1 |
package example.example4 |
|---|
| 2 |
{ |
|---|
| 3 |
import com.kappaLab.asound.*; |
|---|
| 4 |
import com.kappaLab.asound.generators.SinOSC; |
|---|
| 5 |
import com.kappaLab.asound.instruments.Instrument; |
|---|
| 6 |
import com.kappaLab.asound.utils.Note; |
|---|
| 7 |
import flash.events.*; |
|---|
| 8 |
public class RandomHarmonics extends Instrument |
|---|
| 9 |
{ |
|---|
| 10 |
private var sin:SinOSC; |
|---|
| 11 |
private var freqs:Vector.<Number>; |
|---|
| 12 |
public function RandomHarmonics(octarb:Number = 5,type:uint = 1) |
|---|
| 13 |
{ |
|---|
| 14 |
|
|---|
| 15 |
freqs = new Vector.<Number>() |
|---|
| 16 |
var baseNote:uint = 12 * octarb; |
|---|
| 17 |
if (type == 1) |
|---|
| 18 |
{ |
|---|
| 19 |
freqs.push(Note.note2Frequency(baseNote)); |
|---|
| 20 |
freqs.push(Note.note2Frequency(baseNote)); |
|---|
| 21 |
freqs.push(Note.note2Frequency(baseNote + 2)); |
|---|
| 22 |
freqs.push(Note.note2Frequency(baseNote + 4)); |
|---|
| 23 |
freqs.push(Note.note2Frequency(baseNote + 7)); |
|---|
| 24 |
freqs.push(Note.note2Frequency(baseNote + 9)); |
|---|
| 25 |
freqs.push(Note.note2Frequency(baseNote + 12)); |
|---|
| 26 |
} |
|---|
| 27 |
else |
|---|
| 28 |
{ |
|---|
| 29 |
freqs.push(Note.note2Frequency(baseNote + 1)); |
|---|
| 30 |
freqs.push(Note.note2Frequency(baseNote + 3)); |
|---|
| 31 |
freqs.push(Note.note2Frequency(baseNote + 5)); |
|---|
| 32 |
freqs.push(Note.note2Frequency(baseNote + 8)); |
|---|
| 33 |
freqs.push(Note.note2Frequency(baseNote + 10)); |
|---|
| 34 |
} |
|---|
| 35 |
sin = new SinOSC() |
|---|
| 36 |
signals.push( |
|---|
| 37 |
sin |
|---|
| 38 |
) |
|---|
| 39 |
generateEnvelop(0, [1, 50, .5, 25, .5, 100, 0, 200]); |
|---|
| 40 |
} |
|---|
| 41 |
override public function play():void |
|---|
| 42 |
{ |
|---|
| 43 |
super.play() |
|---|
| 44 |
sin.frequency = freqs[int(Math.random()*freqs.length)] |
|---|
| 45 |
} |
|---|
| 46 |
} |
|---|
| 47 |
} |
|---|