Jump to content
Video Files on Forum ×

MIDI performance selection versus using the dial


perldude

Recommended Posts

As some on this forum might be aware, for a while now I have been trying to track down patch selection weirdness.  Mostly with regards to Performances that contain sequences with tones on the sol1 channel.  The weirdness is when I change the performance from my FCB1010 Behringer foot controller, which is the primary way I select my P1 settings.  So I create a Step Seq, a custom solo synth tone and a put it together in a performance.  From my FCB I send  a CC 0 113 then a PC <perf#> to the P1.  The CC 0 113 sets the Performance mode bank select, then it will accept the PC as the performance patch.  Using the foot pedal, when there is no sequence in the performance it is normally not a problem, but I have come to realize that if I switch to another performance (non seq) and back to the performance (with seq) the non seq performance default assigned seq (usually Electro Pop) of the previous selection is played.  Now, if I do the same experiment with the dial the Performance assign Sequence is maintained.  Has anyone else seen this?  One workaround I have tried is to send the CC 0 115 then PC <seq#> prior to the Performance selection MIDI to ensure the correct seq was selected.  That seems to work, but then I got another weird thing happens:  For the 1st loop thru the seq (is "loop"  the way to say it?) it uses what ever was set in channel 14 and after that it changes to sol channel 1 as I had set it. 

So it seems what I though was inconsistency (weirdness) is really a MIDI related Performance from/to Performance modification issue.  Although, when inspecting the altered Performance, the selected selected sequence is as I programmed it and so is the solo1 channel tone selection. 

FYI the P1 is set for slave sync and the MIDI clock it provided by the FCB.

 

I know there is a lot here to unpack. I have done much manual and forum reading.  I have used MidiOx to check what is going to the P1.  This is seemingly a bug.  Perhaps I am taking the P1 to places not many others have been.  I am hoping that I have made some bone-headed mistake.  I apologize ahead of time if my explanation has not been clear enough. 

 

 

Link to comment
Share on other sites

I thought I would share an example of code the FCB sends when I hold a preset button down for a given setting.  In this patch, the XW-p1 produces a sound effect, a descending warble sound, then after 3.5 sec the XP1 accompanies my B4000+  on the MIDI keyboard lower manual with horns. When the preset is released, the XW-p1 is reset set to a null patch. When playing I repeat this 3 times.  The FCB1010 has the Uno2 chip that allows this level of programming.

image.png.9e18aeb056dd339cae5ebbbec20bdd8d.png

Link to comment
Share on other sites

Perldude this is a pretty complicated post unless one knows the Behringer backwards and forwards which I don't but 2 questions.

 

1) What version of the XW-P1 firmware are you on?  I seem to recall some changes were made to how midi works on the XW which upgrading the firmware added. I forget what it was, I'd have to look it up.

 

2) When you are switching around from performance to performance-both with sequences attached and not attached-are you switching from factory to user performances, or are all these user programmed -and saved-performances? This might be why you are seeing 2 different results from 2 different controllers-the Behringer vs. the XW's control dial. A factory performance will always revert to its original settings unless you save it as a user performance although I am not sure this has anything to do with what is happening. Or...the Behringer might be capable of sending sysex that the XW dial is not sending, or the XW can only respond to certain hex strings, will not recognize external messages, but will recognize its internal sysex messages if there is a conflict. I'd have to scrutinize the midi implementation chart to see, otherwise just a blind guess. Hopefully someone else more knowledgeable than me with both the Behringer and the XW can help. 

 

Link to comment
Share on other sites

Hi Jokeyman123,

 

My XW-P1 firmware version is 1.11.  That looks to be the same as the current one available on the Casio website download page.

 

I use exclusively user performance, but those performance will often use factory tones.  You mentioned "with sequences attached and not attached".  How do I "un-attach" a sequence?  If that is possible, it might help.  This is interesting, because it seemed to me there are always some (factory) sequence, phrase and arpeggio assigned in any performance.  While debugging the problem with the midi switching performance and sequence replacement issue, as an experiment, I replaced the "non-seqence" assigned  sequence with a user location that was unassigned and the result was my intended sequence was squashed with a nothing sequence, which proved to me where the replacement sequence came from.

 

I am 98% sure that the midi being sent is in accordance with the midi implementation. Control Changes, Bank selects, Program Change commands are all that are required according to the manual.  For these basic operations there is no mention of associated NRPN, or SysEx (thankfully) messages.   MidiOx confirms the compiled code is producing the correct hex defined in the midi implementation guide.  The requested performances are indeed being selected, but that doesn't mean there is some extra midi massaging that needs to occur to prevent what I am seeing from happening.  If that is so, then the documentation is lacking.

 

Jokeyman123, I appreciate your comments and will (yet once again) pour over the manuals.  At the very least I hope this post helps others, and perhaps I'll receive additional feedback

Link to comment
Share on other sites

A bit of a followup:

The Midi implementation manual provides an NRPN alternative to the bank select control change then the program change commands.  So instead of CtrlChange 0 113 followed by a PerfChange <perf#> you can send the following NRPN commands to do the same thing :

(in Hex)

CtrlChange 62H 0
CtrlChange 63H 24H
CtrlChange 6H <perf#>

CtrlChange 26H 40H

BUT!!! The MIDI PerformNRPN must be set to ON, so every performance command expects it to be in NRPN format like above.

Ok, so I tried it on one Performance with a sequence. It loaded the correct sequence location, with the correct attached sequence but the zone tone was wrong and was changed in the zone settings (with an '!').  So I cycled power on the P1 but the NRPN commands wouldn't load the correct performance location, I couldn't repeat it.  My MIDI monitor monitor verified the programming was correct.

So back to non-NRPN mode for now.  Still a head scratcher.

Edited by perldude
Link to comment
Share on other sites

I'm looking this over again. My wording was not exactly accurate for step sequencers in relation to performances. All you can do with an existing performance if it already has a sequence "attached" or assigned to it, is to turn on the filter that will disable any sequencer settings (page E-62)-you can turn the sequencer on or off, at least that what i thought. I've only created my own custom performances without sequences assigned to them.

 

When I've created a new performance, unless you assign a specific sequence with its number to that performance, there won't be any sequence "attached' to that performance. And if you are changing one of the factory performances to turn off the existing sequence that is assigned to it-it has to be saved as a new user performance using the "write" function. At least that's the way I've understood it.

 

The XW functions can seem pretty convoluted (IMO) but then it can do so much, there had to be a way to cross boundaries with all these functions, and yes, there are probably bugs even in 1.11 OS that almost nobody ever came across-except AlenK. If you haven't gotten to his excellent manuals posted here, i definitely recommend it. He has been far more deeply familiar with the XW than I ever will be.

Edited by Jokeyman123
Link to comment
Share on other sites

Ok,  I think I have learned a few things. 

Using MidiOX I looked at both MIDI commands coming from the FCB to the P1 and the Midi thru out of the P1 and they are identical.  This proves to me that the P1 Midi in is properly receiving the commands and, at least processing them thru its UART. But because the P1 processor lets you decide if the Midi out is from the keyboard or the midi input, I bet the input data is getting into the P1 memory (buffer/que). I'm sure the keyboard midi is buffered on output as well and the P1 processor is just choosing which buffer to send to the midi output.  So the P1 is receiving good data; does it process it fast enough?  That's still unknown.  I tried different  and extreme wait times with random results.

 

The most important thing I found is that it seems if you are moving the dial to figure out a parameter to use, say selecting a sequence applied to a Performance then you go ahead and modify another Performance and write that Performance the previous modified (not intended to be saved) Performance gets written too!  So I will be on the hunt for '!' marks before making additional changes.  I think this is what happened to the chain I programmed for one of my sequences.  But I thought I had every thing worked out; walking thru all the midi selected patches and they were working.  I am also seeing '!' on Performances that are being accessed only by MIDI without doing any mods.  I just cycled power on the P1 when I saw that and started again, accessed a Performance with a Sequence and the 1st measure was the chan 14 tone!  Walked thru Midi set patches then the 1st measure problem was gone, JEEEZE!   This is still a mystery.

 

Another thing learned:  Never send a MIDI NoteOn to the primary midi channel.  I had the FCB do that and I always had to send the command twice.  So I made a fake XWP1 channel in my FCB code and had the P1 patch listen on  that channel.  Makes sense, my two midi keyboard controllers send on ch4 and 5 and I have the P1 listen to those channels without any problems.  So I now have the FCB send programmed NoteOn and NoteOff from chan 8  (my P1 primary channel is 3).  Using this fake channel also has the benefit of saving memory in my FCB.

 

Thanks for listening to my rant.

 

Link to comment
Share on other sites

  • 1 month later...

Wow between you and Jokyman  a.k.a the mad scientists , im also goin thru those weird perf/seq. problems to as much as love the P1

it sure takes the fun away, and i thought my VZ-1 was complicated... That damn P-1 sets me back so many hours i could have reserved for

compositions, Should i continue on in XW world or do i says goodbye? 

Link to comment
Share on other sites

The tone programed on a sequence can be changed with the mixer .to save it you then save the sequence---after that the performance will show those !! so then you can change it as the new sequence setting  for that performance.

I never use  music tones within the sequence but maybe some day--that switching one tone to a zone and the solo channel stuff was overkill for me--with the performance having 4 zones and 6 tones of hex layer ,i just stay with the drums when editing sequences  and btw they kick butt on any drum machine I ever knew

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.