Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tempest not being detected #291

Open
xyplex3 opened this issue Nov 5, 2023 · 15 comments
Open

Tempest not being detected #291

xyplex3 opened this issue Nov 5, 2023 · 15 comments
Labels
need more information For this issue more information needed to resolve it New device

Comments

@xyplex3
Copy link

xyplex3 commented Nov 5, 2023

The Tempest plugin does not detect the Tempest. I tried both Midi and USB for the Tempest using the latest os. Please message me for help in solving this.

@markusschloesser
Copy link
Collaborator

Have you tried manually assigning the correct port?
Kris did the adaptation a while ago, I has asked him for it, but I haven't tested it yet (focus on other synths right now).
So AFAIK you're the first to test it!

@xyplex3
Copy link
Author

xyplex3 commented Nov 6, 2023

Yes I tried manually setting it. FYI love this application! I will go through the Python libraries for it and see if I can access it and let you know how it responds.

@christofmuc
Copy link
Owner

@xyplex3 Thanks! The Tempest is a tough challenge, as it is not documented anywhere. Let us know how far you got!

@xyplex3
Copy link
Author

xyplex3 commented Jan 2, 2024

I have written a separate Python program to send direct Sysex to the Tempest and the Device Detect Sysex hex is not working. Where did you find that message at and what are you expecting in return?

@christofmuc
Copy link
Owner

Researching a bit... it seems the use of the generic detect message was based on pure hope and the fact that all other DSI synths support it. But the tempest has a different firmware code base, not related seemingly in any way to the other synths. So it might just not respond to the generic request.

What you could also do is instead of the device inquiry just fire an edit buffer request - wait, you can't.

So you might not be able to autodetect the Tempest and have to set it up manually, if we cannot find any request to which it responds.

Turning off autodetection is undocumented but done like this as glanced from the JX-8P docs:

def deviceDetectWaitMilliseconds():
    # Negative value means don't autodetect at all
    return -1

We had our original discussion on the Tempest here together with some info pointers, but a quick check did not reveal any insights right now: #164

@xyplex3
Copy link
Author

xyplex3 commented Jan 5, 2024

There seems to be a change from Firmware 1.4 to 1.5. Any sysex that has been created with 1.4 and below will load into KnobKraft. Anything created for 1.5 will not load. I have been trying to look at midi.link website to see how they do things but that site is also not working with 1.5 firmware from what I can tell. I am looking into it further but it seems we need a discussion with Sequential over it and they probably don't care enough to give us anything.

@christofmuc
Copy link
Owner

Hm, the addendum doesn't mention much:

https://www.davesmithinstruments.com/wp-content/uploads/2017/07/Tempest-1.41.5-Addendum.pdf?x72411

It says the internal format changed when going to 1.4, so that doesn't match.

Do you have a new sysex you could upload here? Sometimes its just little things like a new device ID.
Or you can also attach the MIDI log from an (unsuccessful) manual dump operation?

@xyplex3
Copy link
Author

xyplex3 commented Jan 6, 2024

OK, I have some good news. The following needs to be set on the Tempest to properly send sysex without problems.

  1. Set to Master Clock.
  2. Midi Clock IN Cable to NONE
  3. Midi Clock OUT cable to NONE

Then you select Tempest and make sure the Midi it set correctly (for my case I am using USB). There is no autodetection like you said so I just assume it is connected.

Click on the sound library bank you want and go to the Midi menu.
From there click RECEIVE MANUAL DUMP
On the TEMPEST send the sound via SYSEX DUMP
It will write the sound to the bank, You can then pick another drum pad and click on the sound to send it back to the Tempest.

Here is the problem. you cannot change the name or any parameters and it cannot identify the sound name. I believe we can do a simple sysex fix for 1.5 firmware and am looking at identifying if it is 1.4 or 1.5.

I will attach some sysex files shortly.

FYI I love this application!

@xyplex3
Copy link
Author

xyplex3 commented Jan 11, 2024

Here is a SYSEX file from 1.5 that is a kick sound.
kick.zip

@xyplex3
Copy link
Author

xyplex3 commented Jan 12, 2024

I think the only thing that needs to be adjusted is how it reads the name of the sound, I will be scripting some custom Python to see if I can figure out the new location in the Sysex dump where the sound name is.

@Andy2No
Copy link

Andy2No commented Jan 13, 2024

@xyplex3 Have you tried a hex editor?

Here's part of the dump of the kick.sys, shown in Frhed (a free hex editor.

kick-hex_dump

The zero bytes in the names suggest that it's converted from 8 bit data to 7 bit data, which is usually done in groups of seven bytes, with a byte containing the MSB (highest bit) of each of those seven. It could be before or after the group of seven, but it's usually before.

I haven't looked at the Tempest adaptations, but DSI synths usually (maybe all) do this, and the ones I've looked at have a function to handle the conversion back to 8 bit data. The DeepMind adaptation uses the same method.

That alters the addressing, of course - groups of 8 (7 bit) bytes in the sysex dump become groups of 7 bytes in the result, if you convert the whole thing, so the name in the converted (8 bit) data starts at about 7/8 of the place it starts in the sysex dump, once you skip the header section, which isn't encoded.

You can add print statements to your functions to show some of what they're seeing. The output appears in the console window at the bottom. Or, you can just take a stab at extracting the name and see how close the result looks, then keep making corrections til you get it right.

@Andy2No
Copy link

Andy2No commented Jan 13, 2024

@xyplex3 Here's the second place a name appears. DSI/Sequential synths often use layered patches, which look like two entire patches (maybe more for some?), in the same sysex dump file:

kick-hex_dump2

@Andy2No
Copy link

Andy2No commented Jan 13, 2024

Here's a third, and we're still only less than a quarter of the way through the file, so no doubt there are more:

kick-hex_dump3

@xyplex3
Copy link
Author

xyplex3 commented Jan 15, 2024

Thank you, I will see what I can come up with!

@christofmuc
Copy link
Owner

Uh, I myself had posted the code in the Sequential forums a way back. This is all we know about the sysex format:

https://forum.sequential.com/index.php/topic,5075.msg59906.html#new

@christofmuc christofmuc added the need more information For this issue more information needed to resolve it label Aug 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
need more information For this issue more information needed to resolve it New device
Projects
None yet
Development

No branches or pull requests

4 participants