JSynthLib update
#1
Posted 18 December 2010 - 16:37
It can be downloaded from: http://www.ucapps.de/jsynthlib.html
MacOS users: the Java MIDI driver provided by Apple doesn't support SysEx - you have to install MMJ http://www.humatic.de/htools/mmj.htm
Best Regards, Thorsten.
Buy TK a Beer Disclaimer: buying TK a beer gets you absolutely nothing in return likesuchas firmware enhancements, technical advices and MIDIbox troubleshooting assistance.
#2
Posted 19 December 2010 - 00:31
#3
Posted 19 December 2010 - 12:42
Buy Wilba a Beer Disclaimer: buying Wilba a beer gets you absolutely nothing in return likesuchas sammichSID kit order queue jumping, purchase of SIDs and MIDIbox troubleshooting assistance.
#4
Posted 19 December 2010 - 12:52
This would also allow to port the editor to an iPad w/o much effort
Best Regards, Thorsten.
Buy TK a Beer Disclaimer: buying TK a beer gets you absolutely nothing in return likesuchas firmware enhancements, technical advices and MIDIbox troubleshooting assistance.
#5
Posted 23 September 2011 - 18:53
Davo, on 19 December 2010 - 00:31, said:
JSynthLib has always been Open Source. If someone wants to contribute code he can do it anytime. Just subscribe to the JSynthLib mailing list and ask to be added as a developer. It's as simple as that.
Anyway in the last weeks there has been a revival as a group of new and not-that-new developers has taken action. One of them is trying to contact Thorsten regarding the changes (were there any?) mentioned here.
This post has been edited by sonicwarrior: 23 September 2011 - 19:01
#6
Posted 23 September 2011 - 20:19
#7
Posted 23 November 2011 - 11:19
poo. the mac is my music machine, no editor for the FM will suck big time..
#8
Posted 23 November 2011 - 12:21
I know that with older version of java/mac os you needed to use a midi provider (http://sourceforge.n...CAProvider/1.1/) but I assume that with more recent versions of java, this is no longer required.
Does your problem sound similar to the problem someone describes having here? http://stackoverflow...p-playing-notes
Also, it could be worth checking if the problem happens with the release candidate for version 0.21 of jsynthlib ( http://dl.dropbox.co...istribution.zip )
thanks,
frankie
#9
Posted 23 November 2011 - 16:30
frankster, on 23 November 2011 - 12:21, said:
I know that with older version of java/mac os you needed to use a midi provider (http://sourceforge.n...CAProvider/1.1/) but I assume that with more recent versions of java, this is no longer required.
Does your problem sound similar to the problem someone describes having here? http://stackoverflow...p-playing-notes
Also, it could be worth checking if the problem happens with the release candidate for version 0.21 of jsynthlib ( http://dl.dropbox.co...istribution.zip )
thanks,
frankie
thanks for the swift reply! i'll try and get you more details later when i sit down with the synth again..
#10
Posted 23 November 2011 - 19:09
But hopefully using the latest Java 1.6.0_29 and the RC will help.
#11
Posted 23 November 2011 - 20:38
i do get this error on the midi loopback test though:
Quote
null
The exception text is:
core.MidiUtil$TimeoutException
at core.MidiUtil$SysexInputQueue.getMessage(MidiUtil.java:640)
at core.MidiUtil.getMessage(MidiUtil.java:407)
at core.MidiTest.runLoopbackTest(MidiTest.java:111)
at core.MidiTest.runLoopbackTest(MidiTest.java:63)
at core.MidiConfigPanel$4.actionPerformed(MidiConfigPanel.java:152)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6373)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6138)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4735)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
at java.awt.Container.dispatchEventImpl(Container.java:2129)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:652)
at java.awt.EventQueue$2.run(EventQueue.java:650)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at java.awt.Component.show(Component.java:1584)
at java.awt.Component.setVisible(Component.java:1536)
at java.awt.Window.setVisible(Window.java:842)
at java.awt.Dialog.setVisible(Dialog.java:986)
at core.PatchEdit.showPrefsDialog(PatchEdit.java:114)
at core.Actions$PrefsAction.actionPerformed(Actions.java:1340)
at core.MacUtils$1$3.run(MacUtils.java:63)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:677)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:647)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
This post has been edited by 'tini: 23 November 2011 - 20:44
#12
Posted 23 November 2011 - 21:05
At first sight this looks a MIDI interface driver issue.
#13
Posted 23 November 2011 - 21:49
no problem sending and receiving midi data in other programs. out of ideas really...
This post has been edited by 'tini: 23 November 2011 - 21:50
#14
Posted 23 November 2011 - 21:59
If you don't know that try
java -version
in a terminal (command line) window.
#16
Posted 23 November 2011 - 23:06
Because when I browse the SVN repository and look at the line 640 of MidiUtil.java it shows this:
Quote
On the 0.20 version I get (that's javadoc aka cannot cause an exception):
Quote
So either the line in the stacktrace is wrong or you are using a different version.
This post has been edited by sonicwarrior: 23 November 2011 - 23:06
#17
Posted 23 November 2011 - 23:15
i double checked and made sure i was running the version you mention above, and get the following error:
The error was:
Quote
The exception text is:
core.MidiUtil$TimeoutException
at core.MidiUtil$SysexInputQueue.getMessage(Unknown Source)
at core.MidiUtil.getMessage(Unknown Source)
at core.MidiTest.runLoopbackTest(Unknown Source)
at core.MidiTest.runLoopbackTest(Unknown Source)
at core.MidiConfigPanel$4.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6373)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6138)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4735)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
at java.awt.Container.dispatchEventImpl(Container.java:2129)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:652)
at java.awt.EventQueue$2.run(EventQueue.java:650)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at java.awt.Component.show(Component.java:1584)
at java.awt.Component.setVisible(Component.java:1536)
at java.awt.Window.setVisible(Window.java:842)
at java.awt.Dialog.setVisible(Dialog.java:986)
at core.PatchEdit.showPrefsDialog(Unknown Source)
at core.Actions$PrefsAction.actionPerformed(Unknown Source)
at core.MacUtils$1$3.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:677)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:647)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
#18
Posted 24 November 2011 - 01:29
So what this message is saying is that JSynthLib waited a while to receive some messages during the loopback test, but didn't receive anything. If you don't mind fiddling around a little bit maybe we can track down where the problem is.
Firstly I've just run the midi loopback test on my PC to check that it does work - in at least one case ;). The loopback test worked which proves its possible although as I'm running windows it doesn't shed too much light on your problem.
We can be sure that your problem is caused either by JSynthLib failing to transmit midi data, or by somehow failing to receive it. Perhaps we can start by trying to work out which one of these problems we are having. I suspect that as you are able to use the play sound button, the problem is not with sending midi data but lets be thorough and verify this.
Is it possible to check that JSynthLib transmits something when you initiate the loopback test? For example, on my interface it flashes a light every time midi data is transmitted or received. Maybe there is some midi software on mac that can monitor midi ports, or perhaps you could connect your midi port to your xp machine and use midi-ox or similar on the xp machine?
I'll have a think about ways we can test the receiving side of JSynthLib.
frankie
#19
Posted 24 November 2011 - 10:55
* cakewalk um3g midi interface> hardware synths - connected via a usb hub to my macbook.
* akai mpk49 keyboard> macbook - connected via usb hub
* motu ultralite mk3> macbook - conncted via firewire
i tried jsynthlib via both of these midi interfaces and experienced the same issues. in jsynthlib:
* midi interface Input/output port – connected to sammichFM
* Master controller – mpk keyboard
when i tested the sammichFM shortly after building it, i only had a single midi cable connected to the midi in of the device. on my windows machine this was enough to test that jsynthlib worked and my new synth could be addressed by the windows machine. do i remember this correctly? i only need the midi in connected to be able to edit patches from the computer right?
so my next steps are to independently verify that my midi out port on the sammich is working correctly, and poke around to see what midi messages are being sent/received.
the built in midi monitor in jsynthlib was showing all the note messages as i entered them on the keyboard. it did not show any "patch editing" messages.
also when the sammich midi out is connected, this monitor should also register things like sysex dumps and the like?
and for the record, the latest jar as provided in this thread is the version i should be using?
thanks again.
frankster, on 24 November 2011 - 01:29, said:
So what this message is saying is that JSynthLib waited a while to receive some messages during the loopback test, but didn't receive anything. If you don't mind fiddling around a little bit maybe we can track down where the problem is.
Firstly I've just run the midi loopback test on my PC to check that it does work - in at least one case ;). The loopback test worked which proves its possible although as I'm running windows it doesn't shed too much light on your problem.
We can be sure that your problem is caused either by JSynthLib failing to transmit midi data, or by somehow failing to receive it. Perhaps we can start by trying to work out which one of these problems we are having. I suspect that as you are able to use the play sound button, the problem is not with sending midi data but lets be thorough and verify this.
Is it possible to check that JSynthLib transmits something when you initiate the loopback test? For example, on my interface it flashes a light every time midi data is transmitted or received. Maybe there is some midi software on mac that can monitor midi ports, or perhaps you could connect your midi port to your xp machine and use midi-ox or similar on the xp machine?
I'll have a think about ways we can test the receiving side of JSynthLib.
frankie
#20
Posted 24 November 2011 - 13:04
I haven't used JSynthLib on Mac OS Lion, but on my SnowLeopard (10.6.8) install I had to install the MMJ library to get sysex working correctly.
TK has the MMJ link in his post at the top of the thread. Not sure if you have installed that yet?
David
This post has been edited by monokinetic: 29 November 2011 - 12:30



Help
















