Jump to content

MIOS Studio Beta Release


TK.
 Share

Recommended Posts

Finally finally finally... MIOS Studio has reached the beta phase! :-)

MIOS Studio was started by Wilba in November 2003, and later taken over by Adam King.

It is a java-based, platform-independent MIDI processing environment, which not

only provides upload and debug functions for MIOS, but also advanced features

like MIDI Port Routing, Filtering and a virtual Keyboard. It's written in a modular

way and will be published under GPL later so that other programmers can make

their contributions.

More infos can be found in the Wiki:

http://www.avishowtech.com/midibox/wiki/index.php/miosstudio

Thanks Wilba and Adam for your work!!!

MIOS Studio was my "secret weapon" in the last months, without this tool I wouldn't

be able to develop and debug so efficient :)

Best Regards, Thorsten.

Link to comment
Share on other sites

  • Replies 64
  • Created
  • Last Reply

Top Posters In This Topic

Hi Daniel,

To run MIOS Studio you will need the Java Runtime, at least version 1.5 installed. If you do not have it, you will need to go to the Sun site (http://java.sun.com/j2se/1.5.0/download.jsp) first, download the JRE 5.0 file and install it.

Once Java is installed, all you will need to do is download MIOS Studio and save it to your PC. In Windows, you should be able to just double click on the .jar file to open the program. To start from a command line (or setup a shortcut), you can use the command "java -jar path_to_.jar_file/MIOSStudio_beta1.jar" to open MIOS Studio.

As an added utility, a cutdown version with just a keyboard controller, MIDI routing/filtering and keyboard zone mapping (in progress) is available. This can be started with the command "java -cp path_to_.jar_file/MIOSStudio_beta1.jar org.midibox.miosstudio.PianoControllerApp".

So far the program has been tested with Windows 98, 2000 and XP. In theory, it should also run on Linux and Mac but the old saying proves true, "write once, debug everywhere". Linux MIDI support is supposed to be working, but I have had many problems - possibly due to an older kernel and ALSA drivers. If anyone can test on a newer version of Linux (with Java 1.5 installed) it would be greatly appreciated. At the moment, Java 1.5 is not officially available for the Mac, but if there are any Java/Mac developers in the community, please test it and report you findings.

- Adam

Link to comment
Share on other sites

Adam has sent me a new beta release (_beta2) with some minor bugfixes.

Use this especially if you notice problems with the code upload (the block size has been decreased to 256 bytes due to problems with the Java MIDI handler in connection with the MIDI driver for SBLive and USB-MIDI)

The link can be found under:

http://www.avishowtech.com/midibox/wiki/index.php/miosstudio

(Rene: strange, it should be a .jar file, does your browser support .zip an on-the-fly?)

Best Regards, Thorsten.

Link to comment
Share on other sites

Hello, you forget to say that if it's downloaded you must rename it to *.jar.

Because when I've downloaded it, it's a zip file.

René

Thanks for the tip Rene. Thorsten, it looks like this happens on Windows PC's that don't already have Java installed. JAR files are just glorified ZIP files, perhaps Windows renames them when the file extension is unknown.

Link to comment
Share on other sites

Thanks for the tip Rene. Thorsten, it looks like this happens on Windows PC's that don't already have Java installed. JAR files are just glorified ZIP files, perhaps Windows renames them when the file extension is unknown.

On the moment that I've downloaded it, I have Java 1.4.2 or something, now I have Java 1.5 and when I download it again,again it's a zip.

I don't think it's a problem, rename the file and all's well.

Link to comment
Share on other sites

Stellar work guys!

Reporting on the Mac side:

OS: 10.2.8

JavaVM.framework: 1.4.1

The only things I see wrong are a couple of tiny UI issues:

1) Window re-draw after moving the window: usually leaves a "ghost" frame where the window was.  I have seen a lot of java apps exhibit this behavior on mac java, and I remember reading about how there are some mac only java redraw issues, so it's probably a known issue with redraw+mac java.  (just mentioning it so that mac users will know that it's probably not an issue with MIOS Studio but with Java VM on the mac....)

2) The "X" in "TX" will be obscured by a tab on -most- macs (depends on what the user has done with the theme/skin on thier machine, this one is with the out-of the box UI look:

Picture5.jpg

These are such minor things that don't affect performance, but I don't know what level of "picky" you guys want with feedback reports..... :)

I'll put it through it's paces tonight on the mac side, test with a few different midi interfaces, etc. tonight.

Is there any need for me to test it under OS9?  Any mac users out there still on 9? 

The whole MIDIbox concept just became a whole lot more fun!

Thanks Wilba, Adam, and TK, great work.

Best!

Smash

Link to comment
Share on other sites

Hi Smash,

That's funny, I thought it wouldn't work with Java 1.4.1. The JAR file was compiled with 1.5 and there are at least a few API methods that only exist in 1.5, very strange. If you could let me know how the MIDI tests go that'd be great. Regarding the UI issues, I've notcied similar problems with window redrawing when running Java apps on X Windows (Linux) - I'll have to look further into this. I'll fix the TX issue for the next beta release.

If you've got some time, can you send me a couple of screenshots of MIOS Studio with the Mac look and feel?

Cheers,

- Adam

Link to comment
Share on other sites

Hi Smash,

That's funny, I thought it wouldn't work with Java 1.4.1. The JAR file was compiled with 1.5 and there are at least a few API methods that only exist in 1.5, very strange. If you could let me know how the MIDI tests go that'd be great. Regarding the UI issues, I've notcied similar problems with window redrawing when running Java apps on X Windows (Linux) - I'll have to look further into this. I'll fix the TX issue for the next beta release.

If you've got some time, can you send me a couple of screenshots of MIOS Studio with the Mac look and feel?

Cheers,

- Adam

Hehe I did speak too soon, my 10.2.8 system that I was playing on had some of the java dev kit and plumstone installed.....

On a "out of the box" setup everything wants to work, but it won't connect to any midi hardware.

Another issue is that even with Panther (OS X 10.3.x) the java 1.4.2 update 2 is missing some key elements that make MIDI possible with Java.....But plumstone can fix that.

I'm setting up a clean install of Panther now just to test this and give instructions on how to get up and running on a mac.

With Tiger (next OS X release, out already or very soon) all of this should be fixed (proper java in the release) we'll see. 

I'll test on it too asap.....

Failing this I'll dig up the info on how to make the CoreAudio MIDI calls (if you don't mind a mac specific release or bloating your code a bit).....The die hard java programmers seem to think the CoreAudio works like a dream, so it might be an option.  Doing the MIDI I/O with CoreAudio calls would make it work on all but the earliest (10.1) mac os versions.

Let me get it actually talking to a midi interface with OS X 10.3.x and I'll snap a bunch of screenshots....

Best!

Smash

BTW thanks again!

Link to comment
Share on other sites

Indeed. I tried this myself by running MIOS Studio on a Windows PC with Java 1.4.2 and the same thing happens: it appears to work until you try and access the MIDI hardware. MIDI and sound support have been much improved for 1.5 so that is why we made it the minimum requirement. This might not be so good for Apple users. From the apple site (http://developer.apple.com/java/faq/):

2: Where is Java 1.5 (J2SE 5.0)?

Developer Preview 5 of J2SE 5.0 Release 1 is now available at the ADC Download Site. The preview requires Mac OS X v10.4 Tiger Build 8A393, also available on the ADC Download Site to seed key holders. Access to pre-release Apple software is discussed in the ADC Frequently Asked Questions. There are currently no plans to release J2SE 5.0 for Mac OS X Panther or any earlier releases.

So it looks like it might not be available for anything prior to Tiger.  I believe Apple makes users pay for OS upgrades, so it is kind of ironic that they try and sell themselves to developers as a good platform for Java. Not being a mac user, I don't know how well plumstone works, but if this is a workable solution it would be preferrable to use plumstone + MIOS Studio instead of having a mac specific release. However, I'm pretty sure there are other Java5 specific API method calls as well in MIOS Studio, so 1.5 might still be required.

Do mac users generally upgrade to the latest and greatest OS release? If not, maybe it's time to petition Apple (or Sun??) to make 1.5 available for earlier platforms! Of course, if someone wants to buy me a mac, I'll be more than happy to test the code and make changes myself  ;)

- Adam

Link to comment
Share on other sites

So it looks like it might not be available for anything prior to Tiger. 

Yes, and maybe not even then (I'll try to get my hands on the tiger release to see, but the talk on the developer board(s) about how broken java still is does not give me much hope)

I believe Apple makes users pay for OS upgrades, so it is kind of ironic that they try and sell themselves to developers as a good platform for Java.

Hehe yes it's ironic, and more so when you realize how long Java has been broken on the Mac......for years I have watched this "inside joke" stay a thorn in every mac user's side.  It's damn near impossible to write anything in pure java and expect it to work correctly on the mac, yet I can walk across the room and run it fine on a PC.

I doubt apple is completely to blame for all this, Sun has a tendency to make licensees jump through too many hoops, and obviously does nothing to support the cross-platform claims that attracted -anyone- to Java in the first place.

Not being a mac user, I don't know how well plumstone works, but if this is a workable solution it would be preferrable to use plumstone + MIOS Studio instead of having a mac specific release.
Unfortunately under 10.3.8 (last release before tiger) plumstone breaks the midi routing on MIOS Studio.  While it will actually see the MIDI interface and list the ports in the routing window, it screws up the window draw (1/2 the time when you open routing it does not show the left list, or it's frame!) and you can't actually connect anything (and if you try enough times it will eventually crash)

This might be something easy to correct, I don't know (plumstone's full source is available if interested).

Do mac users generally upgrade to the latest and greatest OS release?

That's the bad thing, Most mac users don't upgrade.  Since OS upgrade sales are not driven by hot new game releases on the mac side, most mac users stay with the OS that comes with the machine.  Not starting any holy wars (I have mac, win and linux boxes here in use) the reason is that it will generally work fine for years without any tinkering.

If not, maybe it's time to petition Apple (or Sun??) to make 1.5 available for earlier platforms!

Not gonna happen: Mac users have been pushing apple to fix it since os 8.6, to no avail, and now that it's way past due it looks as if they are saving small steps of functionality to boost new os sales.  (grrrr......)

Of course, if someone wants to buy me a mac, I'll be more than happy to test the code and make changes myself  ;)

I can't afford that ($500 for a mini) but I might be able to dig up a loaner if you are interested......or a cheap enough old (slower but not painfully slow) machine.

I'll help with this any way I can, but I have ignored java for many years (everything else aside, I wrote it off completely as soon as I realized Java is not cross platform in any real application way) and I'm not a programmer anymore (unless you want to pound out some basic, pascal, or 6502 ASM ;D) so I doubt I can be very helpful with anything but testing.

Best!

Smash

Link to comment
Share on other sites

Hi,

This looks like an excellent reason to eventually install java 8)

MIOS debug interface - What a bliss! (Not that much of a programmer, I could think of improvements, but probably there are...)

But, hey-- MIOS Studio can convert and send a hex file to MIDIbox: Why can't it build one, calling MPASMWIN?

Bye, Moebius

Link to comment
Share on other sites

Hehe yes it's ironic, and more so when you realize how long Java has been broken on the Mac......for years I have watched this "inside joke" stay a thorn in every mac user's side.  It's damn near impossible to write anything in pure java and expect it to work correctly on the mac, yet I can walk across the room and run it fine on a PC.

I doubt apple is completely to blame for all this, Sun has a tendency to make licensees jump through too many hoops, and obviously does nothing to support the cross-platform claims that attracted -anyone- to Java in the first place.

I guess it is pretty hard to write a pure java app and expect it to act exactly like a mac application, even on Windows Java apps aren't quite right. Without using a GUI toolkit like SWT, the differences with Swing are enough to be able to tell the difference. I could imagine the frustrated mac user trying to get Java to work on anything but the very latest OS update, yet a Windows user could walk accross the room and fire up the same application in Windows 98! But I'd like to at least get it to work, UI nicities can be fixed later.

Unfortunately under 10.3.8 (last release before tiger) plumstone breaks the midi routing on MIOS Studio.  While it will actually see the MIDI interface and list the ports in the routing window, it screws up the window draw (1/2 the time when you open routing it does not show the left list, or it's frame!) and you can't actually connect anything (and if you try enough times it will eventually crash)

This might be something easy to correct, I don't know (plumstone's full source is available if interested).

If you run MIOS Studio from a command line, it should spit out a stack trace when an exception occurs. If you could send me this information I might be able to track down the problem.

I can't afford that ($500 for a mini) but I might be able to dig up a loaner if you are interested......or a cheap enough old (slower but not painfully slow) machine.

I thought that I'd buy a mini myself when they were first announced, but at $AU 800 for the base model (40G hard drive, 256MB RAM) it just isn't looking like the 'affordable mac' that Apple promised  :(

I'll help with this any way I can, but I have ignored java for many years (everything else aside, I wrote it off completely as soon as I realized Java is not cross platform in any real application way) and I'm not a programmer anymore (unless you want to pound out some basic, pascal, or 6502 ASM ;D) so I doubt I can be very helpful with anything but testing.

When testing, if you can send any stack traces, that be great. I'll have a look at PlumStone, see what I can find out.

Cheers,

- Adam

Link to comment
Share on other sites

If you run MIOS Studio from a command line, it should spit out a stack trace when an exception occurs. If you could send me this information I might be able to track down the problem.

I thought that I'd buy a mini myself when they were first announced, but at $AU 800 for the base model (40G hard drive, 256MB RAM) it just isn't looking like the 'affordable mac' that Apple promised  :(

Wow any way you figure it that's at least $150USD more than the street price here.....crazy.

I have often wondered why Apple complains of grey market issues while still using regional pricing.....

When testing, if you can send any stack traces, that be great. I'll have a look at PlumStone, see what I can find out.

I'm having a hell of a time getting anything more than:

[ipXX-XX-XX-XX:~/desktop] smashtv% java MIOSStudio_beta2.jar

Exception in thread "main" java.lang.NoClassDefFoundError: MIOSStudio_beta2/jar

Out of it.....the console (where the dump should show up) shows nothing, and I'm too much of a newbie with java to slap it around enough to get some info (tried everything I know and methods found on the web, to no avail).

Sorry to be anti-help on this! 

Still trying to dig up the tiger GM, I'll shift testing to that asap. 

Let me know if you want to try to get it to run on anything pre-tiger, I have been told there are java core audio calls that are easy to implement (easy for who? :)), but that would probably require OS specific releases, unless environment detection+OS specific I/O calls can be added. 

best

Smash

Link to comment
Share on other sites

Wow any way you figure it that's at least $150USD more than the street price here.....crazy.

I have often wondered why Apple complains of grey market issues while still using regional pricing.....

Yes, I don't understand it either. I was looking to buy one, as the Apple site says:

Perfect for Programmers

Set a space-saving Mac mini atop your workstation PC and add a KVM switch to share keyboard, monitor and mouse. Mac OS X includes free developer tools for Mac, UNIX and Java. Test out a Mac version of your latest creation, instantly. Pretty soon you’ll be using the Mac full-time, with that PC relegated to the testbed.

That'd be perfect for me, I could have a mini sitting next to my dual boot Windows/Linux PC. But $800 just for a testbed is too much. And if I wanted to use it as an everyday workstation, I'd want the 80G HD, 1G RAM and DVD-RW... the price skyrockets to $AU 1,624.01! If Apple were really serious about attracting developers, they'd offer a bare-bones motherboard/processor/OS-X system, but that's another story.

I'm having a hell of a time getting anything more than:

Out of it.....the console (where the dump should show up) shows nothing, and I'm too much of a newbie with java to slap it around enough to get some info (tried everything I know and methods found on the web, to no avail).

Sorry to be anti-help on this! 

You need to use the command java -jar MIOSStudio_beta2.jar on the command line.

Still trying to dig up the tiger GM, I'll shift testing to that asap. 

Let me know if you want to try to get it to run on anything pre-tiger, I have been told there are java core audio calls that are easy to implement (easy for who? :)), but that would probably require OS specific releases, unless environment detection+OS specific I/O calls can be added. 

If you can get it working and provide some stack traces with PlumStone, that'd be a better place to start. I know the PlumStone developer form the JavaSound mailing-list so should be able to track down the problems without having a mac in front of me.

Have you, or anyone else, tried it on Linux yet? I'll upgrade to Fedora Core 3 when I have some spare time, just wondering if anyone has had any luck with it?

Cheers,

- Adam

Link to comment
Share on other sites

Would it be possible to run the Linux JRE on a Mac under X11?  (NB this only works on 10.3 and above - to run *nix apps under 10.2 where I am you need to use Fink)

And re Mini pricing:  you can replace the RAM and the (laptop size) HD yourself, and probably the CD drive, and beat Apple's pricing.

Link to comment
Share on other sites

Would it be possible to run the Linux JRE on a Mac under X11?  (NB this only works on 10.3 and above - to run *nix apps under 10.2 where I am you need to use Fink)

Great thinking, dunno why I forgot about doing that....except I do this with eagle x11 in 10.2.8 all the time so if that works it would run for all of us not on the bleeding edge of os updates.....

And re Mini pricing:  you can replace the RAM and the (laptop size) HD yourself, and probably the CD drive, and beat Apple's pricing.

Completely true

I'll fire up and test everything mentioned tonight......getting spin dizzy from all the different os versions ;D

Smash

Link to comment
Share on other sites

[ipxx-xx-xx-xx:~/desktop] smashtv% java -version
java version "1.4.2_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-141.4)
Java HotSpot(TM) Client VM (build 1.4.2-38, mixed mode)[/code] Running on OS 10.3.8, with plumstone installed. I typed: [ipxx-xx-xx-xx:~/desktop] smashtv% java -jar MIOSStudio_beta2.jar and nothing showed up in the console until I selected MIDI routing:
[code]apple.awt.EventQueueExceptionHandler Caught Throwable : java.lang.NoSuchMethodError: javax.sound.midi.MidiDevice.getReceivers()Ljava/util/List;
java.lang.NoSuchMethodError: javax.sound.midi.MidiDevice.getReceivers()Ljava/util/List;
        at org.midibox.miosstudio.MidiDeviceRouting.getReceivers(MidiDeviceRouting.java:295)
        at org.midibox.miosstudio.MidiDeviceRouting.devicesConnected(MidiDeviceRouting.java:425)
        at org.midibox.miosstudio.MidiDeviceRoutingGUI$1.paintComponent(MidiDeviceRoutingGUI.java:130)
        at javax.swing.JComponent.paint(JComponent.java:808)
        at javax.swing.JComponent.paintChildren(JComponent.java:647)
        at javax.swing.JComponent.paint(JComponent.java:817)
        at javax.swing.JComponent.paintChildren(JComponent.java:647)
        at javax.swing.JComponent.paint(JComponent.java:817)
        at javax.swing.JComponent.paintChildren(JComponent.java:647)
        at javax.swing.JComponent.paint(JComponent.java:817)
        at javax.swing.JLayeredPane.paint(JLayeredPane.java:557)
        at javax.swing.JComponent.paintChildren(JComponent.java:647)
        at javax.swing.JComponent.paint(JComponent.java:817)
        at javax.swing.JComponent.paintChildren(JComponent.java:647)
        at javax.swing.JComponent.paint(JComponent.java:817)
        at javax.swing.JComponent.paintChildren(JComponent.java:647)
        at javax.swing.JComponent.paint(JComponent.java:817)
        at javax.swing.JLayeredPane.paint(JLayeredPane.java:557)
        at javax.swing.JComponent._paintImmediately(JComponent.java:4707)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4489)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:436)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:178)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:170)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
apple.awt.EventQueueExceptionHandler Caught Throwable : java.lang.NoSuchMethodError: javax.sound.midi.MidiDevice.getReceivers()Ljava/util/List;
java.lang.NoSuchMethodError: javax.sound.midi.MidiDevice.getReceivers()Ljava/util/List;
        at org.midibox.miosstudio.MidiDeviceRouting.getReceivers(MidiDeviceRouting.java:295)
        at org.midibox.miosstudio.MidiDeviceRouting.devicesConnected(MidiDeviceRouting.java:425)
        at org.midibox.miosstudio.MidiDeviceRoutingGUI$1.paintComponent(MidiDeviceRoutingGUI.java:130)
        at javax.swing.JComponent.paint(JComponent.java:808)
        at javax.swing.JComponent.paintChildren(JComponent.java:647)
        at javax.swing.JComponent.paint(JComponent.java:817)
        at javax.swing.JComponent.paintChildren(JComponent.java:647)
        at javax.swing.JComponent.paint(JComponent.java:817)
        at javax.swing.JComponent._paintImmediately(JComponent.java:4707)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4489)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:436)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:178)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:170)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

Sorry for the big quote.....Hopefully 10.4 will fix all of this and make us mac users very happy.  ;D

Best!

Smash

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...