S C O T T E R I C P E T E R S E N

Composer, electronic musician, improviser

Gearing Up

In anticipation of our upcoming performances March 12th and March 20th, we (MuCo) improvised a set tonight using our new patented MuCo Flouper® and recorded the sonic joy that resulted. Here, for your enjoyment, is the 35 minutes that occurred AS it occurred, recorded in Hi-Def audio and reproduced for you in stunning stereo!

Filed under: El MuCo, SC3 - Code - Music - More, , , , , , , , , , ,

FridayNightThing II (2011)

Here are some pictures and a short video from FridayNightThing II (Feb. 25th.) A big thanks to Heather for taking all the pics and video, editing them together, and putting them online. As always, a big thanks to all who came, participated, and spectated. The next FridayNightThing will be on Friday March 25th. Get out your pots and pans and plan on joining us!

FridayNightThing – February 25, 2011 from hstryk on Vimeo.

Scott explains bleeps & bloops

Scott

Investigating Scott's Matrix Mixer



Anne & Carl go over each other's composition

Anne & Carl setting up


Carl & Anne talk after their performance

Carl & Anne's compositions


Clangpot

Carl experiments with the clangpot

Carl enjoys the clangpot

Simon treats us to some classical guitar

Simon, Scott & Anne

Simon and Scott

Filed under: FridayNightThing, , , , , , , , , , , , ,

SuperCollider On Ubuntu

[WARNING:] This page is sad and old and out-of-date.  Please check out this new updated page with new updated instructions that are new and happy and up-to-date.  The below information should be read out of historical curiosity only.

Because getting SC3 to work on Linux seems to be a major source of sadness and unnecessary frustration (to all including myself), I’ve decided to post on going from zero to SC3 hero in a few (ha!) short and easy steps.

Installing SuperCollider from the Repositories

1) If you are on Ubuntu, enable the repositories by entering the following from your shell:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FABAEF95

then:

sudo add-apt-repository ppa:supercollider/ppa

then:

sudo apt-get update

2) If you run the following command and hit tab to auto-complete, you can see the packages available:

sudo apt-get install supercollider

supercollider A real time audio synthesis programming language
supercollider-common A real time audio synthesis programming language
supercollider-common-dev Common development files for SuperCollider
supercollider-dev Development files for SuperCollider
supercollider-doc Documentation for SuperCollider
supercollider-emacs SuperCollider mode for Emacs
supercollider-gedit SuperCollider mode for gedit
supercollider-plugins A real time audio synthesis server
supercollider-quarks SuperCollider User Contributions
supercollider-server A real time audio synthesis server
supercollider-server-dev Development files for SuperCollider server
supercollider-vim SuperCollider mode for Vim

You will need at least supercollider-common and supercollider-server (which install with the dummy package “supercollider”) in order to run SC3.  However, the following are really necessary to get the most out of the program:
supercollider-gedit (best interface, IMHO) supercollider-doc (you will need these, trust me) supercollider-plugins (moar soundz!) and supercollider-quarks (even moar soundz!)

Here’s what i installed:

Notice it is installing dependencies for you. That’s nice. Assuming your distro has the old jack (not Jack2) everything should install peachy. However you will notice there’s a problem with mine: the install wants to uninstall Jack2 and install the old Jack. NOT OKAY.

Here are instructions for building with Jack2. If you don’t care and are fine with the old jack, just let the installer do its thing and skip to the section below Starting the SuperCollider Editor.

Building for Jack2

1) Create a directory for the source:

mkdir supercollider

2) ‘cd’ into that dir and download the repo package source:

sudo apt-get source supercollider

if you get a dpkg-dev error after the download, you may need to install it:

sudo apt-get install dpkg-dev

Your folder should then look something like this:

3) Edit the ‘control’ file to depend on Jack2 rather than ye olde jack

cd supercollider-3.4

sudo nano debian/control

this will open the control file in the nano editor.

4) Change libjack-dev (>= 0.100) to your libjack install.  Mine is libjack-jackd2-dev which i found out by searching for libjack in my sources.  My version is 1.9.5, but i left the dependency as (>=1.9.0)

5) ‘cd’ back to the supercollider-3.4 directory and build the debian packages:

sudo dpkg-buildpackage -rfakeroot -uc -b

Assuming you have all your dependencies met, you will have a directory full of delicious .deb files.  If, however, like me your system failed to live up to the dev standard, you will have to install the dependencies.

6) If you got errors, install whatever is listed either in your FAIL message or in the control file above.

sudo apt-get install libavahi-dev … (etc., etc.)

then try again:

sudo dpkg-buildpackage -rfakeroot -uc -b

(this time mine worked!  great!)

7) Install the packages!

cd out to the root supercollider directory you made to start with:

cd ..

show the files:

ls

install the packages:

sudo dpkg -i supercollider_3.4-0ubuntu1~maverick1_amd64.deb supercollider-common_3.4-0ubuntu1~maverick1_all.deb supercollider-doc_3.4-0ubuntu1~maverick1_all.deb supercollider-gedit_3.4-0ubuntu1~maverick1_all.deb supercollider-plugins_3.4-0ubuntu1~maverick1_amd64.deb supercollider-quarks_3.4-0ubuntu1~maverick1_all.deb supercollider-server_3.4-0ubuntu1~maverick1_amd64.deb

(If you get errors on the output, be sure you have at least the base supercollider (supercollider…amd64.deb or whatever your package is) the supercollider-common and the supercollider-server installed.  Then try to install the gedit, plugins, quarks, or what-have-you.)

Starting the SuperCollider Editor (Gedit)

1) I will test my install by opening gedit from the command line:

gedit

2) Then i go to edit->preferences->plugins and enable the “sced” plugin.

3) Now under the ‘tools’ menu there should be a ‘SuperCollider Mode’ button.  PRESS IT!!!

w00+

So you should now have a working install of SuperCollider, albeit without the convenience of a GUI server window or the possibility of GUI anything…

I WANT GUI!! GET YOU SOME GUI!!!

Installing SwingOSC

Before installing SwingOSC (the GUI library for SC3) check that you have java installed, as it is required for Swing to work.

Typing ‘java -version’ or just ‘java’ and hitting TAB will let you know if you have it installed.  My system sadly does not.

Lore holds that sun-java6-dev is in the “universe” repo, but “universe” and “multiverse” aren’t there anymore, and i’m not sure which of the four extra repos it is in, so I just tick them all.  (Lazy, I know…)

1) Open Synaptic Package Manager

sudo synaptic

2) Go to Settings->repositories->Other Software and tick off the boxes in there.

Once back at the main window, hit “reload”

3) Type sun-java in the quick search window to show the sun-java6 packages.  I can’t remember which exactly I need, so I’ll install them all.

(back in terminal having closed synaptic [otherwise apt will fail])

Accept the proprietary license required of the Java install.  (oh proprietary software.)

SwingOSC is no longer included with supercollider, so you have to download it from Sourceforge.  (Thanks to Bruno TR for the heads-up.)

4) First, if you don’t have a SwingOSC folder at /usr/share/SuperCollider/ go ahead and make one.

sudo mkdir /usr/share/SuperCollider/SwingOSC;

5) Download SwingOSC from this link:  http://sourceforge.net/projects/swingosc/

6) Unzip the folder where you want, resulting in a SwingOSC folder. (I will refer to this as */SwingOSC/ from hereon out, the asterisk indicating your unique folder location.)

7) Cd into */SwingOSC/build/ and copy the SwingOSC.jar file to /usr/share/SuperCollider/SwingOSC

sudo cp */SwingOSC/build/SwingOSC.jar /usr/share/SuperCollider/SwingOSC

(you can put this anywhere as long as you point to it in your .sclang.sc startup file.  more on this below)

8) Copy the SwingOSC help folder to /usr/share/SuperCollider/Help

sudo cp -r */SwingOSC/SuperCollider/Help/SwingOSC/ /usr/share/SuperCollider/Help

9) Copy the SCClassLibrary files to /usr/share/SuperCollider/Extensions

sudo cp -r */SwingOSC/SuperCollider/SCClassLibrary/SwingOSC /usr/share/SuperCollider/Extensions/

SwingOSC is installed now, but to get it to start automatically and give me (and you) the GUI server I (you) so want and deserve, we must create a supercollider startup file.  This is really easy, though, so don’t give up now!

Creating a Startup File

1) Cd to your home directory and create a file called

.sclang.sc

( you can type thisProcess.platform.startupFiles; in supercollider and evaluate it to find the path to your startup file.  On Ubuntu, it’s ~/.sclang.sc)

2) I enter the following text into mine, you can customize yours as you see fit!

SwingOSC.program = "/usr/share/SuperCollider/SwingOSC/SwingOSC.jar"; g=SwingOSC.default; g.boot; SwingOSC.default.waitForBoot({s.makeGui}); 

 3) Save the file

That’s it!

Now fire up gedit and see if it worked…

VICTORY!!!

Conclusion

Many thanks to the sc3 mailing list, and specifically to those who work tirelessly on the linux port.  The only reason I know anything about SC3 is because of this list.  To name a few, but certainly not all:

Dan Stowell
Julian Rohrhuber-3
nescivi
Josh Parmenter
Tim Blechmann
ddw_music
wsnoei
Miguel Negrao

And so, from a completely SC3 devoid machine to a fully-functional install with GUI support and Sced IDE all in … just under 2 hours.  I was making this post at the same time, however.  This should have taken you 15 minutes ;)

Thanks for reading.  If you have questions, comments, or an easier way to do any of the above, please comment.

[UPDATE July 19 2011: UPDATED POST + TESTED ON LINUX MINT]

I updated the post to reflect some changes made to the package content (you have to manually download SwingOSC now, etc.) and tested the post out by installing SC3 and Swing on a virtualized Linux Mint install. Everything went peachy with the SC3 and Swing installs and the help system “just works.”

The total install time was about 9 minutes without configuring Jack. Mint already had Java-6 installed too, so that saved a step. Here’s a little pic for motivation. ;)

Filed under: SC3 - Code - Music - More, , , , , , , , , , , ,

Awesome Open Source/ Free Multimedia Software List

Working with sound and video all the time, we here at scacinto inc have some across some incredibly excellent software that we like a lot (or at least like the looks of!) This list is not a “top ten” nor are these programs “players.” If you are looking for lists of players/codecs, I’m afraid you will have to look elsewhere.

The softwares below are professional tools that require a time commitment to learn. That said, they are all very powerful and good at what they do. Additionally, they are all FREE! Have more? Comment below and we will add them (should they live up to our extremely high standards.) Please don’t bother posting commercial software, not only will we not post them, we will delete your comment and never think twice about it. :D

 

__

Sound (Audio Programming)

MiniAudicle IDE for ChucK on OSX

ChucK
ChucK is, in some ways, the new kid on the block when it comes to real-time audio programming languages. This doesn’t mean it lacks features, though. It has a stable base, good community support, and has the advantage of a less daunting learning curve than Csound or SuperCollider.

Pros: Easier to learn and use than most other languages.

Cons: Is CPU intensive — you had better have a good machine if you are planning to do anything crazy with this program.

OS: Linux, Mac, WIndows

one of Csound’s many IDEs

Csound

The Elder Statesman of computer programming languages, Csound is still going strong decades after it was written thanks to a large community of programmers and users. There are a number of front-ends for this program so check out the Csounds site “frontends” page for them. If you are on a Mac, I recommend AthenaCL. Otherwise, check out Common Music / Grace.

Pros: NRT synthesis and algorithmic composition.

Cons: Text-based language that will be hard for some to learn. Real-time support not as developed as ChucK or SuperCollider.

OS: Linux, Mac, Windows

Impromptu UI on Mac

Impromptu

This Lisp-related A/V program can do a lot of things from live-coding music to image DSP. What it does best, though, is live coding. Check out the video Tutorial on the site for a good idea of what this program is about.

Pros: One of the best live-coding languages out there, it allows you to make changes on the fly seamlessly.

Cons: Mac only, sorry everyone else! Audio uses Audio Unit plugins for all sound — not for the crazy experimentalists out there.

OS: Mac

Pure Data with Arduino

Pure Data (PD)

Not as old as Csound, but older than any of the other programs in this audio list, Pure Data has a large community of support and sports a graphical programming environment that many will find more easy to approach than the text-based programs on this list.

Pros: real-time interactive processing of live sound.

Cons: User community can be prickly. Because of the TCL/TK graphics interface, PD can be CPU expensive. Not awesome for algorithmic or non-real-time score generation.

OS: Linux, Mac, Windows

SuperCollider

SuperCollider

SuperCollider is an extremely capable and well-rounded program that can be used for real-time processing, live-coding, algorithmic composition, graphics, and more.

Pros: Can do anything and do it pretty well, but real-time processing, live-coding, and algorithmic composition are stellar.

Cons: The drawback for most approaching this program is the learning curve which is very steep. A subscription to the mailing list or membership at the Nabble SuperCollider forum is a must.

OS: Linux, Mac, Windows

__

Sight (Image/Video Programming)

 

Animata

A nice little app for animating 2D images. Uses a hinge/skeleton system to fix joints and points of rotation. Images can be layered and stretched and compressed as well as moved in 2D space.

Pros: Fun, pretty easy to use, and relatively quick to get up and going.

Cons: Lack of any documentation aside from a few silent .movs online. Also can’t export projects so a screen casting/capture program is a must if you want to save your work.

OS: *linux*, Mac, Windows

*you have to build from source, no precompiled binary.

Blender 3D

Blender

Industry standard professional 3D graphics/animation suite. If you want to make pro 3D anything this is your baby. I’d write more, but you already know about this program. If you don’t, then you don’t need it.

Pros: Does what you want.

Cons: Will take a while to learn and some serious programming time to get what you want.

OS: Linux, Mac, Windows

Fluxus Live Coding

Fluxus

This is a seriously weird and excellent live-coding program for visual dorks.  All work is done on-the-fly and the animation/graphic appears in the window with the code.  From the site: “Fluxus is a rapid prototyping, playing and learning environment for 3D graphics, sound and games. Extends the Racket language with graphical commands and can be used within it’s own livecoding environment or from within the DrRacket IDE.”

Pros: Does what no other live-coding program can, and does it with style.

Cons: Installation and learning curve.

OS: Linux, Mac, Windows

Gem

Gem

Gem is the open-source sister program of Jitter (much the same way PD is to Max/MSP.) And similarly Gem is dependent on PD the same way Jitter is to MaxMSP. If you know PD, using Gem will be easy. The link above takes you to the PD site. Here you can find links to the extended versions of PD that ship with the Gem libraries built-in.

Pros: Graphical programming environment will be easier for some to approach and use. A reasonably good amount of examples ship with the libraries, and more can be found online.

Cons: Documentation could be better. Finding solutions to problems will require membership to a forum / mailing list.

OS: Linux, Mac, Windows

Gem (site)

The above site will be useful if you do not have the “extended” version of PD which comes with the Gem libraries built-in.

Impromptu

Impromptu

In addition to being a live-coding audio environment, Impromptu also does image processing using your Mac’s built-in Quartz plugins. You can write more plugins using Quartz Composer.

Pros: Quartz support makes this an expandable, powerful tool for graphics processing.

Cons: Will take a little while to learn, and requires knowledge of Quartz Composer if you want to expand the DSP functionality beyond what ships with your mac.

OS: Mac only

Nodebox

NodeBox

A great, easy-to-use program for 2D graphics, text, and more. Uses Python as its language. Really good for intricate graphics that employ random or repetitive elements to add complexity.

Pros: Quite a bit easier to use than some other text-based graphics programs on this list.  Faster from start to finished product.

Cons: Not as powerful as some other language/text-based programs like Processing.

OS: Mac

NodeBox2

This is, in some ways, a different program than the original NodeBox. It is more complex, but also more capable. The interface now updates code in real-time, and modules are a new feature. Connecting GUI modules together creates more complex DSP series.

Pros: More powerful than the original NodeBox.

Cons: Harder to pick up and use than the original.

OS: *Linux, Mac, Windows

*must build from source.

Nodebox OpenGL

NodeBox for OpenGL

From the website: “NodeBox for OpenGL can be used for simple games, interactive media installations, data visualization and image compositing. It’s not as fast as anything in native C, but quite a bit faster than the classic NodeBox.” I haven’t started doing anything serious with this program yet. I may not… still, it is worth a look to anyone interested in any of the above.

Cons: Installing and getting the libraries to a useable state alone takes a significant effort. This might put this program out of reach for first-time-users.

OS: Mac

Processing

Processing is an incredible motion and graphics programming language that is based on Java with a simple and easy-to-use text interface.

Pros: Lots of external libraries that expand the standard functionality of the program. Incredible documentation with lots of books and tutorials available.

Cons: Text-based code, not for those who prefer GUIs.

OS: Linux, Mac, Windows

Processing.JS

ProcessingJS

The blurb from the web site says it all: “Processing.js makes your data visualizations, digital art, interactive animations, educational graphs, video games, etc. work using web standards and without any plug-ins. You write code using the Processing language, include it in your web page, and Processing.js does the rest. It’s not magic, but almost.”

Pros: Full language support of Processing. Make incredible interactive web graphics easily and embed as JS. nice.

Cons: Like Processing, will take some time to learn. Not for those who don’t like code.

OS: Linux, Mac, Windows

VVVV

I have not personally used this program, so perhaps I shouldn’t be listing it here. I do know people who use it and like it, however, and it’s $free$ so I threw it on here.

Pros: Purportedly does anything you want it to do. Has a pretty good-looking GUI (at least on Win7)

Cons: Window$ only :P.

OS: Windows

__

Physical (hardware)

Arduino

If you want to make robots to take over the world, or at least do some physical computing with sound, video, moving parts, etc., this is your baby. Arduino is a physical board that connects your computer with the outside world. Arduino uses a programming langage that is basically like Processing to interact with incoming data and send messages to the board.

Pros: Very well supported (community.) Programming language is strong and concise.

Cons: N/A

OS: Linux, Mac, Windows

Filed under: Links, , , , , , , , , , , , , , , , , , ,

Fun with Feedback (and SuperCollider)

You are not the only one, she loves it too!

A couple of weeks ago I posted some audio and code examples of a software matrix mixer I made with SuperCollider.  I thought a post going into some detail about feedback and how to code it may be of help to those new to the concept as a creative tool, or to using it within SuperCollider.  Lets first start with some basics of a feedback circuit.

The necessary components of a feedback system (the bare bones) are an input source (some sound, if only line-level hum) and an independent loop with a gain control.  Check out the diagram below.

diagram showing basic feedback circuit

The feedback loop can be accomplished in a number of ways.  If you have ever used a mic in an auditorium (or been to school for that matter) you have already probably experienced feedback in the form of a high-pitched squeal.  The microphone picks up your voice, is routed to a mixer, is amplified (gain) and played out the room speakers.  The sound coming out the speakers is then picked up by the mic in addition to your voice.  The squeal occurs when the amplitude of the input signal (your voice plus the amplified version coming back over the speakers) is loud enough that with each cycle the overall gain increases.  Cut the amplification out to the speakers and the squeal stops.  The quality of the feedback (the frequencies amplified) have to do with the microphone’s resonant frequencies in combination with a lot of other factors (room size and resonance, quality of the audio gear being used, whether the signal is balanced or unbalanced, matching or mismatched impedance, etc.)

In the mixer feedback post I did a couple weeks back, the input signal was the inherent noise of the analog mixer with gain applied at each stage of the 4-stage feedback loop.  In any analog system there is always noise present because of the nature of electrical circuits and the power required to make them work.  The same is not true for purely digital (software) feedback systems so some generated sound input signal is necessary.

Below is some very simple SuperCollider codez to demonstrate this simplest of feedback loops and a recording so you don’t have to run the code.  If you do run the code in SC, be careful when moving the mouse to the right of the screen.  As you approach 1, the feedback loop will become increasingly loud until at 1 and beyond, it becomes exponentially loud until things break.  (And by ‘things’ I mean your speakers and/or eardrums and/or the SC server :P)  In the recording below, i just move the mouse to the right to “max out” the feedback loop, then drop back after it maxes out.

Here is another version with a simple half-second delay built into the processing section.  Note that this rids us of the ear-piercing noise that occurred in the above example.  In the recording I’m moving the mouse to the right, then back and forth across the screen to make a more interesting texture.  I then just let it build up with the mouse all the way to the right.

The next two examples are of slightly more interesting feedback circuits.  In the first version I have fixed the gain at 1.1 so it the sound eventually reaches saturation and does not return.  I’ve removed the limiter and replaced it ‘.clip’ which squares off the wave form resulting in audible distortion of the signal.  I have also added a random line generator ‘speed’ to control some aspects of the sound, the resonant frequency of a low pass filter and the delay time.

Here is a version that uses the built-in mic and adds some cheesy panning.

While these samples are a few steps away from being art, they show the power of possibility lurking in feedback circuits.  The truth of synthesis is that, with a few exceptions, the more intricate (complex) a sound is, the more realistic and better it sounds.  Adding a feedback loop to a sound introduces a few more layers of complexity and can have beautiful as well as destructive results.

If you are interested in hearing some truly excellent feedback music, check out the work of David Tudor.  The complexity of his circuits is both astounding and elegant, and the sonic results are really fantastic.

Viva la feedback!

Filed under: Code, Music, Phase 1, SC3 - Code - Music - More, , , , , , ,

Virtual Matrix Mixer (yes, in SuperCollider)

Screenshot of the Waz Matrix Mixer in action

Kane and I recently dropped $170 at JameCo on potentiometers, switches, diodes, project boards, and more in anticipation of several MuCo projects we have been planning.  The main project now after some op-amp FAIL last night (the FAIL being Mimms’s op-amp.  Yes, there is a free version on the nets.  No, we will not help you torrent it illegally) is a classic 3×3 matrix mixer which we intend to use a la David Tudor to make feedback music of the most splendiforous nature.  As some of you may have noticed, I have been slightly obsessed with feedback of late, and for good reason: feedback, like Frosted Flakes, is better than good, its great.  It’s great to make, great to listen to, great to cover up the drunk, sleeping neighbor’s DVD menu music that runs for hours and hours after he’s passed out on the couch.

I plan to post a little “Fun with Feedback” post this weekend (maybe tomorrow), but I will jump the gun and get to results before I do.  In anticipation of the analogue matrix mixer, I decided to spit in the eye of convention and model an analog (make an analog of…) device digitally first because I wanted to see what my results with the analog device might be.

This was an interesting experiment because it highlighted the reality that, while creating digital analogs of analog equipment may be useful on a basic, conceptual level, it breaks down completely when it comes to the actual implementation/realization of the object.  This may seem obvious to some of you (congratulations), but one wouldn’t suspect this with the tradition of modelling analog equipment in electronic music studios the world over.  Not to mention all of the digital synthesis software that models even its appearance.  (Yes, Reason, I’m looking at you… with disdain.)  I’ll make a long story short and say that approximately 2 minutes after I sat down with idea the matrix mixer in my head to start coding it up, I was conceptually far enough away from the analog instrument that looking at my notes one might not even guess it was supposed to be a simple 3×3 summing mixer.  This is partly because of the nature of programming itself, and partly because of the idiosyncrasies of any programming language.  If one were to mock up the 3×3 in Csound, SuperCollider, and ChucK, it would become very clear very quickly that one cannot think the same way about the same object when coding in different languages.  I now digest.  (yes, digest.)

After some headbanging and with some help from Kane and HJH (on Nabble) the Waz Matrix Mixer V.1 was realized last night.  The SC3 code is below so you can see how it is constructed.  The mixer is simple: it routes 3 input sources (in this case, either the built-in microphone or a sine oscillator) to 3 outputs each.   At the outputs is some processing, a delay line, distortion, etc.  The output from the processing can then be routed back into any of the inputs including itself, thus the feedback.

In the following picture, the blue knobs represent the 3×3 matrix.  Each row routes its respective input to outs 1, 2, and 3 individually.  The red knobs control the input volume, and the yellow knobs control the amount of outs 1, 2, and 3 that are fed back into the chain.

janky gui -- needs work, but works...

As promised, here is the code (provided Scribd ever finishes processing it…)

Here is a recording with the mic as the input source.  I’m not actually doing anything with the mic, I’m just letting it hum and collect room noise and the output from the speaker which is right next to it in the laptop.  The delay line’s delay time parameter is being dynamically changed using the mouse position (x axis) which results in pitch-shifting.  This is responsible for the “glitching.”  Additionally, I am using the mouse position y axis to control the decay time (in seconds.)  When the decay time is over 3, the processing synths begin a sometimes irreversible pattern of self destruction.

Here is a recording of the sine oscillator inputs.  There are three sine tones around 440, 1000, and 1400 Hz respectively.  The rest of the processing is as described in the example above.

Filed under: Code, Current Projects, El MuCo, Music, SC3 - Code - Music - More, , , , , , , , , , ,

(tiny) Nifty Codez

I realize from looking through this site that I need to start posting more code (and resulting recordings.) Part of my motivation is that SC3 (now 3.4!) never ceases to amaze me with its possibilities. One can, with a very small amount of code, achieve some incredibly intricate, beautiful sounds. The below is one example.


{var func, ampFunc; func=LFNoise1.kr(LFNoise1.kr(1!2,0.005,0.02)!3,1000!3,1500!3);
ampFunc=LFNoise1.kr(LFNoise1.kr(1!2,0.4,0.5)!3,0.4!3,0.5!3);
FreeVerb.ar(SinOsc.ar(func,func%pi,ampFunc%1), 0.75,0.75);}.play;

The code all fits in one function ( {} ) and involves 6 UGens and a couple of variables. Basically, the LFNoise1 UGens are random line generators. I’ve nested them inside each other to add even more variability in how the randomness occurs, how often and how much the line moves within the given range. This are then duplicated several times for each parameter (using the ! operator) and applied to the sine-tone oscillator’s frequency, phase, and amplitude parameters. All is wrapped in a warm reverberant blanket of FreeVerb for that roomy effect. Note that the way I’m using the ! operator is sort of a hack and creates many redundant versions of the same integers. This can result in channel number mismatches and amplitudes of over 1. To solve this, the code can be simply modified with a Mix UGen that mixes the array of channels down to (in this case) 2 channels, and adding a multiplier of 0.5 ( ) * 0.5}… ) to keep the amplitudes below 1.


{var func, ampFunc; func=LFNoise1.kr(LFNoise1.kr(1!2,0.005,0.02)!3,1000!3,1500!3);
ampFunc=LFNoise1.kr(LFNoise1.kr(1!2,0.4,0.5)!3,0.4!3,0.5!3);
Mix(FreeVerb.ar(SinOsc.ar(func,func%pi,ampFunc%1), 0.75,0.75);)*0.5}.drawAndPlay;

Note the above uses an added method called drawAndPlay which graphs out the above code in GraphViz so one can visually see exactly what’s going on. The below png file (click it) shows what happens behind the scenes.

Here is a recording of the above code. Note: each time the code is run, the results are different, sometimes subtly, sometimes more noticeably.

The beauty of SC3 is that it is extremely customizable/flexible in terms of coding styles. The above code could be condensed even further, and made to fit in a tweet, for example, but for visual and pedagogical purposes I made it more visually self-explanitory.

I will hopefully post more small examples as the summer weeks pass by. Stay tuned, and stay cool.

\sP

Filed under: Code, Phase 1, SC3 - Code - Music - More, , , , , , ,

Audio/Video: Uncertainty Music – April 24th

Here is some low-quality video from our show at The Big Room in New Haven. More details will follow. Below is audio only.

Filed under: El MuCo, Music, Phase 1, SC3 - Code - Music - More, , , , , , , , ,

Audio/Video: Hartford Artspace, April 25th

The above is some low-quality video from our most recent show at Hartford’s Artspace. Below is audio only.

The performance space, as you will be able to tell in the recording, was cavernous. I estimate the ceiling to be between 16-20 feet. The room was exceptionally live and reverberant. Our approach is always to improvise, in the most genuine sense. We do not discuss what we are going to do before hand, nor do we really “practice.” Once we were in the space, we knew that we had to incorporate a lot of space (silence) into our improv to keep the texture from becoming too muddy. The work has a natural ramp shape as we move from sporadic and spacious to dense and thick textures at the end.

Hardware used: mostly the Casio SA-2 with a little bit of the growler. We set up the mixer so that the mic input was routed to both computers, and our computer audio was routed to each other as well. (This creates great cross-talk possibilities, and is mostly how we work now.) Kane was running his granular patch and, at the beginning, it is easy to hear him grabbing bits of what I am doing with the mic. I played the Casio a bit, banged on the mic a lot, as usual, but started with cups, forks, and my hands. The household objects were provided by Juraj Kojs who performed in a later set.

My code was primarily made up of recursive ndefs (sorry, SC3 specific stuff here…) which take the incoming sound, delay it using comb filters, feed a certain amount back into the signal, and a certain amount out to a bank of “effect” ndefs. By dynamically changing the delay length of the comb filters while running the synth, pitch-shifting occurs which varies the resulting feedback loop’s overall spectra.

Filed under: El MuCo, Music, Phase 1, SC3 - Code - Music - More, , , , , , , , , ,

El MuCo IBeam Performance Recording — More

Hello El MuCo fans!  Below you can find pictures and recordings from the show at IBeam on the 12th.  I will upload the audio for the group improv and from Rich’s set when I have time to edit it!  Happy listening!

Many thanks to Heather for taking photos and video!

El MuCo Set: IBeam

All Sets: IBeam

All photos by Heather Strycharz

Filed under: El MuCo, , , , , , , , ,

G O I N G S O N : L O C A L (ISH)

fritz Art of Fritz Horstman
kane Music of Brian Kane
fritz Hartford Phase Shift
fritz Hartford Sound Alliance
Lique Art of Philip Lique
Lique Music of Matt Sargeant
strycharz Art of Heather Strycharz
uncertainty Uncertainty Music Series

My Other Awesome Sites [•_•]

Assault! 375 Aural Assaults!
About me! About me!
MySpace! MySpace!
Google+! Google+!
My (soon-to-be) Company! My (soon-to-be) Company!

Enter your email address to subscribe to this awesome blog and receive notifications of new posts by email!

Join 81 other followers

-

P O S T E R S !

Artspace

-

Artspace

-

Artspace

Featured

INI new haven

Handmade instruments by Scott Petersen and Brian Kane at Artspace New Haven