add groove

This commit is contained in:
Felix Roos 2022-02-13 21:48:30 +01:00
parent 69d802a060
commit 3fb4582d61
3 changed files with 23 additions and 0 deletions

8
repl/src/groove.ts Normal file
View File

@ -0,0 +1,8 @@
import { Pattern as _Pattern } from '../../strudel.mjs';
const Pattern = _Pattern as any;
// is this the same as struct?
Pattern.prototype.groove = function (groove) {
return groove.fmap(() => (v) => v).appLeft(this);
};

View File

@ -5,6 +5,7 @@ import './tone';
import './midi';
import './voicings';
import './tonal';
import './groove';
import * as toneStuff from './tone';
import shapeshifter from './shapeshifter';

View File

@ -293,4 +293,18 @@ export const scaleTranspose = `stack(f2, f3, c4, ab4)
.filter(800)
.gain(0.5)`;
export const groove = `stack(
m('c2 g2 a2 [e2@2 eb2] d2 a2 g2 [d2 ~ db2]')
.synth('sawtooth')
.filter(500)
.gain(.6),
m('[C^7 A7] [Dm7 G7]')
.groove(m('[x@2 x] [~@2 x] [~ x@2]@2 [x ~@2] ~ [~@2 x@4]@2'))
.voicings(['G3','A4'])
.synth('square')
.filter(1000)
.adsr(.1,.1,.2)
.gain(0.25)
).slow(4.5)`;
export default swimming;