Hello,
as I'm diving deeper and deeper into Pd and externals, I'm willing to do some video works. One of my aims is to create a spectrum analyzer, preferably with pdp and pidip, as I have just compiled those without any problems. Now, that I'm reading about the different objects, I don't have a clue how to accomplish that. Is there an easy online tutorial available? Or did anyone do that already and is willing to share his/her patch with a newby?
My aim is to get something like http://www.bastwood.com/aphex.php but I guess, that will be in five years or so ;)
"Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/
Hi,
I think that Tapestrea does something like this (and lots more). http://taps.cs.princeton.edu/
Best,
Chris.
On Wed, Jan 31, 2007 at 08:36:29PM +0100, Thomas Mayer wrote:
Hello,
as I'm diving deeper and deeper into Pd and externals, I'm willing to do some video works. One of my aims is to create a spectrum analyzer, preferably with pdp and pidip, as I have just compiled those without any problems. Now, that I'm reading about the different objects, I don't have a clue how to accomplish that. Is there an easy online tutorial available? Or did anyone do that already and is willing to share his/her patch with a newby?
My aim is to get something like http://www.bastwood.com/aphex.php but I guess, that will be in five years or so ;)
cu Thomas
"Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/
chris@mccormick.cx http://mccormick.cx
On Thu Feb 01, 2007 at 07:46:39AM +0800, Chris McCormick wrote:
Hi,
I think that Tapestrea does something like this (and lots more). http://taps.cs.princeton.edu/
..if you want to do a ton of concurrent analysis, and have openGL acceleration working, Tapestrea might be cool (ATI hates me too much for using linux to let me try it)
if you dont mind the analysis being offline, check out sonic visualiser: http://www.sonicvisualiser.org/
CLAM might have one. see a full-color spectrogram in one of the screenshots, but not in the patcher view: http://iua-share.upf.es/wikis/clam/images/8/83/NetEditQt4-PortMonitor-Spectr...
in PD, just make a FFT transform of a signal block. this can be found in a number of help patches..
you'll also want lots of controls to adjust the amplification, logarithmic scaling, color palette, etc..
http://whats-your.name/i/licker.png is what i use , sure it uses more CPU than a C implementation, but its more flexible, and you can plug it in anywhere in your patch..
On Wed, 2007-01-31 at 23:48 -0500, carmen wrote:
if you dont mind the analysis being offline, check out sonic visualiser: http://www.sonicvisualiser.org/
CLAM might have one. see a full-color spectrogram in one of the screenshots, but not in the patcher view: http://iua-share.upf.es/wikis/clam/images/8/83/NetEditQt4-PortMonitor-Spectr...
There is also the old, but still wonderful Ceres3: http://www.music.columbia.edu/~stanko/About_Ceres3.html
you'll also want lots of controls to adjust the amplification, logarithmic scaling, color palette, etc..
http://whats-your.name/i/licker.png is what i use , sure it uses more CPU than a C implementation, but its more flexible, and you can plug it in anywhere in your patch..
Looks interesting. How did you do the visualisation? Is the code online somewhere?
Jamie
Hello,
thanks for all your suggestions, TAPESTREA looks great, but I'm just intrigued by the patch of carmen. After playing around a while with some objects, the following idea came into my mind:
Create a [pdp_xv] canvas with 800x640 pixels. Use the values of [fft~] as right input for [pdp_gain] and multiply it with a white rectangle of 10x10 pixels and put it in the right place (bottom to top in column) Goto next column and repeat (50 ms), so the pic will look like:
^ | | |<--- 64 values from fft~ | | | | <------------------------------> 80 values for time (=4 s)
So, for now, I'd ask for some specific objects: How can I split lists of audio data, as [snapshot~] only outputs the first value? The 4.fft.examples folders from CVS is empty, and the help for fft~ is not really helpful. Is there any help for tweaking [fft~] available, e.g. setting window size (in frequency domain)? Is there a pdp/pidip object that can put a picture in a desired position on a pdp window?
Thanks, Thomas
So, for now, I'd ask for some specific objects: How can I split lists of audio data, as [snapshot~] only outputs the first value?
if you mean turn them into lists of floats from a signal, theres unpack~, drip, and similar. you probably want an intermediary table anyways, to eg use a logarithmic index for the tabread of the frequency bin.. therefore you can proably bypass the need for drip~/unpack with a tabwrite~/tabread.
also you coan likely do it all in signal domain, for speed reasons..
The 4.fft.examples folders from CVS is empty, and the help for fft~ is not really helpful. Is there any help for tweaking [fft~] available, e.g. setting window size (in frequency domain)?
there is no perfect window size. for the perfect looking spectrogram you proabbly want several window sizes at once, one for the low freqs, and one for the higher ones, and combine them into a single image.
but someting like 512 or 1024 samples will proably work to start with, unless you need nice bass resolution
Is there a pdp/pidip object that can put a picture in a desired position on a pdp window?
can you treat a 1 x 1024 'grid' as a PDP pix? if so maybe thats even faster than signal ops. especially if theres GPU acceleration..
On Thu, 01 Feb 2007 20:40:45 +0100 Thomas Mayer thomas@dergrossebruder.org wrote:
thanks for all your suggestions, TAPESTREA looks great
Which reminds me - it's one Raul Diaz should be interested in. Afair it' wavelet analysis, fourier resynthesis, with the intermediate domain as the image (spectrograph) you see. So you can do all kinds of whacky cross-synthesis and spectral blending. Might be worth a look at the code. I thought the examples like "sheep-goat" were a bit poor however, for its amazing potential the examples given are quite dull.
hi,
just got a link from a friend to this software spectrum analyzer: http://www.baudline.com/
best
e
On Thu, 1 Feb 2007, Thomas Mayer wrote:
Hello,
thanks for all your suggestions, TAPESTREA looks great, but I'm just intrigued by the patch of carmen. After playing around a while with some objects, the following idea came into my mind:
Create a [pdp_xv] canvas with 800x640 pixels. Use the values of [fft~] as right input for [pdp_gain] and multiply it with a white rectangle of 10x10 pixels and put it in the right place (bottom to top in column) Goto next column and repeat (50 ms), so the pic will look like:
^ | | |<--- 64 values from fft~ | | | | <------------------------------> 80 values for time (=4 s)
So, for now, I'd ask for some specific objects: How can I split lists of audio data, as [snapshot~] only outputs the first value? The 4.fft.examples folders from CVS is empty, and the help for fft~ is not really helpful. Is there any help for tweaking [fft~] available, e.g. setting window size (in frequency domain)? Is there a pdp/pidip object that can put a picture in a desired position on a pdp window?
Thanks, Thomas -- "Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
That's gorgeous. It runs fast on the 550MHz machine here. Shame about the baudline_jack though, it just crashes, so the only input that works is /dev/audio
On Wed, 7 Feb 2007 14:27:28 +0100 (CET) Erich Berger eb@randomseed.org wrote:
hi,
just got a link from a friend to this software spectrum analyzer: http://www.baudline.com/
best
On Thu Feb 01, 2007 at 09:20:36AM +0000, Jamie Bullock wrote:
On Wed, 2007-01-31 at 23:48 -0500, carmen wrote:
if you dont mind the analysis being offline, check out sonic visualiser: http://www.sonicvisualiser.org/
CLAM might have one. see a full-color spectrogram in one of the screenshots, but not in the patcher view: http://iua-share.upf.es/wikis/clam/images/8/83/NetEditQt4-PortMonitor-Spectr...
There is also the old, but still wonderful Ceres3: http://www.music.columbia.edu/~stanko/About_Ceres3.html
you'll also want lots of controls to adjust the amplification, logarithmic scaling, color palette, etc..
http://whats-your.name/i/licker.png is what i use , sure it uses more CPU than a C implementation, but its more flexible, and you can plug it in anywhere in your patch..
Looks interesting. How did you do the visualisation?
its the normal FFT stolen from one of the demo patches (the one that makes a spectrum snapshot), combined with a HSV2RGB subpatch, and a few lines of Tk to add a line of pixels to an image
Is the code online somewhere?
its sp.wid and sp.pd in this dir:
cvs -d :ext:ix9@pure-data.cvs.sourceforge.net:/cvsroot/pure-data co extensions/gui/ix
if you also need [widget]:
cvs -d :ext:ix9@pure-data.cvs.sourceforge.net:/cvsroot/pure-data co externals
cd externals/build && scons
i just tested all this w/ 0.41-test04 and it works (SCons even still builds all the externals w/o failing - kudos to whoever didn't delete that :)
i reckon it could probably be sped up by replacing some of the list ops with newer stuff from 0.41, and replacing HSV2RGB with the one from GEM..at the time i couldn't get GEM compiling due to some autotools issue.. oddly it took about 2% CPU on windows, and 25% CPU on a computer twice as fast on linux, if taskmgr and top can be believed, respectively..
Jamie
hi carmen,
it looks very nice. how can we used it? also i would like to try your other stuff like the eq gui: http://whats-your.name/pr/filter.gif
can you share the code? pat
Now here is a question... does anyone have software that will take a 2D image and convert it to a wave file??
Really just an inverse cosine transform (all data is real)... Would be an interesting thing to play with, hmmm probably a way to have phase represent color.. ( think I have a dimensionality problem, or dementia)...
mcg
-----Original Message----- From: pd-list-bounces@iem.at [mailto:pd-list-bounces@iem.at] On Behalf Of Thomas Mayer Sent: Wednesday, January 31, 2007 1:36 PM To: pd-list@iem.at Subject: [PD] Live Apectrum Analyzer
Hello,
as I'm diving deeper and deeper into Pd and externals, I'm willing to do some video works. One of my aims is to create a spectrum analyzer, preferably with pdp and pidip, as I have just compiled those without any problems. Now, that I'm reading about the different objects, I don't have a clue how to accomplish that. Is there an easy online tutorial available? Or did anyone do that already and is willing to share his/her patch with a newby?
My aim is to get something like http://www.bastwood.com/aphex.php but I guess, that will be in five years or so ;)
"Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Michael Garrett wrote:
Now here is a question... does anyone have software that will take a 2D image and convert it to a wave file??
Really just an inverse cosine transform (all data is real)... Would be an interesting thing to play with, hmmm probably a way to have phase represent color.. ( think I have a dimensionality problem, or dementia)...
Here's some software for Windows, that runs with the latest version of wine under Linux, at least for me (Gnu/Debian, with packages from wine):
http://hem.passagen.se/rasmuse/Coagula.htm
"Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/
Michael Garrett a écrit :
Now here is a question... does anyone have software that will take a 2D image and convert it to a wave file??
It has been discussed just a few days ago in here, the subject is called "Playing a bitmap", it is not about a software but about methods for patching something that produces different noises wit using an image file (I wonder how you could make something else than noises anyway, since no one has been able to make something else with). Metasynth is one of the softwares you might look for, but this is not the topic.
___________________________________________________________________________ Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire. http://fr.mail.yahoo.com
What do you mean by noises? Metasynth and Coagula (a free program that does this on winXP) both make a lot of interesting sounds, of which "noise" would only by one potential.
If you really wanted to avoid noise, however, it would be even more trivial, however, to produce MIDI output (or some melodic type of output), than to synthesize based on the material. For instance, the first idea I imagine is that one could take the RGB values from each vertical column, and turn them into some kind of three part counterpoint. You just need some simple mappings to go from (0-256) to whatever scale or pitch sets you want to use. If I were doing it, I might take the resulting pitch set, and use it to generate a probability weighting for the chance that a given pitch would occur, with each column representing an arbitrary amount of compositional time. I don't think this would sound at all like noise.
You could also map the same set of values to synth paremeters, making sure the entire range of settings produce "non-noisy" timbres... So the timbre and melodic content would be produced simultaneously from the same data set.
This is really more about "data mapping / data bending" and broader than the question of "playing a bitmap." Which is a topic I would really enjoy getting more input in - I've never found any good tutorials on how to approach data mapping and parameterization in order to get good, musical results, even though this would seem to be absolutely crucial to good instrument design. At least, googling hasn't helped me... Maybe (based on my ideas above) I already know enough, and I just haven't tried enough to implement things and learn by experience though...
~David
On 2/2/07, Patco megalegoland@yahoo.fr wrote:
Michael Garrett a écrit :
Now here is a question... does anyone have software that will take a 2D image and convert it to a wave file??
It has been discussed just a few days ago in here, the subject is called "Playing a bitmap", it is not about a software but about methods for patching something that produces different noises wit using an image file (I wonder how you could make something else than noises anyway, since no one has been able to make something else with). Metasynth is one of the softwares you might look for, but this is not the topic.
Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire. http://fr.mail.yahoo.com
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Good point. The idea of 'hearing an image' is great in theory, but will end up sounding like a clone of Aphex Twin's equation track.
~Kyle
On 2/2/07, David Powers cyborgk@gmail.com wrote:
What do you mean by noises? Metasynth and Coagula (a free program that does this on winXP) both make a lot of interesting sounds, of which "noise" would only by one potential.
If you really wanted to avoid noise, however, it would be even more trivial, however, to produce MIDI output (or some melodic type of output), than to synthesize based on the material. For instance, the first idea I imagine is that one could take the RGB values from each vertical column, and turn them into some kind of three part counterpoint. You just need some simple mappings to go from (0-256) to whatever scale or pitch sets you want to use. If I were doing it, I might take the resulting pitch set, and use it to generate a probability weighting for the chance that a given pitch would occur, with each column representing an arbitrary amount of compositional time. I don't think this would sound at all like noise.
You could also map the same set of values to synth paremeters, making sure the entire range of settings produce "non-noisy" timbres... So the timbre and melodic content would be produced simultaneously from the same data set.
This is really more about "data mapping / data bending" and broader than the question of "playing a bitmap." Which is a topic I would really enjoy getting more input in - I've never found any good tutorials on how to approach data mapping and parameterization in order to get good, musical results, even though this would seem to be absolutely crucial to good instrument design. At least, googling hasn't helped me... Maybe (based on my ideas above) I already know enough, and I just haven't tried enough to implement things and learn by experience though...
~David
On 2/2/07, Patco megalegoland@yahoo.fr wrote:
Michael Garrett a écrit :
Now here is a question... does anyone have software that will take a 2D image and convert it to a wave file??
It has been discussed just a few days ago in here, the subject is called "Playing a bitmap", it is not about a software but about methods for patching something that produces different noises wit using an image file (I wonder how you could make something else than noises anyway, since no one has been able to make something else with). Metasynth is one of the softwares you might look for, but this is not the topic.
Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire. http://fr.mail.yahoo.com
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Fri Feb 02, 2007 at 09:43:09AM -0600, Kyle Klipowicz wrote:
Good point. The idea of 'hearing an image' is great in theory, but will end up sounding like a clone of Aphex Twin's equation track.
nope.
unless you use metasynth. afaik theres still no options in there for image resynthesis algorithm,
it always uses the same window size, and always generates a sine-wave in the center of each bin. so everything made with it has that metasynth sound..
there's nothing stopping you from filling the bins with band-limited noise, or doing funky things with formants a la Tapestrea..
Kyle Klipowicz wrote:
Good point. The idea of 'hearing an image' is great in theory, but will end up sounding like a clone of Aphex Twin's equation track.
~Kyle
That's like saying "The idea of aleatory for composition is great in theory, but will end up sounding like a clone of John Cage."
"Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/
David Powers a écrit :
What do you mean by noises?
A noise is usually a sound that is not elegant enough for being considerated in a pretty composition unless it's concrete music, or maybe electroacoustic music, from my own point of view. Playing an image would obviously go into the nodal point of view, in all senses of the word.
Metasynth and Coagula (a free program that does this on winXP) both make a lot of interesting sounds, of which "noise" would only by one potential.
They both make interesting sounds indeed, but at the end we don't really feel the relation between the image and the sound, it's like taking a synth a touching all the buttons until a cool sound comes out.
If you really wanted to avoid noise, however, it would be even more trivial, however, to produce MIDI output (or some melodic type of output), than to synthesize based on the material. For instance, the first idea I imagine is that one could take the RGB values from each vertical column,
I've given a little try, it's attached
and turn them into some kind of three part counterpoint.
Okay, this is interesting. How can we proceed for building a counterpoint from RGB and grey level values?
PC.
#N canvas 497 20 454 586 12; #X obj 13 86 gemwin; #X msg 24 55 create , 1; #X msg 26 10 destroy , 0; #X obj 135 127 pix_image; #X obj 135 106 gemhead; #X obj 122 259 pix_data; #X obj 151 309 unpack 0 0 0; #X obj 290 17 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; #X obj 117 59 list prepend open; #X obj 118 82 list trim; #X obj 119 35 openpanel; #X obj 121 17 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 160 6 symbol e:/img; #X obj 18 289 pix_texture; #X floatatom 60 318 5 0 0 0 - - -; #X obj 17 340 square 0.5; #X obj 290 37 metro 150; #X floatatom 358 10 5 0 0 0 - - -; #X obj 257 197 / 100; #X obj 340 222 / 100; #X obj 290 85 t b a a; #X obj 340 120 sel 100; #X obj 340 165 i 0; #X msg 359 142 0; #X obj 388 84 sel 1; #X obj 371 166 + 1; #X obj 290 60 gem_counter 0 100; #X obj 368 195 sel 100; #X msg 395 220 0; #X obj 113 369 * 127; #X obj 113 393 i; #X obj 184 338 * 127; #X obj 178 393 i; #X obj 241 335 * 127; #X obj 240 388 i; #X floatatom 182 283 5 0 0 0 - - -; #X floatatom 258 227 5 0 0 0 - - -; #X obj 113 419 mtof; #X obj 113 445 osc~; #X obj 178 417 mtof; #X obj 178 444 osc~; #X obj 240 414 mtof; #X obj 240 441 osc~; #X obj 155 555 dac~; #X obj 167 525 *~ 0; #X obj 136 475 +~; #X obj 167 500 +~; #X obj 219 498 vsl 15 50 0.001 1 1 0 empty empty empty 0 -9 0 10 -262144 -1 -1 2000 1; #X obj 186 362 + 7; #X obj 243 362 + 4; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 3 0 5 1; #X connect 3 0 13 0; #X connect 4 0 3 0; #X connect 5 1 6 0; #X connect 5 2 35 0; #X connect 6 0 29 0; #X connect 6 1 31 0; #X connect 6 2 33 0; #X connect 7 0 16 0; #X connect 7 0 24 0; #X connect 8 0 9 0; #X connect 9 0 3 0; #X connect 10 0 8 0; #X connect 11 0 10 0; #X connect 12 0 10 0; #X connect 13 0 15 0; #X connect 14 0 15 1; #X connect 16 0 26 0; #X connect 17 0 16 1; #X connect 18 0 5 2; #X connect 18 0 36 0; #X connect 19 0 5 3; #X connect 20 0 5 0; #X connect 20 1 18 0; #X connect 20 2 21 0; #X connect 21 0 22 0; #X connect 22 0 25 0; #X connect 22 0 19 0; #X connect 22 0 27 0; #X connect 23 0 22 1; #X connect 24 0 23 0; #X connect 25 0 22 1; #X connect 26 0 20 0; #X connect 27 0 28 0; #X connect 28 0 7 0; #X connect 29 0 30 0; #X connect 30 0 37 0; #X connect 31 0 48 0; #X connect 32 0 39 0; #X connect 33 0 49 0; #X connect 34 0 41 0; #X connect 37 0 38 0; #X connect 38 0 45 0; #X connect 39 0 40 0; #X connect 40 0 45 1; #X connect 41 0 42 0; #X connect 42 0 46 1; #X connect 44 0 43 1; #X connect 44 0 43 0; #X connect 45 0 46 0; #X connect 46 0 44 0; #X connect 47 0 44 1; #X connect 48 0 32 0; #X connect 49 0 34 0;
On 2/2/07, Patco megalegoland@yahoo.fr wrote:
David Powers a écrit : A noise is usually a sound that is not elegant enough for being considerated in a pretty composition unless it's concrete music, or maybe electroacoustic music, from my own point of view.
Metasynth and Coagula (a free program that does this on winXP) both make a lot of interesting sounds, of which "noise" would only by one potential.
They both make interesting sounds indeed, but at the end we don't really feel the relation between the image and the sound, it's like taking a synth a touching all the buttons until a cool sound comes out.
Well, first, I don't know what a "pretty composition" is, but I guess in most of the electronic stuff I listen to, the noise ratio is high (experimental, glitch, minimal techno/house, IDM, free improv). That includes the electro-acoustic stuff. I guess I take it as a given that the world generally, and the music world along with it, have become much noisier in the last 100 years.
Second, if you paint directly in Coagula, it is very easy to understand the relationship between the visual painting and the sound. In fact, I have done sound design in it, that would be quite difficult to do through traditional audio processes, and it can be done very intuitively and quickly. However, you are basically only dealing with band limited noise and sine waves in that program. Variable waveforms, even from wavetables, and perhaps FM, would greatly expand the timbral possibilities.
Crazy idea along this line: what if you could compose in graphic "layers" ala Photoshop, with FM occurring where the layers overlap?
~David
Patco a écrit :
David Powers a écrit :
What do you mean by noises?
A noise is usually a sound that is not elegant enough for being considerated in a pretty composition unless it's concrete music, or maybe electroacoustic music, from my own point of view.
This point of view is not good, let me try to explain myself, noise's elegance often depends on how we can manipulate them to build sounds that make travelling our consciousness thrue the sounding universe. For influencing sound composition with visuals, we need to determine how the sound's parameters will be manipulated by the image data, and make the good correlation with our image perception.
The quantity of RGB and grey could be a single dimensional parameter, like the amplitude of frequencies
Playing an image would obviously go into the nodal point of view, in all senses of the word.
Sound's parameters could be organised around the axis of the image's nodal point.
___________________________________________________________________________ Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire. http://fr.mail.yahoo.com
On 31/01/2007, at 20.36, Thomas Mayer wrote:
My aim is to get something like http://www.bastwood.com/aphex.php
but I guess, that will be in five years or so ;)
You could give Sonogram~ from http://ydegoyon.free.fr/software.html a
peek