## Gabun/Bavaria SC2

dual fundamental harmonics scale examples
some approximations of mouthbow and mouthharp.

SC3 version

 ```//beng (gabon mouthbow) ( play({ var bowRoot, stick, bow, mouth; var speed, stickPattern, rootStickPattern, rootStick, trigger, hi, lo; speed = 0.7; trigger = Impulse.kr(12*speed); stickPattern = Pseq([ Pseq(#[1, 0, 1, 0, 1, 1, 0, 1, 0.3, 1, 0], 8), Pseq(#[1, 0, 1, 0, 0.2, 1, 0, 1, 1, 1, 0], 2), Pseq(#[0, 1, 0, 1, 0, 1, 0, 0, 0.5, 1, 0], 2) ], inf)* Pfunc({ 1.0 + 0.2.rand2 }); hi = Pfuncn({ 66 + 0.05.rand2 }); lo = 68; rootStickPattern = Pseq([hi, hi, lo, hi, lo, lo, hi, lo], inf); stick = ImpulseSequencer.kr(stickPattern.asStream, trigger); rootStick = PulseDivider.kr(stick, 3); bowRoot = Lag.kr(Sequencer.kr(rootStickPattern.asStream, rootStick).midicps, 0.05, 1/3.5); bow = CombL.ar( GrayNoise.ar(Decay2.kr(stick, 0.001, LFNoise1.kr(12, 0.05, 0.1), 0.3)), 0.01, Lag.kr(bowRoot, 0.15).reciprocal, LFNoise2.kr(0.32, 0.2, 0.5 - (0.2*ToggleFF.kr(rootStick))* 4) ); mouth = RLPF.ar( bow, Lag.kr( Sequencer.kr( Pseq([Prand([ Prand(#[3, 4, 5, 6], 2), Pshuf(#[2, 3, 5], 4), Pshuf(#[ 2, 4, 6, 3 ], 3), Pseq(#[6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 6], 2) ], 3)], inf).asStream, Trig.kr(stick,0.01); ), 0.05) *bowRoot, LFNoise1.kr(0.8, 0.05, 0.1) ); Pan2.ar(LPF.ar(mouth, 2000), -0.2); }); ) //bavarian mouth harp ( play({ var root, finger, harp, mouth; var speed, trigger, env; speed = MouseX.kr(0.7, 1.0); env = EnvGen.kr(Env.linen(0.005, 100, 1)); //fade in trigger = Impulse.kr(6*speed + LFNoise2.kr(0.1, 0.1)); root = Sequencer.kr(`[ 47, 52 ], PulseDivider.kr(trigger, 24)).midicps; finger = ImpulseSequencer.kr( Pseq([ Pseq(#[1, 1, 0.05, 1, 0.7, 0.02, 1, 1, 0.1, 1, 0.1, 0.1], 4), Pseq(#[1, 1, 1, 0.1, 0.1, 0.2, 1, 1, 0.1, 1, 1, 0.1], 5), Pseq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, Pn(0, 2), 2, Pn(0, 16+2)]) ]).asStream ,trigger); harp = LFSaw.ar(Lag.kr(root, 0.15), Decay.kr(finger, LFNoise1.kr(0.4, 0.3, 0.8), 0.2)); mouth = RLPF.ar( harp, Lag.kr( Sequencer.kr( Pseq([Pseq([ Pseq(#[4, 5, 6], 2), Pseq([6, 5, Prand(#[8, 7], 1)], 4), Pseq(#[3, 5, 6, 7, 6, 5, 7, 5, 6, 9, 8, 7, 5, 6, 4, 3], 2) ], 3)], inf).asStream, finger ), 0.1) *root, 0.1, 1, harp* 0.2 ); Pan2.ar(LPF.ar(mouth, 4000, env), LFNoise1.kr(0.5, 0.3)); }); )``` /* authors so far: jrh 02 */ all the patterns are just approximations, not part of real songs.