TM3030 freezes upon receiving multiple MIDI notes at once
TM3030 freezes upon receiving multiple MIDI notes at once
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?
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?
- Synthbuilder
- Super Deluxe Wiggler
- Posts: 3361
- Joined: Tue Mar 24, 2009 9:12 am
- Location: Cumbria, UK
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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
Do you know what firmware version your TM3030s are running? It should be written on the top of each PIC.
Tony
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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.
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.
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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:
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?
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
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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?
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?
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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:
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.
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
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.
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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?
Re: TM3030 freezes upon receiving multiple MIDI notes at once
Ardour seems to be free, so I'll download a copy and see what effect it's bulk messages have on my TM3030...
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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.
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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.
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.
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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.
Re: TM3030 freezes upon receiving multiple MIDI notes at once
I've uploaded an update file with brief instructions here:
TM3030 v1.4
Let me know if the instructions make sense
TM3030 v1.4
Let me know if the instructions make sense

Re: TM3030 freezes upon receiving multiple MIDI notes at once
Looks good and instructions seem simple enough.
I'll give it a try on the weekend! Thanks, sequentix!
I'll give it a try on the weekend! Thanks, sequentix!
- 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
should we all update or only if we have this problem? thanks
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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!
Many thanks Sequentix!
Re: TM3030 freezes upon receiving multiple MIDI notes at once
I'm not personally having issues with my TM3030 man that is amazing support. Thank you for your time and effort in updating this!
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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.
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.
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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.
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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.
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.
Re: TM3030 freezes upon receiving multiple MIDI notes at once
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.
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.
Re: TM3030 freezes upon receiving multiple MIDI notes at once
Hey. Hoping someone can please help
My Tm3030 is crashing. I'm sequencing out of an Octatrack into the 3030 and two other synths through a midi hub. The TM3030 freezes when I reach a certain threshold of note information being sent at once, usually around 8 notes simultaneously. I turned the clock send off (which I'd like to have on but oh well) and I updated the firmware to 1.4. It stopped dropping notes when more tracks were playing. A big improvement, but it's still crashing regularly. I have to mute midi channels and cycle the power to get it to work again. If I unmute enough channels it will inevitably freeze again. Does this sound like an issue with the octocoupler? How can I check? Should I change the receive channel? It's on one currently. I didn't build the synth I bought it from a friend. I'm not a builder but I'm ok with a multimeter and soldering iron. I love this synth. I want it to be reliable it sounds so good! Any help would be hugely appreciated. Thank you!!

- Synthbuilder
- Super Deluxe Wiggler
- Posts: 3361
- Joined: Tue Mar 24, 2009 9:12 am
- Location: Cumbria, UK
Re: TM3030 freezes upon receiving multiple MIDI notes at once
It could be, so you could try replacing the optocoupler chip and see if this does improve things. However, before you do that, you may want to connect the TM3030 directly to the Octatrack's midi output and see if it still crashes with the same data being sent to it. If it doesn't then perhaps it could be the midi hub you are using.
When you say hub, do you mean a midi through box? Does it have a power supply or is it self-powered? Ones without a power supply can often stumble sending large amounts of midi data.
Tony
Re: TM3030 freezes upon receiving multiple MIDI notes at once
Wow, thanks so much for responding! Really appreciate your help. Great thought! It’s a self powered midi thru box, but I just connected the 3030 straight to the Octatrack and it had the same problem :( I haven’t had any issues with the midi thru box before.
Is there a way to check if the octcoupler I have installed is malfunctioning? I ordered a couple replacement 6N137’s so let’s hope that’s it. If you have any other trouble shooting ideas I’d still love to hear them. Otherwise I’ll let you know if I fix it! Thank you so much
Is there a way to check if the octcoupler I have installed is malfunctioning? I ordered a couple replacement 6N137’s so let’s hope that’s it. If you have any other trouble shooting ideas I’d still love to hear them. Otherwise I’ll let you know if I fix it! Thank you so much

- Synthbuilder
- Super Deluxe Wiggler
- Posts: 3361
- Joined: Tue Mar 24, 2009 9:12 am
- Location: Cumbria, UK
Re: TM3030 freezes upon receiving multiple MIDI notes at once
Opto-couplers tend to fail quite subtly in the first instance. You'll very occasionally get hanging notes when the midi data stream is really busy, and the amount of failures will increase as the opto-coupler ages. The usual way to check this is to connect any other instruments via the device's midi through output. If all is well with the other instruments normally this would indicate no problem with opto-coupler. However, the TM3030's through port is not connected directly from the opto-coupler but via its microcontroller, ie. the PIC. So if there is a problem with the way the PIC handles the data then you will still get problems even if the opto-coupler is perfect.
So, it's maybe worth replacing the opto-coupler first and see if that cures it. But I'll ping Colin at Sequentix and see if he has any suggestions.
Tony
- Synthbuilder
- Super Deluxe Wiggler
- Posts: 3361
- Joined: Tue Mar 24, 2009 9:12 am
- Location: Cumbria, UK
Re: TM3030 freezes upon receiving multiple MIDI notes at once
Colin is on the case but he needs to know what the Octatrack is sending out to make sure it's not doing something peculiar. Can you record the midi output of the Octatrack?
You can use midiox or something like MidiEditor:
https://www.midieditor.org/index.php?category=intro
Simply choose a MIDI input port in the app and hit record. Send in the MIDI from the Octatrack. Hit stop in the app. Accept capture of events into the current track. Then you can save as a standard MIDI file.
Windows or Linux only though.
Then attach the midi file to here and we (er, that's Colin) will take a look.
Tony