Advanced MIDI Preferences

The Advanced MIDI Preferences tab is only shown if the Show Advanced Preferences option in the Misc Preferences tab is checked.

The Advanced MIDI Preferences tab is shown below:

Apart from the Timout value (which specifies the time ex.factory waits before it times out on received data) all the other options in this tab relate solely to the Simulated Store operation that is used to write Voices to EX memory in a manner that avoids one of the EX's MIDI bugs.

You can adjust these values to optimise the transfer speed of the Simulated Store operation. If you wish to do this you should adjust the values with care and be sure to test that the transfer is reliable, ensuring that you test bulk transfers of Voices and not just single Voice transfers.

The default ex.factory timing values are "conservative" values that should work on all systems. I've adjusted the parameters on my own system and have gotten reliable transfers down to around five seconds per Voice transfer. Below 4.5 seconds the transfer becomes unreliable on my system, as you are coming up against inherent time delays in the MIDI transfer and the time it takes the EX to store a Voice.

This tab has the following timing options (all of which are expressed in milliseconds):

Ping Delay This is the amount of time that ex.factory waits for when "pinging" the EX for a response if the MIDI Handshake option is set between executing the steps in the Simulated Store sequence.
Bank Change Delay This is the amount of time from ex.factory sending the bank change command before it sends the next message in the Simulated Store sequence.
Patch Change Delay This is the amount of time from ex.factory sending the patch change command before it sends the next message in the Simulated Store sequence.
Voice Transmit Delay This is the amount of time from ex.factory sending the Voice before it sends the next message in the Simulated Store sequence.
Voice Store Delay This is the amount of time from ex.factory simulating the store operation and waiting for the store operation to complete.
Remote Switch Delay This is the amount of time that a remote switch command is active for (on and then off).

The following options should normally be left checked, but are there to allow you to turn off the steps used in the simulated store to EX memory operation. This may assist you in diagnosing any problems that could potentially exist on your setup with this operation. If you are having problems, it is recommended that you turn off all steps and then turn them back on one by one to verify that each step yeilds the intended result.

The simulated store operation works by:

MIDI Handshake

If checked, ex.factory attempts to "ping" the EX and will not send data until it gets a response or timeout. If this option is cleared then ex.factory will not "ping" the EX, but will just wait for the specified time before performing the next operation.

The default is for this option to be cleared, as the transfer appears to work best without this ping taking place.

Send Bank Change If checked the bank change command is sent. To check the bank change command is received by the EX:
  • Manually select a Voice bank (I1 or I2)
  • Send a Voice from ex.factory that is in a different bank to the EX memory
You should see on the EX that bank has changed.
Send Patch Change If checked the patch change command is sent. To check that the patch change command is received by the EX:
  • Manually select a Voice on the EX
  • Send a Voice from ex.factory that is different to the one selected in the EX
You should see on the EX that the selected patch changes to be the same number as the patch sent from ex.factory.
Transmit Voice If checked the patch is sent to the EX Edit Buffer. To check that the patch is received by the EX:
  • Manually select any Voice on the EX to get it in the edit buffer
  • Send a Voice from ex.factory that is different to the one selected in the EX edit buffer
You should see on the EX that the selected patch changes to be the same as the patch sent from ex.factory.
Simulate Store If checked the patch is written to the EX memory. Assuming all is well with the above sequences, the simulated store will deposit the transmitted patch into memory.