View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

Gabun/Bavaria SC2

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

SC3 version

country mouth bow
country mouth bow 2

//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.







Links to this Page