XOR Userforum

Full Version: Mapping Discussion
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10
Posting with a follow up - I solved one problem but still have an issue.

My issue with notes being recorded from the CV inputs being off was caused by another module (mute switches) in the pitch CV signal chain dropping the voltage.  So that's solved: the calibration on both the NerdSeq and the metropolix is excellent.  Now if I pass pitch and gates using the input assign in the setup menu, everything tracks perfectly.  

When I try to do this with mapping though:

CV  IN 3 ---- > CV  PTCH  CV 4
CV  IN 4 ---- > TRIG GATE TR 4

The pitch doesn't track properly and ends up out of tune.  I'm guessing it's because the CV is being read 1000x per second or whatever the interval is and continuously updated as opposed to just being redirected straight to the outputs?  The original sequence is still there, just out of tune and sounding kind of alias-y or chorus-y.

Am I doing something wrong or is this just a limitation for now?  I've solved the problem eternally with passive mechanical switches but it would be even better to have it all managed internally (and be addressable in patterns for performance).
(10-15-2024, 01:22 PM)rubberband Wrote: [ -> ]Posting with a follow up - I solved one problem but still have an issue.

My issue with notes being recorded from the CV inputs being off was caused by another module (mute switches) in the pitch CV signal chain dropping the voltage.  So that's solved: the calibration on both the NerdSeq and the metropolix is excellent.  Now if I pass pitch and gates using the input assign in the setup menu, everything tracks perfectly.  

When I try to do this with mapping though:

CV  IN 3 ---- > CV  PTCH  CV 4
CV  IN 4 ---- > TRIG GATE TR 4

The pitch doesn't track properly and ends up out of tune.  I'm guessing it's because the CV is being read 1000x per second or whatever the interval is and continuously updated as opposed to just being redirected straight to the outputs?  The original sequence is still there, just out of tune and sounding kind of alias-y or chorus-y.

Am I doing something wrong or is this just a limitation for now?  I've solved the problem eternally with passive mechanical switches but it would be even better to have it all managed internally (and be addressable in patterns for performance).

Most probably you got the live inputs also routed to the outputs? These will concurrent with each other one locking to the note and one passing the pitch continously.  With passing there is always sampling involved. And if the pitch is slightly different than the actual note then one will compensate it and one not.
Try to use only on of these. In the upcoming version you can turn on/off the live input through the mappings so only on part is needed.
Thanks! I tried it again with the inputs not passing to anything and it was still out of tune (but no more chorus or weird sounds)

I’ll wait for the new version, it’ll be fine. For now I’m just using an XMAP command to set a precise voltage on a couple of CV16 ports to open a pair of dual VCAs to exactly the right level. Might need occasional recalibration but seems to be doing the job right now!
(10-15-2024, 06:47 PM)rubberband Wrote: [ -> ]Thanks!  I tried it again with the inputs not passing to anything and it was still out of tune (but no more chorus or weird sounds)

I’ll wait for the new version, it’ll be fine.  For now I’m just using an XMAP command to set a precise voltage  on a couple of CV16 ports to open a pair of dual VCAs to exactly the right level.  Might need occasional recalibration but seems to be doing the job right now!

You got to lock it to notes and not send out pitches. 
Change the cv input to notes using the p2note calc command. Depending on your input you might also have to add some digits. But the destination uses then note values (change that, too) and it‘ll lock to notes.
(10-15-2024, 07:42 PM)XORadmin Wrote: [ -> ]
(10-15-2024, 06:47 PM)rubberband Wrote: [ -> ]Thanks!  I tried it again with the inputs not passing to anything and it was still out of tune (but no more chorus or weird sounds)

I’ll wait for the new version, it’ll be fine.  For now I’m just using an XMAP command to set a precise voltage  on a couple of CV16 ports to open a pair of dual VCAs to exactly the right level.  Might need occasional recalibration but seems to be doing the job right now!

You got to lock it to notes and not send out pitches. 
Change the cv input to notes using the p2note calc command. Depending on your input you might also have to add some digits. But the destination uses then note values (change that, too) and it‘ll lock to notes.

Gave it a shot, still not quite right.  My external VCA solution is working for now (and I'm pretty sure it's me that's doing something wrong) so I'm not going to mess with it any more (or use more of your time!) until next week's performance is done.

For reference I tried:
CV  IN 3 ---- > SETV V  G SRC
CALC P2NT VG00 > CV NOTE CV4

It works, but is still slightly out of tune - ~262Hz for middle C if I pass everything through using the input assignment, and ~252Hz if I use the XMAP way.

Also, I've posted this before but want to post again:  The NerdSeq rocks, and the support for it is best in class.  Please keep doing what you're doing, it's awesome.
Noticed that when using a Mapping Value to set CV Glide or MOD Glide the value range is transformed to 0x00 - 0xFF instead of 0x000 - 0xFFF. So its not possible to make use of the full range from the mapping screen.
(12-03-2024, 12:08 PM)sync_mutex Wrote: [ -> ]Noticed that when using a Mapping Value to set CV Glide or MOD Glide the value range is transformed to 0x00 - 0xFF instead of 0x000 - 0xFFF. So its not possible to make use of the full range from the mapping screen.

Oh yes I see. Will be fixed in the upcoming version. THX
Is there any way to have trigs on the Trigger 16 expander trigger events in the mapping?

I'm thinking of ways that, for example, programming trigger 2 through 5 would also always fire trigger 1.
What's the correct method for using the mapping screen to send MIDI note information from a track?

I'm sending the notes from a Modular track to the Mapping Screen, and from there sending those notes to MIDI. (I have creative reasons why I'm doing this, feel free to ask if you're interested).

I'm having two challenges:
1. I can't get MIDI note on/off message to reliably match the gate length programmed in a track
2. Additional notes created in a Table on a track aren't sent to the mapping screen

For gate length, if I have:

Code:
TRCK TRK1 NOT1 > MIDI TC01 NOTE

... a new note on Track 1 will send a MIDI Note On followed immediately by a Note Off command. 

What I would like is to send the Note Off command only after the note is finished (either [ ] in the Pattern or when the gate goes low). I've tried a few different ways. This gets me the closest:

Code:
TRCK TRK1 NOT1 > MIDI TC01 NTON
TRIG TR 1
CALC IF = 01=0
CALC PASS 0200 > MIDI TC01 NTOF

This method does send the correct gate lengths, but it's fairly glitchy. Notes will often have a double trigger at the start, and sometimes gates will get inverted or missed. This mapping works best if the Pattern is programmed with gate/trig on/off commands. Using the "Auto Gate On Note" setting is very glitchy, with many gates missed or inverted.

And for sending Table notes, I haven't yet found a way to access them in the mapping screen. Can someone give me a tip on how to do that?
(03-09-2025, 08:25 PM)trevormeier Wrote: [ -> ]What's the correct method for using the mapping screen to send MIDI note information from a track?

I'm sending the notes from a Modular track to the Mapping Screen, and from there sending those notes to MIDI. (I have creative reasons why I'm doing this, feel free to ask if you're interested).

I'm having two challenges:
1. I can't get MIDI note on/off message to reliably match the gate length programmed in a track
2. Additional notes created in a Table on a track aren't sent to the mapping screen

For gate length, if I have:

Code:
TRCK TRK1 NOT1 > MIDI TC01 NOTE

... a new note on Track 1 will send a MIDI Note On followed immediately by a Note Off command. 

What I would like is to send the Note Off command only after the note is finished (either [ ] in the Pattern or when the gate goes low). I've tried a few different ways. This gets me the closest:

Code:
TRCK TRK1 NOT1 > MIDI TC01 NTON
TRIG TR 1
CALC IF = 01=0
CALC PASS 0200 > MIDI TC01 NTOF

This method does send the correct gate lengths, but it's fairly glitchy. Notes will often have a double trigger at the start, and sometimes gates will get inverted or missed. This mapping works best if the Pattern is programmed with gate/trig on/off commands. Using the "Auto Gate On Note" setting is very glitchy, with many gates missed or inverted.
Rely on the auto-gate is not working properly for sure except maybe if you set the autogate very long which will also delay the whole thing. The auto-gate can be shorter than the mapping execution times and so those could be possibly missed.
I would probably detect on 2 situations:
Gate status changed and Note value changed. (and maybe combinations of these)
A note change needs always a note off and a note on since there is no such thing in midi as note change. So sending just another note on will not work here.
The old status of the Gate and the note must be saved in variables so you are able to compare the current situation with the possible new situation.

For the Gate:
- check if the old gate status is different than the new gate status, else skip the part
- if it changed, then check for how it changed and depending on that execute 2 different blocks which are preset after a XXMP (XMAP variant) and there you either have one block which just sends the new note on or the other block sends a note off with the old note
In both situations update the variable for the 'old' gate and the 'old' note so the new check can happen

For the note changes:
- check if the note changed
- if so, check the gate status. If it is off then you probably don't have to do anything since the off happened already before. If it is on (and was on) then execute also another XXMP part which first sends a note off of the old note and then a note on for the new note. Update the 'old' note and gate status. If the gate is on adn was off then only a note on need to be send. Update the old note and gate status as well.

They are possible pitfalls involved and so it is surely needed in the mapping rows before all those checks that the current gate and notes are being saved in additional variables which you check against. Else it can be possible that a gate/note check on one mapping row will get you a different result on different mapping rows if the status changed between the mapping row execution.

This is all theory but I guess that this should generally work. Since it is Midi there is more work involved than just passing a new note.

Quote:And for sending Table notes, I haven't yet found a way to access them in the mapping screen. Can someone give me a tip on how to do that?

The track notes are currently only based on the pattern sequencing and not on the external stuff. It might be good or not to include the table manipulations as well but I got to investigate that and possible side effects. There are possible tricks like executing different XMAP from the table (like set a variable which is added to the TRCK TRK1 NOT1 then for example) to get the notevalues + table transpose.
Pages: 1 2 3 4 5 6 7 8 9 10