Had to fly for work & somehow airports are a weirdly good place to write computer programs. Wrote this in a few hours yesterday on my laptop using blackfin emulator - just tested on the computer and think it should just work on the device…

https://github.com/rick-monster/aleph/tree/dev/modules/fmsynth

Each op can be modulated by two other ops e.g op4Mod1Source picks the 1st modulator for op4, op4Mod1Gain sets modulation depth. The output of each op can be mixed into aleph main outs.

Missing features:

  • LFO not plumbed in yet.
  • note velocity not plumbed in (maybe it should be removed instead to encourage more creative thinking from aleph users about how to interpret gesture velocities)

EDIT:
gave the outdoors a miss today (heavy rain) - picked up this module instead. Sure enough, couple o’ bugs with the params & some missing plumbing but the DSP is basically sound! Got further in 30 mins on aleph towards understanding FM synthesis than many hours spent screwing with an ebay FB-01 bargain struggling to figure out some jinky (I mean buggy) free editor, rifling through presets & generally getting overwhelmed…

Definitely hoping to pick up some tips on percussion/SFX synthesis from the userbase and planning a quick release, since this thing is immediately useful/fun…

The obvious more interesting experiment is to combine the kind of FM/pitchshift processing in grains with a moderately capable 4-voice synth engine - hopefully allowing me to access flexible FM guitar tones for melodic playing, also might be interesting to smash vocals to bits or combine with any other pitched sounds. Something I’ve been dreaming of since starting this aleph coding quest…

4 Likes

Here’s an early binary un-release of fmsynth - some discussion how to develop the DSP params would be super-useful!
http://rickvenn.com/fmsynth.zip

2 Likes

@rick_monster just caught your svf code on github, do these proposed changes help the bpf from distorting so easily?

may do! I was in a bit of a crazy sleep-deprived fix-the-world mood when I made those changes, needs reviewing really hence I didn’t pull-request anything. Also probably untested on the device - can’t remember that far back (lord it’s only like 2 days ago, how do I ever get anything done). I will try to get to that but feel free to grab & try if you have time. Though the main thing it should’ve fixed was some weirdness where at some settings q wouldn’t have much effect.

yeah the q thing, I remember having trouble with that too! will have a look when time permits!


this is a good rundown of softclippers. Might have a play round see whether tanh softclipping can be adapted to the blackfin. Good thing about that algorithm is the clipping ‘knee’ & ‘limit’ can be both tweaked, so should be able to tune in many flavours of distortion by setting pos/neg knee & limit…

EDIT:
Recordings of some quick softclip filtering hacks made using the aleph linux emulator at maximum Q - one asymettrical (tube-ish distortion), one symettrical. Worked on the device first time, though I did find a pretty serious emulator bug during this round of filter-fettling!

unfiltered:

linear filtered (hard clips a little bit):

symetrical clipping in filter guts:

asymetrical clipping in filter guts:

Still kind of thinking it would be a fun exercise to make a cheesy little aleph groovebox with monophonic wubby bassline synth and some percussion generators, or more of a ‘standard’ kind of 4-slot performance sampler with filters & pitchshifting…

3 Likes

[quote=“rick_monster, post:75, topic:177”]
more of a ‘standard’ kind of 4-slot performance sampler with filters & pitchshifting…[/quote]sat down briefly with the fm synth days ago and need to explore again so i can give you feedback

this is exciting too!
if you move forward with this let us know

1 Like

thought of it years ago, even posted the suggestion on the old forum but never actually tried! Been playing around for a few hours, didn’t blow the tank or headphone output yet! So you need to make a weird cable - stereo 1/4" jack -> mono RCA, wired thus:

| jack sleeve -> rca ground | (outside solder tag on RCA)
| jack ring   -> N.C        | (no connection)
| jack tip    -> rca signal | (inner solder tag on RCA)

One ‘ear’ of the headphone jack drives the tank, use the other ‘ear’ for the main out, using the line out w/ it’s own top volume control. One fun use of this is to set up aleph foot pedal so that a momentary press pans the signal hard into the reverb channel to get some dub-ey reverb crashes whilst playing a percussion part…

1 Like

got stuck today trying to use the cv_update() function in my prgm app, I just can’t get the cv outputs to respond, all four of them are fixed at the maximum output voltage, have looked at the mix and waves modules and tried to reuse their code, but I’m stuck. I assume channels are numbered 0-3 when used as parameter input to cv_update(). should they be 10v after successful init? anything else that could make sense to test or debug?!

BEGIN ALEPH SOFTWARE TRANSMISSION

extensively enhanced BEES & blackfin DSP modules, example scenes:

  • varispeed lines (read & write)
  • brand new ‘acid’ module - prang state-variable-filters for fun and profit!
  • patching extensively overhauled, for arbitrary op insertion & deletion
  • new op: KRIA
  • save & recall ww/kria sequences via scene storage
  • new op: HARRY, a microtonal ‘tonality diamond’ operator
  • new op: POLY, for managing note priority & triggering monophonic or polyphonic modules from a midi kbd or grid
  • adjustments to waves & dsyn (filters overhauled etc)
  • display op outputs on play screen
  • various other small UI improvements
  • hackable grid patching paradigm - GRIDRAW, MEM[012]D, ITER
  • proper grid focus swapping (run multiple grid ops, flick between them seamlessly as they run in background)
  • develop & debug ops & modules on linux, using puredata or jack/OSC

binary:
http://nshgrtha.net/sdcard_sktk1.zip

source code:
http://nshgrtha.net/aleph_sktk1.tar.gz

WARNING: probably incompatible with scenes/modules from the original monome firmware releases.

bugs? possibly… features? yes!

a ‘stable’ release with docs & a proper release number? …someday…

END TRANSMISSION

EDIT:
please note latest ‘non-release’ with further bugfix for preset system here:

http://nshgrtha.net/sdcard_sktk1a.zip
http://nshgrtha.net/aleph_sktk1a.tar.gz

12 Likes

what ever happened to the prospect of new Alephs? Id kill for one

probably

unless

https://llllllll.co/t/building-some-monome-aleph-any-interest/2419

what the hell!!! this sounds amazing!!!

what is a tonality diamond?

and could you say more about what this means -
“develop & debug ops & modules on linux, using puredata or jack/OSC”

2 Likes

This sounds fantastic! Just out of the blue!?*?!!?

1 Like

secret plans and clever tricks indeed…
it looks like a huge step forward, on many levels. thanks.
i’ll surely try.

only thing i can think of is maybe the frame-processing function is just running out of time? if you are calling cv_update at the end of it?

running these lines on top in frame processing, just want to get a zero voltage output as a first test.

static u8 cvout = 0;
cv_update(cvout, 0);
if(++cvout == 4) cvout = 0;

now luck so far, will dig further in the waves and bees code to find what I’m doing wrong.

found the problem, it was a broken cable (head flat against keyboard)

1 Like

a harmonic/melodic construct arranging all the distinct permutations of consonant ratios within the canonical octave. These ratios are laid out in a square or diamond - you can play it as an instrument or trigger the ratios by their x-y coordinates from any BEES op. There’s a proper explanation on wikipedia, and an example scene in the zipfile. This scene also demonstrates new POLY operator…

Should be able to ‘make sim’ in most of the dsp modules & run [module]_jack as standalone jack clients on a linux box. params can be pranged from cmd line using oscsend tool:
oscsend localhost 7770 /param ii 22 1 (hit param 22 with the scaled 32 bit value 1)

As for the puredata support it could use some more attention & releasing separately. try building the external in utils/pd (may require some prodding) & running the .pd files in that directory…

I couldn’t get it to work.
I booted up on my freshly made SD-card, but it wouldn’t show any modules at all.
When i went to the operator page i couldn’t see any of the new operators either.
Has anybody gotten it to work? The tonality diamond sounds really interesting!