Posts: 47
Threads: 10
Joined: Jan 2020
Reputation:
0
02-08-2020, 03:31 PM
(This post was last modified: 02-09-2020, 01:43 PM by josker.)
Hi!
I have a project file that seems to feature broken 'ON CHANGE' settings.
Point 1: I first setup a 3F long pattern with a pattern change on 3A (Elektron devices take a few steps to register the program change).
Everything was working fine.
Then I added a program change on step 1A (The idea here was that if I wanted to change patterns already after step 1F, that would be possible).
From here on, the 'ON CHANGE' setting got overridden, somehow.
Now I don't even have the pattern change on step 1A, but it still gets sent on step 3A, regardless of the 'ON CHANGE' setting.
Point 2: I don't know if this is a bug as such, but the program changes get sent even if I just stopped the pattern from playing. I kind of see the thinking behind this, but it creates some problems – Let's say I have a breakdown with patterns on tracks 05 and 06 – the minute I stop track 05 containing the program change, the program change gets sent and drums start blasting from my Elektron.
These make using the sequencer with other devices difficult, as everything is thrown out of sync, so I thought I'd report these. Thanks!
Posts: 4.133
Threads: 138
Joined: Jul 2017
Reputation:
247
I assume you are talking about midi sequencing and here about the program change column?
So for point 1: You talk about a program change command initiated from the NerdSEQ i guess which does a pattern change on the elektron devices, right? (I don't know what elektron devices do on pattern change commands.)
If that is the case, what value do you fill in step 1A and what value do you fill in 3A in the Program Change Column? Are they the same or different? How does your sequence look like?
P2: Doesn't make sense to me. A pattern that is not playing doesn't send any program change messages. A program change message is only sequenced/send if the sequencer passes this playing pattern with the filled in Program Change column. And then also only either always when the 'On Change' function is off, or only if the program number was different than the one before (if On Change is ON).
Maybe you can add a project file with the reproducable issue and exact explanation on what you do and what you expect.
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!
Posts: 47
Threads: 10
Joined: Jan 2020
Reputation:
0
02-08-2020, 09:52 PM
(This post was last modified: 02-08-2020, 09:54 PM by josker.
Edit Reason: added heart emoji
)
(02-08-2020, 09:18 PM)XORadmin Wrote: I assume you are talking about midi sequencing and here about the program change column?
So for point 1: You talk about a program change command initiated from the NerdSEQ i guess which does a pattern change on the elektron devices, right? (I don't know what elektron devices do on pattern change commands.)
If that is the case, what value do you fill in step 1A and what value do you fill in 3A in the Program Change Column? Are they the same or different? How does your sequence look like?
P2: Doesn't make sense to me. A pattern that is not playing doesn't send any program change messages. A program change message is only sequenced/send if the sequencer passes this playing pattern with the filled in Program Change column. And then also only either always when the 'On Change' function is off, or only if the program number was different than the one before (if On Change is ON).
Maybe you can add a project file with the reproducable issue and exact explanation on what you do and what you expect.
Hi!
Yes, sorry, I was unclear:
I'm talking about MIDI sequencing, and about the program change column.
I have a program change on a MIDI track of the NerdSeq, going to Analog Four. The first set of patterns contains a program change '01' (on track 5), which tells the Analog Four to change to pattern A02.
On the third row of patterns, NerdSeq's track 5 contains a program change column message '00', which tells the Analog Four to change to pattern A01.
On this video, you can see how starting pattern set one on the NerdSeq actually makes the Analog Four receive a pattern change on the first pass, even if I haven't initiated a pattern change on the NerdSeq. I have the 'ON CHANGE' setting enabled. And vice versa, on NerdSeq's pattern row three you can see how it's switching Analog Four back to pattern A01 even if I haven't initiated a pattern change on the NerdSeq.
https://youtu.be/FEqMADLRfT4
Concerning P2: For me, merely stopping track 5, row 1 on the NerdSeq (simple press of the stop button) was enough for the NerdSeq to send a program change to the Analog Four.
I'm also attaching the project file:
https://www.dropbox.com/s/uldgziu3uo4w3e...D.NRD?dl=0
If there's anything unclear, I'll be happy to clarify my fragmented thoughts further.
Final note: I'm aware I'm being very active on the forum right now. The NerdSeq is very new to me, and I see immense potential in it. At the same time I realize how reporting many things in a short period of time might be uncalled for. Projects have backlogs and priorities. I hope, however, that I don't come off as needy or pushy – I'm not trying to unduly influence development, I'm only trying to in a small way contribute to taking an already absolutely fantastic sequencer further. <3
Posts: 4.133
Threads: 138
Joined: Jul 2017
Reputation:
247
Oh no worry! I want things to work well for you and all the other users.
I just can’t follow every situation all the time. Thats why i try to get as much info as possible to understand easily and fast whats going on.
I will take a look into it tomorrow and get back asap.
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!
Posts: 47
Threads: 10
Joined: Jan 2020
Reputation:
0
02-08-2020, 10:16 PM
(This post was last modified: 02-08-2020, 10:16 PM by josker.)
That's the only sensible way to troubleshoot things like these. Hear from you later – thanks!
Posts: 4.133
Threads: 138
Joined: Jul 2017
Reputation:
247
Seeing your video together with what is in the patterns matches. I don't see an issue here. It looks like it does in the video exactly what it should do.
Also testing the sent program changes together with your sequences it always behaved as it should. Only program changes are sent if the pattern passes the pattern row and if it wasn't the same program before on the midi channel. (And it sent them exactly on position 3A in the row as intended)
A stop of the pattern (pressing stop once) never sent an extra program change, only if the pattern played until the end and also here passed the program change command on 3A with a different value. (with your settings, 'On change' turned on)
Let me explain how program change works and why i added the feature to either send it always or just 'on change':
Program changes in Midi are usually to change the instrument of a midi device, eg. Change from a Piano sound which is on Program #0 to a String sound which might be program #4. So the moment the sequencer passes the row with the program change command #4 it will change the instrument to a String.
The NerdSEQ never sends any Program Change messages except for the ones that are filled in the patterns and only if it passes them.
Then they are many Midi devices which need some time until the instrument changes to another instrument. Sometimes half a second to a second. Even new synthesizers sometimes have that. And these also have this 1 second timeout if you change from Program #4 to Program #4 which would happen if you play a pattern twice. A timeout of 1 second when receiving the program change message. For that reason i added the feature of either send the program change always or on change. So with 'On Change' it sends the program change ony if the last program change command for the same midi channel was a different 'instrument' than before. With that the timeout is avoided except for the very first time. For the rest it is of course 'smart' programming of your sequences to take care the program changes are being sent when wanted.
If the elektron device uses the program change command to change patterns thats fine. And of course that have to happen before the current pattern is ready (same with nerdseq, you choose the next playing pattern before it is finished and it also finishes first before the new one is going to play). I don't know if it queues the pattern change, if it keeps the queue also when the sequencer is stopped. Maybe that could explain that you think the pattern on the Elektron has been changed even if you pressed stop, but in fact, it sent the change on 3A and the elektron took that command and changed the pattern after it was finished. I wouldn't use it with the 'On Change' feature as then you wouldn't be able to control to play a pattern on the elektron twice or more (if it changes by itself automatically to next patterns).
So i assume that the function works as it should. I don't see a bug at all here.
But of course if you got more info to show me that i'm wrong, let me know!!
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!
Posts: 47
Threads: 10
Joined: Jan 2020
Reputation:
0
(02-09-2020, 12:15 PM)XORadmin Wrote: Seeing your video together with what is in the patterns matches. I don't see an issue here. It looks like it does in the video exactly what it should do.
Also testing the sent program changes together with your sequences it always behaved as it should. Only program changes are sent if the pattern passes the pattern row and if it wasn't the same program before on the midi channel. (And it sent them exactly on position 3A in the row as intended)
A stop of the pattern (pressing stop once) never sent an extra program change, only if the pattern played until the end and also here passed the program change command on 3A with a different value. (with your settings, 'On change' turned on)
Let me explain how program change works and why i added the feature to either send it always or just 'on change':
Program changes in Midi are usually to change the instrument of a midi device, eg. Change from a Piano sound which is on Program #0 to a String sound which might be program #4. So the moment the sequencer passes the row with the program change command #4 it will change the instrument to a String.
The NerdSEQ never sends any Program Change messages except for the ones that are filled in the patterns and only if it passes them.
Then they are many Midi devices which need some time until the instrument changes to another instrument. Sometimes half a second to a second. Even new synthesizers sometimes have that. And these also have this 1 second timeout if you change from Program #4 to Program #4 which would happen if you play a pattern twice. A timeout of 1 second when receiving the program change message. For that reason i added the feature of either send the program change always or on change. So with 'On Change' it sends the program change ony if the last program change command for the same midi channel was a different 'instrument' than before. With that the timeout is avoided except for the very first time. For the rest it is of course 'smart' programming of your sequences to take care the program changes are being sent when wanted.
If the elektron device uses the program change command to change patterns thats fine. And of course that have to happen before the current pattern is ready (same with nerdseq, you choose the next playing pattern before it is finished and it also finishes first before the new one is going to play). I don't know if it queues the pattern change, if it keeps the queue also when the sequencer is stopped. Maybe that could explain that you think the pattern on the Elektron has been changed even if you pressed stop, but in fact, it sent the change on 3A and the elektron took that command and changed the pattern after it was finished. I wouldn't use it with the 'On Change' feature as then you wouldn't be able to control to play a pattern on the elektron twice or more (if it changes by itself automatically to next patterns).
So i assume that the function works as it should. I don't see a bug at all here.
But of course if you got more info to show me that i'm wrong, let me know!!
Okay, this clarifies it.
My previous sequencer had an option for 'pre-sending' the program change messages – if you toggled a pattern change, it would send all program changes a few steps before the actual pattern change, to make sure that all devices using them to change patterns would be able to follow along.
The ON CHANGE functionality seemed very similar from the description: ' If the ‘On Change’ setting in the Midi track setup is enabled, then it will only be send on change.'
Now I will need to reconsider – I would need some way to 'turn off' the program change until I really intend to send it. Or have the NerdSeq respond to some form of pattern change messages, preferably program changes... But that's outside the scope of this, of course. Apologies for the misunderstanding, thanks for patiently explaining the feature to me!
Posts: 4.133
Threads: 138
Joined: Jul 2017
Reputation:
247
(02-09-2020, 01:31 PM)josker Wrote: (02-09-2020, 12:15 PM)XORadmin Wrote: Seeing your video together with what is in the patterns matches. I don't see an issue here. It looks like it does in the video exactly what it should do.
Also testing the sent program changes together with your sequences it always behaved as it should. Only program changes are sent if the pattern passes the pattern row and if it wasn't the same program before on the midi channel. (And it sent them exactly on position 3A in the row as intended)
A stop of the pattern (pressing stop once) never sent an extra program change, only if the pattern played until the end and also here passed the program change command on 3A with a different value. (with your settings, 'On change' turned on)
Let me explain how program change works and why i added the feature to either send it always or just 'on change':
Program changes in Midi are usually to change the instrument of a midi device, eg. Change from a Piano sound which is on Program #0 to a String sound which might be program #4. So the moment the sequencer passes the row with the program change command #4 it will change the instrument to a String.
The NerdSEQ never sends any Program Change messages except for the ones that are filled in the patterns and only if it passes them.
Then they are many Midi devices which need some time until the instrument changes to another instrument. Sometimes half a second to a second. Even new synthesizers sometimes have that. And these also have this 1 second timeout if you change from Program #4 to Program #4 which would happen if you play a pattern twice. A timeout of 1 second when receiving the program change message. For that reason i added the feature of either send the program change always or on change. So with 'On Change' it sends the program change ony if the last program change command for the same midi channel was a different 'instrument' than before. With that the timeout is avoided except for the very first time. For the rest it is of course 'smart' programming of your sequences to take care the program changes are being sent when wanted.
If the elektron device uses the program change command to change patterns thats fine. And of course that have to happen before the current pattern is ready (same with nerdseq, you choose the next playing pattern before it is finished and it also finishes first before the new one is going to play). I don't know if it queues the pattern change, if it keeps the queue also when the sequencer is stopped. Maybe that could explain that you think the pattern on the Elektron has been changed even if you pressed stop, but in fact, it sent the change on 3A and the elektron took that command and changed the pattern after it was finished. I wouldn't use it with the 'On Change' feature as then you wouldn't be able to control to play a pattern on the elektron twice or more (if it changes by itself automatically to next patterns).
So i assume that the function works as it should. I don't see a bug at all here.
But of course if you got more info to show me that i'm wrong, let me know!!
Okay, this clarifies it.
My previous sequencer had an option for 'pre-sending' the program change messages – if you toggled a pattern change, it would send all program changes a few steps before the actual pattern change, to make sure that all devices using them to change patterns would be able to follow along.
The ON CHANGE functionality seemed very similar from the description: ' If the ‘On Change’ setting in the Midi track setup is enabled, then it will only be send on change.'
Now I will need to reconsider – I would need some way to 'turn off' the program change until I really intend to send it. Or have the NerdSeq respond to some form of pattern change messages, preferably program changes... But that's outside the scope of this, of course. Apologies for the misunderstanding, thanks for patiently explaining the feature to me!
I am surprised that the Elektron Stuff needs some steps before to react on Program Change messages. I would expect all sequencing gear to allow these until the last step before the new pattern.
Anyway, which sequencer are you refering to? I guess this is the same function as putting the program change message in the pattern on 3A or where would be the difference here?
Turn off the 'On change' function first as it doesn't make sense in your case.
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!
Posts: 47
Threads: 10
Joined: Jan 2020
Reputation:
0
02-09-2020, 05:06 PM
(This post was last modified: 02-09-2020, 05:10 PM by josker.)
Yeah, Elektron has this 'feature' where they need 4-5 steps' 'lead time' in order to follow a PGM change properly.
The sequencer in question was the Cirklon.
To explain the Cirklon mode of doing this, say you have this scenario:
Pattern 1 has saved, as a property of a pattern, a program change value of 1
Pattern 2 has saved a program change value of 2
When you're playing pattern 1, at the moment you press the button to go to pattern 2, the Cirklon reads the program change value (2) read in pattern 2, and sends it slightly before pattern 1 ends. This makes it so that the Elektron sequencers have proper 'lead time' to be able to follow the Cirklon to pattern 2.
The only difference between the Cirklon and NerdSeq is this:
When you want to jam on pattern 1 on the NerdSeq for, say, 4 times before moving on to pattern 2, the program change saved on step 3A gets sent right away on the first pass of step 3A of pattern 1, making all the Elektron sequencers jump to pattern 2 prematurely.
When you jam on pattern 1 on the Cirklon, you can play the pattern how many times you wish, because the program change to pattern 2 doesn't get sent before you tell the Cirklon 'OK, moving on to pattern 2'.
The way I THOUGHT 'ON CHANGE' works is similar: If you're playing pattern 1, once you've moved the cursor to pattern 2 and pressed 'Start', the NerdSeq activates the program change lane on pattern 1 – this has the same effect of eliminating premature program change messages as the Cirklon implementation. You mentioned that "For the rest it is of course 'smart' programming of your sequences to take care the program changes are being sent when wanted." With this setting, the onus would be on the user to not delay pattern changing until the very final steps – but this is the exact same case with the Elektrons themselves.
Thanks for taking the time – Elektron devices are very well-liked, and for a reason, but there's this small caveat concerning pattern changes. On the other hand, handling this program change case could be a plus factor for NerdSeq – the only sequencer besides Elektron's own that actually handles this right is the Cirklon – and they're pretty much unobtainable.  And many many people have Elektrons!
Posts: 4.133
Threads: 138
Joined: Jul 2017
Reputation:
247
OK right i understand. Sounds to me like something for the feature requests.
I am not aware actually of anything about the cirklon (except for that it seem to be a cool and wanted device :-) ) and it seems it deals well with especially Elektron sequencing.
Does the Cirklon have 1 pattern then for all tracks or are the patterns also seperated from Tracks?
I would see also one possible problem and that is that currently the NerdSEQ never knows exactly when a pattern is over so it is very hard to determine a a possible lead time for a program change. Also a repeating pattern is theoretically also only a next pattern. So it would need some smart stuff around. I got to say that it wouldn't be a high priority feature for me right now. First because it is mainly a eurorack sequencer with Midi features (and not the other way around) and second because it can be archieved with some tricks at the moment. Since you manually switch to other patterns you could have 2 the same patterns, the 2nd with the Program change command. And with using the jump function you jump to the 'copy' pattern first and choose then the new pattern to play. Because of the jump, the program change is executed and then it jumps to the new pattern after it is finished. (Jump works when the editor is disabled or from the Launchpad).
And you could even add a pattern change command (for NerdSEQ patterns) after the program change to automatically jump to the new pattern, so you don't have to choose 2 patterns but only have to jump to one.
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!
|