Today I was working with analysis. This patch doesn't have a lot of good
looks but I have implemented a zero crossing rate function, an rms
function for time domain analysis, spectral centroid, spectral rolloff,
and spectral compactness. I coded up a spectral flatness measure but I
keep getting zero as the output. I haven't done thorough debugging job
because I was trying to make sure I have something done for today!
I started out hoping that I could implement both the spectral features
and time domain features as an AudioListener object but the FFT object
doesn't work that way. So, I made a method that is called every draw
loop. This isn't the nicest solution but it works. I am dreaming up a
link between jAudio and MINIM. If I'm not careful I might be putting
another thing on my plate :)
Today's patch is really just an extension of MINIM's spectral display
patch but an overlay of the feature extraction output. My hope is to
eventually do a MINIM version of sndpeek. Maybe tomorrow there will
be text and waterfall plots... maybe.
This one has been in the works for awhile. I have been looking at the
minim BETA for a few days and now I feel like I am getting my head
around it. Today I made my first UGen. I think I am going to submit it
to the distribution. It is a byte swapping algorithm inspired by swap~
in zexy for PD. This is one of my favourite distortions. Very loud and
very nasty. You've been warned.
Today I also finally delved into Processing's method for exporting
applets. So, I am not going to dump a whole lot of code in this post. If
you want to see the code follow the links below.
The audio display is rendered as points. This is inspired by something I
saw at MUTEK this year and is also the flavour of the visual material
for Frank Bretschneider's EXP.
http://www.frankbretschneider.de/Web-Site/exp.html
Today was a challenge. I downloaded the BETA of MINIM so that I could try
the new UGEN api. It is interesting but not fully featured yet. I saw a
Granulator in there and I got excited. I wasn't able to make any good
sounds and I ran into some troubles with controlP5 and MINIM where they
both had Controller classes and Events.
There is a crazy solution where the name of a controlP5 object can be
declared as a global and the slider will update the global. I have to
look further into why this works but it certainly minimizes the amount
of code I have to write to make a basic GUI.
This example does a simple mapping of the BitCrush UGEN with a slider.
It also has a display for the audio output. I would love to have access
to the audio input too. More work to be done. I am learning a lot here.
I have been messing with Minim. This is a simple synthesis sketch that
uses a few triangle waves represented by coloured circles and modifies
colour by monitoring the pan (which is randomized a bit).
The really fun features seem to be in the BETA so I will play with that
a bit tomorrow. I am anxious to try out the granulator and the
bitcrusher.
My first sketch is a simple Lissajous curve out of a live audio input. I
borrowed some code from a Minim example and a sketch from
OpenProcessing.org.
I used the RMS values from the audio buffer to determine the sound and
location of each plot. These changes aren't radical but they add some
flavour. Enjoy!
← newer
::
older →