You are here

Sysex feeling like a punishment

For current or would-be users of Apple Mac computers, with answers to many FAQs.

Moderator: Moderators

Re: Sysex feeling like a punishment

Postby desmond » Mon Mar 08, 2021 6:56 pm

You could try writing a little bit of code in your language of choice to spit out the necessary bytes via MIDI, and see whether that route works?

(The introspective link on the front of that document seems to be a different url and links to a site in Japanese. This whole thing is a bunch of weirds...!)
User avatar
desmond
Jedi Poster
Posts: 11435
Joined: Tue Jan 10, 2006 1:00 am
mu:zines | music magazine archive | difficultAudio

Re: Sysex feeling like a punishment

Postby nathanscribe » Mon Mar 08, 2021 7:32 pm

desmond wrote:You could try writing a little bit of code in your language of choice to spit out the necessary bytes via MIDI, and see whether that route works?

Unfortunately that would be Sinclair BASIC or Z80 assembler. ;)
User avatar
nathanscribe
Frequent Poster
Posts: 1263
Joined: Fri Jan 19, 2007 1:00 am
Location: Wakefield, for my sins.
I have no idea what I'm doing.

Re: Sysex feeling like a punishment

Postby CS70 » Mon Mar 08, 2021 7:42 pm

Fascinating. I looked at the device manual and it's from 2002. All is possible with devices and software from that time :D

Just an idea - can u try to send 0x10 0x10 instead of 0x90 0x90 ? (ie 10 10 instead of 90 90)
User avatar
CS70
Jedi Poster
Posts: 7800
Joined: Mon Nov 26, 2012 1:00 am
Location: Oslo, Norway
Silver Spoon - Check out our latest video and the FB page

Re: Sysex feeling like a punishment

Postby desmond » Mon Mar 08, 2021 7:42 pm

nathanscribe wrote:Unfortunately that would be Sinclair BASIC or Z80 assembler. ;)

You got a MIDI interface for those? ;)
User avatar
desmond
Jedi Poster
Posts: 11435
Joined: Tue Jan 10, 2006 1:00 am
mu:zines | music magazine archive | difficultAudio

Re: Sysex feeling like a punishment

Postby CS70 » Mon Mar 08, 2021 7:47 pm

Ah. According to the spec, Manufacturer ID 0x00 is "Used for ID extensions".
https://www.midi.org/specifications-old ... id-numbers

(fun that the spec has "-old" in its URL)

If you look a bit down in the page you can see how this is used - exactly with a three 8 bit words sequence.

I strongly suspect the 00 90 90 sequence is there exactly to indicate that the message is for the 9090

If the software you sent from does not understand this it might be mangling the message (masking to 0-127, for example) so that the 9090 thinks it's not a message for itself.
User avatar
CS70
Jedi Poster
Posts: 7800
Joined: Mon Nov 26, 2012 1:00 am
Location: Oslo, Norway
Silver Spoon - Check out our latest video and the FB page

Re: Sysex feeling like a punishment

Postby desmond » Mon Mar 08, 2021 8:10 pm

Ah, interesting...

None of those ID extensions violate the 7-bit data byte rule though.

$90 is still against the MIDI spec, which is why the sysex strings get terminated. Looks like the developer chose $90 $90 because it looked cool, without realising that *all MIDI data bytes are 7-bit values*. $7F is as high as one individual data byte can go. No exception... :headbang:
User avatar
desmond
Jedi Poster
Posts: 11435
Joined: Tue Jan 10, 2006 1:00 am
mu:zines | music magazine archive | difficultAudio

Re: Sysex feeling like a punishment

Postby CS70 » Mon Mar 08, 2021 8:20 pm

nathanscribe wrote:
desmond wrote:You could try writing a little bit of code in your language of choice to spit out the necessary bytes via MIDI, and see whether that route works?

Unfortunately that would be Sinclair BASIC or Z80 assembler. ;)

You could search for some utility to send from the command line, for example https://github.com/gbevin/SendMIDI/releases
User avatar
CS70
Jedi Poster
Posts: 7800
Joined: Mon Nov 26, 2012 1:00 am
Location: Oslo, Norway
Silver Spoon - Check out our latest video and the FB page

Re: Sysex feeling like a punishment

Postby CS70 » Mon Mar 08, 2021 8:32 pm

desmond wrote:Ah, interesting...

None of those ID extensions violate the 7-bit data byte rule though.

$90 is still against the MIDI spec, which is why the sysex strings get terminated. Looks like the developer chose $90 $90 because it looked cool, without realising that *all MIDI data bytes are 7-bit values*. No exception... :headbang:

Yeah, since the synth is the one supposed to do the interpretation, it's not inconceivable the the programmers at the time did not apply that to the extended identification code. I mean code-wise, it would be natural to put the check of the sequence separately from the generic 0-127 byte processing in the synth, and so that in the synth's code no masking with 0x7f is done for these two bytes.

That's why initially, to try out, I proposed to use 0x10 instead of 0x90 (which is 0x90 masked by 0x7f).

But after looking as the spec, if I were a betting man, I would put my money on the synth not fully understanding/respecting the spec. It's not bulletproof precise.

Back in the time, the code sending the data was probably not caring much about what was sending...

As u say, it looks cool.

The trick for the OP is to find a way to send serial data without any check.
User avatar
CS70
Jedi Poster
Posts: 7800
Joined: Mon Nov 26, 2012 1:00 am
Location: Oslo, Norway
Silver Spoon - Check out our latest video and the FB page

Re: Sysex feeling like a punishment

Postby desmond » Mon Mar 08, 2021 8:42 pm

I mean I've seen some weird sysex specs designed by presumably mad, drunk or delusional Japanese engineers (Casio CZ, let's all take a drink! :lol: ) but putting effectively MIDI status bytes into a sysex string as part of the message just shows a fundamental misunderstanding of extremely basic MIDI basic fundamental basic fundamentals, at a basic, fundamental, basic level. Fundamentally.

No wonder Nathan's been having a hard time with this (blame the developer!) and no wonder random people claim success or not, because the behaviour of gear handling MIDI messages outside the spec is entirely unpredictable. I mean, the system's MIDI handling, and your MIDI interface and drivers all understand the MIDI spec, and will likely reject messages that violate it, or handle them in unpredictable ways. Maybe a particular MIDI driver on Windows and a particular version of the MIDI interface firmware doesn't check and lets that $90 byte through, and the message works for Random A. Guy, and he says "it's all good". But then Random B. Guy comes along, using the exact same gear, and says "Er, no this doesn't work" because his slightly later firmware version fixed a MIDI parsing bug that (correctly) no longer lets non-spec MIDI messages through.

Minefield.

Terrible, terrible implementation, and Nathan is suffering because of it (and presumably many many others.)

All all because sir needs his crash cymbals to decay as expected. Maybe sell the drum module and pick up a TR-505 - that'll do it! :lol: :beamup:

(If I were to guess, it's possible that Core MIDI on Macs won't let non-standard messages pass, and you're on a hiding to nothing. Windows, on the other hand, probably doesn't know or care much about MIDI, so it might let you send whatever bytes you wish...)
User avatar
desmond
Jedi Poster
Posts: 11435
Joined: Tue Jan 10, 2006 1:00 am
mu:zines | music magazine archive | difficultAudio

Re: Sysex feeling like a punishment

Postby nathanscribe » Mon Mar 08, 2021 9:00 pm

You jest, but the 505 is a great machine! :D




(waits)




Yeah no so I have been in touch with the author of Snoize Sysex Librarian, and it turns out they'd already had queries from 9090 owners and gone as far as coding a hacked version which somehow (I didn't ask) was intended to sidestep the issue. Still didn't work for me though the 9090 did respond by brielfy not flashing its LED during the first few bytes. I tried a few speeds and a few variations on the file (with the 90h replaced etc) and no joy.

I've been in touch with Trevor as well and he's aware there are problems and is going to fish out a later PIC with the updated firmware on. I don't have my own PIC capabilities so that's some good news.
User avatar
nathanscribe
Frequent Poster
Posts: 1263
Joined: Fri Jan 19, 2007 1:00 am
Location: Wakefield, for my sins.
I have no idea what I'm doing.

Re: Sysex feeling like a punishment

Postby desmond » Mon Mar 08, 2021 9:05 pm

Ah, good that you have some options.

(None of which would have been necessary had the developer RTFMM...)

I shall not react to the other thing. ;)
User avatar
desmond
Jedi Poster
Posts: 11435
Joined: Tue Jan 10, 2006 1:00 am
mu:zines | music magazine archive | difficultAudio

Re: Sysex feeling like a punishment

Postby The Elf » Mon Mar 08, 2021 9:10 pm

I never wanted for another TR-x0x drum machine since getting a TR-8S.

But this is kicking a man when he's down... :blush:

I don't know what you could use to transfer that data. Is it the kind of thing that a terminal window might be able to handle, perhaps? - though how you would set it up is beyond my skills.

Maybe this is the kind of thing for which our good Mr Folderol may be able to suggest a solution?

Overtaken by several posts and edits...
User avatar
The Elf
Jedi Poster
Posts: 16595
Joined: Tue Aug 14, 2001 12:00 am
Location: Sheffield, UK
An Eagle for an Emperor, A Kestrel for a Knave.

Re: Sysex feeling like a punishment

Postby CS70 » Mon Mar 08, 2021 9:11 pm

Haha agree!

And is something else needs to send a sysex sequence at some point, it will likely fail to be recognized the same way.

Still all Nathan needs to do is to find an utility that does NOT understand more midi than necessary to send the bytes as they are.
User avatar
CS70
Jedi Poster
Posts: 7800
Joined: Mon Nov 26, 2012 1:00 am
Location: Oslo, Norway
Silver Spoon - Check out our latest video and the FB page

Re: Sysex feeling like a punishment

Postby CS70 » Mon Mar 08, 2021 9:16 pm

nathanscribe wrote:it turns out they'd already had queries from 9090 owners and gone as far as coding a hacked version which somehow

There's different ways in which they could have "hacked" their code, for example, simply stopping to interpret anything with value greater than 127 (90 hex is 144 decimal) but still "cutting" it if it is.

What you need is a utility that sends the bytes as they are, no question asked and no processing done. 2002 style.

Not an expert on mac, but on Windows/Linux would be very simple - just use an hex editor to put the bytes in the files and then send them to the serial port to which the MIDI is attached.

But give a try to the tool I sent, it might be it does just that and there's a version for MacOS.
User avatar
CS70
Jedi Poster
Posts: 7800
Joined: Mon Nov 26, 2012 1:00 am
Location: Oslo, Norway
Silver Spoon - Check out our latest video and the FB page

Re: Sysex feeling like a punishment

Postby nathanscribe » Mon Mar 08, 2021 9:49 pm

CS70 wrote:But give a try to the tool I sent, it might be it does just that and there's a version for MacOS.

You mean using 10h instead of 90h? Doesn't work.

It seems to be a problem with the firmware in the 9090.
User avatar
nathanscribe
Frequent Poster
Posts: 1263
Joined: Fri Jan 19, 2007 1:00 am
Location: Wakefield, for my sins.
I have no idea what I'm doing.

PreviousNext