Jump to content

Warning: Possible MIOS Bug


TK.
 Share

Recommended Posts

This time I will report a bug to avoid that you stumble accross the same problem... following discrepancy cannot be explained yet:

if MIDI Merger is enabled and the core receives common MIDI events (like Notes, CC, ...) as well as a MIDI clock, the common events forwarded to the MIDI Out are sometimes corrupted. Sometimes means: with a propability of ca. 1% - therefore hard to reproduce.

I won't have the time to fix this in the next days. So, if you notice such a problem, don't use MIDI clock and MIDI Merger at the same time!

Best Regards, Thorsten.

Link to comment
Share on other sites

I never had luck with the midi merger inbuilt on my old MB64, things always crashed. Can't really remember the details now. (posted them maybe 18 months ago!) I guess people could build a dedicated merger in the meantime. Simplest ucapps project, use up your old PIC16F874 or '877's! Build easily on veroboard! (BTW, how do you get it to work on '877? I can only find the firmware for '874.

Link to comment
Share on other sites

Of course, especially the MIDIbox SID gets intensively use of the Merger. Steve: therefore an external merger won't really help here. So far as I remember, the PIC16F related problem was due to a buffer overrun (limited RAM)... but this isn't the case anymore with the PIC18F.

I assume a really nasty bug somewhere in MIOS_MPROC or MIOS_MIDI. Although the handlers take special care for realtime events >= 0xf8 (they don't affect the running status), there could be a problem somewhere which does happen in very rare cases.

I wrote a small test application for two core modules which stresses the MIDI lines extensively with random Note On/Off and MIDI clocks. Incoming events will be checked against the sent events. This application failed last night with 10 transmission errors within 12 hours...

It could also be an error in MIDI-Ox, or Windows, or my MIDI interfaces (I used MIDIsport 2x2 and Hammerfall DSP and not MBHP_USB just to exclude another source of errors). So, this issue is really an adventure ;-)

Best Regards, Thorsten.

P.S.: PayC: do you really chain the MIDImon with the MIDIbox SID? This is not necessary, you can also connect the monitor in parallel to the Rx line, this reduces the latency by ca. 300-500 uS. Or did you mean, that you want to chain the monitor for testing?

Link to comment
Share on other sites

Sorry guys, no SID for you ;-)

It seems that this issue is not caused by MIOS, but by my MIDIsport 2x2, because my merger test didn't fail with other interfaces. I also noticed that the latency of MIDIsport is much higher than on the others, so a buffer overrun inside the M-Audio firmware could be the reason.

See also: http://www.midibox.org/cgi-bin/yabb/YaBB.cgi?board=mios_toy;action=display;num=1077232194

Best Regards, Thorsten.

Link to comment
Share on other sites

I finally found out that it is a MIOS bug.

It occurs very rarely when the MIOS_MIDI_TxBufferPut function is interrupted by the TX buffer handler. The last part of this function must be atomic, means: interrupts have to be disabled during the execution to avoid a malfunction.

So, especially applications which are using the MIDI Merger and MIDIbox Link extensively like MIDIbox SID, but also linked MB64, MB64E, MBLC, etc... will require a bugfixed MIOS version.

I will release a new version (v1.6) in next days which will also provide some new functions especially for MIDIbox SEQ (BankStick Page Read, improved MIOS_Timer_Init, etc...)

Best Regards, Thorsten.

Link to comment
Share on other sites

Yes, perhaps this was the reason.

Since you are a MIOS power user (;-)), could you please try http://www.ucapps.de/tmp/mios_v1_6_rc1.zip?

Currently this version is under test with MIDIbox SID and MIDIbox SEQ (the sequencer plays a 16 track sequence with 255 BPM since one hour, if all 4 SIDs still run stable until tomorrow, I know if the fix was successfull or not).

I haven't tested this version with any other application, yet...

Best Regards, Thorsten.

Link to comment
Share on other sites

Hey T...

MIOS Power user eh... im honoured - tho i think a MIOS floundering user might be more apt ;p

neway...to mios 1.6...

Loaded it up on all 3 cores, and then slapped me LC f/w's on and fired up logic...once again logic wouldnt recognose the box (using to-comm) however, I went to the LC setup page in logic and added one manually. Still no reaction on the LCD to acknowledge this (stays in the default title screen) again tho, i can still control the faders - weird. So I then tried clicking on the 'write firmware' button and logic said this:

lc-msg.JPG

The same text was also displayed on the lcds - hoorah! if I click 'ok' it just keeps coming up with that message, if i click cancel all is good and working fine (track info shows up on lcd's etc etc) :D only thing is, I have to repeat the process everytime I open logic...but hey we have some progress! :)

Nice1

Dan

Link to comment
Share on other sites

Still no reaction on the LCD to acknowledge this (stays in the default title screen) again tho, i can still control the faders - weird.

My LC has been doing the same, but mine is on Mios 1.5. It works fine on my other computer though, so maybe some setting has been disrupted in logic. I will do a re-install of logic, I think. Meanwhile I have to tidy my room, to even get to see the LC, and my computer! (had to move furniture around, and now I can't find anything, so I'm on my Bro's PC right now!)

Loaded it up on all 3 cores, and then slapped me LC f/w's on and fired up logic...once again logic wouldnt recognose the box (using to-comm) however, I went to the LC setup page in logic and added one manually

So Dan, this means you got 3 LC's working off one Midibox to Com? (even though you had to fiddle a bit?)

Link to comment
Share on other sites

Hi...

so maybe some setting has been disrupted in logic. I will do a re-install of logic, I think

This was tested on a fresh XP/logic install...

this means you got 3 LC's working off one Midibox to Com? (even though you had to fiddle a bit?)

hehe - now that would be nice! but alas no - 1st core = main LC controls. 2nd core = extra 16x2 lcd for smpte/beats display and a pot for master fader. 3rd core = MBTV core :)

could it be that you are using a version older than 5.5.1?

Nope, I'm using 5.5.1 - s'all we PC logicians got left :/ Damn u apple!!!! Not that I'm bitter :P

Cheers

Dan

Link to comment
Share on other sites

Dan,

From another thread...

Yup, u could breadbrd the max232 chip between the pic and com port or just use a LTC and leave out the HC00's. However, I've tried the to-com option on my LC (which has 3 cores chained) and I cudnt get logic to behave proper with it  

From this thread...

Loaded it up on all 3 cores, and then slapped me LC f/w's on and fired up logic...once again logic wouldnt recognose the box (using to-comm) however, I went to the LC setup page in logic and added one manually

So now it does work ok? (sounds like it, but I'm just checking) I've run out of midi ports, and if I could put my MB LC on the com port that would save me one midiport! My second LC will go on a normal midiport.

thanks, from Steve

Link to comment
Share on other sites

HeySteve

So now it does work ok? (sounds like it, but I'm just checking) I've run out of midi ports, and if I could put my MB LC on the com port that would save me one midiport! My second LC will go on a normal midiport.

Ye it works - just need to keep pressing the write f/w button in logic setup page everytime u fire up the prog - least I gotta...

Best

Dan

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...