Gå til indholdet

Cheat sheet: Patterns

13 primære patterns

6 listebaserede patterns
// Pseq - en fleksibel sequencer
Pbind(\degree, Pseq([0, -3, 1], 2)).play;

// Pser - endnu en fleksibel sequencer, med begrænsning af antal events
Pbind(\degree, Pser([0, -3, 1], 4)).play;

// Prand - vælger tilfældige elementer fra en liste
Pbind(\degree, Prand([0, 1, 2], inf)).play;

// Pxrand - vælger tilfældige elementer fra en liste, dog uden gentagelser
Pbind(\degree, Pxrand([0, 3, 4, 7], inf)).play;

// Pwrand - vælger tilfældige elementer fra en liste, med vægtede sandsynligheder
Pbind(\degree, Pwrand([0, -1, 1, 4], [0.6, 0.1, 0.1, 0.2], inf), \dur, 0.5).play;

// Pshuf - en fætter/kusine til Pseq, gentager en sekvens i tilfældig rækkefølge
Pbind(\degree, Pshuf([0, 1, 4, 6], 2), \dur, 0.5).play;
5 tilfældighedsgeneratorer
// Pwhite - tilfældige tal, ligeligt fordelt mellem min og max
Pbind(\degree, Pwhite(-7, 7)).play;

// Pexprand - tilfældige tal, eksponentielt fordelt mellem min og max
Pbind(\freq, Pexprand(400, 800)).play;

// Pgauss - tilfældige tal, normalfordelt omkring en middelværdi
Pbind(\pan, Pgauss(0, 0.5)).play; // brug evt. hovedtelefoner for at høre panorering

// Pbrown - en "fordrukken" stifinder
Pbind(\degree, Pbrown(-7, 7, 2), \dur, 0.2).play;

// Pseries - en trinvis udvikling med startværdi, interval og antal
Pbind(\degree, Pseries(7, -2, 8)).play;

// Pgeom - gradvis udvikling med startværdi, vækstfaktor og antal
Pbind(\dur, Pgeom(1, 0.9, 8)).play;
1 catch-all pattern
// Pfunc - når vi vil bruge en funktion til at udregne værdier
Pbind(\freq, Pfunc({ 220 + (220 * [0, 1.5, 2, 2.5, 3].choose) }), \dur, 0.2).play;

3 vigtige Pattern-methods

3 vigtige Pattern-methods
// .repeat - gentager hele sekvenser
Pbind(\degree, Pshuf([0, 1, 3, 4], 2).repeat(2), \dur, 0.5).play; // bemærk ændring efter 1. gentagelse

// .stutter - gentager de enkelte genererede værdier
Pbind(\degree, Pwhite(0, 9).stutter(3), \dur, 0.5).play;

// .clump - samler enkelte værdier til "akkorder"
Pbind(\degree, Pshuf([0, 1, 2, 4, 6, 8, 9], inf).clump(2)).play;

5 nyttige meta-Patterns

5 nyttige meta-Patterns
// Pbind - knytter nøgler og patterns sammen i strømme af begivenheder (Events)
Pbind(\degree, Pseq([4, 2, 0])).play;

// Pmono og PmonoArtic - afspiller en kontinuerlig tone, skifter løbende mellem værdier
Pmono(\default, \degree, Pwhite(-10, 10), \dur, Pexprand(0.1, 0.5)).play;

// Pdef - yderst handy til synkronisering og dynamisk udskiftning af patterns
Pdef(\melodi, Pbind(\degree, Pshuf([0, 1, 3, 4], inf), \dur, 0.5)).play; // kør linjen flere gange

// Pfin - begrænser antallet af events fra en Pbind
Pfin(3, Pbind(\degree, Pwhite(0, 7), \dur, Pwhite(2, 4))).play;

// Pfindur - begrænser varigheden af en Pbind
Pfindur(3, Pbind(\degree, Pwhite(0, 7), \dur, Prand([0.25, 0.5, 0.125], inf))).play;