• Dan b

    anybody else a fan of this guy?
    If your tastes run to Xenakis style extreme, inhuman computer music he's worth a look.

    Interested in how some of these sounds are synthesized - I reckon some at least are just (just!) cross modulated oscillators etc. on modular synths, but some are clearly digital, and he's mentioned in interviews that in the past he's used direct sonification of chaotic algorithms,

    I believe he's used Xenakis' Gendyn and UPIC systems (and if anyone has a source for these I'd be really pleased to hear about it) in the past, but aside from these, can anybody place any of the sounds he's using or make a guess at the algorithms/techniques in question?

    posted in technical issues read more
  • Dan b

    Hi All
    I'm trying to implement the neural oscillator described in this article
    http://www.ecila.org/ecila_files/content/papers/ACEICMC05.pdf

    It's basically 5 equations describing a pair of coupled neurons (or rather a simplified model of two coupled neurons). The author of the paper implemented in C++ , but I want to implement as a PD abstraction since my C++ is pretty well nonexistent and for the moment at least I just want to get a feel for what the possibilities are. I tried to implement in MAX/MSP 4, but there is no expr~ external for the windows version and I got nowhere trying to do the calculation with the maths objects. I have an excel spreadsheet doing the calcs and the output behaves the way I'd expect, so I'm fairly certain I've got the calcs right, It's just implementing in PD that I'm having trouble with.

    SO...
    The equations (bottom of page 1) are iterative - each new set of values for the equations depends on the output values for the previous step - eg X Y and Z at time n are calculated on the basis of the values X Y and Z at time n-1.
    This leads me to the first question - since this means I need to do stepwise calculation, presumably I'll need to use fexpr~ (sample wise calculation) rather than expr~ (vector calculation)?

    Or have I misunderstood? expr~ does vector calculations - and I'm assuming that's a displacement/amplitude vector - displacement from 0 over time t. If so, and since the time base is going to be constant surely I can just treat t as 1 - ie, ignore it - for present purposes?

    That may be incredibly naive though - I'm new to expr~.

    The second question is - does anyone have any ideas how I can start the thing running? Since it always needs a n-1 value to calculate the n value, I need to initialise it with values. Working on the principle that this is more or less a kind of waveshaping feedback synthesis I thought about just firing a short blast of white noise at all of the inputs to get the thing started.

    Again, naive?

    Either way, whether or not you have ideas to help - that paper is worth a look. Interesting stuff.

    Ta
    Dan

    posted in technical issues read more
  • Dan b

    I've been looking at a lot of Buchla modular vids over the last couple of days and there are some sounds there that I'm totally blown away by.

    I'm really interested in emulating two aspects of that sound. First I'd like to emulate the vactrol envelopes' response that gives you those lovely woody thunks when you feed them with a pulse. Also, the complex oscillator gives out some amazing sounds.

    Now I'm guessing that vactrol response might be easy-ish to model - it'd just be a matter of enveloping with a lookup, or a formula that gives a curve like a vactrol but I've not been able to find details of the buchla vactrol's response to a pulse - any ideas?

    And any ideas of what kind of waveshaping fun is going on with the timbre knob on the complex osc? It has to be digital - it gives out foldover artifacts- so it should be do-able, but I've been playing with waveshaping and not really getting the same kind of sounds.

    Any tips/ resources?

    posted in technical issues read more
  • Dan b

    I've been trying to emulate a delay pedal I have, but having no luck.
    The effect I'm after is a stable interval's pitch change when you change the delay time - you can tune the sound going around the delay loop up or down by a stable number interval by shortening or lengthening the delay time - just as you could tune sample playback by changing the rate of a phasor~ reading an array.

    If I use a vd~ reading from a delay line (as in the rotating tape head pitch shifter example, but with added recirculating feedback) I can get pitch change effects (pretty great pitch change effects tbh) but they're unstable - they keep rising or falling in pitch with each circulation as they get pitch shifted each time they go around the loop.

    I figured one way to implement the effect would be to change the write speed and the read speed by the same amount (I'd guess this is how the pedal is doing it)- But I have no idea how to change the delay write speed in PD.
    I thought of changing sample rate using block~ in a subpatch with the delay line but that doesn't seem to give the desired results (or in fact any sound at all - so I'm guessing you can't upsample a delay line).

    Any ideas???

    posted in technical issues read more
  • Dan b

    I'm looking for an editor that allows me to generate multi-channel (or multi-parameter I guess) Qlist data algorithmically and then edit the curves graphically/ cut and paste. Anybody know of a decent bit of software that'll do this?
    Alternately, if not Qlist data, then something that can send OSC commands

    I keep thinking that these sort of things must exist but I've not had much luck finding any.

    posted in technical issues read more
  • Dan b

    Someone (can't find thread now) was talking about wanting a tap tempo that kept all the human failings. I thought it was a good idea so I sat down and had a go at knocking one out - here it is.
    It takes 9 taps (yielding 8 durations, so superficially it's tied to 2 repeating bars of beats in 4/4 though of course given that you can tap out any rhythm in those 8 beasts, you can feed it any meter you like). Also it's scaleable. I nicked hardoff's toggle because I thought it was pretty.

    You could probably "improve" it by resetting the metro counter on tap 8 (so that the metro immediately goes into your sequence as you finish. That's probably a matter of taste though.

    #N canvas 302 0 701 714 10;
    #X obj 91 370 counter;
    #X floatatom 91 395 5 0 0 0 - - -;
    #X obj 135 220 t b b;
    #X obj 54 102 bng 15 250 50 0 empty empty empty 17 7 0 10 -258113 -262144
    -262130;
    #X floatatom 174 389 5 0 0 0 - - -;
    #X obj 135 285 moses 1;
    #X obj 135 264 realtime;
    #X obj 71 242 delay 1500;
    #X obj 174 304 moses 1500;
    #X obj 174 325 t b f;
    #X obj 129 418 pack f f;
    #X obj 114 505 f;
    #X obj 129 526 f;
    #X obj 144 545 f;
    #X obj 160 505 f;
    #X obj 175 526 f;
    #X obj 190 545 f;
    #X obj 206 507 f;
    #X obj 221 526 f;
    #X obj -53 571 metro 400;
    #X obj -53 596 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
    -1 -1;
    #X obj -53 620 s \$1-drunkmetro-step;
    #X obj -15 290 r \$1-drunkmetro-step;
    #X obj -15 351 counter;
    #X obj 38 102 tgl 15 0 \$0-toggle \$0-toggle-r OFF -30 8 0 13 -262144
    -262144 -1 0 1;
    #X obj -73 317 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
    -1 -1;
    #X floatatom -15 374 5 0 0 0 - - -;
    #X obj 129 469 route 0 1 2 3 4 5 6 7;
    #X obj 62 441 select 0 1 2 3 4 5 6 7;
    #X obj 45 338 select 7;
    #X obj -41 320 select 7;
    #X obj -76 659 outlet;
    #X obj 189 143 s \$0-toggle-r;
    #X obj 128 72 sel 0 1;
    #X obj 126 50 r \$0-toggle;
    #X msg 302 101 color \$1 \$1 -1;
    #X msg 291 68 0;
    #X msg 323 68 18;
    #X msg 128 100 label OFF;
    #X msg 210 101 label ON;
    #X obj -1 535 *;
    #X obj 4 119 hsl 52 10 4 0.25 1 0 blawhoof \$0-sliderinit empty -2
    -8 0 10 -258113 -1 -1 0 1;
    #X obj 14 511 r blawhoof;
    #X floatatom 78 579 5 0 0 0 - - -;
    #X obj 59 119 bng 10 250 50 0 ahr empty empty 17 7 0 10 -262144 -1
    -1;
    #X msg 55 166 1;
    #X obj 53 199 s \$0-sliderinit;
    #X obj 77 138 loadbang;
    #X connect 0 0 1 0;
    #X connect 0 0 29 0;
    #X connect 1 0 10 0;
    #X connect 2 0 6 0;
    #X connect 2 0 7 0;
    #X connect 2 1 6 1;
    #X connect 3 0 2 0;
    #X connect 4 0 10 1;
    #X connect 5 1 8 0;
    #X connect 6 0 5 0;
    #X connect 7 0 6 0;
    #X connect 7 0 0 2;
    #X connect 8 0 9 0;
    #X connect 9 0 0 0;
    #X connect 9 1 4 0;
    #X connect 10 0 27 0;
    #X connect 11 0 40 0;
    #X connect 12 0 40 0;
    #X connect 13 0 40 0;
    #X connect 14 0 40 0;
    #X connect 15 0 40 0;
    #X connect 16 0 40 0;
    #X connect 17 0 40 0;
    #X connect 18 0 40 0;
    #X connect 19 0 20 0;
    #X connect 20 0 21 0;
    #X connect 20 0 31 0;
    #X connect 22 0 23 0;
    #X connect 23 0 26 0;
    #X connect 23 0 30 0;
    #X connect 24 0 19 0;
    #X connect 24 0 25 0;
    #X connect 25 0 23 3;
    #X connect 26 0 28 0;
    #X connect 27 0 11 1;
    #X connect 27 1 12 1;
    #X connect 27 2 13 1;
    #X connect 27 3 14 1;
    #X connect 27 4 15 1;
    #X connect 27 5 16 1;
    #X connect 27 6 17 1;
    #X connect 27 7 18 1;
    #X connect 28 0 11 0;
    #X connect 28 1 12 0;
    #X connect 28 2 13 0;
    #X connect 28 3 14 0;
    #X connect 28 4 15 0;
    #X connect 28 5 16 0;
    #X connect 28 6 17 0;
    #X connect 28 7 18 0;
    #X connect 29 0 0 2;
    #X connect 30 0 23 2;
    #X connect 33 0 38 0;
    #X connect 33 0 36 0;
    #X connect 33 1 39 0;
    #X connect 33 1 37 0;
    #X connect 34 0 33 0;
    #X connect 35 0 32 0;
    #X connect 36 0 35 0;
    #X connect 37 0 35 0;
    #X connect 38 0 32 0;
    #X connect 39 0 32 0;
    #X connect 40 0 19 1;
    #X connect 42 0 40 1;
    #X connect 42 0 43 0;
    #X connect 44 0 45 0;
    #X connect 45 0 46 0;
    #X connect 47 0 45 0;
    #X coords 0 -1 1 1 70 31 2 0 100;

    posted in patch~ read more
  • Dan b

    Hi,
    I think this might be a dumb question - but (possibly for want of the correct vocabulary) Google hasn't turned up an answer, so if anybody could help I'd be really grateful.

    I'm putting together a modulation matrix to route a few LFOs to different outputs, and it occured to me that it'd be cool to be able to control the phase shift of the LFO at some outputs- so the same LFO was driving (for example) the amplitudes of two oscilators, but with one cycle 90/180/arbitrary degrees out of phase with the other - so osc1 volume rises as osc 2 volume falls.
    Is there a reasonably straightforward way of doing this?

    My first thought was to use phasors to drive the LFOs, then shape the LFO using lookup tables - running a few tables with (eg) sine waves shifted by different increments - pick the table and you pick your phase shift.
    Seems like there must be a simpler and more flexible way though.

    Any ideas?

    Ta
    Dan

    posted in technical issues read more
  • Dan b

    Sounds like, if you didn't record it, you missed a trick.

    posted in technical issues read more
  • Dan b

    Though having said that I just saw this -
    "Expr, expr~, and fexpr~ now support multiple expressions separated by semicolons which results in multiple outlets"

    Which might give me the answer...

    And reading expr~ docs more carefully I realised that the vector calculation is based on the buffer size set in PD. So if I'm using expr~ I guess I should just set the delay~ to the buffer size instead of to 1 sample and calculate as vectors. Easier to work in fexpr~ though, clearly.

    This all raises another question - does anyone know how the math objects in PD work? Do they calculate on a sample-by-sample or vector-by-vector basis?

    posted in technical issues read more
  • Dan b

    ah - ta I'll take a look. RTFM I guess :)

    I actually got it making a sound using expr~ the other night. I'm not sure it's "correct" as an implementation of those equations (I need to check a few things), but whether or not it is, it still makes some interesting sounds :)
    I'll post it up when I get home.

    I realised after I posted here that if it is neccessary to use fexpr~ then it might not be possible at all - because I need to calculate 4 different variables at each sample/step - so I'd need 4 fexpr~s and the ability to send sample-accurate data between them. I guess whether or not it's possible depends on whether it's sufficiently accurate to use [delay~ 1] to send the previous calculation step from one fexpr~'s out to another fexpr~'s input (this is exactly what I've done on my expr~ implementation).

    posted in technical issues read more

Internal error.

Oops! Looks like something went wrong!