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

Korg MS200R + Access Virus A + other stuff #312

Open fractalf opened 7 months ago

fractalf commented 7 months ago

Hi there!

First, thank you for your incredible work on this piece of software :) I came across this while searching for some random MIDI stuff...

Here are some feedback, excuse the length of the issue, I still hope you find it interesting.

Thank you!

Korg MS2000R

I have a Korg MS2000R and thought I might get lucky since I saw the support for MS2000, but it doesn't seem to find it..

21:03:53: warning Did not find item in tree: library-Korg MS2000
21:04:01: error No Korg MS2000 could be detected - is it turned on?

When doing the [Auto-Detect] and listening to MIDI from my synth I can see the response when it is probed:

F0 7E 00 06 02 42 58 00 08 00 07 01 01 00 F7

Then comparing to the code for MS2000 they seem pretty much the same to me, so I'm not sure why this doesn't work.

There is some part in the comment there that says 0g, but last I checked that's not a hex, so maybe a typo?

https://github.com/christofmuc/KnobKraft-orm/blob/cb1ae3fe4f2ca08eb0ff18aeeb198a43f4352044/adaptations/KorgMS2000.py#L48-L67

The MS2000R is pretty much identical to the MS2000, so I see no reason why this shouldn't work, do you?

I'm happy to help you debug this to get it working! :)

Access Virus A

I couldn't see this on the list and when I tried the closest that is on the list (Virus B) it doesn't find it.

21:26:55: warning Did not find item in tree: library-Access Virus B
21:27:07: error No Access Virus B could be detected - is it turned on?

I listend to the MIDI device where my Virus A is connected when the program does the probe, and this is what it answers

F0 00 20 33 01 00 12 01 66 7F 6A 5D 3F 7F 7F 7F 7B 5D 3F 75 7F 75 7E 3F 7F 00 00 00 00 00 00 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 01 04 03 02 01 28 00 00 00 00 00 1E 0C 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 40 00 01 00 00 2A 03 01 00 00 00 00 00 00 01 00 00 00 01 01 00 00 00 00 01 01 00 00 00 01 00 00 00 00 40 00 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 21 F7

I didn't find a python file for the Access stuff, but found some C++ stuff under synths/, but that's a bit above my comprehention :)

Arch linux builds (docker setup)

I'm on EndeavourOS (based on Arch Linux) and the binary you provide from your build pipeline didn't work for me due to some error on libicuuc.so

$ ./KnobKraftOrm 
./KnobKraftOrm: error while loading shared libraries: libicuuc.so.66: cannot open shared object file: No such file or directory

..so I made a docker setup to build it for Arch Linux and thought I'd share it here if you or anyone else is interested.

docker-compose.yml

version: "3.7"
services:
    knobkraft-builder:
        build:
            context: .
            dockerfile: Dockerfile-arch
        image: knobkraft-builder
        container_name: knobkraft-builder
        tty: true

Dockerfile-arch

FROM archlinux:base-20240101.0.204074
RUN pacman -Sy
RUN pacman -S --noconfirm \
    git \
    base-devel \
    cmake \
    alsa-utils \
    webkit2gtk \
    glew \
    python \
    pybind11

RUN git clone https://github.com/christofmuc/KnobKraft-orm.git
WORKDIR /KnobKraft-orm
RUN git submodule update --recursive --init --depth 1
RUN cmake -D CMAKE_INTERPROCEDURAL_OPTIMIZATION=off -S . -B builds
# "-j15" means use 15 cores when compiling. Adjust it to your own architecture
RUN cmake --build builds -- -j15

Run it like this and copy the binaries to your local ~/bin

$ docker compose up -d --build
$ docker cp knobkraft-builder:/KnobKraft-orm/builds/The-Orm ~/bin
$ ~/bin/The-Orm/KnobKraftOrm

Files on /home/user

After running the binary I see these folders created

~/.config/KnobKraft
~/KnobKraft-Adaptations
~/KnobKraftOrm

The first is ofc totally fine, but creating those other folders on the root of the home folder is pretty bad practice on a Linux system. You should consider moving them to ~/Documents/KnobKraft or something like that.

christofmuc commented 6 months ago

@fractalf Glad you like it!

Let me see if I can help.

The MS2000 detection reply is correct, and should be picked up, Maybe it is a timing issue and the synth is too slow? Look at the timestamps and see if the Orm has already given up on the reply on that channel and has moved on? Can you show the complete MIDI log? Also, you could try to increase the message delays which are at 200 ms for auto detection.

The Virus implementation is as of now in C++ and not Python, so that's ok. The detect reply is also correct and should be recognized. So this is weird as well. Sometimes having a device that causes MIDI loops can screw up the auto detection. Can you try enabling only a single synth in the setup and turning off all hardware devices except the one synth you are trying to detect?

Awesome stuff with the docker file!

Yes, the files are very Unlinuxy. The code from JUCE is trying to be portable. let's have a look:

    /** The folder in which applications store their persistent user-specific settings.
        On Windows, this might be "\Documents and Settings\username\Application Data".
        On the Mac, it might be "~/Library". If you're going to store your settings in here,
        always create your own sub-folder to put them in, to avoid making a mess.
        On GNU/Linux it is "~/.config".
    */
    userApplicationDataDirectory,

    /** A place to put documents which are shared by all users of the machine.
        On Windows this may be somewhere like "C:\Users\Public\Documents", on OSX it
        will be something like "/Users/Shared". Other OSes may have no such concept
        though, so be careful.
    */
    commonDocumentsDirectory,

So the Linux ~/Documents is not implemented by the Library. That's probably why I used the userHomeDirectory instead.

I am not really sure why it is creating a ~/KnobKraftOrm directory. What's in there?

fractalf commented 6 months ago

Hi again, thanks for the reply and following up :)

When you say timing issue, what exactly are you thinking?

Because I can see that the Korg answers (pasted in the first post), so is there some setting in KnobKraft that doesn't pick this up?

OK, so I did some more debugging... I have a few MIDI devices, but only the MS2000R is turned on now. Still it doesn't find it. This is a bit weird.. also since the Access Virus A is not working.

I tried auto-detect and manually setting it (because I know which device in/out it's connected to and what MIDI channel). Nothing..

Also, just to be clear, my settings are correct

Here is the trace log from when I started the program

21:39:18: info Launching KnobKraft Orm
21:39:18: debug Loaded module Matrix 6.py answers with name Matrix 6/6R
21:39:18: debug Loaded module Studiologic Sledge.py answers with name Studiologic Sledge
21:39:18: debug Loaded module Ensoniq_VFX.py answers with name Ensoniq VFX
21:39:18: debug Loaded module Roland_JV80.py answers with name Roland JV-80
21:39:18: debug Loaded module Sequential Prophet 5 Rev4.py answers with name Sequential Prophet-5
21:39:18: debug Loaded module OberheimOBX8.py answers with name Oberheim OB-X8
21:39:18: debug Loaded module RolandD50.py answers with name Roland D-50
21:39:18: debug Loaded module KawaiK3.py answers with name Kawai K3 Adaptation
21:39:18: debug Loaded module Waldorf_Kyra.py answers with name Waldorf Kyra
21:39:18: debug Loaded module Korg_03RW.py answers with name Korg 03R/W
21:39:18: debug Loaded module DSI Prophet 08.py answers with name DSI Prophet 08
21:39:18: debug Loaded module OberheimOBXa.py answers with name Oberheim OB-Xa (Encore)
21:39:18: debug Loaded module Yamaha_TX7.py answers with name Yamaha TX7
21:39:18: debug Loaded module Behringer Deepmind 12.py answers with name Deepmind 12
21:39:18: debug Loaded module OberheimOB8.py answers with name Oberheim OB-8
21:39:18: debug Loaded module QuasimidiCyber6.py answers with name Quasimidi Cyber-6
21:39:18: debug Loaded module BC_Kijimi.py answers with name BC Kijimi
21:39:18: debug Loaded module Sequential Pro 3.py answers with name Sequential Pro 3
21:39:18: debug Loaded module Ensoniqesq1.py answers with name Ensoniq ESQ-1
21:39:18: debug Loaded module ElectraOne.py answers with name Electra One
21:39:18: debug Loaded module KorgDW8000.py answers with name Korg DW 8000
21:39:18: debug Loaded module OberheimOBX.py answers with name Oberheim OB-X (Encore)
21:39:18: debug Loaded module YamahaDX7.py answers with name Yamaha DX7
21:39:18: debug Loaded module KawaiK1.py answers with name Kawai K1
21:39:18: debug Loaded module KorgDW6000.py answers with name Korg DW-6000
21:39:18: debug Loaded module Roland_JV1080.py answers with name Roland JV-1080
21:39:18: debug Loaded module Zoom_MS.py answers with name ZOOM MS Series
21:39:18: debug Loaded module Sequential_Take_5.py answers with name Sequential Take 5
21:39:18: debug Loaded module DSI_Mopho_X4.py answers with name DSI Mopho X4
21:39:18: debug Loaded module JB_Solaris.py answers with name JB Solaris
21:39:18: debug Loaded module Kawai K4.py answers with name Kawai K4/K4r
21:39:18: debug Loaded module Novation_AStation.py answers with name Novation AStation
21:39:18: debug Loaded module DSI Pro 2.py answers with name DSI Pro 2
21:39:18: debug Loaded module YamahaRefaceDX.py answers with name Yamaha Reface DX
21:39:18: debug Loaded module Roland JX-8P.py answers with name Roland JX-8P
21:39:18: debug Loaded module DSI_Mopho.py answers with name DSI Mopho
21:39:18: debug Loaded module AlesisAndromedaA6.py answers with name Alesis Andromeda A6
21:39:18: debug Loaded module Matrix1000.py answers with name Matrix 1000 Adaptation
21:39:18: debug Loaded module PioneerToraiz-AS1.py answers with name Pioneer Toraiz AS-1
21:39:18: info Adaptation: All conversions succeeded
All conversions succeeded
All conversions succeeded
All conversions succeeded
21:39:18: debug Loaded module Roland_MKS-70.py answers with name Roland MKS-70
21:39:18: debug Loaded module DSI_Evolver.py answers with name DSI Evolver
21:39:18: debug Loaded module Roland_XV3080.py answers with name Roland XV-3080
21:39:18: debug Loaded module Waldorf_MicroWave.py answers with name Waldorf MicroWave
21:39:18: debug Loaded module KorgMinilogue_XD.py answers with name Minilogue XD
21:39:18: debug Loaded module Novation_Summit.py answers with name Novation Summit
21:39:18: debug Loaded module GrooveSynthesis_3rdWave.py answers with name 3rd Wave
21:39:18: debug Loaded module Sequential Prophet 6.py answers with name Sequential Prophet 6
21:39:18: debug Loaded module DSI_Tempest.py answers with name DSI Tempest
21:39:18: debug Loaded module DSI_Tetra.py answers with name DSI Tetra
21:39:18: debug Loaded module Sequential Prophet X.py answers with name Sequential Prophet X
21:39:18: debug Loaded module Novation_UltraNova.py answers with name Novation UltraNova
21:39:18: debug Loaded module DSI Prophet 12.py answers with name DSI Prophet 12
21:39:18: debug Loaded module Waldorf Blofeld.py answers with name Waldorf Blofeld
21:39:18: debug Loaded module Roland_MKS70V4.py answers with name Roland MKS-70 V4
21:39:18: debug Loaded module KorgMS2000.py answers with name Korg MS2000
21:39:18: debug Loaded module YamahaDX7II.py answers with name Yamaha DX7II
21:39:19: debug Starting quick configure of all synths
21:39:19: trace MIDI input UMC1820 MIDI 1 opened with ID 24-0
21:39:19: trace MIDI output UMC1820 MIDI 1 opened with ID 24-0
21:39:19: trace MIDI input UMC1820 MIDI 1 stopped, id 24-0
21:39:19: warning Lost communication with Korg MS2000 on channel 1 of device UMC1820 MIDI 1 - please rerun auto-detect synths!
21:39:19: debug Quick configure of all synths done, notifying listeners
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: trace MIDI input device UMC1820 MIDI 1 restarted, id is 24-0
21:39:19: info Opening master keyboard device UMC1820 MIDI 1, waiting for messages
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:19: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:49: debug Starting auto configure of all synths
21:39:49: trace MIDI input Midi Through Port-0 opened with ID 14-0
21:39:49: trace MIDI input device UMC1820 MIDI 1 restarted, id is 24-0
21:39:49: trace MIDI input microKEY2 microKEY2 _ CTRL opened with ID 28-0
21:39:49: trace MIDI input Faderfox PC4 MIDI 1 opened with ID 36-0
21:39:49: trace MIDI input Xio Xio opened with ID 40-0
21:39:49: trace MIDI input MIDI 8x8 MIDI 1 opened with ID 44-0
21:39:49: trace MIDI input MIDI 8x8 MIDI 2 opened with ID 44-1
21:39:49: trace MIDI input MIDI 8x8 MIDI 3 opened with ID 44-2
21:39:49: trace MIDI input MIDI 8x8 MIDI 4 opened with ID 44-3
21:39:49: trace MIDI input MIDI 8x8 MIDI 5 opened with ID 44-4
21:39:49: trace MIDI input MIDI 8x8 MIDI 6 opened with ID 44-5
21:39:49: trace MIDI input MIDI 8x8 MIDI 7 opened with ID 44-6
21:39:49: trace MIDI input MIDI 8x8 MIDI 8 opened with ID 44-7
21:39:49: trace MIDI output Midi Through Port-0 opened with ID 14-0
21:39:49: trace MIDI output microKEY2 microKEY2 _ CTRL opened with ID 28-0
21:39:50: trace MIDI output Faderfox PC4 MIDI 1 opened with ID 36-0
21:39:50: trace MIDI output Xio Xio opened with ID 40-0
21:39:50: trace MIDI output MIDI 8x8 MIDI 1 opened with ID 44-0
21:39:50: trace MIDI output MIDI 8x8 MIDI 2 opened with ID 44-1
21:39:50: trace MIDI output MIDI 8x8 MIDI 3 opened with ID 44-2
21:39:51: trace MIDI output MIDI 8x8 MIDI 4 opened with ID 44-3
21:39:51: trace MIDI output MIDI 8x8 MIDI 5 opened with ID 44-4
21:39:51: trace MIDI output MIDI 8x8 MIDI 6 opened with ID 44-5
21:39:51: trace MIDI output MIDI 8x8 MIDI 7 opened with ID 44-6
21:39:51: trace MIDI output MIDI 8x8 MIDI 8 opened with ID 44-7
21:39:52: trace MIDI input Midi Through Port-0 stopped, id 14-0
21:39:52: trace MIDI input UMC1820 MIDI 1 stopped, id 24-0
21:39:52: trace MIDI input microKEY2 microKEY2 _ CTRL stopped, id 28-0
21:39:52: trace MIDI input Faderfox PC4 MIDI 1 stopped, id 36-0
21:39:52: trace MIDI input Xio Xio stopped, id 40-0
21:39:52: trace MIDI input MIDI 8x8 MIDI 1 stopped, id 44-0
21:39:52: trace MIDI input MIDI 8x8 MIDI 2 stopped, id 44-1
21:39:52: trace MIDI input MIDI 8x8 MIDI 3 stopped, id 44-2
21:39:52: trace MIDI input MIDI 8x8 MIDI 4 stopped, id 44-3
21:39:52: trace MIDI input MIDI 8x8 MIDI 5 stopped, id 44-4
21:39:52: trace MIDI input MIDI 8x8 MIDI 6 stopped, id 44-5
21:39:52: trace MIDI input MIDI 8x8 MIDI 7 stopped, id 44-6
21:39:52: trace MIDI input MIDI 8x8 MIDI 8 stopped, id 44-7
21:39:52: error No Korg MS2000 could be detected - is it turned on?
21:39:52: debug Auto configure of all synths done, notifying listeners
21:39:52: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:52: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:52: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
21:39:52: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 

And a screenshot

image

fractalf commented 6 months ago

More debug..

Everytime I press F2 with these settings the synth answers also

image

$ amidi --list-devices      
Dir Device    Name
IO  hw:2,0,0  UMC1820 MIDI 1
IO  hw:3,0,0  microKEY2 microKEY2 _ KEYBOARD
IO  hw:5,0,0  Faderfox PC4 MIDI 1
IO  hw:6,0,0  Xio Xio
IO  hw:7,0,0  MIDI 8x8 MIDI 1
IO  hw:7,0,1  MIDI 8x8 MIDI 2
IO  hw:7,0,2  MIDI 8x8 MIDI 3
IO  hw:7,0,3  MIDI 8x8 MIDI 4
IO  hw:7,0,4  MIDI 8x8 MIDI 5
IO  hw:7,0,5  MIDI 8x8 MIDI 6
IO  hw:7,0,6  MIDI 8x8 MIDI 7
IO  hw:7,0,7  MIDI 8x8 MIDI 8

$ amidi -p hw:2,0,0 -d
F0 7E 00 06 02 42 58 00 08 00 07 01 01 00 F7

Log when pressing F2

21:59:54: debug Starting quick configure of all synths
21:59:54: trace MIDI input device UMC1820 MIDI 1 restarted, id is 24-0
21:59:54: trace MIDI input UMC1820 MIDI 1 stopped, id 24-0
21:59:54: warning Lost communication with Korg MS2000 on channel 1 of device UMC1820 MIDI 1 - please rerun auto-detect synths!
21:59:54: debug Quick configure of all synths done, notifying listeners

I also ofc tried this without amidi running, in case it would bind some devices etc.. still no good

christofmuc commented 6 months ago

Hi Alf, many thanks! Can you also attach the MIDI log (different tab, next to Setup). There we can see the messages sent by the Orm and the replies, and if they interleave correctly!

christofmuc commented 6 months ago

I am asking because if the reply comes too late, the Orm has given up on the reply and is testing the next channel or synth. The time is set to 200 ms right now in the adaptation code.

fractalf commented 6 months ago

OK, to make the logs smaller and easier to debug I disconnected every usb device except the one connected to the MS2000R

So here is the "normal" trace log

20:43:15: info Launching KnobKraft Orm
20:43:15: debug Loaded module Matrix 6.py answers with name Matrix 6/6R
20:43:15: debug Loaded module Studiologic Sledge.py answers with name Studiologic Sledge
20:43:15: debug Loaded module Ensoniq_VFX.py answers with name Ensoniq VFX
20:43:15: debug Loaded module Roland_JV80.py answers with name Roland JV-80
20:43:15: debug Loaded module Sequential Prophet 5 Rev4.py answers with name Sequential Prophet-5
20:43:15: debug Loaded module OberheimOBX8.py answers with name Oberheim OB-X8
20:43:15: debug Loaded module RolandD50.py answers with name Roland D-50
20:43:15: debug Loaded module KawaiK3.py answers with name Kawai K3 Adaptation
20:43:15: debug Loaded module Waldorf_Kyra.py answers with name Waldorf Kyra
20:43:15: debug Loaded module Korg_03RW.py answers with name Korg 03R/W
20:43:15: debug Loaded module DSI Prophet 08.py answers with name DSI Prophet 08
20:43:15: debug Loaded module OberheimOBXa.py answers with name Oberheim OB-Xa (Encore)
20:43:15: debug Loaded module Yamaha_TX7.py answers with name Yamaha TX7
20:43:15: debug Loaded module Behringer Deepmind 12.py answers with name Deepmind 12
20:43:15: debug Loaded module OberheimOB8.py answers with name Oberheim OB-8
20:43:15: debug Loaded module QuasimidiCyber6.py answers with name Quasimidi Cyber-6
20:43:15: debug Loaded module BC_Kijimi.py answers with name BC Kijimi
20:43:15: debug Loaded module Sequential Pro 3.py answers with name Sequential Pro 3
20:43:15: debug Loaded module Ensoniqesq1.py answers with name Ensoniq ESQ-1
20:43:15: debug Loaded module ElectraOne.py answers with name Electra One
20:43:15: debug Loaded module KorgDW8000.py answers with name Korg DW 8000
20:43:15: debug Loaded module OberheimOBX.py answers with name Oberheim OB-X (Encore)
20:43:15: debug Loaded module YamahaDX7.py answers with name Yamaha DX7
20:43:15: debug Loaded module KawaiK1.py answers with name Kawai K1
20:43:15: debug Loaded module KorgDW6000.py answers with name Korg DW-6000
20:43:15: debug Loaded module Roland_JV1080.py answers with name Roland JV-1080
20:43:15: debug Loaded module Zoom_MS.py answers with name ZOOM MS Series
20:43:15: debug Loaded module Sequential_Take_5.py answers with name Sequential Take 5
20:43:15: debug Loaded module DSI_Mopho_X4.py answers with name DSI Mopho X4
20:43:15: debug Loaded module JB_Solaris.py answers with name JB Solaris
20:43:15: debug Loaded module Kawai K4.py answers with name Kawai K4/K4r
20:43:15: debug Loaded module Novation_AStation.py answers with name Novation AStation
20:43:15: debug Loaded module DSI Pro 2.py answers with name DSI Pro 2
20:43:15: debug Loaded module YamahaRefaceDX.py answers with name Yamaha Reface DX
20:43:15: debug Loaded module Roland JX-8P.py answers with name Roland JX-8P
20:43:15: debug Loaded module DSI_Mopho.py answers with name DSI Mopho
20:43:15: debug Loaded module AlesisAndromedaA6.py answers with name Alesis Andromeda A6
20:43:15: debug Loaded module Matrix1000.py answers with name Matrix 1000 Adaptation
20:43:15: debug Loaded module PioneerToraiz-AS1.py answers with name Pioneer Toraiz AS-1
20:43:15: info Adaptation: All conversions succeeded
All conversions succeeded
All conversions succeeded
All conversions succeeded
20:43:15: debug Loaded module Roland_MKS-70.py answers with name Roland MKS-70
20:43:15: debug Loaded module DSI_Evolver.py answers with name DSI Evolver
20:43:15: debug Loaded module Roland_XV3080.py answers with name Roland XV-3080
20:43:15: debug Loaded module Waldorf_MicroWave.py answers with name Waldorf MicroWave
20:43:15: debug Loaded module KorgMinilogue_XD.py answers with name Minilogue XD
20:43:15: debug Loaded module Novation_Summit.py answers with name Novation Summit
20:43:15: debug Loaded module GrooveSynthesis_3rdWave.py answers with name 3rd Wave
20:43:15: debug Loaded module Sequential Prophet 6.py answers with name Sequential Prophet 6
20:43:15: debug Loaded module DSI_Tempest.py answers with name DSI Tempest
20:43:15: debug Loaded module DSI_Tetra.py answers with name DSI Tetra
20:43:15: debug Loaded module Sequential Prophet X.py answers with name Sequential Prophet X
20:43:15: debug Loaded module Novation_UltraNova.py answers with name Novation UltraNova
20:43:15: debug Loaded module DSI Prophet 12.py answers with name DSI Prophet 12
20:43:15: debug Loaded module Waldorf Blofeld.py answers with name Waldorf Blofeld
20:43:15: debug Loaded module Roland_MKS70V4.py answers with name Roland MKS-70 V4
20:43:15: debug Loaded module KorgMS2000.py answers with name Korg MS2000
20:43:15: debug Loaded module YamahaDX7II.py answers with name Yamaha DX7II
20:43:16: debug Starting quick configure of all synths
20:43:16: debug Quick configure of all synths done, notifying listeners
20:43:16: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:16: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:16: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:16: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:16: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:23: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:24: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:24: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:24: warning Did not find item in tree: library-Korg MS2000
20:43:24: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:25: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:25: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:25: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:25: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:25: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:25: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug Starting auto configure of all synths
20:43:30: trace MIDI input Midi Through Port-0 opened with ID 14-0
20:43:30: trace MIDI input UMC1820 MIDI 1 opened with ID 16-0
20:43:30: trace MIDI output Midi Through Port-0 opened with ID 14-0
20:43:30: trace MIDI output UMC1820 MIDI 1 opened with ID 16-0
20:43:30: trace MIDI input Midi Through Port-0 stopped, id 14-0
20:43:30: trace MIDI input UMC1820 MIDI 1 stopped, id 16-0
20:43:30: error No Korg MS2000 could be detected - is it turned on?
20:43:30: debug Auto configure of all synths done, notifying listeners
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 
20:43:30: debug SQL  SELECT * FROM patches   WHERE 1 == 1  AND ( patches.synth = :S00 )  AND (hidden is null or hidden != 1)  ORDER BY sourceID, midiBankNo, midiProgramNo 

Then the "MIDI Log" tab log

01:11:17.826: Out Midi Through Port-0 Sysex [f0 7e 00 06 01 f7]
01:11:17.826: In  Midi Through Port-0 Sysex [f0 7e 00 06 01 f7]
01:11:17.827: Out Midi Through Port-0 Sysex [f0 7e 01 06 01 f7]
01:11:17.827: In  Midi Through Port-0 Sysex [f0 7e 01 06 01 f7]
01:11:17.827: Out Midi Through Port-0 Sysex [f0 7e 02 06 01 f7]
01:11:17.827: In  Midi Through Port-0 Sysex [f0 7e 02 06 01 f7]
01:11:17.827: Out Midi Through Port-0 Sysex [f0 7e 03 06 01 f7]
01:11:17.827: In  Midi Through Port-0 Sysex [f0 7e 03 06 01 f7]
01:11:17.828: Out Midi Through Port-0 Sysex [f0 7e 04 06 01 f7]
01:11:17.828: In  Midi Through Port-0 Sysex [f0 7e 04 06 01 f7]
01:11:17.828: Out Midi Through Port-0 Sysex [f0 7e 05 06 01 f7]
01:11:17.828: In  Midi Through Port-0 Sysex [f0 7e 05 06 01 f7]
01:11:17.829: Out Midi Through Port-0 Sysex [f0 7e 06 06 01 f7]
01:11:17.829: In  Midi Through Port-0 Sysex [f0 7e 06 06 01 f7]
01:11:17.829: Out Midi Through Port-0 Sysex [f0 7e 07 06 01 f7]
01:11:17.829: In  Midi Through Port-0 Sysex [f0 7e 07 06 01 f7]
01:11:17.829: Out Midi Through Port-0 Sysex [f0 7e 08 06 01 f7]
01:11:17.829: In  Midi Through Port-0 Sysex [f0 7e 08 06 01 f7]
01:11:17.829: Out Midi Through Port-0 Sysex [f0 7e 09 06 01 f7]
01:11:17.829: In  Midi Through Port-0 Sysex [f0 7e 09 06 01 f7]
01:11:17.829: Out Midi Through Port-0 Sysex [f0 7e 0a 06 01 f7]
01:11:17.829: In  Midi Through Port-0 Sysex [f0 7e 0a 06 01 f7]
01:11:17.830: Out Midi Through Port-0 Sysex [f0 7e 0b 06 01 f7]
01:11:17.830: In  Midi Through Port-0 Sysex [f0 7e 0b 06 01 f7]
01:11:17.830: Out Midi Through Port-0 Sysex [f0 7e 0c 06 01 f7]
01:11:17.830: In  Midi Through Port-0 Sysex [f0 7e 0c 06 01 f7]
01:11:17.830: Out Midi Through Port-0 Sysex [f0 7e 0d 06 01 f7]
01:11:17.830: In  Midi Through Port-0 Sysex [f0 7e 0d 06 01 f7]
01:11:17.830: Out Midi Through Port-0 Sysex [f0 7e 0e 06 01 f7]
01:11:17.830: In  Midi Through Port-0 Sysex [f0 7e 0e 06 01 f7]
01:11:17.830: Out Midi Through Port-0 Sysex [f0 7e 0f 06 01 f7]
01:11:17.830: In  Midi Through Port-0 Sysex [f0 7e 0f 06 01 f7]
01:11:18.031: Out UMC1820 MIDI 1 Sysex [f0 7e 00 06 01 f7]
01:11:18.032: Out UMC1820 MIDI 1 Sysex [f0 7e 01 06 01 f7]
01:11:18.032: Out UMC1820 MIDI 1 Sysex [f0 7e 02 06 01 f7]
01:11:18.032: Out UMC1820 MIDI 1 Sysex [f0 7e 03 06 01 f7]
01:11:18.032: Out UMC1820 MIDI 1 Sysex [f0 7e 04 06 01 f7]
01:11:18.033: Out UMC1820 MIDI 1 Sysex [f0 7e 05 06 01 f7]
01:11:18.033: Out UMC1820 MIDI 1 Sysex [f0 7e 06 06 01 f7]
01:11:18.033: Out UMC1820 MIDI 1 Sysex [f0 7e 07 06 01 f7]
01:11:18.033: Out UMC1820 MIDI 1 Sysex [f0 7e 08 06 01 f7]
01:11:18.033: Out UMC1820 MIDI 1 Sysex [f0 7e 09 06 01 f7]
01:11:18.034: Out UMC1820 MIDI 1 Sysex [f0 7e 0a 06 01 f7]
01:11:18.034: Out UMC1820 MIDI 1 Sysex [f0 7e 0b 06 01 f7]
01:11:18.034: Out UMC1820 MIDI 1 Sysex [f0 7e 0c 06 01 f7]
01:11:18.034: Out UMC1820 MIDI 1 Sysex [f0 7e 0d 06 01 f7]
01:11:18.034: Out UMC1820 MIDI 1 Sysex [f0 7e 0e 06 01 f7]
01:11:18.035: Out UMC1820 MIDI 1 Sysex [f0 7e 0f 06 01 f7]
christofmuc commented 6 months ago

Hmm, this doesn't look like the MS2000 is replying to our message. Also, the universal sysex message device request normally doesn't need to be sent per channel, but could just be sent once with the channel set to 7f, which is all channels I think. I'm traveling right now, but need to look again at the manual.

fractalf commented 6 months ago

OK, thanks! Let me know if there is anything I can do to help

Edit:

Hmm, this doesn't look like the MS2000 is replying to our message.

Like I described below, it does look like the MS2000R actually answers, I mean, when listening to the port (see dump messages above) it answers, but maybe this is not picked up somehow..

christofmuc commented 6 months ago

@fractalf I think what you see is a MIDI echo from the through port - it just receives every message sent out verbatim back. What we would be looking for is a reply from the synth that is different than the detect message. We expect a message in the format f0 7e 0 02 42..., but we see only messages f0 7e 0 01 42....

The 01 is the code for the query, the 02 is the code for the reply. There is no reply from the synth itself. Maybe the device ID is set to a number outside of the 0 to 15 range? We could try to detect it differently.