Open SuperNose opened 11 months ago
Hm, now also after I've removed the "+rus" suffix, I can no more access that "Set book parameters" menu-item, although I've reopened the .pdf file freshly, I've restarted Audiveris and even reinstalled it. Seems like there is some still-persisted option somewhere.
Error in BookParameters java.lang.NullPointerException: Cannot invoke "String.trim()" because "spec" is null
I've of course downloaded the RU-trained data from here
Quite frustrating, I can't open that dialog now no matter what; and instead of spending the Sunday with music, I'm analyzing the log-files 😂. But the app is really nice, kudos to the author, unbelievable it exists - I would be glad to help somehow, just tell me how 🙂!
Which Audiveris are you using? The installed one (on Windows, the master branch) Or the one built on your own (from the development branch) And which OS too?
There is a bug in the handling of book parameters. Something I discovered yesterday by chance. I can easily push a fix on the development branch I guess you are on the development branch, because this is where the bug on book parameters was introduced a few days ago.
I just pushed a fix on the development branch. Could you pull and rebuild? And tell me if it's OK now...
I've used the Win-Installer "Audiveris_Setup-5.3.1-windows-x86_64.exe" provided at your "Releases" Page, it's dated July-2023. So I didn't build it myself - and in this moment I can't, although I would love to 🤦♂️😖. PS: I've tried yesterday quite a lot more with a quite simple music-sheet and was not able to add the score staff/stave to the unrecognized area. Somehow the tool has quite problems with it and although I'm a senior SW architect and play a bit guitar and sing, I was totally lost and gave up 😁!
@SuperNose
I'm trying to reproduce your problem.
For this, I just installed Audiveris using the .exe available on the Releases page, as you did.
Then, I made sure that the system environment variable TESSDATA_PREFIX was defined and pointing to the tessdata folder where I put the Tesseract language files.
I downloaded the rus.traineddata
file to this tessdata folder.
Then I launched Audiveris, using Windows start menu.
The Help | About
menu gave me this:
Then I could use Book | Set Book Parameters
to set the language selection to eng+rus
:
And things were OK. I can't reproduce your problem.
When you say:
I've tried to recognize a Russian lyrics based on the forum feedback here and added to the org.audiveris.text.Language.defaultSpecification value "+rus"
It is not clear to me how you proceeded:
Book | Set book parameters
)I must reproduce your problem, otherwise I won't be able to help you.
Book | Set Book Parameters
did not show me such options at the beginning, when it was possible to open that dialog: it was empty and I was a bit confused, what´s that option for, when empty.
No, I did not modify the options/settings manually, but as you´ve described via the UI.
Is there any log-file I could send you? Or a TRACE-flag I could increase so it can generate a diagnostic log for sending to you?
Reading the stack-trace, the spec
is null, so when you look into the sources, the reason should be clear for you (and you're faster in your code than me ;-)!)
Tell me pls how to proceed: the tool looks amazingly complex and I'm happy to send you any more information which makes it a bit more stable 👍!
To get us out of this dead end, I have just published a "pre-release" 5.4-alpha. You can grab the Windows installer here Please install, and tell me how it goes on your side.
No crashing now, I can reach that book-settings menu from the alpha version 🙂, TY 👍!
PS: Now I'm left with the more gentle user-challenge: the app won't recognize fully my song (the score stuff was skipped in the beginngin); I've checked the user-docs (for level Einstein skills 😁) how to force/repair the recognition and could not solve it so far🤦♂️
I've tried to recognize a Russian lyrics based on the forum feedback here and added to the org.audiveris.text.Language.defaultSpecification value "+rus". Afterwards I cannot longer open the Book->SetParameters window, it gives me:
WARN [] BookActions 1726 | Error in BookParameters java.lang.NullPointerException: Cannot invoke "String.trim()" because "spec" is null java.lang.NullPointerException: Cannot invoke "String.trim()" because "spec" is null at org.audiveris.omr.text.Language$SupportedLanguages.indicesOf(Language.java:322) at org.audiveris.omr.text.Language$ListModel.indicesOf(Language.java:153) at org.audiveris.omr.score.ui.BookParameters$LangPane.display(BookParameters.java:900) at org.audiveris.omr.score.ui.BookParameters$LangPane.display(BookParameters.java:846) at org.audiveris.omr.score.ui.BookParameters.stateChanged(BookParameters.java:507) at java.desktop/javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:446) at java.desktop/javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:297) at java.desktop/javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:148) at java.desktop/javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:79) at java.desktop/javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:650) at java.desktop/javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:625) at java.desktop/javax.swing.JTabbedPane.setSelectedComponent(JTabbedPane.java:709) at org.audiveris.omr.score.ui.BookParameters.<init>(BookParameters.java:345) at org.audiveris.omr.sheet.ui.BookActions.applyUserSettings(BookActions.java:1660) at org.audiveris.omr.sheet.ui.BookActions.defineParameters(BookActions.java:370) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:647) at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:687) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1029) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1073) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6620) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3398) at java.desktop/java.awt.Component.processEvent(Component.java:6385) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4995) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)