MIDIbox Forum: JSynthLib update - MIDIbox Forum

Jump to content

  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

JSynthLib update Rate Topic: -----

#1 User is offline   TK. 

  • MIDIbox Guru
  • View gallery
  • Group: Administrators
  • Posts: 11,141
  • Joined: 01-January 01
  • LocationGermany

Posted 18 December 2010 - 16:37

4 years after the last "inofficial" JSynthLib release it made sense to provide a new .jar file with the latest changes.

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.
Posted Image 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 User is offline   Davo 

  • MIDIbox Tweaker
  • PipPipPip
  • Group: Members
  • Posts: 446
  • Joined: 18-January 05
  • LocationCalifornia

Posted 19 December 2010 - 00:31

Nifty. Maybe it's time to semi-officially take over custody of JSynthLib since nobody else but the Midibox community seems to want to keep it up to date.
On a clear disc, you can seek forever...

#3 User is offline   Wilba 

  • MIDIbox Hero
  • View gallery
  • Group: Administrators
  • Posts: 3,284
  • Joined: 27-August 03
  • LocationMelbourne, Australia

Posted 19 December 2010 - 12:42

Maybe it's time someone wrote a dedicated MIDIbox FM patch editor/librarian... :D
Posted Image 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 User is offline   TK. 

  • MIDIbox Guru
  • View gallery
  • Group: Administrators
  • Posts: 11,141
  • Joined: 01-January 01
  • LocationGermany

Posted 19 December 2010 - 12:52

If somebody would ever do this, please use Juce to ensure platform independency!
This would also allow to port the editor to an iPad w/o much effort :)

Best Regards, Thorsten.
Posted Image 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 User is offline   sonicwarrior 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 239
  • Joined: 22-March 05

Posted 23 September 2011 - 18:53

View PostDavo, on 19 December 2010 - 00:31, said:

Maybe it's time to semi-officially take over custody of JSynthLib since nobody else but the Midibox community seems to want to keep it up to date.


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 User is offline   frankster 

  • MIDIbox Newbie
  • Pip
  • Group: Members
  • Posts: 3
  • Joined: 23-September 11

Posted 23 September 2011 - 20:19

Thorsten's replied to me (already!) and the changes discussed here are already in the repository so they will be included in the next official release (0.21) which is likely to come out within the next few weeks.

#7 User is offline   'tini 

  • MIDIbox Newbie
  • Pip
  • Group: Members
  • Posts: 22
  • Joined: 15-November 11

Posted 23 November 2011 - 11:19

can anyone else confirm this as not working in osx lion? all i can get jsynth to do is play a note, it won't read/write patches at all. works fine on my windows XP machine...


poo. the mac is my music machine, no editor for the FM will suck big time..

#8 User is offline   frankster 

  • MIDIbox Newbie
  • Pip
  • Group: Members
  • Posts: 3
  • Joined: 23-September 11

Posted 23 November 2011 - 12:21

Can I ask which version of jsynthlib are you using? And which version of java you have?

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 User is offline   'tini 

  • MIDIbox Newbie
  • Pip
  • Group: Members
  • Posts: 22
  • Joined: 15-November 11

Posted 23 November 2011 - 16:30

View Postfrankster, on 23 November 2011 - 12:21, said:

Can I ask which version of jsynthlib are you using? And which version of java you have?

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 User is offline   sonicwarrior 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 239
  • Joined: 22-March 05

Posted 23 November 2011 - 19:09

Unfortunately I don't have a Mac anymore since the HD on my iBook crashed one and a half years ago.
But hopefully using the latest Java 1.6.0_29 and the RC will help.

#11 User is offline   'tini 

  • MIDIbox Newbie
  • Pip
  • Group: Members
  • Posts: 22
  • Joined: 15-November 11

Posted 23 November 2011 - 20:38

no joy. went over everything again and followed install instructions to the letter, still can't edit patches, just the play sound button works. also tried the new release candidate...

i do get this error on the midi loopback test though:

Quote

The error was:
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 User is offline   sonicwarrior 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 239
  • Joined: 22-March 05

Posted 23 November 2011 - 21:05

Are you sure your MIDI interface is working properly?

At first sight this looks a MIDI interface driver issue.

#13 User is offline   'tini 

  • MIDIbox Newbie
  • Pip
  • Group: Members
  • Posts: 22
  • Joined: 15-November 11

Posted 23 November 2011 - 21:49

interface is fine. both of them. tried them individually with jsynthlib, no dice, same issue.

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 User is offline   sonicwarrior 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 239
  • Joined: 22-March 05

Posted 23 November 2011 - 21:59

Which Java version are you using?

If you don't know that try
java -version
in a terminal (command line) window.

#15 User is offline   'tini 

  • MIDIbox Newbie
  • Pip
  • Group: Members
  • Posts: 22
  • Joined: 15-November 11

Posted 23 November 2011 - 22:35

1.6.0_29

#16 User is offline   sonicwarrior 

  • MIDIbox Addict
  • PipPip
  • Group: Members
  • Posts: 239
  • Joined: 22-March 05

Posted 23 November 2011 - 23:06

Ok, and did you use the JSynthLib from http://dl.dropbox.co...stribution.zip?

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

* Convert <code>SysexMessage</code> into a hexa-dump string.


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 User is offline   'tini 

  • MIDIbox Newbie
  • Pip
  • Group: Members
  • Posts: 22
  • Joined: 15-November 11

Posted 23 November 2011 - 23:15

ok, thanks for your help!

i double checked and made sure i was running the version you mention above, and get the following error:
The error was:

Quote

null
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 User is offline   frankster 

  • MIDIbox Newbie
  • Pip
  • Group: Members
  • Posts: 3
  • Joined: 23-September 11

Posted 24 November 2011 - 01:29

Hi,

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 User is offline   'tini 

  • MIDIbox Newbie
  • Pip
  • Group: Members
  • Posts: 22
  • Joined: 15-November 11

Posted 24 November 2011 - 10:55

frank, thanks so much for taking the time with this. my music set up is something like this:

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



View Postfrankster, on 24 November 2011 - 01:29, said:

Hi,

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 User is offline   monokinetic 

  • MIDIbox Addict
  • PipPip
  • Group: Programmer
  • Posts: 220
  • Joined: 29-September 02

Posted 24 November 2011 - 13:04

Hi Frankie ('tini actually),
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


Share this topic:


  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users