SFP
3 December 2004
SFP : Sound File Player -- A Decorator pattern sound file editing system (for sc2)
simplest usage:
SFP(":SoundFiles:pathname").play
every SFP object supports the .ar(startTime,endTime) message.
- SFPPlayer(path) has an actual concrete SoundFile.
other SFP objects play the SFP 'beneath' them and respond to objects on 'top' of them in a transparent manner.
so a SFPSkip object skips its section as though the section was never there, and acts identical to an SFP or any other AbstractSFP subclass.
an SFPLoop can be layered on top of that, and loops as though the sound file had been edited and the skipped section never existed.
SFPLoop(sfp,start,end,repeats)
loops over the sectionSFPRepeats -
play till section, repeat the section n times, play till end of file ( will upload soon )SFPSkip(sfp,start,end)
skips the sectionSFPClip(sfp,start,end,fadein,fadeout,curvein,curveout )
plays only this section, with the given fade and curve settingsSFPfunc(sfp,function)
plays the file through a function. this works especially well
with Patch (sorry, coming soon), which enables complex paramater definitions to be stored to disk.SFPSeq(listOfSFPs)
plays each of the SFPs in sucession. see also Pattern support below.
skipped= SFPSkip(
SFPPlayer(":sounds:long_track.aiff"),
start,end);looped = SFPLoop(skipped,loopstart,loopend);tweaked = SFPFunc(looped,tweakFunction);{
// play it from the start
tweaked.ar
}.playortweaked.play(10,30); // play seconds 10 to 30
or
SFPClip.new(
SFPSkip.new(
SFPSkip.new(
SFPPlayer.new(
"HD:Desktop Folder:album:lust.3 idr",
96
),
1.03645e+06,
2.97296e+06
),
2.21946e+06,
2.64668e+06
),
26460,
1.07604e+07,
0.2,
2,
-4,
-4
)
many more are possible... if you build one, let me have it. that's the rule.
ideas:
* effect on just a specified area, (cross) fade in and fade out.
* play one SFP, then crossfade to another during the selected area.
* vari-speed playback
* SFPSilence
* random crossfades over a section
* SFPReplace - replace the section with another sound file
* SFPEfx - add efx during section
* SFPFade - fade up to start, fade down from end
* SFPDip - dip levels during section
* SFPExposeSection - play the section only, otherwise silent
* SFPPlayAt - play the underlying at the section
* SFPSpawner - select sections and launch multiples
- SFPScramble - random overlaps over underlying
* SFPLoopTransport - trig on key stroke
GUI
send the .topGui message to your top level SFP object, a FlowLayout will be created and everything put up on the gui.
eventually i will put in a system to hide/expose the guiBody.
I am working with files that have 8 or 9 layers on them, and that stretches to two pages.
(FlowLayout creates new pages when you overflow).
the SFP objects each have a guiClass method that returns its appropriate gui class.
.topGui, .gui and .smallGui can still be sent to the SFP itself, and it will instantiate a guiClass and send the message on to that.
Pattern support
All SFP objects can be placed in patterns!
Prand([
skipped,looped,tweaked
],inf)
each object returns an event that lasts for its duration
also included is SFPSeq(listOfSFPs) which allows sublocating within the list of snd files.
Convienience
Even when not layering or editing, just using SFP to play sound files is very convienient.
SFP(pathName).ar
more posts in Super Collider
- on laptops, controllers, musicianship, post-musicianship
Sam Pluta published an article about computer based music, information theory and human control: http://www.newmusicbox.org/article.nmbx?id=5614 and then we discussed it and I posted the following to the list, so I wanted to preserve it here because it collects some of my long-standing thoughts and experiences about controllers and live computer based music. sometimes I've gotten a bunch of controllers (a few too many) and then found that it was distracting to the music. instead of it being about music it ...
- apple goofs up airport update
The new mac airport update breaks most audio programs. We now get nasty crackling and CPU spikes. Solution: turn airport off when making muzak. or revert the airport update: http://www.ableton.com/forum/viewtopic.php?t=88815&postdays=0&postorder=asc&start=0&sid=63b29a6140f11d35ef1b64db664f3cb5 and the thing is this is the first time in 5 months that my airport has worked with our apartment's WLAN. I've had a cable running down the hall and I can't shut my door. george clinton has two houses : one for music, one for business.
- how to set up a local svn repository (for SC)
How to create and maintain a local SVN repository for your private work. If you are just working locally, you don't have to run an svn server at all. Its much easier than I thought. ( this is mainly a post about working with supercollider packages. if you just want to know how to set up a local svn repository then I'll cut to the chase: svn import ~/Documents/SC3docs/felix-imported file:///Users/crucial/svn/sc/trunk/felix -m "initial felix import" then check out a working copy: ...
- super collider links
SuperCollider2 runs only on Mac OS9. It is now available for free from http://audiosynth.com SuperCollider3 is open source, and runs on OS X and Linux. http://sourceforge.net/projects/supercollider/ browse CVS tree http://cvs.sourceforge.net/viewcvs.py/supercollider/SuperCollider3/ sc-users mailing list info http://www.create.ucsb.edu/mailman/listinfo/sc-users sc-users archives http://www.create.ucsb.edu/pipermail/sc-users/ http://news.gmane.org/gmane.comp.audio.supercollider.user sc-dev mailing list info http://www.create.ucsb.edu/mailman/listinfo/sc-dev sc-dev archives http://www.create.ucsb.edu/pipermail/sc-dev/ http://del.icio.us/tag/supercollider search sc user lists archives:
- Full index for Super Collider
- on laptops, controllers, musicianship, post-musicianship

