Jump to content

Recommended Posts

Posted

I saw a bunch of posts relating to fruityloops and stuff like that, and I was wondering if anyone composed with pD or Max/MSP. Its a graphical programming language based in C.

Anyway, if anyone does, I'm looking for either a better external than reverb~ or a way to use audio units in it. Been fighting with a project for a while, and i've gotten it down to just the reverb before i can shape the piece.

Posted

I've tried to learn the syntax and GUI of MAX/MSP - there's a STEEP learning curve, expecially for someone not well versed in that sort of thing (like myself). I've since given up...and am going to be of no help to you.

I was interigued by the prospect of interactive electronics, but it will take a lot of study, trial & error, and screwups. I was able to build a basic tone generator, but beyond that I couldn't wrap my head around it.

Anyway - you're certainly not the only one around here who has run into pureData and MAX, perhaps some of our resident electro-acoustic modernists will have more input...

...

;)

  • 9 months later...
Posted

OLD THREAD>>>>

but, I am currently trying to get my head around using PD. I am making decent progress (i suppose) but I am nowhere near being able to actually make something that is worth performing or calling a composition.

is there anyone else using this stuff or anything similar?

I could use a support group. :)

Posted

I use Logic Pro 8, Fruity Loops, Csound, Max/MSP, and Digital Performer pretty proficiently. Do you have any questions about any of these?

Posted

I too have used Max/MSP quite a lot (especially recently, where I've had one concert about a week ago and two coming which involve rather extensive Max patches). I'm not too used to PD, but the principles are the same anyways.

Anyways: I realize the OP is quite dated now and the question may no longer be relevant, but let's leave no question unanswered!

I generally don't use many externals (since I don't want to depend on the authors making new versions when a new Max version comes out), so I'm not too familiar with what else there might be out there for PD, but for Max there's the gigaverb~ external which is pretty decent. In Max you can also easily include VST plugins with the vst~ object, which you can also find free ones on the web. I'm not sure if that works in PD though.

Finally, there's always the option of building your own reverberator. There's the very classic Schroeder reverb setup, which consists of a rather simple combination of comb filters and allpass filters. You can find details on this on the internet, it's not too complicated, works fast and well, but will not create the quality of reverbs you may be used to from good convolution plugins. It often sounds a lot like plate reverb. Of course there are many versions of reverbs that are based on this principle but expand it to improve the quality, and some of them are indeed rather good. (Max includes an example file of one such implementation.)

Then there's the luxury variant of convolution. Convolution can give you excellent reverb, and it's not too hard to set up either, AS LONG as you don't need it for realtime applications. Making it work realtime is a lot more difficult, and not only does it make the code quite a bit more complex, it also needs a fair bit of processor power, so having individual reverb on many simultaneous elements and running that in realtime on a laptop might be risky.

Finally, there are variants that are forms of "physical modelling": Trying to actually simulate the paths the sound waves will take in a virtual room and calculating the form of the waves at the position of the speakers. This can be as simple or as complex as you want to make it, take up from marginal to extensive processor power and can sound from mediocre to excellent. The main quality of this kind of reverb in contrast to convolution is that you don't have to work with a predefined room that is just imitated, but you can actually shape your room yourself, let its characteristics change gradually, and produce a very good sound localisation along with the reverb (if you're using it in stereo or more). To actually produce much reverb, you have to include quite a lot of delays in this though, which can make the program quite full and possibly slow.

(One final option that I forgot is using convolution, but without a predefined impulse response, but one you create yourself, possible algorithmically in realtime, which also gives you the option of shaping the room yourself. But it has the same downsides such as processing power/speed as any other convolution.)

Posted

basically, I am just trying to learn how to do it.. how to get some usable sound.

I am interested in completely composed electronic music, improvised or performed electronic music (using a controller or the keyboard or something), music concrete and live music + electronics.... so pretty much anything.

I am slowly wrapping my head around all of this stuff(electronic music in general) and really don't know what I am doing. I picked puredata because i heard it was good and a lot of people are using it. I considered Max/MSP, and may still get into it eventually, but its expensive and I don't care to shell out that much cash for something unless I know what's what.

Programming Electronic Music in Pd

I am going through this book currently and learning quite a bit.

I don't really have any specific questions other than "give me any advice you care to share" :)

Posted

Best thing to do is find an object list. What this does is give you an idea of the stuff you have. It should be in the help files.

In fact, always right click on something to get to the help -- seriously useful stuff there, and the extended version gets rather technical, so you can better figure it out.

If you're using a PC, certainly run PD-extended, it's got a lot more stuff.

I mean, do you know how to make a basic oscillator and that stuff? Or are you looking more at programming and sequencing?

BTW: Thanks Gardener! I'll have to look into that.

Posted
Best thing to do is find an object list. What this does is give you an idea of the stuff you have. It should be in the help files.

In fact, always right click on something to get to the help -- seriously useful stuff there, and the extended version gets rather technical, so you can better figure it out.

If you're using a PC, certainly run PD-extended, it's got a lot more stuff.

I mean, do you know how to make a basic oscillator and that stuff? Or are you looking more at programming and sequencing?

BTW: Thanks Gardener! I'll have to look into that.

I am on linux and I am using extended. I do know how to make an oscillator, right now I am working on making use of samples and arrays and the fun things that you can do with them.

basically, today I created a little 4-track looping sampler with a volume control.. loaded samples and started screwing around with it.

Right now I guess I am more focusing on some sort of performable music. (improvising with samples counts in my book!)

I need (want) to figure out how to map the keyboard to do stuff for me like changing volume and adding effects or something.

Posted
use the key object, it connects to a number box. Then use the select object.

issue with that is that you don't get velocity control.

there is a midiin object that might also be helpful.

thanks :)

edit

here.. I did this today on the sampler that I made:

ambient.mp3 - File Shared from Box.net - Free Online File Storage

I recorded the audio in an external program..

the whole thing is made from 4 samples that were preloaded before I started playing around. I messed with the levels, I messed with the reverb a little (but you can't really hear it..)

the odd distorted sound at around 5:30 was made by using the array of one sample to read another sample.

The birds, and two of the 'ambience' samples were found on freesound.org, the siren-sounding sample i made with PD using the second patch in my screenshot. I recorded the audio from it and used it as a sample rather than playing with it as a subpatch or something.

Its not too complex... but enjoy nonetheless

17059.attach_thumb.jpg

Posted
This is cool...

Are the parts automated or did you manually hit them?

you should post the .pd file as a .txt so we can see what going on better

EDIT: Damn this is really nasty. that ending really killed it :)

killed it in a good way?? I quite like the nasty.

None of the sampler is automated, I loaded the files at beforehand and they were already looping when I started messing with the volume.

In the sample that I created, it was all automated.

Is this what you are looking for? (.pd as .txt) ?

this is the sampler

#N canvas 454 86 830 631 12;
#X obj 128 6 openpanel;
#X obj 203 8 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 17 40 table array1;
#X obj 128 49 soundfiler;
#X floatatom 128 70 7 0 0 0 - - -;
#X obj 128 92 s sr1;
#X obj 127 135 openpanel;
#X obj 202 137 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 127 178 soundfiler;
#X floatatom 127 199 7 0 0 0 - - -;
#X obj 125 264 openpanel;
#X obj 201 267 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 125 307 soundfiler;
#X floatatom 125 328 7 0 0 0 - - -;
#X obj 125 393 openpanel;
#X obj 200 395 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 125 436 soundfiler;
#X floatatom 125 457 7 0 0 0 - - -;
#X obj 16 169 table array2;
#X obj 14 298 table array3;
#X obj 14 427 table array4;
#X obj 127 221 s sr2;
#X obj 125 350 s sr3;
#X obj 125 482 s sr4;
#X obj 435 91 phasor~ 1;
#X obj 435 114 *~;
#X obj 435 22 r sr1;
#X obj 435 45 expr 44100 / $f1;
#X floatatom 435 68 5 0 0 0 - - -;
#X obj 435 137 tabread4~ array1;
#X obj 435 208 dac~;
#X msg 128 26 read -resize \$1 array1;
#X obj 634 91 phasor~ 1;
#X obj 634 114 *~;
#X obj 634 45 expr 44100 / $f1;
#X floatatom 634 68 5 0 0 0 - - -;
#X obj 634 183 dac~;
#X obj 634 22 r sr2;
#X msg 127 155 read -resize \$1 array2;
#X obj 634 137 tabread4~ array2;
#X obj 589 35 vsl 15 128 0 1 0 0 empty empty empty 0 -9 1 10 -262144
-1 -1 0 1;
#X obj 367 29 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 0 1;
#X obj 389 404 phasor~ 1;
#X obj 389 427 *~;
#X obj 389 358 expr 44100 / $f1;
#X floatatom 389 381 5 0 0 0 - - -;
#X obj 389 496 dac~;
#X obj 351 336 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 0 1;
#X obj 389 335 r sr3;
#X obj 389 450 tabread4~ array3;
#X msg 125 284 read -resize \$1 array3;
#X obj 389 473 *~ 0;
#X obj 493 187 line;
#X obj 687 185 line;
#X obj 434 508 line;
#X obj 676 437 phasor~ 1;
#X obj 676 460 *~;
#X obj 676 391 expr 44100 / $f1;
#X floatatom 676 414 5 0 0 0 - - -;
#X obj 676 529 dac~;
#X obj 629 355 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 0 1;
#X obj 676 506 *~ 0;
#X obj 719 537 line;
#X obj 676 368 r sr4;
#X obj 676 483 tabread4~ array4;
#X msg 125 415 read -resize \$1 array4;
#X obj 435 160 *~ 0;
#X obj 634 160 *~ 0;
#X msg 494 160 \$1 1000;
#X msg 690 160 \$1 1000;
#X msg 438 476 \$1 1000;
#X msg 722 509 \$1 1000;
#X obj 550 278 freeverb~;
#X obj 549 311 dac~;
#X floatatom 564 210 5 0 0 0 - - -;
#X msg 552 232 wet \$1;
#X connect 0 0 31 0;
#X connect 1 0 0 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 6 0 38 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 21 0;
#X connect 10 0 50 0;
#X connect 11 0 10 0;
#X connect 12 0 13 0;
#X connect 13 0 22 0;
#X connect 14 0 65 0;
#X connect 15 0 14 0;
#X connect 16 0 17 0;
#X connect 17 0 23 0;
#X connect 24 0 25 0;
#X connect 25 0 29 0;
#X connect 26 0 27 0;
#X connect 26 0 25 1;
#X connect 27 0 28 0;
#X connect 28 0 24 0;
#X connect 29 0 66 0;
#X connect 31 0 3 0;
#X connect 32 0 33 0;
#X connect 33 0 39 0;
#X connect 34 0 35 0;
#X connect 35 0 32 0;
#X connect 37 0 34 0;
#X connect 37 0 33 1;
#X connect 38 0 8 0;
#X connect 39 0 67 0;
#X connect 40 0 69 0;
#X connect 41 0 68 0;
#X connect 42 0 43 0;
#X connect 43 0 49 0;
#X connect 44 0 45 0;
#X connect 45 0 42 0;
#X connect 47 0 70 0;
#X connect 48 0 44 0;
#X connect 48 0 43 1;
#X connect 49 0 51 0;
#X connect 50 0 12 0;
#X connect 51 0 46 0;
#X connect 51 0 46 1;
#X connect 51 0 72 1;
#X connect 52 0 66 1;
#X connect 53 0 67 1;
#X connect 54 0 51 1;
#X connect 55 0 56 0;
#X connect 56 0 64 0;
#X connect 57 0 58 0;
#X connect 58 0 55 0;
#X connect 60 0 71 0;
#X connect 61 0 59 0;
#X connect 61 0 59 1;
#X connect 61 0 72 0;
#X connect 62 0 61 1;
#X connect 63 0 57 0;
#X connect 63 0 56 1;
#X connect 64 0 61 0;
#X connect 65 0 16 0;
#X connect 66 0 30 0;
#X connect 66 0 30 1;
#X connect 66 0 72 0;
#X connect 67 0 36 0;
#X connect 67 0 36 1;
#X connect 67 0 72 1;
#X connect 68 0 52 0;
#X connect 69 0 53 0;
#X connect 70 0 54 0;
#X connect 71 0 62 0;
#X connect 72 0 73 0;
#X connect 72 1 73 1;
#X connect 74 0 75 0;
#X connect 75 0 72 0;
[/CODE]

this what generated one of the samples

[CODE]#N canvas 188 79 870 523 12;
#X obj 26 23 table wave;
#X obj 45 351 *~;
#X obj 0 301 tabosc4~ wave;
#X obj 74 331 osc~ 1;
#X obj 44 373 *~ 0.5;
#X floatatom 109 309 5 0 0 0 - - -;
#X obj 46 420 dac~;
#X obj 5 127 +~;
#X floatatom 44 195 5 0 0 0 - - -;
#X obj 0 55 osc~ 0.04;
#X obj 5 83 *~ 8;
#X obj 99 60 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
;
#X obj 210 164 line;
#X obj 121 170 line;
#X obj 211 94 random 300;
#X obj 127 91 random 300;
#X obj 210 118 + 400;
#X obj 126 115 + 400;
#X obj 129 66 metro 7000;
#X msg 113 8 \; wave sinesum 62 0.4 0.03 0.2 0.3 0.02;
#X msg 121 147 \$1 10000;
#X msg 210 141 \$1 10000;
#X obj 315 217 noise~;
#X floatatom 391 256 7 0 0 0 - - -;
#X obj 333 268 lop~;
#X obj 333 291 lop~;
#X obj 333 245 lop~;
#X obj 229 276 * 3;
#X connect 1 0 4 0;
#X connect 2 0 1 0;
#X connect 3 0 1 1;
#X connect 4 0 6 0;
#X connect 4 0 6 1;
#X connect 5 0 3 0;
#X connect 5 0 27 0;
#X connect 7 0 2 0;
#X connect 8 0 7 1;
#X connect 9 0 10 0;
#X connect 10 0 7 0;
#X connect 11 0 18 0;
#X connect 12 0 5 0;
#X connect 13 0 8 0;
#X connect 14 0 16 0;
#X connect 15 0 17 0;
#X connect 16 0 21 0;
#X connect 17 0 20 0;
#X connect 18 0 14 0;
#X connect 18 0 15 0;
#X connect 20 0 13 0;
#X connect 21 0 12 0;
#X connect 22 0 26 0;
#X connect 23 0 26 1;
#X connect 23 0 24 1;
#X connect 23 0 25 1;
#X connect 24 0 25 0;
#X connect 25 0 4 0;
#X connect 26 0 24 0;
#X connect 27 0 23 0;[/CODE]

  • 2 weeks later...
Posted

I'm guessing a lot of moving EQs on saw waves, but I might be wrong.

On a totally different note, does anyone know how to get GEM working on a Mac? I'm fighting with the newest version of Pd (.40.3?) and the -ext objects finally work, but I can't get GEM working. It's looking for somethign with x11, but I know so little about it that I can't track it down.

Posted

x11 is the most common graphics utility on most linux systems (it is what makes graphics possible over the command-line operating system)... I am pretty sure that a MAC can use it, but it doesn't use it by default.

I really don't know what to tell you, I don't use a mac. Perhaps it'll help your searching a little.... also.. try the PD forums, they tend to be helpful, even if they're a little slow.

Good luck

Posted

Well, I know x11 is some developer tool and is required for weird linux stuff. It comes on the install disk, so I feel its relatively standard.

Yeah, I checked the pd forums -- they sent me around in circles. Near as I can tell, the prefs file of PD is looking for an X11 library, but it has the wrong name for that file. This is what I'm getting; I bolded the files that are at the core of it, I think; they're the x11 header files:

libdir loader $Revision: 1.8 $
	written by Hans-Christoph Steiner 
	compiled on Jul 29 2008 at 04:03:05 
	compiled against Pd version 0.40.3.extended
/Users/harddisk/Desktop/Audio Editors/Pd/Pd-extended.app/Contents/Resources/extra/Gem/Gem.pd_darwin: dlopen(/Users/harddisk/Desktop/Audio Editors/Pd/Pd-extended.app/Contents/Resources/extra/Gem/Gem.pd_darwin, 10): Library not loaded: /usr/X11R6/lib/libfreetype.6.dylib
  Referenced from: /Users/harddisk/Desktop/Audio Editors/Pd/Pd-extended.app/Contents/Resources/extra/Gem/Gem.pd_darwin
  Reason: image not found
Gem: can't load library
libdir_loader: added 'cyclone' to the global objectclass path
[a whole pooton of added libraries]
libdir_loader: added 'flatspace' to the global objectclass path
/Users/harddisk/Desktop/Audio Editors/Pd/Pd-extended.app/Contents/Resources/extra/pdp.pd_darwin: dlopen(/Users/harddisk/Desktop/Audio Editors/Pd/Pd-extended.app/Contents/Resources/extra/pdp.pd_darwin, 10): [B]Library not loaded: /usr/X11R6/lib/libX11.6.dylib[/B]
  Referenced from: /Users/harddisk/Desktop/Audio Editors/Pd/Pd-extended.app/Contents/Resources/extra/pdp.pd_darwin
  Reason: image not found
pdp: can't load library
/Users/harddisk/Desktop/Audio Editors/Pd/Pd-extended.app/Contents/Resources/extra/pidip.pd_darwin: dlopen(/Users/harddisk/Desktop/Audio Editors/Pd/Pd-extended.app/Contents/Resources/extra/pidip.pd_darwin, 10): [B]Library not loaded: /usr/X11R6/lib/libX11.6.dylib
  Referenced from: /Users/harddisk/Desktop/Audio Editors/Pd/Pd-extended.app/Contents/Resources/extra/pidip.pd_darwin[/B]
  Reason: image not found
pidip: can't load library

But I can't figure out how to edit these files or find what files they're supposed to referencing; the find doesn't yield anything... Editing the darwin files in TextEdit yields gobbledygook.

I'm looking into how well-installed my x11 is....

EDIT: Bingo. Finally found a decent x11 download; everything worked out

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...