Jump to content

MIDI loopback test on Linux based PC


frailn

Recommended Posts

Here's my question:

Are there any Linux users out there that can suggest a utility for sending simple sysex strings to core and monitoring the MIDI in and out as I do this? I'm using puredyne (debian/gnome based). Here's why:

In the process of building the MB-6582 base PCB. I've built the four core modules. Cores power up fine - "Ready" displaying on LCD for all four cores.

First two SID modules are built. So, I'm basically at the SID testtone stage for these two modules. However....

I'm running into an issue with MIDI Out from my Linux-based PC. For some reason, I can't upload apps to the core.

Using MIOS Studio, I can see that core sends the proper upload request through MIDI-IN on power up. I know this because the MIDI In monitor in MIOS Studio consistently displays "F0 00 00 7E 40 00 07 F7" one time when I power up the base PCB and core. Based on TK's MIDI troubleshooting guide this should indicate Core is functioning and has MIOS installed:

The bootstrap loader sends an upload request after power-on:

It's some kind of "sign of life" from your PIC. So long as MIOS isn't available, this request will be sent periodically every 2 seconds, otherwise it will only be sent once.

However, when attempting to upload the testtone app or the LCD testing app, or even the MB6582 app, I get no response from the core, other than the original upload request. I've tried all the different settings for HEX uploading in MIOS Studio. No luck. When I try uploading a hex app with feedback from core, it hangs on block one for a long time. When I upload with no feedback from core, it will show blocks uploading in the MIDI Out monitor. However, nothing happens on the LCD attached to the core and no feedback on the MIDI In monitor.

With my PC MIDI In looped back to MIDI Out, I tried  using the virtual keyboard supplied in MIOS. I can see information being sent to the core in the MIDI Out monitor of MIOS Studio. And I can see information coming back in on the IN monitor - however it's not consistent. I'll press a key on the virtual keyboard and will see the corresponding data on the MIDI Out monitor and MIDI In monitor. Then, I'll press several other keys, see them go "out" but not back "in". Inconsistency. So, I'm thinking to myself, "this could be an issue with my PC and sound card set up."

I've read through TK's MIDI trouble shooting guide.

My PC is running pure::dyne in the great hope of having a lean system focused on music experimentation and creation only. Given I'm on the steep learning curve for Linux as well as electronics, my first step in solving this problem is my Linux set up. So, I am going directly to the loopback test on TK's guide. I want to make sure my PC set up is correctly before I go down the path of testing everything on the MB-6582. I don't want to run any testing rabbit trails until I'm absolutely sure my PC is working properly for MIDI output. If my PC is not set up properly, I don't want to risk my PCB work by desoldering anything if the problem is with my Linux set up for the MIDI sound card, etc...

I've plugged my MIDI In and Out to coming out of the PC into each other for loopback test.

Now I want to send a simple sysex string out and back in and monitor the output. However, I read that MIOS Studio is not set up to do this. From what I understand, HEX files are converted to sysex and uploaded to core. But, a oneline sysex can't be sent using MIOS Studio. And MIDI-OX is not available for Linux, so I am going to try Amidi. Just not sure how to monitor the progress of Amidi or if there is a better tool out there to use. I've done some googling around and can't seem to find anything similar to MIDI-OX for a Debian/Gnome based system. Sorry for the ramble, but I wanted to head off any questions regarding why I'm skipping over all the MIDI test steps and going directly to loopback. Once I determine my PC set up is working correctly, then I'll go back up to step one in TK's guide.

Link to comment
Share on other sites

Did some further research on JACK and latency. I do recall opening Qjackctl and seeing what looks to be some serious buffer underrun.

The image below is NOT a screenshot from my system. Just here for an example. The red numbers on Qjackctl on my system are more like "1(4000)". On this image, you see "1(1)" - methinks this might be the source of my problem.

QJackCTL.png

I don't have problems with sound. I can play streaming audio and video and I can play CD's with no problem. Wondering if my MIDI out is suffering from buffer underruns...I found a good tutorial that I'll be exploring when I get home tonight. In the meanwhile, if anyone has suggestions, I'm all ears...Thanks!

Link to comment
Share on other sites

First: Don't bother with JACK yet. It'll only make matters worse. JAVA does not support JACK (or even ALSA, grr), only OSS MIDI, and as such the two drivers will collide, with unpleasant results, such as server errors like the ones you saw - although that refers to the audio engine and I've never ever seen MIDI cause these errors.. more often than not, they just stop each other from working (resulting in lost messages). If you want to use MIOS Studio and JACK at the same time, you should use a loopback device. We can come back to that in some other post, but for now, just stop jack.

That aside, once you have your system behaving, You can do this by using MIOS Studio. However, if you can't get it to loop back something as simple as MIDI notes, that's a real bad sign. Sysex is very unlikely to work, and even if it does, the device has proven unreliable. So let's wheel back: What MIDI Interface is this? Is it one from the blacklist by any chance?

Now before I go on, I have to make something V E R Y C L E A R (to you and to any future readers who may read this). These procedures are meant for TESTING ONLY and should not need to be used unless some 'guru' around here tells you to do it. 'Smart mode' and 'Wait for upload request' should ALWAYS BE USED for MIOS hex file uploads. ALWAYS.

Load up a hex file like normal. Temporarily and for testing purposes only (I hammer this point home with good reason) , turn off 'smart mode' and 'wait for upload request'. Hook up your loopback cable (PC MIDI Out to PC MIDI In). Make sure your MIOS Studio routing is correct. Send the hex file. It should be received as it is sent. Copy and paste the input and output windows into a text editor, search/replace so that you get a stream of bytes, save each file, and then diff the files (use 'meld' on linux, it's great!). If they aren't the same, please add your MIDI interface to our blacklist, get a refund, and buy one that works.

Give that a shot and we'll move on....

Oh and slightly OT, the linux transition is a difficult one (for me, it was getting used to a new OS after ~25 years using windows and DOS) but it's well worth it, once you're a few months in you'll be very glad you did it. I'll be happy to help with it as much as I can :)

Link to comment
Share on other sites

JAVA does not support JACK (or even ALSA, grr), only OSS MIDI,

I'm definately using ALSA, not OSS.

What MIDI Interface is this? Is it one from the blacklist by any chance?

I checked the blacklist and my card is not there. It is the Dell Value version of the Creative LiveSB sound card. I watched my neighbor taking his Dell to the curb for trash pick up one day and decided to recover it for parts. When I found the sound card inside, I decided this was a good free find!

About a year ago, I built a core and single SID board. At that time, I had WinXP on this same PC using this same card. I was able to use MIDI-OX and MIOS Studio with no issues - uploading MIOS and the SID app successfully. So, I don't think it's the card at fault. I'm going down the path of the Linux configuration being in error at this point.

I tried your troubleshooting technique:

1. Made sure QjackCTL was stopped.

2. Loaded up a small hex file - "main.hex" from the lcd interconnection test folder.

3. used a midi-coupler to connect IN and OUT to each other from the sound card.

4. checked my routing in MIOS studio:

MIDI Devices Readable: MIOS Studio Out Port connected to MIDI Devices Writable: Live [hw:0,0]

MIDI Devices Writeable: MIOS Studio In Port connected to MIDI Devices Readable: Live [hw:0,0]

5. Sent hex file.

Results: MIOS Studio Out monitor displays the data being sent. MIOS Studio In monitor shows nothing.

So...I'm going to do some digging around the internet to see if I'm missing anything on set up of the Linux configuration. I know I have the right driver installed - EMU10K1X. It was written specifically for this Dell Value version of the Creative LiveSB card. When i run "amidi -l" in a root terminal, I get the following:

DIR    Device    Name

10      hw:0,0    EMU10K1X MPU-401 (UART)

EDIT:

After pondering, I realized that the EMU10K1X driver does not come into play with MIOS Studio. EMU10K1X is an ALSA driver. And, as you mentioned earlier, JAVA doesn't support ALSA. So, from what I understand, MIOS Studio acts as a standalone MIDI driver in its own right. My driver configurations wouldn't matter to MIOS Studio.

Link to comment
Share on other sites

i know this might seem like a cop out

  but why not go back to windows xp until you get your sid working then move to linux

I don't think that's a cop out suggestion at all! I've been considering it, as well. In fact, I have a Vista machine in the other room. Right now, I'm going to move my MIDI Sound Card over to the Vista machine to load up the MB6582 app to all four cores, then move it back to this Linux machine. That way I can move forward with the project.

However, I don't want this thread to die - I think there's still a chance that MIOS Studio could work with the Dell Value version of the Creative LiveSB Card using Linux. And if it does, this bodes well for some in the community since these cards are easy to find and most of the time can be had for free or extremely cheap. I'm sure there are others like me that want to start off on this journey with lower end hardware and work up to something nicer as the hobby develops.

And, I'm eager to use pure::dyne. There are so many good apps that came installed with this Linux distro - Rosegarden, Seq24, etc...beats paying hundreds of dollars for Windows commercial DAW software.

Stryd - as you have time, let's continue to pursue this. I know might have some Linux insight since you have been working on the MIDIbox distro of Ubuntu...

Link to comment
Share on other sites

I'm happy to report that I was able to use MIOS Studio and MIDI-OX in conjunction with this sound card on the Vista box! Uploaded MB6582 app to all four cores seamlessly. Playing Bassline Demo1 through the SID's 1 and 2 now! I LOVE THIS SYNTH.

Can't wait to get the other SID modules fully built!

000_0337.JPG

000_0338.JPG

000_0337.JPG

000_0338.JPG

Link to comment
Share on other sites

I have no idea why I did my screenshot that way! I think got excited when I heard noise coming out of the SID's!  :-[

Well here's a better screenshot. So, this proves the sound card should not be blacklisted. I've been able to get it to work with MIOS Studio on Win XP and Vista. Just need to figure out how to get it to work with Debian Linux. If that happens, then we'll know it works for labuntu and pure::dyne. I'll start a new thread for the purposes of figuring this out.

4946_mstudio_jpg4cf941599dc0d914c823e45b

4946_mstudio_jpg4cf941599dc0d914c823e45b

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...
×
×
  • Create New...