{"id":190,"date":"2010-02-15T22:59:04","date_gmt":"2010-02-15T21:59:04","guid":{"rendered":"http:\/\/www.abumarkub.net\/abublog\/?p=190"},"modified":"2015-05-22T18:19:19","modified_gmt":"2015-05-22T17:19:19","slug":"new-version-of-midibridge-with-midi-out","status":"publish","type":"post","link":"https:\/\/abumarkub.net\/abublog\/?p=190","title":{"rendered":"new version of midibridge supports midi out"},"content":{"rendered":"<p><strong>Deprecated, please Chris Wilson&#8217;s <a target=\"blank\" href=\"https:\/\/github.com\/cwilso\/WebMIDIAPIShim\">WebMIDIAPI Shim<\/a><\/strong><\/p>\n<p>The midi bridge has been updated and midi out has been added. This version works on all platforms.<\/p>\n<p>Windows: No known issues<\/p>\n<p>OSX: Only Safari is supported. If you are on 10.5 please install <a href=\"http:\/\/support.apple.com\/kb\/DL971\" target=\"_blank\">Java update 6<\/a>, if you are on 10.6 install <a href=\"http:\/\/support.apple.com\/kb\/DL972\" target=\"_blank\">Java update 1<\/a>. You don&#8217;t need Humatic mmj anymore. More info on <a href=\"http:\/\/www.humatic.de\/htools\/mmj.htm\" target=\"_blank\">humatic.de<\/a> and on <a href=\"http:\/\/developer.apple.com\/mac\/library\/releasenotes\/CrossPlatform\/JavaSnowLeopardUpdate1LeopardUpdate6RN\/ResolvedIssues\/ResolvedIssues.html\" target=\"_blank\">apple&#8217;s developer site<\/a>, scroll down to Java Sound.<\/p>\n<p>Linux: Konqueror is not supported<\/p>\n<p>I made a sample app that you can see over here:<\/p>\n<p><a href=\"http:\/\/abumarkub.net\/midibridge\/v3\/\" target=\"_blank\">http:\/\/abumarkub.net\/midibridge\/v3\/<\/a><\/p>\n<p>Code is available in several versions:<\/p>\n<ul>\n<li><a href=\"http:\/\/abumarkub.net\/midibridge\/v3\/src\/flashmidi_2010-15022010-2.rar\" target=\"_blank\">FDT project<\/a><\/li>\n<li><a href=\"http:\/\/abumarkub.net\/midibridge\/v3\/fb4\/srcview\/index.html\" target=\"_blank\">FlashBuilder 4 project<\/a><\/li>\n<li><a href=\"http:\/\/abumarkub.net\/midibridge\/v3\/src\/flashmidi_2010_27032010_cs4\" target=\"_blank\">Flash CS4 project<\/a><\/li>\n<\/ul>\n<p>Please report back to me if it doesn&#8217;t work on your system.<\/p>\n<p><!--more--><\/p>\n<p><strong>About midi out<\/strong><\/p>\n<p>Now that you can select a midi out device, the problem with latency arises. Unless you&#8217;re on a Mac. On a Mac you can just select a default midi synthesizer (Java Sound Synthesizer) and start playing with no noticeable latency.<\/p>\n<p>If you&#8217;re on Windows or Linux, the latency of the Java Sound Synthesizer makes it almost impossible to play. On Windows you can also choose the Microsoft GS Wavetable Synth and with some soundcards you may get a decent latency (i was told the Realtek AC97 perfoms pretty well).<\/p>\n<p>Latency is caused by both the drivers of your soundcard and the way your synthesizer works. Most modern softsynths hardly cause any latency, but even with the latest M-Audio pro cards you&#8217;ll experience latency when using the Java Sound Synthesizer or the Microsoft GS Wavetable Synth.<\/p>\n<p>So we need to be able to connect to some real softsynths like <a href=\"http:\/\/www.pianoteq.com\/\" target=\"_blank\">Pianoteq<\/a> or <a href=\"http:\/\/www.applied-acoustics.com\/products\/\" target=\"_blank\">Lounge Lizard<\/a> and for this we need a virtual midi driver. <\/p>\n<p>If you&#8217;re on a Mac, you&#8217;re lucky again because such a thing is already installed on your machine. It is called IAC Driver and you&#8217;ll find it if you open the Audio MIDI Setup in your Applications folder.<\/p>\n<p>If you are on Windows you can download LoopBe1 from <a href=\"http:\/\/www.nerds.de\" target=\"_blank\">nerds.de<\/a> and Linux users can check <a href=\"http:\/\/alsa.opensrc.org\/index.php\/VirMidi\" target=\"_blank\">VirMidi<\/a><\/p>\n<p>Below i&#8217;ll give a brief explanation for every driver. <\/p>\n<p><strong>LoopBe1<\/strong><\/p>\n<p>Download it from <a href=\"http:\/\/nerds.de\/en\/download.html\" target=\"_blank\">nerds.de<\/a> and run the installer. After the installation has finished LoopBe is up and running and will automatically start with Windows (if you don&#8217;t want this, run msconfig and remove the LoopBe startup service). <\/p>\n<p>Now if you refresh or load my sample <a href=\"http:\/\/abumarkub.net\/midibridge\/v3\/\" target=\"_blank\">application<\/a> you should see LoopBe Internal MIDI appearing in both the midi inputs drop-down box as well as the midi outputs drop-down box. Choose your favorite keyboard for input device and LoopBe Internal MIDI for output.<\/p>\n<p>Now open your favorite softsynth and go to the midi settings and set your synth&#8217;s midi input to LoopBe Internal MIDI. Here is a screendump of what this looks like in Pianteq:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.abumarkub.net\/abublog\/wp-content\/uploads\/2010\/02\/Pianoteq-LoopBe-Abumarkub-midibridge.jpg\" alt=\"Pianoteq-LoopBe-Abumarkub-midibridge\" title=\"Pianoteq-LoopBe-Abumarkub-midibridge\" width=\"597\" height=\"680\" class=\"alignnone size-full wp-image-193\" \/><\/p>\n<p>You should now be able to play your softsynth while midi data is passing thru the midibridge, and dependent on your soundcard&#8217;s driver, with very low latency.<\/p>\n<p>Please notice that LoopBe1 is only free for non-commercial use. For commercial use you need to acquire a license after a 30-day evolution period. But for only \u20ac 11,90 inc VAT it&#8217;s really a bargain. Check <a href=\"http:\/\/nerds.de\/en\/order.html\" target=\"_blank\">here<\/a>.<\/p>\n<p><a name=\"iac\"><\/a><strong>IAC<\/strong><\/p>\n<p>Open your Finder, go to menu Go -> Applications and scroll down till you&#8217;ve found a folder named Utilities. Open the folder Utilities and double click on Audio MIDI Setup. If you only see a window with Audio Devices, go to Window -> Show MIDI Window.<\/p>\n<p>In the window that subsequently opens, you should see an icon named IAC Driver. IAC stands for Inter-Application Communication, and that is exactly what it does.<\/p>\n<p>If the icon is greyed out double click it and check the box \u201cDevice is online\u201d in the popup that appears. Now you should have a window like:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.abumarkub.net\/abublog\/wp-content\/uploads\/2010\/02\/Picture-4.png\" alt=\"IAC-Driver-Abumarkub-midibridge\" title=\"IAC-Driver-Abumarkub-midibridge\" width=\"504\" height=\"534\" class=\"alignnone size-full wp-image-194\" \/><\/p>\n<p>Don&#8217;t worry if looks a little different on your machine. You should see at least 1 port in the \u201cPorts\u201d part of the screen. If not, simply click the plus sign to add a port. I recommend to add a least 2 ports to the IAC Driver.<\/p>\n<p>Now close this popup and the Audio MIDI Setup and refresh or load my sample <a href=\"http:\/\/abumarkub.net\/midibridge\/v3\/\" target=\"_blank\">application<\/a>. Now you should see LoopBe Internal MIDI appearing in both the midi inputs drop-down box and the midi outputs drop-down box. <\/p>\n<p>Choose your favorite keyboard as input device and LoopBe Internal MIDI as output. Open your favorite softsynth and go to the midi settings and set your synth&#8217;s midi input to LoopBe  Internal MIDI. Here is a screendump of what this looks like in Lounge Lizard:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.abumarkub.net\/abublog\/wp-content\/uploads\/2010\/02\/Picture-7.png\" alt=\"Lounge Lizard IAC input Abumarkub midibridge\" title=\"Lounge Lizard IAC input Abumarkub midibridge\" width=\"866\" height=\"482\" class=\"alignnone size-full wp-image-195\" \/><\/p>\n<p>Now you can play your softsynth while midi data is passing thru the midibridge.<\/p>\n<p><a name=\"virmidi\"><\/a><strong>VirMidi<\/strong><\/p>\n<p>If you are using Ubuntu or Kubuntu, there is a thread about VirMidi on the <a href=\"http:\/\/ubuntuforums.org\/showthread.php?p=6616182\" target=\"blank\">Ubuntu forum<\/a><\/p>\n<p>Because snd-virmidi is a kernel module, you can simply load this module by typing<br \/>\n<code>sudo modprobe snd-virmidi<\/code><br \/>\non the command line.<\/p>\n<p>Now if you refresh or load my sample <a href=\"http:\/\/abumarkub.net\/midibridge\/v3\/\" target=\"_blank\">application<\/a> at least 4 additional devices should have been added to the drop-down boxes.<\/p>\n<p>Open the midiconfiguration of your app and choose your keyboard for input device and one of the virtual midi ports as output. Connect this output to the input of your favorite softsynth, for instance in Pianoteq this would look like: <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.abumarkub.net\/abublog\/wp-content\/uploads\/2010\/11\/VirMidi-Kubuntu-Pianoteq-midibridge-abumarkub\" alt=\"VirMidi Kubuntu Pianoteq midibridge abumarkub\" title=\"VirMidi Kubuntu Pianoteq midibridge abumarkub\" width=\"599\" height=\"677\" class=\"alignnone size-full wp-image-429\" \/><\/p>\n<p>Now you can play your softsynth while midi data is passing thru the midibridge.<\/p>\n<p>Pianoteq is available for both 32 and 64 bits Linux, so if you want to try it yourself you can download a demo version <a href=\"http:\/\/pianoteq.com\/try\" target=\"_blank\">over here<\/a>.<\/p>\n<p><strong>Onwards<\/strong><\/p>\n<p>Unfortunately the bridge won&#8217;t work on Konqueror until this browser supports Live Connect; communication between Java applets and Javascript and Flash applets and Javascript.<\/p>\n<p>On OSX, browsers that rely on the Java Embedding Plugin such as Firefox, Camino and Seamonkey are not supported either. This is because of something really weird. In Firefox an applet gets loaded twice and therefor (or for some other reason) JSObject.getWindow(this); returns &#8216;null&#8217; so the connection between Java and Javascript is cut off.<\/p>\n<p>I am gonna look into this asap but should you have and suggestions please mail me!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deprecated, please Chris Wilson&#8217;s WebMIDIAPI Shim The midi bridge has been updated and midi out has been added. This version works on all platforms. Windows: No known issues OSX: Only Safari is supported. If you are on 10.5 please install Java update 6, if you are on 10.6 install Java update 1. You don&#8217;t need [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,9],"tags":[],"class_list":["post-190","post","type-post","status-publish","format-standard","hentry","category-java","category-midi"],"_links":{"self":[{"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/posts\/190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=190"}],"version-history":[{"count":8,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/posts\/190\/revisions"}],"predecessor-version":[{"id":996,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=\/wp\/v2\/posts\/190\/revisions\/996"}],"wp:attachment":[{"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abumarkub.net\/abublog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}