Øvelse: Analyse og videreudvikling af kompositionseksempler
I denne øvelse skal du analysere udvalgte aspekter af fem eksempler på pattern-baseret komposition. Øvelsen skal gøre dig fortrolig med de teknikker, der er omtalt tidligere i bogen, da vi her anvender de introducerede teknikker i en kompositorisk sammenhæng. Du skal nemlig også videreudvikle kompositionerne med dit eget kreative bidrag.
Redskaber til analyse: Når du undersøger, hvordan teknikkerne fungerer, kan disse tricks være en god hjælp til at forstå hvad der foregår:
- Brug method'en
.trace
til at vise outputtet fra forskellige patterns i post window, fxPwhite(0, 5).trace
. - Brug SuperColliders dokumentation - sæt cursoren ved et pattern-navn og tast Ctrl/Cmd-D. Scroll herefter ned til bunden af den pågældende dokumentationsside for at se eksempler på hvordan det pågældende pattern fungerer.
- Eksperimentér med at ændre på nogle af værdierne for at få en fornemmelse af, hvordan teknikkerne fungerer.
Lydeksempler: Lydeksemplerne herunder er realiseret ved at sende MIDI-meddelelser til en DAW og generere lyden med instrumentplugins, som vist i det foregående afsnit om pattern-baseret MIDI-komposition. Det fremgår under hvert eksempel hvilket konkret plugin, der er anvendt.
Sammensætning af nøgler og patterns
- Analyse
- Hvordan fungerer de enkelte nøgler (
\octave
,\root
,\mtranspose
,\lag
osv.)? Slå evt. op i forrige kapitel. - Hvordan kombineres tilfældighed og repetition under nøglerne
\mtranspose
og\db
? Se evt. afsnittet om sekvenser af patterns.
- Hvordan fungerer de enkelte nøgler (
- Kreativ opgave
- Eksperimentér med alternative skalaer, nodeværdier og trinsekvenser
TempoClock.tempo = 120 / 60;
~trin = [0, 4, 3, 1, 2];
~varigheder = [1/8, 1/8, 1/8, 1/16, 1/16];
Pbind(
\octave, 5,
\root, 2,
\scale, Scale.lydian,
\degree, Pseq(~trin, 16),
\mtranspose, Pwhite(-3, 3).stutter(~trin.size + 2),
\dur, Pseq(~varigheder, inf) * 4,
\legato, 1.2,
\lag, Pgauss(0, 0.005),
\db, Pseq([-10, Pgauss(-15, 2, 4)], inf),
).play;
Lydeksemplet er realiseret med instrument-plugin'et Helm og preset'et Old Factory Presets > CM Pluck Time med portamento slået til.
Skala-udforskning med Pbrown
- Analyse
- Hvilken funktion har nøglen
\ctranspose
? - Hvad sker der, hvis du ændrer nøglen
\ctranspose
til\mtranspose
? - Hvad er forskellen på
Pbrown
ogPwhite
?
- Hvilken funktion har nøglen
- Kreativ opgave
- Skab en mere interessant rytmik ved at erstatte den faste værdi 0.2 ved
\dur
-nøglen med et pattern efter eget valg
- Skab en mere interessant rytmik ved at erstatte den faste værdi 0.2 ved
TempoClock.tempo = 85 / 60;
Pbind(
\degree, Pbrown(0, 21, 3),
\octave, 4,
\ctranspose, Pbrown(-5, 4, 1, 4).stutter(32),
\db, Pbrown(-15, -5, 2).trace,
\dur, 0.25,
).play;
Lydeksemplet er realiseret med instrument-plugin'et sforzando og sfz-instrumentet Marimba fra Versilian Studios Chamber Orchestra 2 Community Edition.
Pentatone mønstre
- Analyse
- Hvilke teknikker anvendes her til at opnå en balance mellem struktur/repetition og tilfældighed?
- Hvilket pattern styrer kompositionens storform, altså hvor mange toner vi samlet hører?
- Hvilken funktion har
Array.interpolation
? Se evt. afsnittet om lister.
- Kreativ opgave
- Skriv to variationer af kompositionen:
- Én version, som har en højere grad af tilfældighed
- Én version, som har en højere grad af struktur og gentagelse
- Skriv to variationer af kompositionen:
TempoClock.tempo = 130 / 60;
Pbind(
\scale, Scale.minorPentatonic,
\octave, Pwhite(4, 5).stutter(4),
\degree, Pshuf([0, 1, 2, 3, 4, 5], 4).repeat,
\root, Pxrand([0, 2, 3]).repeat.stutter(24),
\dur, 0.25,
\legato, Pseq(Array.interpolation(24, 0.1, 3), 8),
\db, Pbrown(-20, -12, 0.5)
).play;
Lydeksemplet er realiseret med instrument-plugin'et Vital med en let justeret udgave af preset'et Super Pluck.
Rytmiserede og dynamiske akkorder
- Analyse
- Hvilken effekt har kombinationerne af
.stutter
og.repeat
på outputtet fra de forskellige patterns? - Hvad betyder
Array.interpolation(16, -20, -10)
?
- Hvilken effekt har kombinationerne af
- Kreativ opgave
- Tilføj mindst én akkord til
Pwrand
(husk, at sandsynlighederne[0.9, 0.1]
skal svare til antallet af valgmuligheder og tilsammen skal give 1). - Erstat
Pxrand
med et andet listebaseret tilfældighedspattern efter eget valg, og notér hvilken forskel dette gør.
- Tilføj mindst én akkord til
TempoClock.tempo = 120 / 60;
Pbind(
\degree, Pwrand([
[-14, 0, 2, 4, 6],
[-12, -1, 1, 4, 5]
], [0.9, 0.1]).stutter(16).repeat,
\mtranspose, Pxrand((-5..5)).repeat.stutter(16),
\dur, 1/16 * 4,
\legato, 0.7,
\db, Pseq(Array.interpolation(16, -20, -10), inf),
).play;
Lydeksemplet er realiseret med instrument-plugin'et sforzando og sfz-instrumentet Upright Piano fra Versilian Studios Chamber Orchestra 2 Community Edition.
Rytmiske motiver
- Analyse
- Undersøg hvilke teknikker, der i dette tilfælde skaber balance mellem det tilfældige og det genkendelige.
- Undersøg hvad method'en
.normalizeSum
gør.
- Kreativ opgave
- Skriv en ny komposition, som er inspireret af kildekoden herunder samt opgaverne ovenfor.
En sidebemærkning: Pattern'et Pn
på linje 12 herunder er en eksplicit udgave af .repeat
. Pn
gentager den værdi eller det pattern, der angives som første argument, et angivet antal gange.
(
TempoClock.tempo = 85 / 60;
~melodi = Pbind(
\scale, Scale.dorian,
\degree, Pshuf((0..7), 4).repeat,
\legato, 1.3,
\dur, Pwrand([
Pseq( [1/4, 1/4] ),
Pseq( [1/16, 1/16, 1/8] ),
Pseq( [1/16, 1/8, 1/16] ),
Pseq( [Pn(1/24, 6), 1/4] ), // 16.-dels-trioler
Pseq( [1/2, Rest(1/2)] ), // Rest angiver pause
], [40, 40, 30, 5, 5].normalizeSum
).repeat * 4,
);
~komp = ~melodi.play;
)
// Flerstemmig variation med Ppar (parallelle Pbinds):
~komp = Ppar(~melodi ! 3).play;
~komp.stop;
Lydeksemplet er realiseret med instrument-plugin'et Spitfire LABS og sample pack'en Charango - Charango Ensemble.