rhoadley.net   music   research   software   blogs

aru    seminars    m&t    critski    focm1a    cmc    circuit bending    mic2b    sensor technology    comp 3    sonic art    major project
youtube    vimeo    facebook


Resources:    Bioacoustics    Jitter    MaxMSP    OSC    Physical    PD       CBHH    sTech    SuperCollider    C/Xcode

Max/MSP Resources:     Home     Blog-wp     Forum     Examples     Projects     Tasks     Tutorials

Supercollider Resources:     Home     Blog     Forum     Examples     Projects     Tasks     Tutorials


Supercollider Tasks

The BBCut Task

Task Name: Set: Due: Weighting: Courses:
CMP Task Summary All CMP tasks

Using BBCut, by Nick Collins. His website with the latest code (and others) is here.

Tom's BBCut Utility

// Here is a very simple way to use a basic BBCut procedure on any file you can navigate to...


(
var sf, file, myChosenSound;

File.openDialog("", { arg pathName; file = pathName;
pathName.postln;  // I can check that the right path appears by reading the post window

TempoClock.default.tempo_(2.3);
		
Routine.run({sf= BBCutBuffer(pathName,8);

s.sync; // this forces a wait for the Buffer to load

BBCut2(CutBuf1(sf)).play; // will use TempoClock.default so depends what tempo that is at
});

});

)





// Here is the code used just to open the file browser... you can use it for other patches !

(
var sf, file, myChosenSound;

File.openDialog("", { arg pathName; file = pathName;
pathName.postln;  //I can check that the right path appears

});

)

// Better

~myArray = []; // Make an array to hold your pathnames
// evaluate again later to wipe the array clean to start again


// A function to add to filenames (evalute once only)
(
~myFile = {
File.openDialog("", { 
	arg pathName;
	~myArray = ~myArray.add(pathName);
	~myArray.postln;
	});
}
)

~myFile.value // evaluate multiple times to add to ~myArray


~myArray // Check me

(
var sf, clock, synth;
s=Server.default;
clock= ExternalClock(TempoClock(2.1)).play;	

Routine.run({
	sf= BBCutBuffer.array(~myArray, [4,8,4]);
	s.sync;
	BBCut2(
		CutBuf3(BufSelector(
			sf,
			{|block,lastindex|  
				if(block.cuts.size<3, {0}, {rrand (1,2)})
			}),
			0.2), 
		WarpCutProc1.new
	).play(clock);
});
)




The Task

  • Locate the SuperCollider Application directory;
  • Within that, you'll see a directory called SCClassLibrary;
  • Within that, you should see two directories, called BBCut Classes and bbcut2 classes;
  • Within the latter, you'll find other directories filled with files like BBCPPermute.sc.
  • If you're curious, you can investigate these by opening them in SC or Textwrangler. Don't change them, though.
  • Also in the Supercollider Application directory, you'll find another directory called bbcut and within that, a directory of examples. You may open these files within SC and run them to check they work and experiment.

  • Open a new SC window and type into it BBCut2.
  • Select this and choose Help.
  • Run the various codes within the help file.

  • Download this document and work your way through it.

  • Find an algorithm that you like are are interested in. Use your own soundfiles - they don't have to be beats. You can use anything.
  • Try also using the Buffer class. You can use this in a similar way, although without any of the built in functionality.
  • Create a simple and short diversion in SC using BBCut and/or Buffer. Record this to a sound file.

  • If you wish, you can use the following code to record your effort:
    
    // recording (to the SC directory)...
    // use your own path below if you want.
    (
    s.recSampleFormat = "int16";
    s.recChannels = 1; // number of channels
    s.prepareForRecord("mybbcut.aiff");
    // use the particular path above...
    s.record;
    )
    
    s.stopRecording;
    
    
  • NB If you're using a standard installation of SC in the CMS, you won't be able to record to the SC Directory, so you'll need to identify a directory to which you have full access. Use the following path: "/Volumes/Macintosh HD/student/MyDocs", etc. You'll have to alter it, of course, to match your own directory.

Finally

  • Zip or Stuff your patches, demos, etc. into one file called your_student_number_"BBCut" (e.g. 0504335_BBCut.zip or 0504335_BBCut.sit), include a readme with your name and student number and, if necessary, how to use or just open the patch, and submit the whole thing here.

You might also be interested in:

  • this...

The Projects

The projects and tasks are designed to help you through the various courses and materials that you'll have to deal with, and also to provide an active and practical element to what could otherwise become a rather dry and technical exercise. Tasks are small exercises - you may be asked to complete one or two per week. Projects are larger and carry a higher percentage of the mark. We will undertake two, three, four or more projects and tasks. The final project is usually an individual choice project, and will be worth significantly more than the others in terms of percentages in your portfolio. We will usually try to set aside a time to perform the projects in a public setting.