MOTM-650 V1.3 RC1 bugs reported
2006-10-08 by Paul Schreiber
Yahoo Groups archive
Index last updated: 2026-04-28 23:35 UTC
Thread
2006-10-08 by Paul Schreiber
There are 2 know issues with this release: a) Sustain pedal use in Unison voice assignments b) sending "illegal" MIDI notes (outside the defined 127 note range) to the MOTM-650. Apparently, some software programs do this. These are both being fixed shortly. I'll post the RC2 code when ready. If there are any more, I need to know! Paul S.
2006-10-08 by Adam Schabtach
> b) sending "illegal" MIDI notes (outside the defined 127 note > range) to the MOTM-650. Apparently, some software programs do this. At the risk of trying to troubleshoot a system I'm completely unfamiliar with, I'm not sure that that's a correct diagnosis. The only way a MIDI note number could be outside of the range [0, 127] is if the high bit of its byte was set. The MIDI spec says that if the high bit of a byte--any byte--is set, then it's a Status byte, not a data byte. [See pages 4-5 of the MIDI spec] So in other words, could it be that "some software programs" are sending Status bytes that the 650 isn't expecting, rather than "'illegal' MIDI notes"? --Adam
2006-10-08 by djbrow54
You are correct and this 'error' should be ignored. It was my test software to try and get MIDI notes in the various ranges. I had written some software to transpose down two octaves and my keyboard wrapped around to notes -1, -2 -3, etc. Of course these should have been interpretted as real time single byte messages but the problem is that the -650 whould then use the following data as the note number and velocity, but of course it was just velocity so now the MIDI sequence is all screwed up. This IS NOT an issue with the -650. It was an issue with my test code. On the good side, I found the -650 performance flawless with MIDI notes in the range of 0 - 12 other than the noted unison issue with the sustain pedal. It might be interesting sometime to throw a bunch of real-time messages at it and see how it performs. Sorry for the confusion. Dave --- In motm@yahoogroups.com, "Adam Schabtach" <adam@...> wrote:
> > > > b) sending "illegal" MIDI notes (outside the defined 127 note > > range) to the MOTM-650. Apparently, some software programs do > > this. > > At the risk of trying to troubleshoot a system I'm completely > unfamiliar with, I'm not sure that that's a correct diagnosis. The > only way a MIDI note number could be outside of the range [0, 127] > is if the high bit of its byte was set. The MIDI spec says that if > the high bit of a byte--any byte--is set, then it's a Status byte, > not a data byte. [See pages 4-5 of the MIDI spec] So in other words, > could it be that "some software programs" are sending Status bytes > that the 650 isn't expecting, rather than "'illegal' MIDI notes"? > > --Adam >
2006-10-08 by jfm3
On Sun, 2006-10-08 at 09:35 -0600, Adam Schabtach wrote: > The MIDI spec says that if the high bit of a byte--any byte--is > set, then it's a Status byte, not a data byte. [See pages 4-5 of the > MIDI > spec] So in other words, could it be that "some software programs" are > sending Status bytes that the 650 isn't expecting, rather than > "'illegal' > MIDI notes"? I was thinking the same thing. Some status bytes can happen in the middle of other multi-byte messages, if I recall correctly.
2006-10-08 by Adam Schabtach
Thanks for the explanation. That makes a whole lot more sense. :-) --Adam
> -----Original Message----- > From: djbrow54 [mailto:davebr@...] > Sent: Sunday, October 08, 2006 10:23 AM > To: motm@yahoogroups.com > Subject: [motm] Re: MOTM-650 V1.3 RC1 bugs reported > > You are correct and this 'error' should be ignored. It was > my test software to try and get MIDI notes in the various > ranges. I had written some software to transpose down two > octaves and my keyboard wrapped around to notes -1, -2 -3, etc. > > Of course these should have been interpretted as real time > single byte messages but the problem is that the -650 whould > then use the following data as the note number and velocity, > but of course it was just velocity so now the MIDI sequence > is all screwed up. This IS NOT an issue with the -650. It > was an issue with my test code. > > On the good side, I found the -650 performance flawless with > MIDI notes in the range of 0 - 12 other than the noted unison > issue with the sustain pedal. > > It might be interesting sometime to throw a bunch of > real-time messages at it and see how it performs. > > Sorry for the confusion. > > Dave > > --- In motm@yahoogroups.com, "Adam Schabtach" <adam@...> wrote: > > > > > > > b) sending "illegal" MIDI notes (outside the defined 127 note > > > range) to the MOTM-650. Apparently, some software > programs do this. > > > > At the risk of trying to troubleshoot a system I'm completely > > unfamiliar with, I'm not sure that that's a correct diagnosis. The > > only way a MIDI note number could be outside of the range > [0, 127] is > > if the high bit of its byte was set. The MIDI spec says that if the > > high bit of a byte--any byte--is set, then it's a Status > byte, not a > > data byte. [See pages 4-5 of the MIDI spec] So in other > words, could > > it be that "some software programs" are sending Status > bytes that the > > 650 isn't expecting, rather than "'illegal' MIDI notes"? > > > > --Adam > > > > > > > > > > Yahoo! Groups Links > > > > > > > > > > >
2006-10-08 by Neil Bradley
> b) sending "illegal" MIDI notes (outside the defined 127 note range) to the > MOTM-650. Apparently, some software programs do this. How is this possible? MIDI Notes only have a possibility of 128 total notes because of 7 bits. If the top bit is set, it's no longer a MIDI note. -->Neil ---------------------------------------------------------------------------- C. Neil Bradley KE7IXP Beaverton, Oregon
2006-10-08 by Paul Schreiber
>> b) sending "illegal" MIDI notes (outside the defined 127 note range) to the >> MOTM-650. Apparently, some software programs do this. > > How is this possible? MIDI Notes only have a possibility of 128 total > notes because of 7 bits. If the top bit is set, it's no longer a MIDI > note. Apparently, crappy VST plug-ins written by Russian students. But they were 'free', right? :) Paul S.
2006-10-08 by J.D. McEachin
At 10:03 AM 10/8/2006 -0500, Paul Schreiber wrote: >b) sending "illegal" MIDI notes (outside the defined 127 note range) to the >MOTM-650. Apparently, some software programs do this. Actually, there are 128 legal Midi notes - 0 to 127. Using note #127 w/ the sustain pedal causes problems. Jeffrey
2006-10-08 by djbrow54
Ok - OK -OK - you caught me. It was my code, writen for an AVR late at night. I wanted to check MIDI notes 0 - 12 so just did a quick transposition down 2 octaves with a simple subtraction. I thought I caught wrap arounds but didn't. I picked up the bad notes on my MIDI monitor (also written for an AVR and for sale by John Loffink) and they hosed the -650. Probably should have kept it my dark secret instead of mentioning it since it caused so much confusion. Let me set the record straight ... No, they were not illegal notes, but realtime messages. Yes, the follow on bytes were illegal since I dropped the midi note. Yes, I did violate MIDI specifications, however unintentioned No, I am not Russian No, I do not do VST plug-ins, all my code is assembly Yes, I am sorry. Yes, I am sorry. Yes, I am sorry. Now, back to writing some more test code for the -650. Anything else you guys want me to test!!! Dave --- In motm@yahoogroups.com, "Paul Schreiber" <synth1@...> wrote: > > >> b) sending "illegal" MIDI notes (outside the defined 127 note range) to the > >> MOTM-650. Apparently, some software programs do this. > > > > How is this possible? MIDI Notes only have a possibility of 128 total > > notes because of 7 bits. If the top bit is set, it's no longer a MIDI > > note. > > Apparently, crappy VST plug-ins written by Russian students. But they were
> 'free', right? :) > > Paul S. >
2006-10-08 by Neil Bradley
>>> b) sending "illegal" MIDI notes (outside the defined 127 note range) to >>> the >>> MOTM-650. Apparently, some software programs do this. >> >> How is this possible? MIDI Notes only have a possibility of 128 total >> notes because of 7 bits. If the top bit is set, it's no longer a MIDI >> note. > > Apparently, crappy VST plug-ins written by Russian students. But they were > 'free', right? :) What Adam said. If they're outside the 128 note range, they aren't MIDI notes any longer. -->Neil ---------------------------------------------------------------------------- C. Neil Bradley KE7IXP Beaverton, Oregon
2006-10-08 by Adam Schabtach
> Ok - OK -OK - you caught me. It was my code, writen for an > AVR late at night. Sorry, I didn't mean to start a Let's Pick On Dave thread. I was actually trying to help--I know (all too well) how it's possible to overlook the obvious when I've been staring at my own code for too long, and I thought maybe an outside perspective might help. > Now, back to writing some more test code for the -650. > Anything else you guys want me to test!!! Has anyone looked at the timing precision of the 650's outputs? E.g. send it a steady stream of 16th notes @ 120BPM from the sequencer of your choice, record the activity of the 650's gate output, look at the variation in time (if any) from one rising edge of the gate to the next. --Adam
2006-10-08 by mcb, inc.
On Sun, 8 Oct 2006, djbrow54 wrote: > Now, back to writing some more test code for the -650. Anything else > you guys want me to test!!! Actually, there's an interesting test mechanism here. Goes by various names but the latest buzzword is 'fuzzing': sending random protocol/arguments into black boxes to see what happens. Building a MIDI fuzzer and letting it loose on the various commercial MIDI implementations ought to be entertaining (and will probably start a few house fires). m -- Monty Brandenberg
2006-10-09 by djbrow54
Yea, fuzzing, that's what I was doing. I just didn't want to appear to be too sophisticated by citing my use of advanced digital testing methodologies. I thought it might go over everyone's head. And, of course, instead of using the more traditional structured queues of fuzzy data, I wrote a real-time midi random event fuzzing generator. Now, of course, the use of fuzzing is controversial because of invalid input data. However, I wanted to ensure that the MOTM-650 would withstand a midi data stream security attack. You can rest assured that your MOTM-650 is being subjected to the most advanced and rigorous testing methodologies and the result will be advanced security in hostile midi environments. Yea, that's what I was doing. Dave --- In motm@yahoogroups.com, "mcb, inc." <mcbinc@...> wrote: > > On Sun, 8 Oct 2006, djbrow54 wrote: > > > Now, back to writing some more test code for the -650. Anything else
> > you guys want me to test!!! > > Actually, there's an interesting test mechanism here. Goes by > various names but the latest buzzword is 'fuzzing': sending > random protocol/arguments into black boxes to see what happens. > Building a MIDI fuzzer and letting it loose on the various > commercial MIDI implementations ought to be entertaining (and > will probably start a few house fires). > > m > > -- > Monty Brandenberg >
2006-10-10 by J.D. McEachin
At 12:43 AM 10/9/2006 -0000, djbrow54 wrote: >Yea, fuzzing, that's what I was doing. I just didn't want to appear >to be too sophisticated by citing my use of advanced digital testing >methodologies. I thought it might go over everyone's head. And, of >course, instead of using the more traditional structured queues of >fuzzy data, I wrote a real-time midi random event fuzzing generator. >Now, of course, the use of fuzzing is controversial because of invalid >input data. However, I wanted to ensure that the MOTM-650 would >withstand a midi data stream security attack. You can rest assured >that your MOTM-650 is being subjected to the most advanced and >rigorous testing methodologies and the result will be advanced >security in hostile midi environments. Yea, that's what I was doing. As one of the 650's firmware developers, I think that's great. I welcome the torture test. The 650 should be able to respond predictably to any midi data, whether valid or invalid. Do your worst. ;) As for the observed problem - it turns out the 650 WILL choke on a valid note #, 127 (7fh), but ONLY when the sustain pedal is used. This is due to a bad decision I made 10 years ago when designing the firmware for a synth that could only respond to 64 notes. I chose to use the msbit to hold the sustain status, because I was trying to save as many bytes of RAM as possible. Using the msbit works fine for notes 0-126. For #127, when a note is sustained, it looks like just like an unused note (to the note release section of the code, that is). Hence the hung notes. :( So, I am faced with either rewriting a lot of code, or just ignoring note #127. I've chosen the latter, and that'll be in RC2 (hopefully tomorrow). To those who own 128 key keyboards, and to those who transpose their music up so their dogs can enjoy it, I apologize. ;) If enough people complain, I'll consider a rewrite. I seriously doubt anyone else will notice note #127 is gone, though. Jeffrey
2006-10-10 by Paul Schreiber
> So, I am faced with either rewriting a lot of code, or just ignoring note > #127. I've chosen the latter, and that'll be in RC2 (hopefully tomorrow). To > those who own 128 key keyboards, and to those who transpose their music up so > their dogs can enjoy it, I apologize. ;) If enough people complain, I'll > consider a rewrite. I seriously doubt anyone else will notice note #127 is > gone, though. Ignore that last note. Let's get this code solid, add the discrepancy to the docs, and move forward. Paul S. all about moving forward