Thread Rating:
  • 2 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Firmware V1.28 Test Version
#31
(08-06-2023, 10:41 AM)mgd Wrote: Here's a list of caveats and things to remember/building blocks when dealing with the mapping screen [@Thomas: pls correct anything I got wrong]

0) First and foremost the whole mapping screen (all 45 lines!) is executed/processed 100 or more times for each row in one of your patterns. E.g. when your song runs at 120 BPM (2 beats per second) the mapping screen is processed 125x for each row in any of your patterns.
This is great for reacting to external controls (e.g. faders connected via I2C) but requires extra means when you wish to do stuff in relation to the musical events in your pattern.

1) Synchronize processing of (some) mapping screen functionality with your sequence
This is achieved via the function XMAP <some mapping row> that you can place in the function part of a sequencer row. It will process exactly this one row of the mapping and nothing else [outside of the normal mapping processing].

The content of <some mapping row> is then processed and completely in sync with your sequence. Fine.
Now we need to make sure this line is excluded from normal mapping processing (remember, 125x per row, see above).

This is done by placing something like
Code:
SKIP 1  = VAVA
directly in front of row <some mapping row> (the one we process via XMAP <some mapping row> from our pattern).
The SKIP cmd conditionally skips 1 (or more - up to 8) following rows from processing. By choosing a condition that is always TRUE (like VA == VA - whatever the value of VA it will always be identical to itself) we can assure that this row is executed only when the pattern says so via XMAP.

2) The above works great for things that can be done in a single mapping row. However sometimes we may wish for more complicated processing. For this we can expand the trick we applied above:
Code:
SKIP 1  = VAVA
CALC INC  VAVA > SETV V  A
SKIP <n> = VAVB
<n> rows of mapping processing
...
The trick is that during normal processing the line
Code:
SKIP <n> = VAVB
will be TRUE (provided we made sure VA and VB started out the same) and the following <n> rows will normally not be processed. Only when we process
Code:
CALC INC  VAVA > SETV V  A
from our pattern (by means of XMAP <row # of that row>) it will be activated. To make sure it will be processed just once we have to reset the condition by something like
Code:
VAR  #  A #000 > SETV V  B

<n> can be up to 8 rows. If we need particularly complex processing we can repeat the above pattern like
Code:
SKIP <n> = VAVB
<n> rows of mapping processing
SKIP <n> = VAVB
another <n> rows of mapping processing
SKIP <n> = VAVB
yet another <n-1> rows of mapping processing
VAR  #  A #000 > SETV V  B
Be aware to put the last line (aka resetting the condition) into the last block of rows to process!

Kind regards,
Michael

PS: I will expand this as I come across other things I find useful as building blocks Smile

@Thomas
Wishes for extensions to the mapping processing:
1) SKIP cmd
It would be handy if the SKIP command would get at least a constant value of 0 as an additional second value, e.g. like:
SKIP 7  = VA#0
Comparing against 0 is so common that it seems a waste to always have a variable fixed to that value. It's probably possible to trick some row value (that implicitly is always 0), but that would create a debugging nightmare if for whatever reason that will change.

2) VAR cmd
Fast scrolling UP through the values works just fine. DOWN seems to stop when the first digit is 0 and from then on one needs to use slow scrolling to e.g. reach #000. Please ammend Smile

3) Copy and paste in mapping screen
I'm sure it is on your TODO list but I thought I'd mention it anyway Wink
When editing/developing more complicated processing I often need to insert rows. I'm not aware of a way to achieve that (other than to re-enter all the lines below).

A short reply here:

- It is 70 rows (or 45 hex rows).
- Each row is executed 1000 times per second!
- beside the XMAP they are also other possibilities to synchronize your algorithm with the project/bpm/automator and any source.
1) SKIP cmd ->  I think adding 0 and 1 as constants is a good idea
2) VAR cmd -> Yes editing surely needs some more attention
3) Is in there already. SHIFT+MARK copies a line into the cliboard, SHIFT+COPY does insert it somehwere else. SHIFT+DELETE clears a line, SHIFT+UP+DELETE deletes a line and shifts the stuff below up, SHIFT+DOWN+DELETE Inserts an empty line and shifts the rest down.
I know this is not perfect yet, but it will at least speed up everything for now. Marking and copying like in the sequencer and pattern screen will follow up.

So anyone else created some cool things with the mapping already? And did someone try the bouncing ball of mgd?
PLEASE use the search function if something have been asked or discussed before.
Every (unnessesary) forum support means less time to develop! But of course, i am here to help!  Smile
Reply
#32
I'm just chiming in to say I'm looking forward to the full release!
Reply
#33
Had some confusing fun, mapping things from one shape to another, combining automater outputs in funky ways and generally getting a bit lost in some abbreviations etc.

Not had long enough (or skilled enough) to make anything cool though.
Reply
#34
I tried the bouncing ball of MGD aka Michael but i can't get it to work - maybe something this end. Michael can you up load a project file please.

Thomas, will midi CC mapping also output to MOD outputs in final release?
Reply
#35
Hi Barney,

the initial version as of my post above simply created triggers with increasing density over time. To hear them you'd need something like a percussion module or Pluck or Rings. You could also send a drone into a LPG and open the LPG with the trigger.

I used a filter that I pinged because that creates a nice BOING sound Smile

Meanwhile I've extended my original code a bit. CV1 emits a note voltage (switch to the right for 0-10V). Trigger1 emits the trigger as of the initial code (though a few minor glitches have been removed...)

I use it again with my VCF that I ping (aka resonance fairly high). CV1 into V/Oct (or Freq) and Trigger into In/Audio (whatever the panel says).

You could as well send CV1 into a VCO's V/Oct and the VCO Output into a LPG or VCA and the Trigger into said LPG/VCA

HTH,
Michael


Attached Files
.nrd   BOUNCBAL.NRD (Size: 438,5 KB / Downloads: 7)
Reply
#36
(08-08-2023, 05:39 PM)Barney Rubble Wrote: I tried the bouncing ball of MGD aka Michael but i can't get it to work - maybe something this end. Michael can you up load a project file please.

Thomas, will midi CC mapping also output to MOD outputs in final release?

It does already with this version?!
PLEASE use the search function if something have been asked or discussed before.
Every (unnessesary) forum support means less time to develop! But of course, i am here to help!  Smile
Reply
#37
I can confirm that Smile
I get to choose from all outputs of all NSA that I have defined in track setup (on top of CV1-6, Trig1-6, MOD1-6)
Reply
#38
Thank you Michael & Thomas - will try this AM and report back.

Too clarify I'm using new Mapping matrix to input keyboard cc through nerdseq to mod outputs and I'm sure it was not there as an option when i last tried but I may be wrong. CV good and triggers good but Mod hmmm - will test again.

Thanks once again both
Thomas aren't you supposed to be on holiday!! - Nerdseq is cool even when you are not here :-)
Reply
#39
Michael
Bouncing ball project (bouncbal.nrd) works great here as expected - I'll try to find why I could not get the code you wrote out earlier in this thread to work.

Thomas
I get why I was not seeing Midi to Mod outputs in the mapping screen. Brain stuck in a loop. Confused
In the 1st output column I had expected CV and TRIG option to be followed by MOD and I could not stop myself from being a looper. 
Anyways all good now Idea
Midi access to MOD outputs is via  CV > PTCH - MOD#

Code:
00 ---- ---- ---- > ---- ---- ----
01 MCC  CH 6 #--1 > CV-- PTCH MOD2
00 ---- ---- ---- > ---- ---- ----
02 MCC  CH 6 #--1 > TRIG TR 1 TRIG

cheers
b
Reply
#40
Video of the bouncing ball or it didn’t happen!
PLEASE use the search function if something have been asked or discussed before.
Every (unnessesary) forum support means less time to develop! But of course, i am here to help!  Smile
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)