updating score, parts, and code after premiere with liminar

main
Michael Winter 7 years ago
parent 3d11b2ecd7
commit 9c02fd80ce

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

@ -1,7 +1,7 @@
(
//~~FUNCTION THAT GENERATES THE GUI
~generateGUI = {
var win, clockStringFunc, masterView, faderViews, tabs;
var win, clockStringFunc, metronomeStringFunc, metronomeColorFunc, masterView, faderViews, tabs;
var tabButtonReset, masterButton, guitarOButton, guitarIButton, percButton, ensembleButton, accompButton, startPos = 0;
var groupNames = ["guitar - ostinato", "guitar - interrupt", "percussion", "interrupt highlights", "fields / beats / flicker"], groupAbbr = ["go", "gi", "p", "e", "a"];
var accompNames = ["brown noise", "white noise", "sine beating", "flicker"];
@ -18,16 +18,17 @@
masterVolGroups = [0.8, 0.8, 0.8, 0.8, 0.8];
clockStringFunc = {
arg div, metronome = true;
var min, sec, metUni;
sec = if(metronome, {(div / 5).trunc}, {div});
metUni = case {metronome == false} {""} {div % 20 < 2} {"|◘"} {div % 4 < 2} {"|●"} {true} {"| "};
arg div;
var min, sec;
sec = (div / 5).trunc;
min = (sec / 60).trunc.asString;
if(min.size == 1, {min = "0" ++ min}, {});
sec = (sec % 60).trunc.asString;
if(sec.size == 1, {sec = "0" ++ sec}, {});
min ++ ":" ++ sec ++ metUni;
min ++ ":" ++ sec
};
metronomeStringFunc = { arg div; case {div % 20 < 2} {"◘"} {div % 4 < 2} {"●"} {true} {" "} };
metronomeColorFunc = { arg div; case {div % 20 < 2} {Color.red} {div % 4 < 2} {Color.blue} {true} {Color.black} };
~appStatusFunc = Task({
loop {
@ -42,10 +43,12 @@
win = Window("ostinato and interrupt", Rect(500, 500, 1100, 500), false).front;
masterView = {
var view, masterIndicators, master, generator, transport, ranSeed, startPosText, pauseButton, clock;
var view, masterIndicators, master, generator, transport, ranSeed, startPosText, pauseButton, clock, metronome;
OSCFunc({ arg msg, time;
{clock.string = clockStringFunc.value(msg[3])}.defer;
OSCFunc({ arg msg, time; {
clock.string = clockStringFunc.value(msg[3]);
metronome.stringColor = metronomeColorFunc.value(msg[3]);
metronome.string = metronomeStringFunc.value(msg[3])}.defer;
},'/tr', s.addr);
OSCFunc.new({arg msg; {
{|i| masterIndicators[i].value = msg[3 + i].ampdb.linlin(-40, 0, 0, 1)} ! 2}.defer},
@ -88,14 +91,16 @@
[Slider(view, Rect(0, 0, 30, 5)).action_(
{|pos|
var min, sec;
startPosText.string = clockStringFunc.value((pos.value * ~totalDur).trunc, false);
startPosText.string = clockStringFunc.value((pos.value * ~totalDur * 5).trunc);
startPos = pos.value;
}), stretch: 1],
startPosText = StaticText(win).string_("00:00").font_(Font("Monaco", 15)),
nil);
view.layout_(HLayout(master,
[VLayout(generator, nil,
clock = StaticText(win).string_("00:00|◘").font_(Font("Monaco", 220)),
HLayout(clock = StaticText(win).string_("00:00").font_(Font("Monaco", 200)),
StaticText(win).string_("|").font_(Font("Monaco", 200)),
metronome = StaticText(win).string_("◘").font_(Font("Monaco", 300)).stringColor_(Color.red)),
nil, transport
), alignment: \top])) };
faderViews = { |group|

@ -1,14 +1,14 @@
(
//~~FUNCTION THAT GENERATES THE LILYPOND FILES
~generateLilypond = {
var sf, data, notes, perc, parts, noteNames, durSum, lastState, lastDur, n, beatPos, lastBassNote, grey, lilyRepeat, lilyTime;
var sf, data, notes, perc, parts, noteNames, durSum, lastState, lastDur, n, beatPos, lastBassNote, lGrey, dGrey, lilyRepeat, lilyTime;
var inFile, outFile, inString, outString;
sf = SoundFile.openRead(~dir +/+ "../supercollider/gen_data_resources/ostinato_and_interrupt_data.wav");
sf.readData(data = FloatArray.newClear(10000)); sf.close;
data = data.clump(5).drop(1);
notes = []; perc = []; parts = [[], [], [], [], [], [], []];
noteNames = ["d\'", "f\'", "a\'", "c\'\'", "e\'\'", "g\'\'"];
durSum = 60; lastState = -1; lastDur = -1; n = 0; beatPos = 0; grey = 70; lastBassNote = 11;
durSum = 60; lastState = -1; lastDur = -1; n = 0; beatPos = 0; lGrey = 70; dGrey = 50; lastBassNote = 11;
while( {data[n][4] != 0}, {
var state, string, note, sound, dur;
state = data[n][0]; string = data[n][1]; note = data[n][2]; sound = data[n][3]; dur = data[n][4];
@ -75,11 +75,12 @@
perc = perc.add(if(sound == 2 || (state == 0),
{lilyBar ++ lilyTime ++ lilyStem ++ lilyNote},
{lilyBar ++ lilyTime ++ " \\once \\override Stem.color = #(x11-color \'grey" ++ grey.asString ++ ") " ++ lilyStem ++
" \\once \\override NoteHead.color = #(x11-color \'grey" ++ grey.asString ++ ") " ++ lilyNote}));
{lilyBar ++ lilyTime ++ " \\once \\override Stem.color = #(x11-color \'grey" ++ lGrey.asString ++ ") " ++ lilyStem ++
" \\once \\override NoteHead.color = #(x11-color \'grey" ++ lGrey.asString ++ ") " ++ lilyNote}));
for(0, 5, {
arg p;
arg p; var grey;
grey = if(sound == 2, {dGrey}, {lGrey});
parts[p] = parts[p].add(if(string == p || (state == 0),
{lilyBar ++ lilyTime ++ lilyStem ++ lilyNote},
{lilyBar ++ lilyTime ++ " \\once \\override Stem.color = #(x11-color \'grey" ++ grey.asString ++ ") " ++ lilyStem ++
@ -113,7 +114,7 @@
for(0, 5, {
arg p, staff;
outFile = File(~dir +/+ "../lilypond/ostinato_and_interrupt_lilypond_ensemble_part_" ++ (6 - p).asString ++ ".ly", "w");
staff = Array.fill(6, {|i| if(i == (5 - p), {"#f "}, {"(x11-color \'grey" ++ grey.asString ++ ") "})}).join;
staff = Array.fill(6, {|i| if(i == (5 - p), {"#f "}, {"(x11-color \'grey" ++ lGrey.asString ++ ") "})}).join;
staff = "\\override Staff.StaffSymbol.stencil = #(color-staff-lines " ++ staff ++ ")";
outString = "<< " ++ lilyRepeat ++ lilyTime ++
"{" ++ staff ++ " \\override Staff.Rest #\'transparent = ##t " ++ (parts[p]).join ++ ' \\bar \"|.\" } >>';

@ -41,6 +41,8 @@ SynthDef(\play, {
Out.ar(0, allMaster);
curDur = ((A2K.kr(phasor) / BufFrames.kr(buf)) * BufDur.kr(buf) * 5).trunc;
//Optional click - uncomment and send to an output not used to give the guitarist a click track.
//Out.ar(2, 10 * BPF.ar(WhiteNoise.ar * EnvGen.kr(Env.perc(0.01, 0.1), curDur % 4 <= 0), 440 * ((curDur % 20 <= 0) + 1), 0.02));
SendTrig.kr(Changed.kr(curDur), 0, curDur);
imp = Impulse.kr(10);
delimp = Delay1.kr(imp);

Loading…
Cancel
Save