NRPN ranges

Hey, thanks for the MIDI implementation details in the manual. I’m missing ranges and default values for the NRPNs. For instance, Algorithm (NRPN 1:72) appears to go from 0-1024, with each value being 128 steps. Ratio A (NRPN 1:74) also appears to use 128 steps/value, but as it has more values, it goes from 0-4608. I guess I can go through each parameter and figure this out myself, but I bet @Elektron (@Ess?) already has this information somewhere. I’m trying to write a parameter randomizer FWIW… Also, it appears that there’s a speed limit on incoming MIDI (sending NRPNs “as fast as possible” results in messages getting dropped) – is this specified anywhere?

Thanks, Jeremy

3 Likes

… a device prototyped in max/msp is now having its output reverse engineered in max/msp by a key player from the factory of max/msp … :nerd:


I’d imagine you’ll get a very helpful reply in due course, some of us lesser mortals might not get the same access, so it’s generally a (time-consuming) case of reverse engineering stuff by oneself

the NRPNs are sometimes used to extend the range of addressable parameters supported beyond the circa 100 available by CC alone, so they don’t necessarily convey added detail - as you’ve noted the least significant value isn’t always used, so mapping this out won’t necessarily be too tricky for some settings - but I don’t know how many parameters the DN has and which of them has lots of values to map out - often the manual can be useful to trawl for lists

I’d consider sending the DN a complete sweep of NRPN values for each pairing and monitoring the output (easy enough to parse) for unique values echoed (presuming you don’t brick it) - maybe build up a picture of the valid mapping that way rather than scrolling encoders and watching

I suspect this investigating may not be needed in your case, but who knows, it might not be shared publicly so it may be worth asking support directly if you don’t hear anything on here, there may well be extended holidays occuring in Sweden … and welcome to the forum :thup:

2 Likes

Are you able to get the Digitone to transmit NRPN and use a midi logger to see what values are transmitted when turning the knobs?

Oh, looks like you are already doing the above. Ignore.

1 Like

Thanks, I ended up just doing it myself, didn’t take that long. Already getting some nice results, I’ll post some sounds later on or over the weekend.

3 Likes

After some more experimentation, this is in a pretty good place as a proof of concept. I will note that after sitting for hours with the randomizer running in the background and listening, that the overall range of sound the Digitone is producing is a little, well, limited. Lots of chirps, beeps, bells, clarinets but not as much sonic variety as I would have expected, even with full-on random settings.

I don’t think this is inherent to 4-op FM, though. A couple of small additions might make a big difference:

  • More possible inharmonic ratios (at least for C/A), arbitrary freedom to set the coarse/fine ratio would be even better.
  • Fixed frequency mode (at least for C/A) – if you can do FF down to 0 Hz that’d be awesome.
  • Pitch envelope
  • Better modulator envelopes
  • A straight additive algorithm would be welcome.

Anyway, I love the Digitone as it is and hope the feedback is seen as constructive. No doubt some of this stuff is coming (pretty please @Ess? :-D); I’m certainly not the only user to bring it up. In general, these are features which can’t be compensated for by filtering or FX, maybe kinda-sorta via LFO routing.

Anyway, if anyone is interested in trying out the randomizer, send me a PM. Right now it depends on a Max 8-beta-only feature for the NRPN transmission, but I can make it Max 7 compatible if there’s interest.

4 Likes

You can do both of these with LFOs, kinda. The LFOs go fast enough to almost be considered additional operators.

I think perhaps that a true randomiser may not pick up on some of the subtleties of the digitone; I’ve found that it needs to be worked a little in order to open up diversity of sound, mostly in the way that some sounds call for a specific combination of parameters hitting a sweet spot… It may eventually provide some diverse sounds but they’d still need some manual tweaking.

Still, it would be fun to play with a randomiser for inspiration!

3 Likes

Thanks for your note. The idea of a randomizer is mainly to propose something unexpected for further discussion, so to speak. I agree that manual intervention can (in general) only improve on a generated starting point. I tend to like starting from something other than a sine wave – as you say, it’s more inspiring.

Nice ideas about abusing the LFOs – I’ll need to intervene manually and try those techniques out.

1 Like

Absolutely, I’m keen to check it out if you plan to release it at some point.

I wholeheartedly disagree about the “limited range” of sounds you can get from the Digitone.
I will admit that there are certain combinations of parameters that yield “wild” results, naturally; others can sound pedestrian.

However: LFO modulation is absolutely essential! There are a couple destinations that can warp a sound beyond recognition (by humans; maybe aliens would understand them.) For instance, with some algos, modulating “Pitch 2 and 4” results in cross/ring modulation. Same with modifying ratios A/B/C or even “ratio all” --it’s hard to even begin to describe all the insane, clangorous tones.

The SYN2 page is where the action is, if you ask me. If your randomizer is applying too long of an attack for these envelopes and low levels for the A/B operators, you’ll be stuck in Sine-Town.

Finally, the DRV parameter can be yet another sound-shaping tool. It’s not just distortion–it can actually bring out (and smash) subtle frequencies, making for huge basses and weird, undulating percussive things.

1 Like

Don’t get me wrong, I wasn’t saying that the Digitone always sounds like a sine wave. But it occupies a very specific continent on the world of FM timbre, possibly for some of the reasons I listed above. As I understand it, this was by design, and I’m not complaining – the instrument can do things that my other FM synths cannot by virtue of the sequencer architecture, filter, effects and LFO mod possibilities.

Hum…I don’t know. I think it’s pretty easy to get out of the “clarinet zone,” especially by modifying parameters on the SYN2 page. Depending on the algo, even a minor adjustment can turn an “E. Piano” into uh, I don’t know what.
People often talk about the lack of “in-between” values on the operators, but I would invite you to explore the detune parameter. In the upper range, DTUN bends the relationship of OP A and B2 rather dramatically.

In any event, I’m kind of just spouting off because I’m an insane fanboy and have never been more creative or productive with an instrument.
I will definitely try your randomizer!

Cool project Jeremy!

I don’t think the issue lies in the engine of the Digitone and how it’s mapped out - check the presets and things people have done with it, it has a very broad range of sounds, many that are “unavailable” on other 4OP FM synths. There are straight additive algorithms (7&8), there are inharmonic ratios (detune) and there are pitch envelopes (LFOs) - it’s not missing, it’s just a different workflow than a regular FM synth. Your randomizer will need to account for this, just as a human would do when making patches on it. :thup:

And regarding envelopes - try combining gated and triggered, reset or non-reset - it opens up a world of possibilities.

Also, random patch generation is not exactly known for generating a good variety, especially not with FM synths as each parameter, or sound alteration, affects the outcome of the others. See the Patch Mutator in Nord Modular G2, that’s a very unique and great way of finding sounds that would be hard to dial in manually - but it’s far from random. (And it’s actually written by a good friend of mine who made some of the factory presets on the Digitone, surely using the mutator, knowing him!)

7 Likes

A Digitone patch mutator would be amazing. Maybe even a feature request? :smiley:

2 Likes

Hey @Ess, thanks for the reply and the clarifications – I didn’t notice that Alg 7 is fully additive if you disable modulation, that’s a neat and concise idea. I would still prefer more control over inharmonics/detune, but I understand the decisions you’ve made. In any case, I’ve been considering adding a bit of weighting to the randomizer to improve the correlation of related parameters and will probably try that a bit before sharing it.

I love the Nord Modular G2’s mutator, it wouldn’t be too hard to use genetic algorithms for patch breeding for the Digitone, although I haven’t done anything like that for shiver 25 years.

@Ess, I take it all back! :smile:

I added some weighting to a few critical parameters: ratio (weighted low), modulator volume (weighted high), and so on and am now getting a much broader spectrum of sounds. Still needs a little tuning, but it’s a big improvement over the unweighted version.

4 Likes

Here’s a very preliminary version as a Max for Live device, if anyone wants to try it out. Put it on a MIDI track, assign the MIDI output to the Digitone, whatever track you want to randomize and let it loose. Please let me know how you get along. I’ll keep hacking on it for sure and can post updates as it makes sense.

DigitoneRandomizer on Dropbox

EDIT: there was a bug in the Operator B exception case. Fixed and replaced the archive (now version 0.3)
EDIT: added a way to exclude groups from random generation (now version 0.4)

8 Likes

very cool indeed :slight_smile: thanks so much can’t wait to try this out !

Yes Thank you for creating this!

Great project idea. Shame its for max only.

If you’re interested I could create a standalone app (OSX or Win) which if I did the calculations correctly should work out to approximately 52% less shame.

3 Likes