TM3030 freezes upon receiving multiple MIDI notes at once

Discussion and support for users and builders of Oakley Sound musical products.

Moderators: Kent, Synthbuilder

Post Reply
Grumskiz
Wiggling with Experience
Posts: 346
Joined: Thu Apr 03, 2014 12:51 pm
Location: Germany

TM3030 freezes upon receiving multiple MIDI notes at once

Post by Grumskiz » Thu Jun 11, 2020 3:36 pm

I know it's been some time since these were officially sold (and since I built mine), but today I finally found what I believe is the key issue with my two TM3030s:

Until just a few days ago I pretty much exclusively used these with the arturia beatstep sequencer. Very rarely I found that the TM3030 stopped responding to any MIDI notes until power cycled. It also stopped transmitting to its MIDI Out port. I know this because I have two units running the MIDI Out of the first to the MIDI In of the second. Whenever the first froze, I also could not reach the second anymore, eventhough they are set up to respond to different MIDI channels. But I never knew the exact cause of the issue.

Recently I've started using the Ardour software for both MIDI and Audio and the TM3030s keep freezing up. They respond to individual notes just fine, but starting a sequence locks them. Now I think the issue is that too many MIDI messages are sent at the same time.
Single keystrokes work fine, sequences from the beatstep work fine even at ridiculous speeds. Hitting and holding a key and then a second one activates the slide as expected. But hitting two or more keys exactly at the same time freezes the unit, even using the beatstep as a "keyboard".

I noticed some older threads with similar issues. I've tried deactivating control messages and MIDI clock in Ardour, no change. I tried replacing the optocoupler in the TM3030 with one from a different batch, no change.

I'm not sure what to look for now. Any tips?

User avatar
Synthbuilder
Super Deluxe Wiggler
Posts: 3009
Joined: Tue Mar 24, 2009 9:12 am
Location: Cumbria, UK

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Synthbuilder » Fri Jun 12, 2020 2:54 am

I'm not an expert on the midi part of the TM3030 but I'll forward this onto Colin Fraser who wrote the firmware code for the TM3030's PIC. The code that the TM3030 uses is the same as the Sequentix midibass which is a retrofit midi interface kit for the Roland TB-303. I know that he has made several changes to the firmware over the years as some subtle issues have been found. I think there was a problem with sequencers and controllers that send active sensing or unexpected running status bytes. If your sequencer allows you to turn off active sensing then that would be worth a try.

Do you know what firmware version your TM3030s are running? It should be written on the top of each PIC.

Tony

sequentix
Common Wiggler
Posts: 53
Joined: Sun Nov 29, 2009 10:34 am

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by sequentix » Fri Jun 12, 2020 3:33 am

The active sense bug in older versions is the only bug I know of. In that case, any active sense byte was incorrectly clearing the MIDI running status.
So if notes were being sent using running status, notes coming after an active sense byte would not be ignored until the status was refreshed (usually by sending a channel message on another channel).
The latest version of the firmware was v1.3
In cases like this, it's always better to know exactly what MIDI is causing the problem, with a MIDI-Ox dump or similar.

Grumskiz
Wiggling with Experience
Posts: 346
Joined: Thu Apr 03, 2014 12:51 pm
Location: Germany

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Grumskiz » Fri Jun 12, 2020 7:42 am

Thanks for the quick replies!
The firmware version is 1.3 on board issue 3. I'm pretty sure at least one of the boards must've been from the final batch you sold, Tony.

I haven't found a fix yet, but I noticed that Ardour will send a whole bunch of commands when starting or stopping a sequence, I guess for resetting the instruments. Here's an example I captured:

Code: Select all

    48640949      Controller chn 14 40 00
    48641026      Controller chn 14 7b 00
    48641081      Controller chn 15 40 00
    48641161      Controller chn 15 7b 00
    48641238      Controller chn 16 40 00
    48641300      Controller chn 16 7b 00
    48721246          NoteOn chn  1 3c 40
    48721255          NoteOn chn  1 3c 4b
    48743305         NoteOff chn  1 3c 00
    48743310         NoteOff chn  1 3c 00
    48781447      Controller chn  1 40 00
    48781503      Controller chn  1 7b 00
    48781583      Controller chn  2 40 00
    48781662      Controller chn  2 7b 00
    48781722      Controller chn  3 40 00
    48781832      Controller chn  3 7b 00
You can see my example "sequence" in the middle and a small section of the beginning and end commands surrounding it. These commands repeat for channels 1-16. I believe the 0x7b command is "All Notes Off", not exactly sure about the 0x40 one tho. So far I haven't found the option to deactivate this or restrict it to specific channels, but I believe this may be overloading the TM3030?

sequentix
Common Wiggler
Posts: 53
Joined: Sun Nov 29, 2009 10:34 am

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by sequentix » Fri Jun 12, 2020 10:33 am

The controllers shouldn't be a problem. There is a large receive buffer.
The duplicate note-ons are more likely to be a problem.
You have two note-ons with the same note number in a row.
Many MIDI devices will behave differently with duplicate note-ons, since the behaviour isn't well defined in the MIDI spec.
It is permitted with MIDIBass, and IIRC TM3030, to allow a change of accent state without a note off (as is possible in an original 303 sequencer using a combination of slide between the same notes, and different accents).
But it's possible that having duplicate note-ons without changing the velocity is leaving a hung note...
I'll need to review the code.
Does the gate stay high?

Grumskiz
Wiggling with Experience
Posts: 346
Joined: Thu Apr 03, 2014 12:51 pm
Location: Germany

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Grumskiz » Fri Jun 12, 2020 11:36 am

The example I made should have been a single note. It's a single note in the editor.
I just recreated it from scratch and got the same behaviour:

Code: Select all

    27976977          NoteOn chn  1 3c 35
    27976977          NoteOn chn  1 3c 35
    27989939         NoteOff chn  1 3c 00
    27989939         NoteOff chn  1 3c 00
To be honest, I think what we're seeing can be attributed to the MIDI tracer. I consistently get doubles on it. The event numbers on the left also are identical leading me to believe we're actually looking at only one message each time.

I've made some progress playing the test sequence and even two more, one with multiple notes in sequence, one with overlapping notes.
The TM3030 does play the notes and the gate does not stay high at the end. So again I don't think we have a problem with overlapping notes specifically.
But for this to work I have to reset the time slider before making the MIDI connections, because moving it sends Controller messages freezing the device.
When I set everything up correctly the sequence will play, but reaching the end or hitting Pause/Stop again sends Controller messages upon which it stops responding.

Changing the mod wheel does nothing, sending a Panic All Notes Off also doesn't help.
So far I know of no way to get the device to respond again other than power cycling.

Using a virtual MIDI keyboard, I can safely hit two or more keys at the same time, resulting in a slide. On the Beatstep this causes only one note to play and then the device is frozen. I believe the reason might be that the Beatstep sends a bunch of PolyPressure messages.
Pressing only one of it's pads always seems to work fine though.

Grumskiz
Wiggling with Experience
Posts: 346
Joined: Thu Apr 03, 2014 12:51 pm
Location: Germany

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Grumskiz » Sun Jun 14, 2020 6:58 am

I hope it's okay that I double-post, as I've done more testing:
  • I tried multiple USB2MIDI interfaces now without any change.
  • I have verified with a seperate MIDI monitor that the outgoing messages are not in fact doubled. This was just an error in the MIDI tracer I used originally.
  • Whenever I use the "Stop" button or move the playhead around the Ardour software sends All Notes Off and a Sustain Pedal message on all channels on MIDI Out ports. This behaviour is intentional and currently can't be restricted. It should work with all MIDI devices, but another user has experienced similar issues with old Roland synthesizers: https://discourse.ardour.org/t/ardour-o ... ynth/88189
  • I verified that the components around the optocoupler have the correct values
  • I looked at the datasheet for the Kingtronics crystal oscillator that I use. It specifies 8pF to 32pF load capacitance. I used 33pF ceramic disk capacitors as per the build guide. Is this a problem?

sequentix
Common Wiggler
Posts: 53
Joined: Sun Nov 29, 2009 10:34 am

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by sequentix » Wed Jun 17, 2020 3:12 pm

Ardour seems to be free, so I'll download a copy and see what effect it's bulk messages have on my TM3030...

eljay
Common Wiggler
Posts: 115
Joined: Sun Jan 10, 2016 4:50 pm
Location: Bransgore, UK

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by eljay » Fri Jun 19, 2020 6:41 am

I have noticed a similar problem when the TM3030 has a midi connection to my Korg EMX-1. I haven't done an in depth analysis of the problem but I suspect it's related. The TM3030 locks up if the midi is connected and then the EMX-1 is powered up or if the pattern is changed. I suspect it sends something like a midi all notes off message or other reset type messages.

sequentix
Common Wiggler
Posts: 53
Joined: Sun Nov 29, 2009 10:34 am

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by sequentix » Sat Jun 20, 2020 12:19 pm

I was able to replicate the problem with a trial copy of Ardour.
It isn't the specific messages that are the problem. It's not even data that is being received by the Tm3030.
There's a simple soft-thru function, that copies every received MIDI byte to the transmit register, so they'll appear on the MIDI thru if you have it wired up. In theory, there could never be an over-run with that, as the receive and transmit baud rates are the same, but a sending device with a slightly over-speed baud rate might cause a problem with a large burst of bytes, so I included a check that the transmit buffer was empty before doing the soft-thru. For some reason, the code can get stuck there after the reception of a large group of contiguous bytes (>32 when I was testing, far fewer than the 256 bytes the input buffer could handle).
At least, when I commented the soft-thru code out, large blocks of received bytes are no longer causing a lock up.
These can be any bytes, it doesn't matter if it's being received, or just passed through, it's the number of contiguous bytes that matters.
I can't see why this should be a problem (the bit being waited on should reset itself), but it wouldn't be the first weird behaviour with a PIC USART...
I'll add the soft-thru function back in with a proper buffered output.
I'll test that next week, and post a sysex file for a firmware update.
It's relatively easy to update these units. There's a bootloader that listens for a sysex trigger briefly at boot time, to enter firmware update mode.
You start sending a sysex file with a repeating trigger while you power on the unit.
Then you send it a firmware sysex file once it's in update mode.

eljay
Common Wiggler
Posts: 115
Joined: Sun Jan 10, 2016 4:50 pm
Location: Bransgore, UK

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by eljay » Sat Jun 20, 2020 4:51 pm

Many thanks sequentix for taking the time to follow up on this, it's an old piece of code so it's brilliant you are still willing and able to support it. I look forward to hearing that you have been able to resolve the problem successfully.

sequentix
Common Wiggler
Posts: 53
Joined: Sun Nov 29, 2009 10:34 am

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by sequentix » Thu Jun 25, 2020 6:31 am

I've uploaded an update file with brief instructions here:
TM3030 v1.4

Let me know if the instructions make sense :)

Grumskiz
Wiggling with Experience
Posts: 346
Joined: Thu Apr 03, 2014 12:51 pm
Location: Germany

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Grumskiz » Thu Jun 25, 2020 10:45 am

Looks good and instructions seem simple enough.
I'll give it a try on the weekend! Thanks, sequentix!

User avatar
Paradigm X
Super Deluxe Wiggler
Posts: 2056
Joined: Tue Nov 02, 2010 5:43 am

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Paradigm X » Thu Jun 25, 2020 11:20 am

should we all update or only if we have this problem? thanks

eljay
Common Wiggler
Posts: 115
Joined: Sun Jan 10, 2016 4:50 pm
Location: Bransgore, UK

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by eljay » Fri Jun 26, 2020 3:29 am

Many thanks for the update. I have downloaded and applied the update, initial testing seems to indicate my locking up problem is resolved. I observed the following whilst performing the update : After sending the "trigger" file the Slide and Power LEDS were lit, I don't know if this is deliberate to indicate the unit is now in 'update' mode. I didn't observe the brief sysex message from the Midi Thru socket but that could well be due to me not setting up the monitor window in MIDI-OX correctly. After downloading the firmware update I re-cycled the power, the Slide LED was no longer lit and the unit appears to be working correctly.

Many thanks Sequentix!

User avatar
tvh
Common Wiggler
Posts: 111
Joined: Thu Aug 13, 2015 6:41 pm
Location: Florida, USA

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by tvh » Wed Jul 01, 2020 6:10 am

I'm not personally having issues with my TM3030 man that is amazing support. Thank you for your time and effort in updating this!

Jop
Wiggling with Experience
Posts: 301
Joined: Fri Dec 28, 2012 1:18 pm
Location: The Netherlands

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Jop » Fri Jul 03, 2020 2:00 am

Hi Colin,

Thanks a lot for the updated firmware, amazing support indeed!

Yesterday I tried to update my machine (using MIDI-OX) but it looks like it's somewhere stuck. After the update process, the unit does not respond to any midi signals (turning on just lights the power and accent leds).

I made sure there was a delay when sending the trigger file, but couldn't verify I was in firmware update mode (no thru socket). Repeated the update process several times with no luck. Also tried to sending MIDI receive channel to default 1 via sysex without change.

Before the update, my unit was working without issue.

What could go wrong in the update process? Is there any reset I can perform?

Thanks.

sequentix
Common Wiggler
Posts: 53
Joined: Sun Nov 29, 2009 10:34 am

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by sequentix » Wed Jul 15, 2020 8:18 am

Jop wrote:
Fri Jul 03, 2020 2:00 am
What could go wrong in the update process? Is there any reset I can perform?
The only thing that can go wrong, that would stop it from booting, would be an incomplete update of the firmware.
The bootloader will enter firmware update mode if the checksum doesn't match.
it seems likely you managed to get into firmware update mode, then got a partial update that didn't complete.
Which app did you use to transmit the sysex file?
Have you got a 5 pin DIN socket you could wire to the thru/out header?
It doesn't have to be permanently installed, but it makes diagnosis a lot easier if you can see the output.
The bootloader will send the sysex string F0:00:20:5F:43:48:4B:21:F7 if the firmware checksum is bad.

Jop
Wiggling with Experience
Posts: 301
Joined: Fri Dec 28, 2012 1:18 pm
Location: The Netherlands

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Jop » Thu Jul 16, 2020 2:43 pm

Hi Colin,

Thanks for your reply. For sysex transmitting I've used MIDI-OX.

Sure I have a DIN socket,as soon as I return from my holiday I will connect and see what the bootloader is sending.

Jop
Wiggling with Experience
Posts: 301
Joined: Fri Dec 28, 2012 1:18 pm
Location: The Netherlands

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Jop » Sat Jul 25, 2020 3:27 am

Hi Colin,

I'm back and just connected the midi out, sysex received =

00005ED5 2 2 F0 Buffer: 10 Bytes System Exclusive
SYSX: F0 00 20 5F 1E 43 48 4B 21 F7

So can I assume the checksum is bad (only difference is the additional '1E'), and what can I do to recover?

Thank you.

Post Reply

Return to “Oakley Sound Systems”