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


acmc Tasks

Sonification

Task 3 Name: Sonification Set: w8i Due: with final submission Weighting: 25/33/50% Courses: acmc
Prev Task: Algorithmic Composition Next Task:
Task Summary All acmc tasks VLE

Some techniques involving Sonification.

From Wikipedia - there is no OED definition of the term!:

"Sonification is the use of non-speech audio to convey information or perceptualize data. Due to the specifics of auditory perception, such as temporal and pressure resolution, it forms an interesting alternative to visualization techniques, gaining importance in various disciplines. It has been well established for a long time already as Auditory Display in situations that require a constant awareness of some information (e.g. vital body functions during an operation). Sonification as a method for exploration of data and scientific modeling is a current and ongoing research desideratum.

"One of the first successful applications of sonification is the well-known Geiger counter, a device measuring ionizing radiation. The number and frequency of audible clicks are directly dependent on the radiation level in the immediate vicinity of the device."

You may have had some experience of using sonification via Jitter - this is sonification of image data.


Other resources

- Search for 'Sonification MaxMSP Supercollider' in:
Google, Scholar, Books, Image, Video,
University Library


To Cover

SuperCollider

Here's another specific example: a little piece of code that identifies a particular number (or character). You might try and work out how to identify each letter in a document (see SC help file for Document - the exmample below is from this).

Here the sonification is of characters (or in this case, the interpretation of those characters - but then sonification is all about interpretation.


(
// NB This example may not work if you simply copy and paste the text.  The example is from the help file for Document and you may wish to use the version given there.
//add a mouse action to this document: 
//example: easy button:
//when you click in front of a 17 a SinOsc will start up;
Server.local.boot;
Document.current.mouseDownAction_({arg doc;
	var char;
	char = doc.rangeText(doc.selectionStart, 2);
	char.postln;
	if(char == "17",{
		{EnvGen.kr(Env.perc, doneAction:2) * SinOsc.ar([600,720,300].choose, 0, 0.5)}.play;
	});
	if(char == "23",{
		{EnvGen.kr(Env.perc, doneAction:2) * PinkNoise.ar(0.2)}.play;
	});
})

)
test here and click in front of the number:
		17
		23


The below takes q and w key downs as inputs. You might want to investigate how to take a whole set (say, a short paragraph) and read each one....


(
Document.current.keyDownAction_({arg doc, key, modifiers, num;
	var mykey;
//	[doc, key, modifiers].postln;
	mykey = num;
	if(mykey == 113,{
		{EnvGen.kr(Env.perc([0.05,0.001,1].choose, [0.1,0.2,1].choose, 1, -4), doneAction:2) * SinOsc.ar([600,720,300].choose, 0, 0.5)}.play;
		"bong".postln;
	});
	if(mykey == 119,{
		{EnvGen.kr(Env.perc([0.05,0.001,1].choose, [0.1,0.2,1].choose, 1, -4), doneAction:2) * PinkNoise.ar([0.2,0.4,0.6].choose)}.play;
		"chhhhhh".postln;
	});

})
)


// Now use TGrains:
// Here, 'w' just turns the sound on and off...

s.sendMsg(\b_allocRead, 10, "sounds/a11wlk01.wav");

(
Document.current.keyDownAction_({arg doc, key, modifiers, num;
	var mykey;
//	[doc, key, modifiers].postln;
	mykey = num;
	num.postln;
	if(mykey == 113,{
		{EnvGen.kr(Env.perc([0.05,0.001,1].choose, [0.1,0.2,1].choose, 1, -4), doneAction:2) * SinOsc.ar([600,720,300].choose, 0, 0.5)}.play;
		"bong".postln;
	});
	if(mykey == 119,{

{EnvGen.kr(Env.perc([0.05,0.001,1].choose, [0.1,0.2,1].choose, 1, -4), doneAction:2) * TGrains.ar(2, Impulse.ar(num), 10, Dseq([10, 1, 1, 0.5, 0.5, 0.2, 0.1], inf), MouseX.kr(0,BufDur.kr(10)), 0.04, Dseq([-1, 1], inf), 0.1, 2);}.play;

	});

})
)


// or this...
// here the keys actually set the impulse frequency.

(
Document.current.keyDownAction_({arg doc, key, modifiers, num;
	var mykey;
//	[doc, key, modifiers].postln;
	mykey = num;
	num.postln;
	if(mykey == 113,{
		{EnvGen.kr(Env.perc([0.05,0.001,1].choose, [0.1,0.2,1].choose, 1, -4), doneAction:2) * SinOsc.ar([600,720,300].choose, 0, 0.5)}.play;
		"bong".postln;
	});
	if(mykey != 0,{

{EnvGen.kr(Env.perc([0.05,0.001,1].choose, [0.1,0.2,1].choose, 1, -4), doneAction:2) * TGrains.ar(2, Impulse.ar(num), 10, Dseq([10, 1, 1, 0.5, 0.5, 0.2, 0.1], inf), MouseX.kr(0,BufDur.kr(10)), 0.04, Dseq([-1, 1], inf), 0.1, 2);}.play;

	});

})
)

// This use key values to control the impulses for TGrains...

(
Document.current.keyDownAction_({arg doc, key, modifiers, num;
	var mykey;
//	[doc, key, modifiers].postln;
	mykey = num;
	num.postln;
	if(mykey == 113,{
		{EnvGen.kr(Env.perc([0.05,0.001,1].choose, [0.1,0.2,1].choose, 1, -4), doneAction:2) * SinOsc.ar([600,720,300].choose, 0, 0.5)}.play;
		"bong".postln;
	});
	if(mykey != 0,{

{EnvGen.kr(Env.perc([0.05,0.001,1].choose, [0.1,0.2,1].choose, 1, -4), doneAction:2) * TGrains.ar(2, Impulse.ar(num / 5), 10, Dseq([10, 1, 1, 0.5, 0.5, 0.2, 0.1], inf), num, 0.04, Dseq([-1, 1], inf), 0.1, 2);}.play;

	});

})
)






The Task

  • Take one idea that can be used for sonification - image, text, movement, etc.
  • Prepare a short study in this. Document the way in which you approached the task, and whether you think what you have come up with is an appropriate/interesting use of Sonification.

  • If appropriate, make a demo recording of your patch working. Please keep the size down to a minimum.

Finally

  • Zip or Stuff your patches, demos, etc. into one file called your_student_number_"sonification" (e.g. 0504335_sonification.zip or 0504335_sonification.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.
  • On Macintosh, zip or stuff your patches by selecting the relevant files and/or folders and right-clicking/control-clicking on them, choosing 'create archive'.

You might also be interested in:

  • Reading through the papers (link above) concerning some of the work some people have done with sonification.

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.