TK. Posted November 26, 2012 Report Share Posted November 26, 2012 Hi, today I made an interesting observation: while testing the upcoming MIOS Filebrowser on a MBHP_CORE_STM32, I noticed sporadical hang-ups after 100..200k of transmitted data under MacOS. Once this happened, the core behaved very similar as if it would hang-up under Windows when multiple USB MIDI ports are enabled. So, finally I had a nice test scenario to investigate this issue on a *real* operating system ;) It turned out, that transfers are working very stable (no hang-up anymore) if the USB IN and OUT port are assigned to different endpoints. At the next step, I noticed that I did the same in previous PIC and Cypress based projects - and they were working under Windows without problems. Also the Ploytec guys are using separate endpoints for GM5... So, hopefully I finally found the reason, why Windows users reported problems with MIDIbox SEQ V4 and the Windows Legacy driver: probably it can't handle IN/OUT transfers over a single endpoint correctly. And this might also explain, why transfers are working with the Korg USB MIDI driver: the implementation of this driver seems to be more robust! Anyhow, now I'm searching for Windows users who would like to beta-test the changes in MIOS32. Unfortunately the different USB configuration requires not only an application, but also a bootloader update! But fortunately the risk that you could mess up your MIDIbox with this update is zero, since in the (already very unlikely) case that USB doesn't work anymore, it will still be possible to downgrade to the old bootloader by uploading it via MIDI IN1/OUT1! :) How to update: upload the MIOS32 Bootloader V1.009 UPDATE: link removed, Bootloader V1.010 is now available under http://www.ucapps.de/mios32_download.htmlwait some seconds until the bootloader has been installedclose MIOS Studiopower-cycle your MIDIboxopen MIOS Studio: the USB port should be foundupload the MIDIbox SEQ V4.067 application: UPDATE: link removed, the MBSEQ update is now available under http://www.ucapps.de/mios32_download.html-> done! IMPORTANT: don't upload v4.067 before updating the bootloader, otherwise the next updates via USB won't work anymore! Please let me know if this update solves the issues at your side. If it helps, I could provide all MIOS32 applications with multiple MIDI ports enabled in future, which is a good replacement for multiclient capabilities. :) Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Duggle Posted November 27, 2012 Report Share Posted November 27, 2012 Updated the bootloader and reflashed app (SEQV4L) without issue. Previous issues of Sysex corruption involving multiclient USB to synths (Win7x64) are solved! I've used the opportunity to enable fastboot and USB name. Nice! Quote Link to comment Share on other sites More sharing options...
Altitude Posted November 27, 2012 Report Share Posted November 27, 2012 So far so good. I'll run it through the paces here this wkend. Could this have an influence on the USB MSD functionality? IIRC I could never get that to work right but its fine after the update Quote Link to comment Share on other sites More sharing options...
Hawkeye Posted November 27, 2012 Report Share Posted November 27, 2012 (edited) Very Nice! :frantics: It works, big improvement on Win 7 64 bit (STM32 SEQ V4)! Now, it is possible to upload firmwares in MIOS studio without typing "help" "help" "help" in the console first (some trick to reinitialize the USB connection?). Also, the MSD USB mode works now, had the same problems as Altitude... I previously always removed the SD card from the SEQ and manually backuped sessions. For further testing, I just copied a 20 Meg file to the SD card and read it again in this mode, it worked without hickups (ca 180KB/sec write speed and 400KB/sec read speed). During USB transfers the LED matrices flicker a bit, but that is rather cool (BPM, Track position + Current step number). The update process was also without problems for me. Thanks, TK! :sorcerer: Many greets, Peter Edited November 27, 2012 by Hawkeye Quote Link to comment Share on other sites More sharing options...
TK. Posted November 27, 2012 Author Report Share Posted November 27, 2012 Excellent! :) I will officially release the application updates this weekend. Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Gridracer Posted November 27, 2012 Report Share Posted November 27, 2012 Nice :smile: also a successful Update here! No need to type "help" any more... Thanks a lot Gridracer Quote Link to comment Share on other sites More sharing options...
ilmenator Posted November 28, 2012 Report Share Posted November 28, 2012 Success over here as well on an STM32 core board. Thanks! Quote Link to comment Share on other sites More sharing options...
TK. Posted December 1, 2012 Author Report Share Posted December 1, 2012 Unfortunately it turned out, that the multi-USB port issue under Windows still wasn't solved. :frantics: Therefore I enabled MIOS32 for using the GM5 driver! This driver gives you the best performance, and especially robust SysEx transfers! Permission granted by the head of Ploytec! :) -> UPDATE: link removed, the new release is now available under http://www.ucapps.de/mios32_download.html MIDIboxSEQ V4.068 ~~~~~~~~~~~~~~~~~ o support for GM5 driver under Windows. MacOS and Linux users: just install this update, no additional changes required. Windows users: - upload the application with MIOS Studio - close MIOS Studio - install the GM5 driver which can be downloaded from http://www.ucapps.de/mbhp_usb_gm5.html - start MIOS Studio -> 4 "GM5" USB ports should be visible [/code] I really hope that this solves your USB issues under Windows! I've intensively tested this setup under WinXP and Win7 Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
ilmenator Posted December 1, 2012 Report Share Posted December 1, 2012 Therefore I enabled MIOS32 for using the GM5 driver! This driver gives you the best performance, and especially robust SysEx transfers! Permission granted by the head of Ploytec! :) Now that is really good news! Quote Link to comment Share on other sites More sharing options...
Duggle Posted December 1, 2012 Report Share Posted December 1, 2012 Hadn't noticed a problem (yet), but I suppose with this driver we get the same great host side performance as the GM5 chip on our MIOS32 Midibox(s)? Quote Link to comment Share on other sites More sharing options...
TK. Posted December 2, 2012 Author Report Share Posted December 2, 2012 Cool! :) The MIDItest is the best program to test the performance under Windows. While using it, I noticed that the Tune Request event (F6) wasn't properly handled by MIOS32, it's fixed now. Here the comparison between GM5 and the MIOS32 based MIDI4x4 application (corrected version, which will be released tomorrow): GM5 ================ Results Per Message ===================================== MESSAGES Snd Rcv Snd+Rcv Message TotalTime: 539.41 ms 38188.02 ms 38727.43 ms Message MaximumTime: 0.11 ms 2.26 ms 2.26 ms Message MinimumTime: 0.00 ms 0.44 ms 0.47 ms Message AverageTime: 0.02 ms 1.22 ms 1.24 ms SysexTime: 34.42 ms 164.11 ms 198.54 ms SysexAverage: 0.00 ms 0.02 ms 0.02 ms < 1 ms: 31250 9408 9387 1 - 2 ms: 0 19546 19416 2 - 3 ms: 0 2296 2447 3 - 4 ms: 0 0 0 4 - 5 ms: 0 0 0 5 - 10 ms: 0 0 0 10 - 20 ms: 0 0 0 20 - 50 ms: 0 0 0 50 - 100 ms: 0 0 0 > 100 ms: 0 0 0 Message count: 31250 Sysex count: 157 Sysex size: 10000 Sysex passed: 10000 Message latency: 1.24 ms Total time: 67.396 sec Message jitter: 0.41 ms Message max deviation: 1.03 ms [/code] MIOS32 MIDI4x4 app: [code] ================ Results Per Message ===================================== MESSAGES Snd Rcv Snd+Rcv Message TotalTime: 891.18 ms 81831.34 ms 82722.53 ms Message MaximumTime: 0.15 ms 3.26 ms 3.29 ms Message MinimumTime: 0.02 ms 2.06 ms 2.09 ms Message AverageTime: 0.03 ms 2.62 ms 2.65 ms SysexTime: 34.81 ms 374.18 ms 408.99 ms SysexAverage: 0.00 ms 0.04 ms 0.04 ms < 1 ms: 31250 0 0 1 - 2 ms: 0 0 0 2 - 3 ms: 0 27550 26837 3 - 4 ms: 0 3700 4413 4 - 5 ms: 0 0 0 5 - 10 ms: 0 0 0 10 - 20 ms: 0 0 0 20 - 50 ms: 0 0 0 50 - 100 ms: 0 0 0 > 100 ms: 0 0 0 Message count: 31250 Sysex count: 154 Sysex size: 9999 Sysex passed: 9999 Message latency: 2.65 ms Total time: 107.233 sec Message jitter: 0.28 ms Message max deviation: 0.64 ms The increased latency is caused by the 1 mS RTOS timeslots. This is actually no problem as this constant delay can be compensated by a DAW. But it's interesting that MIOS32 has less jitter than GM5 - and this is the relevant value! :) Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.