Skip to content

Latest commit

 

History

History
74 lines (62 loc) · 3.72 KB

superdirt_startup.scd

File metadata and controls

74 lines (62 loc) · 3.72 KB

( s.reboot { // server options are only updated on reboot // configure the sound server: here you could add hardware specific options // see http://doc.sccode.org/Classes/ServerOptions.html s.options.numBuffers = 1024 * 256; // increase this if you need to load more samples s.options.memSize = 8192 * 32; // increase this if you get "alloc failed" messages s.options.numWireBufs = 2048; // increase this if you get "exceeded number of interconnect buffers" messages s.options.maxNodes = 1024 * 32; // increase this if you are getting drop outs and the message "too many nodes" s.options.numOutputBusChannels = 2; // set this to your hardware output channel size, if necessary s.options.numInputBusChannels = 2; // set this to your hardware output channel size, if necessary s.options.inDevice_("USB Audio CODEC "); // for tidal looping // s.options.inDevice_("Aggregate Device"); // for tidal looping s.options.outDevice_("Screen Recording Audio"); // for screen recording // s.options.outDevice_("MacBook Pro Speakers"); // boot the server and start SuperDirt s.waitForBoot { ~dirt.stop; // stop any old ones, avoid duplicate dirt (if it is nil, this won't do anything) ~dirt = SuperDirt(2, s); // two output channels, increase if you want to pan across more channels

	// Initialize the TidalLooper
	~looper = TidalLooper(~dirt);

	// You can adjust these parameter even in runtime
	~looper.rLevel = 1.5; // recording level
	~looper.pLevel = 1; // prerecording level
	// ~looper.linput = 0; // Default 0; Set this to your main input port.
	// ~looper.lname = "loop"; // default "loop"

	// load mi-ugens.scd synthdefs
	load("Users/may/Library/Application Support/SuperCollider/synthdefs/mi-ugens.scd");

	// load custom synthdefs
	load("/Users/may/Documents/music-tools/tidal/synths.scd");

	~dirt.loadSoundFiles; // load samples (path containing a wildcard can be passed in)
	// for example: ~dirt.loadSoundFiles("/Users/myUserName/Dirt/samples/*");
	~dirt.loadSoundFiles("/Users/may/Documents/music-tools/Samples/load/*");
	~dirt.loadSoundFiles("/Users/may/Documents/music-tools/Samples/load/*/*");

	// s.sync; // optionally: wait for samples to be read
	~dirt.start(57120, 0 ! 12); // start listening on port 57120, create two busses each sending audio to channel 0
	SuperDirt.default = ~dirt; // make this instance available in sclang (optional)

	// optional, needed for convenient access from sclang:
	(
		~d1 = ~dirt.orbits[0]; ~d2 = ~dirt.orbits[1]; ~d3 = ~dirt.orbits[2];
		~d4 = ~dirt.orbits[3]; ~d5 = ~dirt.orbits[4]; ~d6 = ~dirt.orbits[5];
		~d7 = ~dirt.orbits[6]; ~d8 = ~dirt.orbits[7]; ~d9 = ~dirt.orbits[8];
		~d10 = ~dirt.orbits[9]; ~d11 = ~dirt.orbits[10]; ~d12 = ~dirt.orbits[11];
	);

	// directly below here, in your own copy of this file, you could add further code that you want to call on startup
	// this makes sure the server and ~dirt are running
	// you can keep this separate and make it easier to switch between setups
	// by using "path/to/my/file.scd".load and if necessary commenting out different load statements
	// ...

	// define global effects for mutable instruments effects
	~dirt.orbits.do { |x|
		var clouds = GlobalDirtEffect(\global_mi_clouds, [\cloudspitch, \cloudspos, \cloudssize, \cloudsdens, \cloudstex, \cloudswet, \cloudsgain, \cloudsspread, \cloudsrvb, \cloudsfb, \cloudsfreeze, \cloudsmode, \cloudslofi]);
		var verb = GlobalDirtEffect(\global_mi_verb, [\verbwet, \verbtime, \verbdamp, \verbhp, \verbfreeze, \verbdiff, \verbgain]);
		x.globalEffects = x.globalEffects
			.addFirst(clouds)
			.addFirst(verb); 
		x.initNodeTree;    
	};                     
	// end define global effects for mutable instruments effects

};

s.latency = 0.3; // increase this if you get "late" messages

}; );