|
Post by John on Jun 17, 2020 10:53:16 GMT 1
Please forgive me, this is probably going to be the stupidest question on the entire forum.
So far I have never been able to get JJazzlab to play anything, because it just keeps saying the song is not "active". (How vague - what does that mean? why doesn't it give the option to make it active then?)
No problem i'll just click on the make active button or press 'o' right? those options are greyed out. Why?
So far the program looks nice, but being unable to get the PLAY BUTTON TO RESPOND to anything is incredibly infuriating. (understatement)
|
|
|
Post by Jerome on Jun 17, 2020 12:30:08 GMT 1
What JJazzLab version do you use ? Windows, Linux, Mac ? Do you have one song open ? If yes it looks like a bug... If only one song is open, it should be active by default. Manually activating a song is only required when you have several songs open and want to switch between them ("activation" will initialize the Midi sound device with the instruments of the active song). What you can try: 1/ Menu tools/options/general/button Show Log: check if you see an "Exception" error message. If yes please copy & paste the whole log in a file and attach it to this thread 2/ To reset everything click on menu Tools/options/general/button Reset All User Settings and follow the instructions.
A screen copy when you encounter the problem can help also.
Thanks.
|
|
|
Post by John on Jun 17, 2020 12:44:33 GMT 1
Hi Jerome thankyou for your very fast response!
V2.1.1 Windows 7 Only song open
It does give exception errors:
java.lang.IndexOutOfBoundsException: Index 261 out of bounds for length 231 at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Unknown Source) at java.base/jdk.internal.util.Preconditions.checkIndex(Unknown Source) at java.base/java.util.Objects.checkIndex(Unknown Source) at java.base/java.util.ArrayList.get(Unknown Source) at org.jjazz.midi.synths.GSBank.getDrumsInstrument(GSBank.java:335) at org.jjazz.midiconverters.api.StdInstrumentConverter.getDrumsInstrument(StdInstrumentConverter.java:289) at org.jjazz.midiconverters.api.StdInstrumentConverter.findStandardDrumsInstrument(StdInstrumentConverter.java:270) at org.jjazz.outputsynth.OutputSynth.findInstrument(OutputSynth.java:643) at org.jjazz.outputsynth.DefaultRhythmVoiceInstrumentProviderImpl.findInstrument(DefaultRhythmVoiceInstrumentProviderImpl.java:46) at org.jjazz.midimix.MidiMixManager.createMix(MidiMixManager.java:203) at org.jjazz.midimix.MidiMixManager.findMix(MidiMixManager.java:151) at org.jjazz.midimix.MidiMixManager.createMix(MidiMixManager.java:171) at org.jjazz.midimix.MidiMixManager.findMix(MidiMixManager.java:114) at org.jjazz.songeditormanager.SongEditorManager.activateSong(SongEditorManager.java:342) at org.jjazz.songeditormanager.SongEditorManager.lambda$updateActiveSong$0(SongEditorManager.java:328) at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source) [catch] at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
To reproduce the problem I simply open any of the example songs.
I hope this helps, I am happy to send any other info you need.
Best regards, John
|
|
|
Post by Jerome on Jun 17, 2020 14:37:49 GMT 1
Can you send me a .sng file which has the problem ?
By the way do you have the problem if you create a new song from scratch ?
|
|
|
Post by John on Jun 17, 2020 17:38:02 GMT 1
The song files that come packed with the install can reproduce this problem, and yes the problem persists even when starting a new song from scratch.
I have deleted the folder as suggested in the reset instructions too.
|
|
|
Post by Jerome on Jun 17, 2020 21:59:28 GMT 1
Again, please send a "faulty" .sng file. It might have been changed in some way on your system.
When you create a new song (ctrl-N), what rhythm name do you see in the song structure ? Please copy and paste the whole log content after you created the song.
Also could you go to menu/help/about, see the "Netbeans user dir" location. Go to this directory/.jjazz/OutputSynthFiles and send me the default.cfg file (it should be the only file). thanks.
|
|
|
Post by Joel on Nov 22, 2020 18:36:23 GMT 1
Hi Jerome,
First of all, this looks like a fantastic project, and I'm excited to try using it. Unfortunately, I ran into the same issue as John.
Here's the system information from the about panel:
OS: name=Windows 10, version=10.0 arch=amd64, vendor=AdoptOpenJDK Java: version=11.0.8, vm.name=OpenJDK 64-Bit Server VM, vm.version=11.0.8+10, runtime=OpenJDK Runtime Environment Java: java.home=C:\Users\Joel\AppData\Local\Programs\JJazzLab\jdk, jdk.home=jdk Locale: en (jjazzlab) File.separator: \ User.name: Joel User.home: C:\Users\Joel User.dir: C:\Users\Joel\AppData\Local\Programs\JJazzLab User.country: US User.language: en File.encoding: Cp1252 Netbeans.buildnumber: 12.0-631bd69cd6112b1cc4c892c24e3e605b1ba04241 Netbeans.home: C:\Users\Joel\AppData\Local\Programs\JJazzLab\platform Netbeans user dir: C:\Users\Joel\AppData\Roaming\jjazzlab\2.2.0 Netbeans cache dir: C:\Users\Joel\AppData\Local\jjazzlab\Cache\2.2.0 Netbeans.default_userdir_root: C:\Users\Joel\AppData\Roaming\jjazzlab Nb.native.filechooser: false JJazzLab user dir: C:\Users\Joel\JJazzLab JJazzLab rhythm user dir: C:\Users\Joel JJazzLab app config dir: C:\Users\Joel\AppData\Roaming\jjazzlab\2.2.0\.jjazz JJazzLab rhythm mix dir: C:\Users\Joel And here's the error log:
java.lang.IndexOutOfBoundsException: Index 256 out of bounds for length 231 at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Unknown Source) at java.base/jdk.internal.util.Preconditions.checkIndex(Unknown Source) at java.base/java.util.Objects.checkIndex(Unknown Source) at java.base/java.util.ArrayList.get(Unknown Source) at org.jjazz.midi.synths.GSBank.getDrumsInstrument(GSBank.java:335) at org.jjazz.midiconverters.api.StdInstrumentConverter.getDrumsInstrument(StdInstrumentConverter.java:289) at org.jjazz.midiconverters.api.StdInstrumentConverter.findStandardDrumsInstrument(StdInstrumentConverter.java:270) at org.jjazz.outputsynth.OutputSynth.findInstrument(OutputSynth.java:645) at org.jjazz.outputsynth.DefaultRhythmVoiceInstrumentProviderImpl.findInstrument(DefaultRhythmVoiceInstrumentProviderImpl.java:46) at org.jjazz.midimix.MidiMixManager.createMix(MidiMixManager.java:202) at org.jjazz.midimix.MidiMixManager.findMix(MidiMixManager.java:150) at org.jjazz.midimix.MidiMixManager.createMix(MidiMixManager.java:170) at org.jjazz.midimix.MidiMixManager.findMix(MidiMixManager.java:113) at org.jjazz.ui.mixconsole.api.MixConsole.songPresenceChanged(MixConsole.java:529) at org.jjazz.ui.mixconsole.api.MixConsole.lambda$new$0(MixConsole.java:201) at jdk.internal.reflect.GeneratedMethodAccessor28.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.openide.util.WeakListenerImpl$ProxyListener.invoke(WeakListenerImpl.java:462) at com.sun.proxy.$Proxy9.resultChanged(Unknown Source) at org.openide.util.lookup.SimpleProxyLookup.checkLookup(SimpleProxyLookup.java:89) at org.openide.util.lookup.SimpleProxyLookup.lookup(SimpleProxyLookup.java:134) at org.netbeans.modules.openide.windows.GlobalActionContextImpl.blickActionMapImpl(GlobalActionContextImpl.java:107) at org.netbeans.modules.openide.windows.GlobalActionContextImpl.blickActionMap(GlobalActionContextImpl.java:81) at org.netbeans.modules.openide.windows.GlobalActionContextImpl.blickActionMap(GlobalActionContextImpl.java:77) at org.openide.windows.TopComponent.requestVisible(TopComponent.java:852) at org.jjazz.ui.ss_editor.api.SS_EditorTopComponent.componentActivated(SS_EditorTopComponent.java:314) [catch] at org.openide.windows.WindowManager.activateComponent(WindowManager.java:266) at org.netbeans.core.windows.WindowManagerImpl.notifyRegistryTopComponentActivated(WindowManagerImpl.java:1211) at org.netbeans.core.windows.Central.setActiveMode(Central.java:233) at org.netbeans.core.windows.Central.userActivatedMode(Central.java:1876) at org.netbeans.core.windows.view.DefaultView.userActivatedModeView(DefaultView.java:643) at org.netbeans.core.windows.view.ui.TabbedHandler$ActivationManager.handleActivation(TabbedHandler.java:524) at org.netbeans.core.windows.view.ui.TabbedHandler$ActivationManager.eventDispatched(TabbedHandler.java:471) at java.desktop/java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Unknown Source) at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source) at java.desktop/java.awt.Toolkit.notifyAWTEventListeners(Unknown Source) at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Component.dispatchEvent(Unknown Source) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Component.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source) at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
And here's the content of the Default.cfg file
<OutputSynth resolves-to="org.jjazz.outputsynth.OutputSynth$SerializationProxy"> <spVERSION>1</spVERSION> <spCompatibleStdBankNames> <string>GM</string> <string>GS</string> </spCompatibleStdBankNames> <spCustomSynthsStrings/> <spRemapTable resolves-to="org.jjazz.outputsynth.GMRemapTable$SerializationProxy"> <spVERSION>1</spVERSION> <spMapInstruments/> <spDrumsInstrumentStr>NOT_SET</spDrumsInstrumentStr> <spPercInstrumentStr>NOT_SET</spPercInstrumentStr> </spRemapTable> <spUserInstrument class="org.jjazz.midi.synths.GM1Instrument" resolves-to="org.jjazz.midi.synths.GM1Instrument$SerializationProxy"> <spVERSION>1</spVERSION> <spProgChange>0</spProgChange> </spUserInstrument> <spSendModeOnUponPlay>GS</spSendModeOnUponPlay> </OutputSynth> Just creating a new song triggers this issue. I've tried to save it so I can upload the file, but strangely, it doesn't seem to save. I tried to save newsong1 to my desktop, but the file doesn't seem to be created (there's no indication that this has failed in the program).
I've tried multiple uninstall/reinstalls of the app with no luck. Two 'non-standard' things that might be related: I've installed for the current user, not for all users, and I'm using the Microsoft GM Wavetable synth as my device rather than the recommended soundfont. I was once able to get one of the demo songs to play, but I couldn't get a new song to ever play. Right now, opening a demo song still doesn't allow me to play the song.
Let me know if you need anything else, and thanks for all your hard work on this app!
|
|
|
Post by Jerome on Nov 23, 2020 20:23:18 GMT 1
Hi Joel,
Looks like a bug but I can't reproduce on my Windows PC...
Could you try starting JJazzLab after you've removed the whole directory C:\Users\Joel\AppData\Roaming\jjazzlab\2.2.0 ?
|
|
|
Post by Joel on Nov 24, 2020 12:53:02 GMT 1
Interesting... After I deleted the folder, I went through the setup again. This time I noticed the java internal synth option, and selected that instead. Everything appeared to work correctly after I did that. I closed the app, deleted the folder again, opened it, and this time selected the microsoft wavetable synthesizer like I had before. While the song appeared to be active, clicking the play button had no effect, and an error was logged.
java.lang.NullPointerException at org.jjazz.midimix.MidiMixManager.findMix(MidiMixManager.java:93) at org.jjazz.ui.musiccontrolactions.Play.setSelected(Play.java:149) at org.jjazz.ui.musiccontrolactions.Play.actionPerformed(Play.java:102) at org.jjazz.ui.flatcomponents.FlatToggleButton.buttonClicked(FlatToggleButton.java:222) at org.jjazz.ui.flatcomponents.FlatButton.mouseClicked(FlatButton.java:242) at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(Unknown Source) at java.desktop/java.awt.Component.processMouseEvent(Unknown Source) at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source) at java.desktop/java.awt.Component.processEvent(Unknown Source) at java.desktop/java.awt.Container.processEvent(Unknown Source) at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Component.dispatchEvent(Unknown Source) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.Component.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.desktop/java.awt.EventQueue$5.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source) [catch] at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
I then used the midi setup wizard to select the java synth. It still wouldn't play the song, but when I restarted the app, things worked fine. I have to assume it's being triggered by trying to use the microsoft wavetable synth. I only picked that one originally to quickly trial the app without installing the soundfont & player, so it's not a big deal for me.
|
|
|
Post by Jerome on Nov 24, 2020 16:47:04 GMT 1
Good news, I've just reproduced the problem by selecting the Microsoft Wavetable Midi output! I'll fix it, I think it's a minor issue.
Microsoft Wavetable sounds really bad, that's why I guess almost nobody use it. Java internal synth is better. Much better is VirtualMidiSynth + JJazzLabSoundFont, and even better is to connect JJazzLab to a real hardware synth or VST instruments.
|
|