Korg Z1

Hello all

I just received my electra one and my first project is to integrate with my Korg Z1.

I believe that the Z1 is a perfect use case for the e1. For those who don’t know, it is a very, very powerful physical modeling synth from the later 90s.

I look forward to share my results with the community. If anyone else has interest in Korg Z1 integration, please do let me know.

moogjuke

3 Likes

Hi, how did your Z1 projects progress? I have one since the 90th and waiting for the Electra to make it’s use easier.

Thus I am really interested! Once I got the electra delivered, I should also be able to help as a longtime programmer.

1 Like

Korg Z1 should be failry easy and it is well documented, including the Patch requests / dumps:

Hi Friends

Have not gotten far bc busy with work. Thanks Martin for the MIDI spec. Built a simple patch allowing Electra control of all Z1 encoders.

Danilosan…we should combine our efforts. I will message you.

Cheers
Joe

2 Likes

Hi I started with the Z1 presets and did the easy part with CC assignment for the performance controls.

I started also with sysex commands to edit programs and fx settings. I turned out not to be easy.
Most I have done with the midi learn function in Electra, but it seems to be awkward and not the right way.

@martin Since I read that the sysex template will change soon, it might be better to wait for final release of firmware 1.5.7?

1 Like

@Danilosan if you do not feel comfortable with the JSON I suggest to wait a little bit. We will keep the current format supported but the new additions (announced today on the development thread) will make things lot easier.

Probably, I still don’t realize what is the preferred and efficient workflow…

So far, I did lay out the buttons and assigned one after the other with the sysex (either «learning» or from Z1 implementation table). Would it be more efficient to focus on an instrument file?I am fine with JSON.

Sorry for the basic question.

Second, I realized an issue with negative values not being sent. PE. Master FX EQ
But that seems to be already covered https://forum.electra.one/t/twos-complement-question-issue-solved/605/4here.

The instrument file is not required for adding support for patch parsing. You can add the patch definition directly to the preset file to the definition of the device.

   "devices":[
      {
         "id":1,
         "name":"Test device",
         "instrument":"generic",
         "port":1,
         "channel":1,
         "patch":[
            {
               "request":[
                  ... your sysex patch request bytes ...
               ],
               "responses":[
                  {
                     "id":1,
                     "header":[
                        ... your sysex response matching bytes ...
                     ],
                     "rules":[
                     .... your parsing rules ....
                     ]
                  }
               ]
            }
         ]
      }
   ]

Hi

I have a Z1 coming my way too.

Would be great to have full patch editing via the e1.
But as well setting up and creating multi’s.

I need to know how I should switch the parameter names using a list.
Switching the OSC’s results in different controls.
I think this part is the biggest challenge so far.

I do not have my unit.
I just studied the manual and sysex specs a bit.
Making a template is really good to understand your device.

Is there a template already that can be shared in this topic?

Can you edit all 6 parts fully with sysex or is it limited for 1 part

Cheers

Tim

Here are the midispecs in TXT

Z1_MIDIimp.zip (23.8 KB)

Some initial brainstorming:

Here parameter changes.


+----------------+--------------------------------------------------+

|     Byte       |             Description                          |

+----------------+--------------------------------------------------+

| F0,42,3g,46    | EXCLUSIVE HEADER                                 |

| 0100 0001 (41) | PARAMETER CHANGE                       41H       |

| 0000 00mm (0m) | Group(00:Global&MIDI/01:Prog/10:Pat/11:Multi)    |

| 0ppp pppp (pp) | Parameter ID (LSB)                           [*2]|

| 0ppp pppp (pp) | Parameter ID (MSB)                           [*2]|

| 0vvv vvvv (vv) | Value    (LSB bit6~0)                            |

| 0vvv vvvv (vv) | Value    (MSB bit13~7)                           |

| 1111 0111 (F7) | EOX                                              |

+----------------+--------------------------------------------------+

Every part has 2 OSC’s and 1 sub OSC.
Every of those 2 OSC’s can be a different type with different controls.
This controls are 32 max. So I am thinking to have a dedicated page per OSC.
Then use @NewIgnis hints from: How to switch lists using LUA ? Ensoniq DP/4

Important to note is that the parameter ID’s are unique so I cannot just change the name I need to fully create all the ID’s and names per OSC. And there are lists in the controls as well.

Overall it seem quite spicy and not to much different then the Ensoniq DP/4

POC start here:
https://app.electra.one/preset/pWDpfAFW3ZWO1oT1bNDV

Parameter 174 = [OSC1] type

It should have a function assigned that

  1. sends the sysex for the selecting [OSC1] type
  2. that shows all the parameters for that OSC Type
  3. hides the unused controls
PseudoFunction ()
If control id1 parameter 174 = 0

then

[Standard OSC] 
1st control to show is 464|Wave, saw/pulse 
2nd 465|Wave Edge
3rd 466|Wave Level 

If control id1 parameter 174 = 1

[Comb Filter OSC] 
1st control to show is 486|Input Select 
2nd 487|Input Wave Level              
3rd 488|Noise Level  


OSC Parameters to swap for the POC

+====+===============================+============================+=========+=========+

|    |[Standard OSC]                 |                            |         |         |

| 464|Wave                           |SAW/PULSE                   |0/1      |1        |

| 465|Wave Edge                      |0~99                        |0~99     |1        |

| 466|Wave Level                     |0~99                        |0~99     |1        |
+----+-------------------------------+----------------------------+---------+---------+

|    |[Comb Filter OSC]              |                            |         |         |

| 486|Input Select                   |SC1+Noise/SubOSC+Noise/     |0~5      |1        |

|    |                               |Filter1+Noise/Filtyer2+Noise|         |         |

|    |                               |/Pulse Noise/Impulse        |         |         |

| 487|Input Wave Level               |0~99                        |0~99     |1        |

| 488|Noise Level                    |0~99                        |0~99     |1        |
+----+-------------------------------+----------------------------+---------+---------+```
1 Like