Korg Forums Forum Index Korg Forums
A forum for Korg product users and musicians around the world.
Moderated Independently.
Owned by Irish Acts Recording Studio & hosted by KORG USA
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Monologue: I've written a script to see settings of a patch
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Korg Forums Forum Index -> Korg Analog Synths (General)
View previous topic :: View next topic  
Author Message
MeneerJansen
Junior Member


Joined: 13 Dec 2016
Posts: 65

PostPosted: Wed Mar 08, 2017 3:08 pm    Post subject: Monologue: I've written a script to see settings of a patch Reply with quote

[edit 9-23-2022] Latest version is on Pastebin: https://pastebin.com/PBpwVHrt

Since Korg did not make a piece of software that will actually let you see how a patch (or "Program") was made I've written a shell script for the Linux Operating system that does (no "driver" needed). The software (Win and Mac only) that you can download from their Korg's (Sound Librarian) will not show you what the settings of a patch/program actually are. People have been waiting a year or three for software for the Korg Minilogue that does the same, but Korg didn't release such software. So I figured I'd better make it myself. The script uses the SysEx data dump from the Korg (over USB) to determine the settings of a patch. The SysEx data does not simply contain the values of the knobs and switches in Hexadecimal numbers. It took quite a long time of reverse engineering to determine the weird way in which the settings are stored in the SysEx data. And I think I'm still not completely finished, so I'll post my work in progress here and some time later the script itself.

Maybe somebody who knows how to write scripts for the Windows operating system can rewrite the Linux script for Windows. Mac users should buy a proper computer.

Example of output:
Code:

TABLE 1. Settings in % of knob turned, value on the Korg's display (from 0 - 1023) and Midi values (0 - 127) of the various knobs and switches on the Korg Monologue. The values of the Intensity of the EG and LFO are between 0 and +/-511 on the Korg's display and between 63 and 0 for Midi. If the intensity is negative then its Midi value is between 64 and 127.
______________________________________________________________________

Knob                  Value (%)      Korg value      Midi value
______________________________________________________________________

1. Drive             78         798        99

2. VCO 1
a. Wave form      Square
b. Shape             27        276          34
c. Mixer volume     99         1013         126

3. VCO 2
a. Wave             Sawtooth
b. Synch/Ring     Neutral
c. Pitch        53        (not linear)     68
d. Shape        88        900        112
e. Mixer volume  22        225        27

4. FILTER
a. Cutoff         79        808        101
b. Resonance     45        460        57

5. ENVELOPE GENERATOR
a. Type        Gate & attack/decay (|¯¯¯|)
b. Attack        30        306        38
c. Decay        8        81        10
d. Intensity    +38        +194        88
e. Target        Cutoff

6. LFO
a. Wave        Square
b. Mode        Slow
c. Rate        39        398        49
d. Intensity     +68        +347        107
e. Target        Cutoff
______________________________________________________________________



Last edited by MeneerJansen on Mon Nov 06, 2023 10:15 am; edited 2 times in total
Back to top
View user's profile Send private message
syrupcore



Joined: 04 Jul 2017
Posts: 7

PostPosted: Tue Jul 04, 2017 1:55 am    Post subject: Reply with quote

Where can one find this script?
Back to top
View user's profile Send private message
MeneerJansen
Junior Member


Joined: 13 Dec 2016
Posts: 65

PostPosted: Tue Jul 04, 2017 10:35 am    Post subject: Reply with quote

syrupcore wrote:
Where can one find this script?

It might still be buggy, but the current version is here: https://pastebin.com/86x3NUpY . Copy into a text file, make the text file executable and run. Follow instructions on screen.

The script expects the Monologue to have Midi port 24. If it doesn't on your PC then look for the following line in the script: "aseqdump -p 24:1 > aseqdumpfile.txt". Change number 24 to the proper number (i.e. 20:1 or 23:1 etc.). Wanna know the midi port number of your Korg Monologue? Then run:
Code:

aconnect -io

I'm afraid one has to be a little experienced in using Linux and Midi in Linux to experiment w/ the script.

Good luck! Smile

(we can not post attachments here)


Last edited by MeneerJansen on Fri Jul 28, 2017 11:10 am; edited 1 time in total
Back to top
View user's profile Send private message
syrupcore



Joined: 04 Jul 2017
Posts: 7

PostPosted: Sat Jul 15, 2017 10:30 am    Post subject: Reply with quote

Very cool. Thanks very much!
Back to top
View user's profile Send private message
seankerns



Joined: 28 Jul 2017
Posts: 5
Location: Morrow, OH

PostPosted: Fri Jul 28, 2017 3:08 am    Post subject: Reply with quote

This is a really cool thing you've done! I need to put an Ubuntu or maybe CentOS box together, and find where my little 1x1 USB MIDI things went, and see if Linux recognizes it.
Back to top
View user's profile Send private message
MeneerJansen
Junior Member


Joined: 13 Dec 2016
Posts: 65

PostPosted: Fri Jul 28, 2017 11:13 am    Post subject: Reply with quote

seankerns wrote:
This is a really cool thing you've done! I need to put an Ubuntu or maybe CentOS box together, and find where my little 1x1 USB MIDI things went, and see if Linux recognizes it.

I don't know for sure, but it might work in a virtual machine. If we're lucky then somebody with coding skills might turn it into a script for the power shell of Windows.

Good luck and let me hear if there are bugs in the script (there might be a few)! Smile
Back to top
View user's profile Send private message
seankerns



Joined: 28 Jul 2017
Posts: 5
Location: Morrow, OH

PostPosted: Fri Jul 28, 2017 12:44 pm    Post subject: Reply with quote

Cool! I test software for my day job, so I can set up a VM and see.
Back to top
View user's profile Send private message
syrupcore



Joined: 04 Jul 2017
Posts: 7

PostPosted: Tue Aug 01, 2017 8:49 pm    Post subject: Reply with quote

Still haven't had a chance to try this script but just came across a possible OSX replacement for aseqdump and figured I'd post it here: https://github.com/gbevin/ReceiveMIDI

Reading through the bash script, it should all pretty much work on OSX but there is no aseqdump equivalent that I could find.

I guess it's going to come down to the format each tool uses to write to the file. Not sure the current script will parse ReceiveMIDI's output, for instance. Hopefully close enough to tweak it into submission though.

By the way, ReceiveMIDI was written by Geert Bevin, the Linnstrument developer.
Back to top
View user's profile Send private message
slee



Joined: 09 Nov 2009
Posts: 5

PostPosted: Fri Sep 08, 2017 6:55 pm    Post subject: Getting this script to run from a syx file? Reply with quote

Hello, I am on a Mac so there is no aseqdump available to me but I thought I could get the syx data with another program and load that file. The quickest way would be to provide my own aseqdumpfile.txt file, but I don't know the format of this. Could someone post a aseqdumpfile.txt taken from one of the Factory Presets?

I am attempting to build a Max for Live device that will match the UI to whatever the current preset in my MONOLOGUE is and hoping to use this script to help me figure out the sysex format.
Back to top
View user's profile Send private message
MeneerJansen
Junior Member


Joined: 13 Dec 2016
Posts: 65

PostPosted: Fri Sep 08, 2017 8:50 pm    Post subject: Reply with quote

The aseqdump data is converted from Hexdecimal to Decimal. The script expects output from aseqdump. Here's an example of the "002 Injection" factory patch:
Code:

Waiting for data. Press Ctrl+C to end.
Source  Event                  Ch  Data
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   System exclusive           F0 42 30 00 01 44 40 00 50 52 4F 47 49 6E 6A 00 65 63 74 69 6F 6E 00 44 00 00 00 00 76 00 0F 27 7F 2B 55 00 7C 16 1B 17 20 7F 10 50 65 3D 32 01 76 05 32 00 0C 24 00 22 38 4C 4F 66 00 7F 53 08 45 51 44 62 04 10 00 00 00 36 00 00 00 00 00 1E 00 7F 7F 7F 7F 00 00 00 00 00 03 17 03 1B 00 78 00 00 00 7F 7F 7F 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2B 00 70 42 00 47 00 13 13 13 01 13 30 30 30 30 00 00 00 00 00 00 00 00 00 2B 00 00 42 00 47 00 68 68 00 68 68 30 30 30 2E 00 00 00 00 00 00 00 00 00 00 2B 00 42 00 47 00 7C 00 7C 7C 7C 2E 2E 2E 32 00 00 00 00 00 00 00 00 00 00 37 00 42 00 47 00 00 41 41 41 41 32 32 32 00 2F 00 00 00 00 00 00 00 00 00 2B 00 37 00 47 1E 00 1D 1D 1D 1D 2F 2F 00 2F 30 00 00 00 00 00 00 00 00 00 37 00 42 00 3C 49 00 3B 3B 3B 3B 30 00
 24:1   System exclusive           30 2D 2D 00 00 00 00 00 00 00 00 00 3A 00 57 78 00 49 00 5C 5C 5C 5C 00 2D 2D 2E 2F 00 00 00 00 00 00 00 00 00 3E 00 70 54 00 49 00 24 24 24 01 24 2F 2F 2F 2F 00 00 00 00 00 00 00 00 00 2B 00 00 54 00 49 00 68 68 00 68 68 2F 2E 30 30 00 00 00 00 00 00 00 00 00 40 2B 00 54 00 49 00 20 07 20 20 20 30 30 2F 2F 00 00 00 00 00 00 00 00 00 00 2B 00 54 00 49 00 0F 45 45 45 45 2F 2F 2F 00 32 00 00 00 00 00 00 00 00 00 37 00 42 00 49 00 00 5F 5F 5F 5F 31 31 00 31 32 00 00 00 00 00 00 00 00 00 2B 00 50 00 3C 49 00 2F 2F 2F 2F 32 00 32 31 30 00 00 00 00 00 00 00 00 00 37 00 42 78 00 49 00 4E 4E 4E 4E 00 30 30 31 31 00 00 00 00 00 00 00 00 00 3A 00 70 4E 00 49 00 21 21 21 01 21 31 31 2D 2D 00 00 00 00 00 00 00 00 00 37 00 00 4C 00 47 00 63 63 00 63 63 2D 2D 2E 30 00 00
 24:1   System exclusive           00 00 00 00 00 00 00 F7
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock
 24:1   Clock


In the script this results in:

Which does not appear to be right because when I use the settings above on my Monologue and press 'Shift + Play' itsounds different. That's as much as I will help Apple users: I'm not particularly a fan of that corporation or it's users. And that's putting it very, very mildly.


Last edited by MeneerJansen on Fri Sep 08, 2017 9:31 pm; edited 1 time in total
Back to top
View user's profile Send private message
slee



Joined: 09 Nov 2009
Posts: 5

PostPosted: Fri Sep 08, 2017 9:29 pm    Post subject: Reply with quote

Thanks, this should get me well on my way.

If it helps just think of me as a KORG user. Had KORG gear waaaay before I ever got a computer =)
Back to top
View user's profile Send private message
MeneerJansen
Junior Member


Joined: 13 Dec 2016
Posts: 65

PostPosted: Fri Sep 08, 2017 9:39 pm    Post subject: Reply with quote

slee wrote:
Thanks, this should get me well on my way.

If it helps just think of me as a KORG user. Had KORG gear waaaay before I ever got a computer =)

I hope you can help me debug the script. Smile Sorry 'bout the Apple rant.

For one the intensity of the LFO on the Monologue display does not range from 0 to 1023 but from 4 to 1/64 on said patch. Weird... When you see that a certain value is 0 or max. in my script then chances are that I've made a mistake in interpreting (or reverse engineering) the sysex code.

I've overwritten some factory patches. You can tell me which a good factory patch to post the 'aseqdumpfile.txt' from...
Back to top
View user's profile Send private message
slee



Joined: 09 Nov 2009
Posts: 5

PostPosted: Sat Sep 09, 2017 1:43 am    Post subject: Reply with quote

I've got my max for live device capturing the preset dump and when I run the result through your script I get what looks like the correct parameters but so far have only confirmed OVERDRIVE and VCO 1 Shape. I am going to start working on a ui now
Back to top
View user's profile Send private message
agawley



Joined: 26 Sep 2019
Posts: 3

PostPosted: Thu Sep 26, 2019 11:28 am    Post subject: Reply with quote

In case anyone comes across this and wants something that works cross platform I took the Korg SysEx spec for the Monologue and made a Node app for it.

https://github.com/agawley/MonologueLibrarian

Doesn't do the sequencer yet, but I'm working on it.
Back to top
View user's profile Send private message
MeneerJansen
Junior Member


Joined: 13 Dec 2016
Posts: 65

PostPosted: Thu Sep 26, 2019 12:13 pm    Post subject: Reply with quote

agawley wrote:
In case anyone comes across this and wants something that works cross platform I took the Korg SysEx spec for the Monologue and made a Node app for it.

https://github.com/agawley/MonologueLibrarian

Doesn't do the sequencer yet, but I'm working on it.

So your Node app also works in Windows? In Powershell? That would be great. Smile
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Korg Forums Forum Index -> Korg Analog Synths (General) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group