diff options
author | David Runge <david.runge@frqrec.com> | 2014-01-01 22:35:36 +0100 |
---|---|---|
committer | David Runge <david.runge@frqrec.com> | 2014-01-01 22:35:36 +0100 |
commit | c2d0fa50a8c7b021c9c85b6c839004d8c417b6db (patch) | |
tree | a357196b60f00b20fae67b630c0738f309b44f11 /.config/SuperCollider/startupfiles | |
parent | f485de5a631b2becd1910eb47bf7adf846663f20 (diff) | |
download | dotfiles-c2d0fa50a8c7b021c9c85b6c839004d8c417b6db.tar.gz dotfiles-c2d0fa50a8c7b021c9c85b6c839004d8c417b6db.tar.bz2 dotfiles-c2d0fa50a8c7b021c9c85b6c839004d8c417b6db.tar.xz dotfiles-c2d0fa50a8c7b021c9c85b6c839004d8c417b6db.zip |
Adding Supercollider startup files
Diffstat (limited to '.config/SuperCollider/startupfiles')
5 files changed, 186 insertions, 0 deletions
diff --git a/.config/SuperCollider/startupfiles/shared.scd b/.config/SuperCollider/startupfiles/shared.scd new file mode 100644 index 0000000..6f6cfc3 --- /dev/null +++ b/.config/SuperCollider/startupfiles/shared.scd @@ -0,0 +1,5 @@ +// change the standard archive path to a custom one: +"Applying shared system settings.".postln; +MP3.lamepath = "/usr/bin/lame"; +MP3.oggdecpath = "/usr/bin/oggdec"; +Archive.archiveDir = "~/Dropbox/software/SuperCollider".standardizePath; diff --git a/.config/SuperCollider/startupfiles/startupMotu.scd b/.config/SuperCollider/startupfiles/startupMotu.scd new file mode 100644 index 0000000..c3626f7 --- /dev/null +++ b/.config/SuperCollider/startupfiles/startupMotu.scd @@ -0,0 +1,14 @@ +Server.local.options.numOutputBusChannels = 8; // change number of input and output channels +Server.local.options.numInputBusChannels = 0;//8; +//Server.local.options.device = "MOTU Traveler"; +//Server.local.options.device = "firewire_pcm"; +//Server.local.options.device = nil; // use the system default soundcard +Server.local.options.blockSize = 128; //256; // increase block size (default is 64) +Server.local.options.sampleRate = 48000; //96000; // increase sampling rate (if your hardware supports it) +Server.local.options.memSize = 6291456;//2097152; // 1048576; +//Server.local.options.maxNodes = 65536; +//Server.local.options.maxSynthDefs = 16384; + +// hook up jack ports to audio channels +"SC_JACK_DEFAULT_INPUTS".setenv("firewire_pcm:dev0_cap_Analog1_in,firewire_pcm:dev0_cap_Analog2_in,firewire_pcm:dev0_cap_Analog3_in,firewire_pcm:dev0_cap_Analog4_in,firewire_pcm:dev0_cap_Analog5_in,firewire_pcm:dev0_cap_Analog6_in,firewire_pcm:dev0_cap_Analog7_in,firewire_pcm:dev0_cap_Analog8_in"); +"SC_JACK_DEFAULT_OUTPUTS".setenv("firewire_pcm:dev0_pbk_Analog1_out,firewire_pcm:dev0_pbk_Analog2_out,firewire_pcm:dev0_pbk_Analog3_out,firewire_pcm:dev0_pbk_Analog4_out,firewire_pcm:dev0_pbk_Analog5_out,firewire_pcm:dev0_pbk_Analog6_out,firewire_pcm:dev0_pbk_Analog7_out,firewire_pcm:dev0_pbk_Analog8_out"); diff --git a/.config/SuperCollider/startupfiles/startupSystem.scd b/.config/SuperCollider/startupfiles/startupSystem.scd new file mode 100644 index 0000000..474c732 --- /dev/null +++ b/.config/SuperCollider/startupfiles/startupSystem.scd @@ -0,0 +1,15 @@ +load("/home/dave/.config/SuperCollider/startupfiles/shared.scd"); +"Starting with internal system settings.".postln; +Server.local.options.sampleRate = 48000.0; +Server.local.options.blockSize = 128; +Server.local.options.numOutputBusChannels = 4; +Server.local.options.numInputBusChannels = 2; +Server.local.options.maxNodes = 65536; +Server.local.options.memSize = 2097152; // 1048576 +Server.local.options.maxSynthDefs = 16384; + +// hook up jack ports to audio channels +//"SC_JACK_DEFAULT_INPUTS".setenv("system:capture_1,system:capture_2"); +"SC_JACK_DEFAULT_INPUTS".setenv("system"); +//"SC_JACK_DEFAULT_OUTPUTS".setenv("system:playback_1,system:playback_2,system:playback_3,system:playback_4"); +"SC_JACK_DEFAULT_OUTPUTS".setenv("system"); diff --git a/.config/SuperCollider/startupfiles/startup_example_customize.scd b/.config/SuperCollider/startupfiles/startup_example_customize.scd new file mode 100644 index 0000000..6bd342e --- /dev/null +++ b/.config/SuperCollider/startupfiles/startup_example_customize.scd @@ -0,0 +1,98 @@ +"startup example - customising Menus.".postln; + + // choose which server to use, + // e.g. for teaching, take internal, so scope works +Server.default = s = Server.internal; +{ try { Server.local.window.close } }.defer(0.5); + +s.options + .numAudioBusChannels_(1024) // lots of busses for JITLib + .zeroConf_(false) // don't wait for zeroconf when booting server +// .device_() // maybe set a specific device ? +// .numInputBusChannels_() // with a specific number of ins +// .numOutputBusChannels() // ... and outs - default is 8. + .memSize_(8192 * 32) // memSize is in kB, so 8 * 32 = 256 MB for soundfiles, buffers + + ; + + + // JIT preparation +q = q ? (); // make a global dictionary for everything +p = ProxySpace.push(s); // make a proxyspace and push it. +q.numChans = 8; // number of channels of audio setup + + //text editor tweaks & Library Menu +Platform.case(\osx, { + // put the post window where you prefer + Document.listener.bounds_(Rect(Window.screenBounds.width - 400, 2, 400, 300)); Document.listener.background_(Color.blue(0.2, 0.9)); // and color it. // .alwaysOnTop_(true); + Document.listener.stringColor_(Color(1, 0.62, 0)); + Document.postColor_(Document.listener.stringColor); + + + SkipJack.verbose = false; // reduce info posting + + + // put things in the Library menu: + // Custom Menu Items - OSX only - configure here + CocoaMenuItem.add(["server meter"],{ Server.default.meter }); + CocoaMenuItem.add(["server window"],{ Server.default.window }); + CocoaMenuItem.add(["scope Ins"],{ q.scope = s.scope(q.numChans, index: s.options.numOutputBusChannels, zoom: 9) }); + CocoaMenuItem.add(["scope Outs"],{ q.scope = s.scope(q.numChans, index: 0, zoom: 9) }); + CocoaMenuItem.add(["FreqScope"],{ q.fscope = FreqScope.new }); + + // an 8 chan test sound + CocoaMenuItem.add(["TestSound8"],{ + p[\zztest] = { BPF.ar(Dust.ar(5 ! q.numChans, 50), { exprand(200, 2010) } ! q.numChans, 0.05) + * GrayNoise.ar(0.1, 1) }; + p[\zztest].playN(vol: 0.25); + }); + + CocoaMenuItem.add(["places", "recordings"],{ unixCmd("open" + quote(thisProcess.platform.recordingsDir)) }); + CocoaMenuItem.add(["places", "~/scwork"],{ unixCmd("open ~/scwork") }); + CocoaMenuItem.add(["places", "supportDirs"],{ + unixCmd("open " ++ Platform.userAppSupportDir.asCompileString); + unixCmd("open " ++ Platform.systemAppSupportDir.asCompileString); + }); + CocoaMenuItem.add(["places", "extensionDirs"],{ + unixCmd("open " ++ Platform.userExtensionDir.asCompileString); + unixCmd("open " ++ Platform.systemExtensionDir.asCompileString); + }); + + CocoaMenuItem.add(["quarks", "Quarks.find"], { Window("find in Quarks folder dialog ...").front }); + CocoaMenuItem.add(["quarks", "Quarks.listInstalled"], { + var str = "/**** All currently installed quarks: ****/\n"; + Quarks.installed.do { |quark| + str = str + ("\t" ++ quark.name.asCompileString ++ ".include;\n"); + }; + Document("All currently installed quarks", str); + }); + CocoaMenuItem.add(["quarks", "Quarks.gui"], { Quarks.gui; }); + CocoaMenuItem.add(["quarks", "Quarks.update"], { Quarks.checkoutAll; }); +}); + + // now really start the server, then load setup in doWhenBooted +Task { + 0.5.wait; + s.quit; // sometimes the server must be quit first, + 1.wait; // and waiting between steps can be helpful. + // tell me the new server configuration when booting: + s.boot; // now boot. + s.sync; // wait for doWhenBooted before continuing + + 1.wait; + // do whatever else belongs to setup: e.g. load some buffers, +// q.bufs = "~/scwork/XYZ/sounds/*".pathMatch.do { |path| Buffer.read(s, path) }; +// s.sync; // wit till buffers are there + + // load some code files, wait between loads +// 1.wait; +// "~/scwork/XYZ/patches/*.rtf".pathMatch.collect { |path| +// path.load; 0.5.wait; +// }; + + // s.scope(q.numChans, zoom: 9); + + "startup example with custom Menus done.".postln; + +}.play(AppClock); + diff --git a/.config/SuperCollider/startupfiles/startup_example_simpleJIT.scd b/.config/SuperCollider/startupfiles/startup_example_simpleJIT.scd new file mode 100644 index 0000000..92664e0 --- /dev/null +++ b/.config/SuperCollider/startupfiles/startup_example_simpleJIT.scd @@ -0,0 +1,54 @@ + +"simple JIT startup example.".postln; + + // choose which server to use, + // e.g. for teaching, take internal, so scope works +Server.default = s = Server.internal; +{ try { Server.local.window.close } }.defer(0.5); + +s.options + .numAudioBusChannels_(1024) + .zeroConf_(false) // don't wait for zeroconf when booting server + .memSize_(8192 * 32) // memSize is in kB, so 8 * 32 = 256 MB for soundfiles, buffers + +// // keep several combinations of audio devices + numChannels +// .device_("MicLineOut") // an aggregate device +// .hardwareBufferSize_(512) // 512 is default +// .numInputBusChannels_(8) // 8 is default +// .numOutputBusChannels_(8) // 8 is default + + // comment out unused devices. +// .device_("Fireface 400") +// .hardwareBufferSize_(128) +// .numInputBusChannels_(18) +// .numOutputBusChannels_(18) +; + + +q = q ? (); // make a global dictionary for everything + +p = Ndef.dictFor(s); // make a proxyspace for Ndefs on the default server +p.push(s); // and push it - so Ndef(\asd) === ~asd now. + +s.quit; // in case the server is still running, quit it. + + // decide what should happen after server has booted: +s.doWhenBooted({ + 1.wait; + "server is booted - do further setup here...".postln; + // make some JIT guis: + try { q.pxmix.win.close }; q.pxmix = ProxyMixer(p, 16); + try { q.tdg.win.close }; q.tdg = TdefAllGui(16); q.tdg.moveTo(210, 600); + try { q.pdg.win.close }; q.pdg = PdefAllGui(16); q.pdg.moveTo(420, 600); + + 1.wait; + + Env.perc.test; // and play a test sound if you like + "simple JIT setup done.".postln; +}); + +Task({ + 1.wait; // wait till quit has happened - make longer if needed. + s.boot; // boot again +}).play(AppClock); + |