you can edit the deeper params in the PARAMETERS menu
enjoyed a quick run with the engine, sounds great! curious to come up with more UI ideas for config
you can edit the deeper params in the PARAMETERS menu
enjoyed a quick run with the engine, sounds great! curious to come up with more UI ideas for config
yeah spotted that
does sound wonderful - just basically sitting playing it at the moment ā¦
I wanna make a preset system next, which would make it easy to add the 32 āofficialā algorithms from the DX7. A second page for the UI that shows the graphics could be a cool addition.
youāre in luck! a āpresetā system is built-in to the parameter system.
hold KEY1 when in the param menu. you can save/load pset files. theyāre human-readable, so you could potentially make a quick text-scrub script to convert the factory presets
Apologies for the newbie question, how would i install this FM7 engine into norns?
oh my, that seems almost too easy.
I think operator envelopes would be a good next thing along with presets.
Depends if you want to get your hands dirty with Linux stuff. If you do, you can track the master branch on the device.
ssh we@norns.local
password sleep
mv ~/dust ~/dust.bak
git clone https://github.com/monome/dust.git
sudo halt
followed by long press to turn onIf you arenāt comfortable doing this, you can wait for an update to the device and use the built-in update system.
this has the drawback of removing any custom work youāve done through the Maiden IDE. You will have to move those files back by hand. I donāt really know a way around this until the OS on the device is updated to not save artifacts like audio recordings and presets to the folder tracked by git.
ya - and if you want āclassicā dx7ish behavior then you want a pitch envelope which can be arbitrarily applied to each osc.
Oops, looks like I labeled the phase mod params backwards. Currently the param that says āOsc1 Phase Mod Osc6ā actually sends oscillator 6 to modulate oscillator 1.
Thereās some cruft in there from my repo getting out of sync with masterā¦Iāll help get this in order if someone can review the diff.
Thanks - need to get a little more comfortable first - still getting used to code structure, lua in general
The preset thing was quite simple after I fixed the backwards mod parameter matrix. Pull from master to make the mod params actually do what the labels say. I saved all 32 DX7 algorithms into my local presets.
Iām going to experiment with a different UI that has 32 pages, each with the drawing of the algorithm, its number and on the backend recalls the preset.
I have 10 more days until I start the new day job (getting back on the old block and chain) so Iād like to make the most of them. Whatdāya think, is this a good idea? Iām typically bad at UI design so critique welcome.
This sounds awesome. Love the algorithm diagram idea
Def useful. I was gonna make a Pages class myself, lol.
The Graph class isnāt exactly what I want. Reading through the implementation it seems only one point can connect to one and only one other point, drawing a line. The DX7 stuff has feedback and one-to-many point connections. Imma hack that myself for now.
update Whelp, that Pages class is quite easy to use. All 32 algorithms selectable with an encoder + defaults + wrap. UI isnāt done. Iām going ātake a weekendā.
Happy Monday!
Update from FM landā¦
Over the weekend I have a hacked DX7 algorithm UI that loads presets. Itās not done but thatās just because I didnāt put in the time to fully learn the drawing primitives. There are some missing connections for things like operator feedback.
This afternoon I added operator envelopes to the Engine.
Then something weird happened. Iām loading the presets as described in this branch, which I saved after manually setting the parameters and using the on-screen preset saving system.
In a different branch (not pushed because itās broken) I added 30 more parameters, for the ADSR of all 6 operator envelopes. My previous presets are now broken. From the way it sounds, it seems like thereās some kind of offset that is stored and after adding 30 more params, a bunch of the values got moved to different keys. The only preset file that changed on disk after I added the params is data/lazzarello/fm7.pmap. This appears to have offset the params in some weird way, which shows on the screen.
Some of the params that had very obvious audible changes no longer seem to effect anything. Rebootingā¦
update reboot had no change. I think I encountered a known bug. Itās more severe than I expected. Adding new params disables previously existing params at what seems like a random index. For example, all params for operator 2 do nothing after I added envelope stuff.
pmap
files are only midi mapping data, not param data. they should not any influence on the sound.
pset
files are what you should be looking at, they have a format like:
"shape": 0.5
"timbre": 0.05
"noise": 0
when you use the PARAMETERS menu to save pset
files (parameter set) hold KEY1 and then SAVE after rotating ENC3 for which number. a new pset
file will be generated script-00.pset
where script
is the name of your script and 00
is the selected number.
these are readable text, so you should check the values by hand. you can even use a text editor/etc to mass import pset information if you prefer.
edit: all of those -1 in your pmap
file mean āunassignedā
edit again: you may need to params:bang()
after loading. this works in playfair
: https://github.com/monome/dust/blob/master/scripts/tehn/playfair.lua#L186
(though, the menu param doesnāt do this, must investigate further)
I have an idea for a multitap delay Iād like to make on norns with grid control, and was wondering if anyone could tell me where/if I can find a list of existing engines. I guess my main question is whether Iām better off just taking my time and making an engine myself in sc or whether thereās something out there already that I could use instead, like softcut, or something else intended more as a delay engine than a looper engine. I hope this is the right thread to post in⦠it says questions about engines should go here in the opening post, but feel free to move it if not.
Iāll do another debugging run on the SynthDef. I didnāt think adding an envelope would disable some operators but I can make some guesses as to why that might happen.
update this appears to have been my problem in the SC code. Turns out multiplying at the wrong stage muted all modulators with an envelope. Iāll be exposing the params to Matron tomorrow.
That was more difficult than I expected but I pushed a branch that has operator envelopes and some DX7 presets (with a UI that is unfinished).
@zebra I could use your ( or anyone else with SC intuition) help. Iām not comfortable making a pull request for the engine changes yet because Iām doing voice freeing in a copy + paste fashion from the DX7-Supercollider code. It looks like so
https://github.com/lazzarello/dust/blob/op-envs/lib/sc/Engine_FM7.sc#L47
the envelopes do not free the node, further down the FreeSelfWhenDone and DetectSilence classes have a doneAction:2
which seems to work as I would expect.
DetectSilence seems fine here.
regarding your comments about the param defaults and DRY, itās the typical result of a stupid process:
so yea, could be tidier. on the other hand it works fine and keeping the synthdef args makes it easier to reuse in other contexts.