Destiny+ Model Q2

Hi, New user, with lots of questions.
I’m working on a template for the Destiny+ Model Q2 (model-Q-2)
This synth only speaks NRPNs. Of which, before last week, I knew nothing about. Now I know a little bit, but I may still have some bits to wrap my head around.

I made a template, which sets a bunch of controls with message type ‘nrpn’, and set the relevant LSBs (afaict, MSB is always zero). When I send it to the E1, a few behaviours have me scratching my head

  • As far as I can tell, the template doesn’t collect the current state from the Q2, so my controls are all set at the default in my template, even though the synth may have that control at a different value. Do I need some lua magic to do a ‘query everything’ on startup ? Similarly, there’s a randomize button on the synth that after pressing, ideally would update the UI on the E1.

  • Some controls are 14 bit, quoting from the docs:

    • 107: Set BPM (0–65535 mapped to 1–300 BPM,update tempo/display)
    • 108: Set Algorithm Index (0–65535 mapped to 0–9, update display)
    • 109: Set Swing (0–65535 mapped to 0.0–1.0, update display)"
      I imagine I need to do this scaling with lua too ? As I have it set right now, with a lot of turning of the knob, I can see if update the bpm on the lcd from 1 bpm through 3bpm, so I know the nprn sending part is working at least.
  • There’s a bunch of other nrpns that I’m also suspecting are 14 bit values as lots of the knob movement results in either silence or very little difference. (The nprn documentation is very sparse, and isn’t clear on this). So again, more lua?

I’ve picked through a bunch of different E1 templates, but haven’t found a good ‘nrpn heavy’ synth that I could cargo cult from. Pointers welcomed!

thanks!

Made some progress. My suspicions were right, that everything is a 14 bit nrpn.
The documentation mentioning 0-65535 is weird, given the max that can be sent is 16383. Using that as a max on everything does allow a bpm sweep from 10-300.
I think I need a custom formatter function to translate that in the E1 UI, but I’m happy I’ve been able to get this far without writing any code at all.

solid progress tonight. It now makes differences to sounds when I adjust knobs which is really satisfying.

wip template at Electra One App

What’s missing:

  • The “pull current values from synth” as mentioned in first post
  • Likewise, hitting randomize on the synth doesn’t update the E1
  • Need to fill out the lua for send_nrpn, then the buttons on the 3rd page should work.
    (Why they decided to use separate nrpns for enable/disable instead of just 1, with a boolean value I don’t understand at all). If there’s code I can steal from another template to do that, I’d rather not reinvent the wheel.

Feedback welcomed, as mentioned above, before this week I hadn’t touched nrpn’s, lua or the E1 editor at all, so I’m stumbling my way through this.