Aleph wobbliness (and emulation)

so my Aleph has been acting a little funny. One of the encoders sometimes not responding, i’m pretty sure this is a physical issue (mainly because when i hit the box it starts working again. :slight_smile: PIAP)
@tehn is there anything specific i should look at inside that might be wearing out?

…but then this also led me to thinking that the Aleph has become such a crucial part of my sound and process I’m worried about losing it or it finally dying, so I’m thinking about making a backup emulator on a laptop for emergencies.
Although I’d have to get incorporate a bunch of clunky boxes for the in/out and footswitches/encoders, most bees/lines scenes I’ve made are easy to emulate in Max or Pd, but the one bit i’m really struggling with is how to emulate the gritty non-interpolated pitching?
As I’ve never entirely understood how the rMUL and rDIV things read the buffer does anyone have any tips on how I might recreate this in max/pd ? @rick_monster @zebra @skektek maybe?
thanks!

1 Like

you could do it in gen very easily.

the buffer is read by means of an integer counter with no interpolation.

MUL is the rate multiplier, an integer
DIV is the rate divisor, an integer.

to implement DIV, a second state variable is used.

psuedocode:

phase = 0
hold = 0
each sample:
   hold += 1
   if hold >= DIV
      phase += MUL
      hold = 0
   while phase > loop
      phase -= loop
   out = buffer[phase]

ooo ok. thanks… this gives me an excuse to finally upgrade to max 7 and get into Gen

1 Like

i mean, i say gen because so many max users, but any environment will do. you can make a sample-rate Demand ugen in supercollider for instance. or compile the lines source into a pd external (using the supplied wrappers.)

but yeah, i have to say - having used max for a long time (pre-v5) then staying away for a while, and just recently coming back to v7 - gen~ is really great. it fills a major gap in the environment’s utility for me and i definitely recommend the upgrade for that reason.

1 Like

yeah… i’ll dig into V7, i’ve lost touch with max too even though it was staple for so long.

put lines into a pd external??? ! where are these wrappers and where would i start learning how to do this?

ah pff you know what - i lied. not set up for a pd external, “just” for a standalone jack application with OSC. but the principle is the same and it would be easy to adapt. (i misremembered - the pd external is a BEES emulator!)

get skektek’s branch snapshot from here:
[ ALEPH user STUDY GROUP ]

and use ‘make sim’ instead of ‘make’ when compiling lines.

the ‘wrappers’ i refer to are the sources in aleph/utils/bfin_sim, whose most important function is to emulate the fixed-point math intrinsics.

as i just mentioned in the other thread, we should roll skektek into the upstream, which has earlier and more broken versions of these tools.

there actually is of a pd external which can compile against fmsynth & lines.
cd utils/bfin_pd
make

kind of dodgy/badly done but hey, there it is!

ha, awesome!i saw it but assumed highly WIP, not referenced in module makefiles

but i see now - each module gets a new (minimal) makefile with just aleph sources yeah?

(pdlibbuilder, that’s handy)

yeah would be better to ‘make pd’ in module directory can’t remember why I didn’t do that instead… Maybe no good reason!