TM3030 freezes upon receiving multiple MIDI notes at once

Discussion and support for users and builders of Oakley Sound musical products.
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 »

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: 3361
Joined: Tue Mar 24, 2009 9:12 am
Location: Cumbria, UK

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Synthbuilder »

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 »

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 »

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 »

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 »

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 »

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 »

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: 241
Joined: Sun Jan 10, 2016 4:50 pm
Location: Dorset, UK

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by eljay »

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 »

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: 241
Joined: Sun Jan 10, 2016 4:50 pm
Location: Dorset, UK

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by eljay »

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 »

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 »

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 »

should we all update or only if we have this problem? thanks
eljay
Common Wiggler
Posts: 241
Joined: Sun Jan 10, 2016 4:50 pm
Location: Dorset, UK

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by eljay »

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: 123
Joined: Thu Aug 13, 2015 6:41 pm
Location: Florida, USA

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by tvh »

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: 302
Joined: Fri Dec 28, 2012 1:18 pm
Location: The Netherlands

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Jop »

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 »

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: 302
Joined: Fri Dec 28, 2012 1:18 pm
Location: The Netherlands

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Jop »

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: 302
Joined: Fri Dec 28, 2012 1:18 pm
Location: The Netherlands

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by Jop »

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.
speepbibu
Learning to Wiggle
Posts: 8
Joined: Thu Feb 17, 2022 1:12 am

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by speepbibu »

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!!
User avatar
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

Post by Synthbuilder »

speepbibu wrote: Thu Feb 17, 2022 1:34 amDoes this sound like an issue with the octocoupler?
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
speepbibu
Learning to Wiggle
Posts: 8
Joined: Thu Feb 17, 2022 1:12 am

Re: TM3030 freezes upon receiving multiple MIDI notes at once

Post by speepbibu »

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 :)
User avatar
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

Post by Synthbuilder »

speepbibu wrote: Fri Feb 18, 2022 2:03 amIs there a way to check if the octocoupler I have installed is malfunctioning?
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
User avatar
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

Post by Synthbuilder »

speepbibu wrote: Fri Feb 18, 2022 2:03 amIf you have any other trouble shooting ideas I’d still love to hear them.
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
Post Reply

Return to “Oakley Sound Systems”