Ensoniq ESQ / SQ80 BCR editing

9 posts / 0 new
Last post
BillB
BillB's picture
Ensoniq ESQ / SQ80 BCR editing

I’m sure this has been visited a few times in the past, perhaps on Yahoo Groups, but I thought I would come back to in in case it was just not resolved, or things have changed with BC Manager's capability.

To edit a patch on an ESQ or SQ80, it is necessary to send NRPNs to tell it which front panel button is to be ‘pressed’, e.g.  filter cutoff is B0 63 00, B0 62 6E, filter resonance is B0 63 00, B0 62 6F. Following these NRPNs, CC6 then sets the value of the parameter.

So to change the filter from fully open to fully closed requires:

B0 63 00

B0 62 6E (end of NRPN)

B0 06 7F

B0 06 7E

B0 06 69

...

B0 06 00 (end of CC6 values)

 

Resonance full to none:

B0 63 00

B0 62 6F (end of NRPN)

B0 06 7F

B0 06 7B

...

B0 06 00 (end of CC6 values)

To assign these to a knob on the BCR, it should send out the NRPN pair only once, followed by the stream of CC6 values.

Is this possible with the BCR using BC Manager and, if so, could one of the resident experts set out how to enter the information into BC Manager? I found the NRPN option in the editor but could not figure out how to enter the values.

Many thanks

Bill

Royce
Royce's picture

Hi, firstly the  B0 63 00 B0 62 xx is selecting a NRPN which is an extension of the CC messages - from what I can see in the manual it's not really anything to do with the front panel

Perhaps I could start off by explaining a common thing used in Midi by using Patch and Bank messages.

There are 128 (0 to 127)  presets selectable in Midi which is clearly not enough, so Banks where developed and Bank select uses certain pairs of CC messages like RPN and NRPN do.

It is easy to think of banks as cupboards full of acoustic instruments. You can keep 128 instruments in a cupboard. Any instruments can be kept in any cupboard, but perhaps you keep the saxs in one cupboard and the brass in another.

So you send the brass Bank select message - close the cupboard you are currently looking at, go to the brass cupboard and open it. You haven't got a new instrument until you select a trumpet and throw away the piano. Now the sound is a trumpet. You can then pick a tuba, then a trombone, back to a trumpet, but not a tennor sax because it's not in that open cupboard. Send a Bank select message to move to and open the sax cupboard and send a patch select message to throw away the trumpet and pick up a tenor sax.

But standing with a tenor sax in your hand and sending a bank select message for the sax cupboard simply closes the cupboard, you shuffel your feet then open it up again. The patch change message tosses the tenor away and gets the alto sax out.

As you know with RPN and NRPN, you only have to select the control once then every value change message means "change this selected controller's value" (like the patch select means "get the instrument from the selected cupboard").

This way (your way) is the best way of NRPN midi use as it uses fewer bytes of Midi, BUT you can still select the same controller over and over again without any problems the same way as you can select the Bank each time you change a patch.

So you can have the NRPN select plus a value on an encoder.

B0 63 00, B0 62 6E (end of NRPN) . B0 06 7F

B0 63 00, B0 62 6E (end of NRPN) . B0 06 7E

B0 63 00, B0 62 6E (end of NRPN) . B0 06 7D etc

This is easy to program on the BC using the the standard NRPN settings (normally 'absolute' when max value less than 128 otherwise use 'absolute/14)

I have a patch (from someone else- sorry I can't add a credit) that you can load in and have a look at the way it is done....

https://bwalk.com.au/pub/Ensoniq%20SQ80%20Notes.bc2

Mark's editor can show you the layout.

If you really have to use just one NRPN select message, you can use the buttons to select the controller you are interested in and a single encoder to do the value changing (CC6). The top row encoders with a button spring to mind.

You need to use .tx for multiple CC messages on the buttons, so you need 'Custom Output' in Mark's editor

This will reduce the Midi data amount, but you can also do this by setting the resolution to something like  48 96 192  384 (above 96 the encoder will skip values and so reduce the number of messages). You can also increase the '.deadtime' in the Global settings. Although this changes things for all BC presets.

The parameter will also jump to the encoder's current value which could be a long way from where it was.

Life is a compromise.

Let me know what the problems you have with this patch.

 

Stay well.

Royce

 

BillB
BillB's picture

Royce, thank you for the well-stocked imaginary instrument cupboard, the excellent explanation and most importantly, the gift of a BC2 file which will surely save me a lot of work.  I have searched for 'Ensoniq ESQ / SQ80 BCR2000' and turned up nothing, so this is a real treat.

The reference to the front panel is that on receipt of the NRPN/CC, the SQ80 switches through its parameter pages, selects (underlines) the specific parameter, and then adjusts the value, based on the CC, as if the front panel Value slider was being moved.  So the NRPN/CC combo is really like having a remote control to the SQ80's front panel.  In principle it is a great way of doing things as it means that, for example, turning an Osc Waveform selector knob will display the waveform names as the data is sent.  This, to me, is the ideal interaction between a hardware MIDI editor and a synth.  It is not a lot of use if all you know is that you are changing the Osc Waveform from 1-76 - you can't fit a printed list of waveforms on the front panel of the BCR.

The idea of the NRPN pair followed by the stream of CC6 is obviously to reduce the amount of MIDI data to be handled by the processor, but it is possible that a stream of (NRPN+CC) will not be a problem, especially if it can be 'thinned' by the BCR.  I am aware of this capability and have read about it in other threads here, so will be interested to see how that works in practice.  Thanks for the pointer to the resolution settings.

I looked at the MIDI data from a few different ESQ/SQ80 editors to see how they behaved:

Patchbase on the iPad does this:

F0 0F 02 00 0E 08 3B F7, B0 63 00, B0 62 6E, B0 06 7F
...
F0 0F 02 00 0E 08 3B F7, B0 63 00, B0 62 6E, B0 06 00

Not sure why, but it inserts a sysex code to select an oscillator value (without changing it) before each NRPN/CC.  Seems strange to me and it does make the display flicker as it rapidly switches between the Osc page and whatever parameter you are actually editing, but Chadwick who produces Patchbase is a MIDI wiz, so probably has his reasons.  Patchbase uses data thinning again, so as not to overwhelm the MIDI processor.

An ESQ editor panel for (iPad) TB MIDI Stuff and MidiQuest (PC) both output the following:

B0 63 00, B0 62 6E, B0 06 7F...B0 06 00.  There is no screen flickering, so I'm not sure if data thinning is needed, but it will be interesting to experiement on the BCR.

Anyway, I will, hopefully, get time to play with your BC2 file today, so will report back.

Many thanks again, Royce.

 

 

BillB
BillB's picture

OK, a few thoughts on first play with BC2 file.

1) It is a select SQ80 feature set for a single encoder group. That is fine, I can expand it later if I want to, but this is a good set to play with.

2) a few of the settings were wrong, in that they selected the wrong parameters, but I have corrected that on my local copy.

3) The CC6 value ranges are tricky. It seems that they need the full 0-127 for some/most parameters, but the SQ80 does struggle if sent the full range of NRPN+CC 0-127 over MIDI - it is forced to do a soft reset if it gets too many - I assume it is a sort of buffer overflow. What would be ideal is if parameters which have a limited number of positions (e.g. Osc semitones range from 0-11 but require the full values 0-127 to access them) could send out only 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110. Those are not the actual values, but you get the idea - a sort of step size increment.

The other requirement would be that if a a full range was required, from 0-127 in increments of 1, as the knob is turned, values are skipped over if it is still turning.

Are these things achievable with the resolution settings?

The other thing I noticed, and this is probably down to my inexperience and over-complex MIDI setup, is that the BCR needed to be in U1 mode to receive changes from the editor, but S1 mode to send data to the SQ80. To go from S1 to U1 Mode entailed: changing the setting on the BCR; unplugging the USB cable cable; closing and reopening BC Manager. Feels like there should be a better way, but when I tried connecting the BCR over MIDI using an Edirol UM-880, I got warnings of MIDI loops and the ports were subsequently disabled. So I may stick with flipping between U1 and S1 modes...

The more important thing is whether the BCR can be forced to thin its MIDI output values.

 

Mark van den Berg
Mark van den Berg's picture

The other thing I noticed, and this is probably down to my inexperience and over-complex MIDI setup, is that the BCR needed to be in U1 mode to receive changes from the editor, but S1 mode to send data to the SQ80.

 No, this is not due to your inexperience or over-complex MIDI setup: this is just how the BCR works.
When the BCR is in a U mode, the settings and output of the buttons/encoders are only communicable via the USB cable, i.e. from/to the computer, and there is no way to make the BCR send the button/encoder output to its MIDI output sockets, at least not directly.
However, you can put the BCR in U-3 and have a computer program with MIDI Thru capabilities (e.g. BC Manager or MIDI Tools) loop back the output messages from the BCR to one of the BCR's MIDI Out sockets. For full discussion, see question 31 in the FAQ section (currently section 34) of the BC Manager manual.

To go from S1 to U1 Mode entailed: changing the setting on the BCR; unplugging the USB cable cable; closing and reopening BC Manager.

I'm probably missing something here, but why would you need to unplug the USB cable?

Mark.

BillB
BillB's picture

However, you can put the BCR in U-3 and have a computer program with MIDI Thru capabilities (e.g. BC Manager or MIDI Tools) loop back the output messages from the BCR to one of the BCR's MIDI Out sockets.

Thanks, Mark, I'll take a look.

why would you need to unplug the USB cable?

It just seemed that BC Manager (i.e. Windows) did not recognise the BCR until I did that.  But again, I will check more carefully!

Mark van den Berg
Mark van den Berg's picture

It just seemed that BC Manager (i.e. Windows) did not recognise the BCR until I did that.  But again, I will check more carefully!

You definitely need to restart BC Manager; that's simply a limitation of BC Manager (and indeed all my MIDI applications).
But I'm not sure about the Windows USB driver for the BCR.
I can't remember ever physically disconnecting/reconnecting the USB cable after a BCR mode switch. (In fact, I once read advice from Behringer (can't remember where) that I took to mean that it's dangerous to (dis)connect the USB cable while the BCR is on, but I might have misinterpreted this advice.)
What I always do is terminate BC Manager before switching modes on the BCR. I'm not sure whether this helps to avoid having to reconnect the USB cable, but it's good practice anyway.

BillB
BillB's picture

OK, thanks for the warnings about the USB cable, Mark.

Regarding thinning the data stream, it is fairly clear, from the way the SQ80 behaves, that it does not cope well with the continuous retransmission of the NRPN as well as the CC.  This chimes with other descriptions I have read over the years, of people trying to create ESQ/SQ80 hardware editors from boxes like the BC devices and Novation controllers. 

The idea of using a button to select the NRPN followed by an encoder to set the CC is sort of OK, but actually sounds remarkably like the well-designed (for a parameter-access synth) front panel of the ESQ/SQ80.  Many people say - just use the synth panel!  However, I really like the principle of having one knob per parameter.  If there is no way to have the BCR send the NRPN only once, then I will see whether the SQ80 copes better with slower Transmission Interval settings in the Global Setups window - but I note the warning that this will affect all Presets.

Final thought is to assign buttons where possible for parameters like Osc Octave, where they have a limited range of steps which can be set as intervals.  But it is only worth doing this if the 0-127 types ranges (e.g. filter cutoff) can be made to work comfortably.

BillB
BillB's picture

OK, slowest Transmission Interval of 100 milliseconds (set in BxControls, Global setups, TX interval) helped a lot. Together with Encoder resolutions set to

96 192 384 768

...turning an Encoder still flashes the SQ80 screen, but it can achieve a full value sweep without crashing and there is a lag (while the screen catches up) of only about a second.  So it is tolerable.  Still frustrating, as I also set one Encoder to CC6 only, and after a parameter has been set by NRPN on another Encoder, the CC6 value change is completely smooth.

I am going to think about whether some parameters can be selected by switches, with Encoders providing only CC6... this is something Royce suggested in a BCR Yahoo Groups exchange about an ESQ1 from 2013!  Still not an ideal solution, but may work up to a point.  So frustrating when you know that a single NRPN pair followed by a stream of CC6 would work perfectly for editing.  It would not work for performance however, as that would need the parameter code to be sent with every CC value - perhaps that is why the BCR works that way.

I am going off to ponder for a while.