fixing patterns for ending fadeout and random number generation
This commit is contained in:
parent
2c11afac7a
commit
483162b94d
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -99,7 +99,7 @@
|
|||
|
||||
\header {
|
||||
title = \markup { \italic {to kill a monarch}}
|
||||
composer = \markup \right-column {"michael winter" "(berlin, germany; 2020)"}
|
||||
composer = \markup \right-column {"michael winter" "(berlin, germany; 2021)"}
|
||||
poet = "seed: 19800725"
|
||||
tagline = ""
|
||||
}
|
||||
|
|
@ -109,7 +109,7 @@
|
|||
\layout {
|
||||
indent = 0.0\cm
|
||||
line-width = 17.5\cm
|
||||
ragged-last = ##t
|
||||
ragged-last = ##f
|
||||
ragged-right = ##f
|
||||
|
||||
\context {
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -99,7 +99,7 @@
|
|||
|
||||
\header {
|
||||
title = \markup { \italic {to kill a monarch}}
|
||||
composer = \markup \right-column {"michael winter" "(berlin, germany; 2020)"}
|
||||
composer = \markup \right-column {"michael winter" "(berlin, germany; 2021)"}
|
||||
poet = "seed: xxx"
|
||||
tagline = ""
|
||||
}
|
||||
|
|
@ -109,7 +109,7 @@
|
|||
\layout {
|
||||
indent = 0.0\cm
|
||||
line-width = 17.5\cm
|
||||
ragged-last = ##t
|
||||
ragged-last = ##f
|
||||
ragged-right = ##f
|
||||
|
||||
\context {
|
||||
|
|
|
|||
|
|
@ -457,21 +457,25 @@ genAmpCurve = {arg temporalData1, temporalData2, offset1, offset2, type;
|
|||
sectionNavDict.add([sectionCount, subsectionCount]->[(curLen / 16 + 1).asInteger]);
|
||||
|
||||
4.do({arg part;
|
||||
var musicData, partState, noteCountInd;
|
||||
var musicData, partState, accompRoutine;
|
||||
# musicData, partState = genEnsemblePart.value(partStates[part], modeState, temporalData[part], roots, part, curLen);
|
||||
ensData[part] = ensData[part] ++ musicData;
|
||||
partStates[part] = partState;
|
||||
|
||||
thisThread.randSeed = Date.seed;
|
||||
6.do({arg register;
|
||||
musicData = genAccompPart.value(modeState, temporalData[part], curLen, pow(2, part + register), part, register);
|
||||
accompData[part][register] = accompData[part][register] ++ musicData;
|
||||
//use and independent random number generator for the accompaniment
|
||||
accompRoutine = Routine({
|
||||
thisThread.randSeed = Date.seed;
|
||||
6.do({arg register;
|
||||
musicData = genAccompPart.value(modeState, temporalData[part], curLen, pow(2, part + register), part, register);
|
||||
accompData[part][register] = accompData[part][register] ++ musicData;
|
||||
});
|
||||
});
|
||||
accompRoutine.value;
|
||||
|
||||
});
|
||||
|
||||
subsectionCount = subsectionCount + 1;
|
||||
thisThread.randSeed = (seed + (sectionCount * 200) + subsectionCount);
|
||||
//thisThread.randSeed = (seed + (sectionCount * 200) + subsectionCount);
|
||||
|
||||
if(curLen == 0, {
|
||||
lastCadenceTemporalData = temporalData;
|
||||
|
|
|
|||
|
|
@ -46,12 +46,12 @@ var formatPatternData;
|
|||
Out.kr(bus, amp.lag)
|
||||
});
|
||||
|
||||
sdEns = SynthDef(\ens_ ++ ~hash, {arg freq = 440, amp = 1, dur = 1, gate = 1, bus = 0, ampBus = 0;
|
||||
Out.ar(bus, SinOsc.ar(freq, 2pi.rand, 0.1) * amp * Latch.kr(In.kr(ampBus), Impulse.kr(0)) * EnvGen.kr(Env.asr(0.1, 1, 0.1), gate, doneAction: 2))
|
||||
sdEns = SynthDef(\ens_ ++ ~hash, {arg freq = 440, amp = 1, dur = 1, gate = 1, bus = 0, ampBus = 0, rel = 0.1;
|
||||
Out.ar(bus, SinOsc.ar(freq, 2pi.rand, 0.1) * amp * Latch.kr(In.kr(ampBus), Impulse.kr(0)) * EnvGen.kr(Env.asr(0.1, 1, rel), gate, doneAction: 2))
|
||||
});
|
||||
|
||||
sdAccomp = SynthDef(\accomp_ ++ ~hash, {arg freq = 440, amp = 1, attack = 1, dur = 1, gate = 1, bout = 0, ampBus = 0;
|
||||
Out.ar(bout, SinOsc.ar(freq, 2pi.rand, 1) * 0.01 * amp * Latch.kr(In.kr(ampBus), Impulse.kr(0)) * EnvGen.kr(Env.asr(attack, 1, 0.01), gate, doneAction: 2))
|
||||
sdAccomp = SynthDef(\accomp_ ++ ~hash, {arg freq = 440, amp = 1, attack = 1, dur = 1, gate = 1, bout = 0, ampBus = 0, rel = 0.01;
|
||||
Out.ar(bout, SinOsc.ar(freq, 2pi.rand, 1) * 0.01 * amp * Latch.kr(In.kr(ampBus), Impulse.kr(0)) * EnvGen.kr(Env.asr(attack, 1, rel), gate, doneAction: 2))
|
||||
});
|
||||
|
||||
sdClip = SynthDef(\clip_ ++ ~hash, {arg dur = 1, gate = 1, bin = 0, bus = 0;
|
||||
|
|
@ -74,12 +74,14 @@ var formatPatternData;
|
|||
|
||||
|
||||
// group data by measures for navigation
|
||||
formatPatternData = {arg musData, measureLen;
|
||||
formatPatternData = {arg musData, measureLen, rel, print = false;
|
||||
var dataLen;
|
||||
dataLen = musData[0][0].size;
|
||||
dataLen = musData[0][0].size + 1;
|
||||
musData.collect({arg partData;
|
||||
var res;
|
||||
res = partData.flop;
|
||||
res = partData;
|
||||
res = res.collect({arg mData, index; mData.add(if(index != (res.size - 1), {rel}, {5.rand + 5}))});
|
||||
res = res.flop;
|
||||
res = res.add(res[1]);
|
||||
res[1] = (res[1].differentiate.drop(1) ++ [10]);
|
||||
res = res.flop ++ measureLen.collect({arg measure; dataLen.collect({0}) ++ [measure * 16]});
|
||||
|
|
@ -103,8 +105,8 @@ formatPatternData = {arg musData, measureLen;
|
|||
accompData.flatten.collect({arg partData; partData.last[1]})
|
||||
).maxItem.ceil(16) / 16).asInteger + 1;
|
||||
|
||||
ensDataFormatted = formatPatternData.value(ensData, measureLen);
|
||||
accompDataFormatted = formatPatternData.value(accompData.flatten, measureLen);
|
||||
ensDataFormatted = formatPatternData.value(ensData, measureLen, 0.1, true);
|
||||
accompDataFormatted = formatPatternData.value(accompData.flatten, measureLen, 0.01);
|
||||
dUnit = 8.reciprocal;
|
||||
|
||||
patterns = measureLen.collect({arg measure;
|
||||
|
|
@ -114,20 +116,21 @@ formatPatternData = {arg musData, measureLen;
|
|||
});
|
||||
Ppar(
|
||||
//check how amplitude is being handled
|
||||
ensDataFormatted[measure].collect({arg musData, m;
|
||||
ensDataFormatted[measure].collect({arg musData, p;
|
||||
Pbind(
|
||||
\instrument, \ens_ ++ ~hash,
|
||||
\freq, Pseq(musData[0].replace(0, Rest(0))),
|
||||
\dur, Pseq(musData[1] * dUnit),
|
||||
\sustain, Pseq(musData[2] * dUnit),
|
||||
\amp, [1, 0.7, 0.5, 0.3][m],
|
||||
//\amp, Pseq(musData[2].collect({arg item; [0, 0.25, 0.5, 0.75][item]}) * [1, 0.5, 0.25, 0.1][m] * 16);
|
||||
\amp, [1, 0.7, 0.5, 0.3][p],
|
||||
//\amp, Pseq(musData[2].collect({arg item; [0, 0.25, 0.5, 0.75][item]}) * [1, 0.5, 0.25, 0.1][p] * 16);
|
||||
\ampBus, preampBusses[0].index,
|
||||
\bus, postampBusses[m].index
|
||||
\bus, postampBusses[p].index,
|
||||
\rel, Pseq(musData[6])
|
||||
)
|
||||
}) ++
|
||||
//check how amplitude and attack are being handled
|
||||
accompDataFormatted[measure].collect({arg musData, m;
|
||||
accompDataFormatted[measure].collect({arg musData;
|
||||
Pbind(
|
||||
\instrument, \accomp_ ++ ~hash,
|
||||
\freq, Pseq(musData[0].replace(0, Rest(0))),
|
||||
|
|
@ -137,7 +140,8 @@ formatPatternData = {arg musData, measureLen;
|
|||
//\attack, Pseq(musData[1] * abs(musData[3].clip(0, 0.25) * 2 - 1) * dUnit),
|
||||
\attack, Pseq(musData[2] * 1 * dUnit),
|
||||
\ampBus, preampBusses[0].index,
|
||||
\bout, Pseq(musData[4].collect({arg index; accompBusses[index].index}))
|
||||
\bout, Pseq(musData[4].collect({arg index; accompBusses[index].index})),
|
||||
\rel, Pseq(musData[5])
|
||||
)
|
||||
}) ++
|
||||
[
|
||||
|
|
|
|||
|
|
@ -23,8 +23,9 @@ formatMusicData = {arg rawMusicData;
|
|||
});
|
||||
|
||||
// make them all the same length
|
||||
maxSize = maxSize.trunc(16) + 16;
|
||||
musicData = musicData.collect({arg partData, p; partData.extend(maxSize, [-1, -1, -1, partData.last[1]])});
|
||||
maxSize = maxSize.trunc(64) + 64;
|
||||
//musicData = musicData.collect({arg partData, p; partData.extend(maxSize, [-1, -1, -1, partData.last[1]])});
|
||||
musicData = musicData.collect({arg partData, p; partData.extend(maxSize, partData.last)});
|
||||
musicData
|
||||
};
|
||||
|
||||
|
|
@ -68,7 +69,7 @@ lyFinalizeMusic = {arg lyStr, part, name, nameShort, nameMidi, clef;
|
|||
"\n\\set Score.markFormatter = #format-mark-box-numbers " +
|
||||
"\\tempo 2 = 60\n" +
|
||||
"\\numericTimeSignature \\time 2/2\n" +
|
||||
"\\clef " ++ clef ++ "\n" ++ lyStr ++
|
||||
"\\clef " ++ clef ++ "\n" ++ lyStr + "\\fermata" +
|
||||
" }>> \\bar \"|.\" \n} \n\n>>" ++
|
||||
"\n>>"
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue