christofmuc / KnobKraft-orm

The KnobKraft Orm - The free modern cross-platform MIDI Sysex Librarian
GNU Affero General Public License v3.0
200 stars 25 forks source link

Roland Alpha Juno-2 - Import bank from synths stalls at the end of the import. #308

Open planist79 opened 7 months ago

planist79 commented 7 months ago

As far as I know, the Alpha Juno-2 needs to be put into "Bulk dump mode" manually on the Synth itself in order to make an outside request possible.

Doing this, the import patch bank function in KK starts, but at the end it stays at 100% but stalls and does not import anything into the database.

Does this work on the MKS-50?

Peter

Ps. The single patch import in KK works when I manually select a patch on the Synth. The aJUNO sends the syx of the patch via MIDI Out and KK imports this into the edit buffer import section.

christofmuc commented 7 months ago

Can you get me the MIDI log from an import when it stalls at 100%? Maybe it is not sending enough data. Do the MKS-50 and the aJuno have the same number of program slots?

planist79 commented 7 months ago

I am looking through manuals of mks and aJuno. Seems like the Tone Parameters are compatible between juno1, juno2, mks50 and hs80. And there are the same amount of patch slots: Preset and Memory with each 64 slots.

The patch transfer procedure via Handshake and One way bulk dump/load seems to be a bit different, meaning there are more options on the MKS-50. I will have a closer look.

But the tone parameter compatibility goes along with my experience that alle the tones parameter are well transfered from KK. Only the dump/load procedure needs to be adjusted.

christofmuc commented 7 months ago

I remember that the MKS-50, as a rack unit, had a better MIDI implementation than the keyboard units. We need to investigate how much different they are. I seem to remember the manuals are pretty extensive.

christofmuc commented 7 months ago

Hm, I looked at the manual of the AlphaJuno2, and it does have full handshaking capability. But we don't seem to use it, if you initiate the transfer from the device it will always start a BLD dump, not DAT.

Can you run it again and then look at the MIDI log? There is a button to save the MIDI log, so you can attach it here.

planist79 commented 7 months ago

OK Here is my report using KK and the Alpha JUNO-2

  1. I start KK and go to setup tab and turn on the "Roland MKS-50" adaption. image

  2. I set the aJUNO to MIDI Channel 1

  3. Auto Detect won't recgnize the aJUNO: "error No Roland MKS-50 could be detected - is it turned on?" (the Korg DW-8000 is recognized)

image

  1. But then i go to Library tab and KK is communicating with the aJUNO and i can select patches and they get sent to the aJUNO. I can even import the Edit buffer (via F8) when i manually press a patch button on the aJUNO, which makes the aJUNO send syx to its MIDI OUT.
  2. Now i go to MIDI>Import pacthes from synth (F7) and KK offers the option "Bank A" and "Bank A" (checkboxes)

image

##############################

TEST 1:

  1. I select both (checkboxes) and hit "Import all"
  2. i initiate the Bulk Dump on the aJUNO by pressing DATA TRANFER + WRITE + BULK DUMP

The following appears and the import stops at 88%

image

Here is the log:

KK MIDI log - aJUNO (DATA TRANFER+WRITE+BULK DUMP).log

#######################################################

TEST 2

  1. I select only the first bank "Bank A" (checkbox) and hit "Import selected"
  2. I initiate the Bulk Dump on the aJUNO by pressing DATA TRANFER + WRITE + BULK DUMP RESULT:

The import has worked!! and i get the following statements in the lower status window: image 22:12:04: info Renaming I01 with better name Brass 2
22:12:04: info Updated 1 patches in the database with new names 22:12:04: info Retrieved 11 new or changed patches from the synth, uploaded to database

Here is the log:

KK MIDI log - aJUNO (DATA TRANFER+WRITE+BULK DUMP) - only First Bank A.log

KK has has imported 11 new patches to the library which were not yet in the database. GREAT.!

image

#######################################################

TEST 3

  1. I select only the second bank "Bank A" (checkbox) and hit "Import selected"
  2. I initiate the Bulk Dump on the aJUNO by pressing DATA TRANFER + WRITE + BULK DUMP RESULT: The import was finalized and OK. The library has imported no new patches which were not yet in the database.

#######################################################

I should have tested it more throughly before: It seems importing "Import selected" works, but "Import all" stops at a specific moment.

I assume that the first "Bank A" in the KK import window refers to the Memory bank (with my user patches). The second to the Preset bank which cannot be changed.

#######################################################

Right now i guess everything is working except

  1. the Auto Detect resulting in the above error message
  2. Importing both banks (which actually does not make much sense since the second bank is the preset bank)
christofmuc commented 7 months ago

Interesting! Can you give me the MIDI log of the autodetection procedure as well?

planist79 commented 7 months ago

Auto Detect result

Status Bar Log: 18:58:59: error No Roland MKS-50 could be detected - is it turned on? 18:59:00: info Found Korg DW 8000 on channel 2 replying on device 2- Focusrite USB MIDI when sending to 2- Focusrite USB MIDI on channel 2

MIDI Log in attachment KK Auto detect - MIDI Log.log

planist79 commented 7 months ago

Strangely i can send patches to the aJUNO from the KK library no matter which MIDI Channel i choose in "Setup" (and also set OMNI OFF on aJUNO)

christofmuc commented 7 months ago

Ah, funny. The source code contains this comment: "The MKS-50 cannot be actively detected, it has to send messages to be spotted on the network"

So no autodetection is implemented. I wonder if that is correct, I wrote this 2.5 years ago. Can we somehow coax a message from the device? A program change maybe?

I also wonder - currently we use the bulk dump function initiated from the device, but the documentation seems to suggest we can also send a "request file" message like we do on the MKS-80. Maybe that would work as well.

And yes, the channel is not used, all messages are sysex. It would be used if we send program changes, though, so selecting patch in a known bank should try to send a program change mesage, which needs the channel.

planist79 commented 7 months ago

Just as a sidenote:

Both, the Ctrlr Panel for the aJUNO and the Laser Mammoth website request the user the manually start the Bulk Dump/ Bulk Save mode on the synth. Maybe there is just no handshake that can be be initiated with an external request--?

planist79 commented 7 months ago

Since i am using MIDI Channel 3 for the aJUNO in my setup. Do you think it be somehow possible to define the MIDI channel that is used for sending/receiving patches. Or does it need to be MIDI Channel 1 which the other two tools suggest.

christofmuc commented 6 months ago

Just as a sidenote:

Both, the Ctrlr Panel for the aJUNO and the Laser Mammoth website request the user the manually start the Bulk Dump/ Bulk Save mode on the synth. Maybe there is just no handshake that can be be initiated with an external request--?

Sometimes the documentation is wrong... it will be worth a try, and easy to be implemented. I'll take a note.

christofmuc commented 6 months ago

Since i am using MIDI Channel 3 for the aJUNO in my setup. Do you think it be somehow possible to define the MIDI channel that is used for sending/receiving patches. Or does it need to be MIDI Channel 1 which the other two tools suggest.

Sure, the MIDI channel should not matter. We need to look at the places where the MIDI channel is used, and can implement the sysex ID to be stored separately from the MIDI channel.