-
Notifications
You must be signed in to change notification settings - Fork 249
Android: some MusicXML files fail to fully render and cursor becomes unusable (works on Web) #2630
Copy link
Copy link
Open
Labels
state-needs-triageBug not triaged yet.Bug not triaged yet.
Description
Is there an existing issue for this?
- I have searched the existing issues
Current Behavior
On Android, this attached MusicXML file does not render fully, and cursor functionality is not usable because rendering fails.
The same file renders correctly in the Web target (tested on https://alphatab.net/).
Expected Behavior
The same MusicXML should render fully on Android, and cursor behavior should work normally (including playback/user interaction scenarios), just like in Web target.
Steps To Reproduce
- Create a simple Android app screen that hosts alphaTab
- Enable user interaction and cursor in settings, for example:
val settings = alphaTab.Settings().apply {
player.playerMode = PlayerMode.EnabledAutomatic
player.enableCursor = true
player.enableAnimatedBeatCursor = true
player.enableUserInteraction = true
player.scrollMode = ScrollMode.OffScreen
display.scale = 0.8
}
- Load the attached MusicXML file (score.xml).
- Observe that rendering is incomplete/fails and cursor behavior is broken on Android.
Link to jsFiddle, CodePen, Project
No response
Version and Environment
1. alphaTab version: 1.8.1
2. Platform: Android (Kotlin)
3. Devices: Android 14/16 tablet and phonePlatform
Android (Native)
Anything else?
I got stack traces from AlphaTabApiBase.onError on Android for the same file:
NullPointerException
0 = {StackTraceElement@34817} "alphaTab.rendering.utils.AccidentalHelper.getNoteSteps(AccidentalHelper.kt:240)"
1 = {StackTraceElement@34818} "alphaTab.rendering.ScoreBarRenderer.getNoteSteps(ScoreBarRenderer.kt:383)"
2 = {StackTraceElement@34819} "alphaTab.rendering.glyphs.ScoreBeatGlyph._createNoteGlyphs(ScoreBeatGlyph.kt:307)"
3 = {StackTraceElement@34820} "alphaTab.rendering.glyphs.ScoreBeatGlyph._createGlyphs(ScoreBeatGlyph.kt:251)"
4 = {StackTraceElement@34821} "alphaTab.rendering.glyphs.ScoreBeatGlyph.doLayout(ScoreBeatGlyph.kt:218)"
5 = {StackTraceElement@34822} "alphaTab.rendering.glyphs.BeatContainerGlyph.doLayout(BeatContainerGlyph.kt:216)"
6 = {StackTraceElement@34823} "alphaTab.rendering.ScoreBeatContainerGlyph.doLayout(ScoreBeatContainerGlyph.kt:99)"
7 = {StackTraceElement@34824} "alphaTab.rendering.glyphs.MultiVoiceContainerGlyph.doLayout(MultiVoiceContainerGlyph.kt:335)"
8 = {StackTraceElement@34825} "alphaTab.rendering.BarRendererBase.createBeatGlyphs(BarRendererBase.kt:641)"
9 = {StackTraceElement@34826} "alphaTab.rendering.BarRendererBase.doLayout(BarRendererBase.kt:444)"
10 = {StackTraceElement@34827} "alphaTab.rendering.LineBarRenderer.doLayout(LineBarRenderer.kt:111)"
11 = {StackTraceElement@34828} "alphaTab.rendering.staves.RenderStaff.addBar(RenderStaff.kt:244)"
12 = {StackTraceElement@34829} "alphaTab.rendering.staves.StaffSystem.addBars(StaffSystem.kt:232)"
13 = {StackTraceElement@34830} "alphaTab.rendering.layout.VerticalLayoutBase._createStaffSystem(VerticalLayoutBase.kt:426)"
14 = {StackTraceElement@34831} "alphaTab.rendering.layout.VerticalLayoutBase._layoutAndRenderScore(VerticalLayoutBase.kt:315)"
15 = {StackTraceElement@34832} "alphaTab.rendering.layout.VerticalLayoutBase.doLayoutAndRender(VerticalLayoutBase.kt:75)"
16 = {StackTraceElement@34833} "alphaTab.rendering.layout.ScoreLayout.layoutAndRender(ScoreLayout.kt:143)"
17 = {StackTraceElement@34834} "alphaTab.rendering.ScoreRenderer._layoutAndRender(ScoreRenderer.kt:279)"
18 = {StackTraceElement@34835} "alphaTab.rendering.ScoreRenderer.render(ScoreRenderer.kt:244)"
19 = {StackTraceElement@34836} "alphaTab.rendering.ScoreRenderer.renderScore(ScoreRenderer.kt:153)"
20 = {StackTraceElement@34837} "alphaTab.rendering.ScoreRendererWrapper.renderScore(ScoreRendererWrapper.kt:159)"
21 = {StackTraceElement@34838} "alphaTab.AlphaTabApiBase.render(AlphaTabApiBase.kt:556)"
22 = {StackTraceElement@34839} "alphaTab.AlphaTabApiBase._internalRenderTracks(AlphaTabApiBase.kt:429)"
23 = {StackTraceElement@34840} "alphaTab.AlphaTabApiBase.renderScore(AlphaTabApiBase.kt:386)"
24 = {StackTraceElement@34841} "alphaTab.AlphaTabApiBase.renderScore$default(AlphaTabApiBase.kt:348)"
25 = {StackTraceElement@34842} "alphaTab.AlphaTabView.renderTracks(AlphaTabView.kt:115)"
26 = {StackTraceElement@34843} "alphaTab.AlphaTabView.setTracks(AlphaTabView.kt:29)"
ClassCastException
0 = {StackTraceElement@34703} "alphaTab.model.MusicFontSymbol$Companion.fromValue(MusicFontSymbol.kt:621)"
1 = {StackTraceElement@34704} "alphaTab.rendering.LineBarRenderer._paintTupletHelper(LineBarRenderer.kt:371)"
2 = {StackTraceElement@34705} "alphaTab.rendering.LineBarRenderer.paintTuplets(LineBarRenderer.kt:224)"
3 = {StackTraceElement@34706} "alphaTab.rendering.LineBarRenderer.paintTuplets$default(LineBarRenderer.kt:216)"
4 = {StackTraceElement@34707} "alphaTab.rendering.LineBarRenderer.paintContent(LineBarRenderer.kt:137)"
5 = {StackTraceElement@34708} "alphaTab.rendering.BarRendererBase.paint(BarRendererBase.kt:560)"
6 = {StackTraceElement@34709} "alphaTab.rendering.staves.RenderStaff.paint(RenderStaff.kt:368)"
7 = {StackTraceElement@34710} "alphaTab.rendering.staves.StaffSystem.paintPartial(StaffSystem.kt:579)"
8 = {StackTraceElement@34711} "alphaTab.rendering.staves.StaffSystem.paint(StaffSystem.kt:533)"
9 = {StackTraceElement@34712} "alphaTab.rendering.layout.VerticalLayoutBase._paintSystem$lambda$0(VerticalLayoutBase.kt:344)"
10 = {StackTraceElement@34713} "alphaTab.rendering.layout.VerticalLayoutBase$$ExternalSyntheticLambda1.invoke(D8$$SyntheticClass:0)"
11 = {StackTraceElement@34714} "alphaTab.rendering.layout.ScoreLayout._internalRenderLazyPartial(ScoreLayout.kt:179)"
12 = {StackTraceElement@34715} "alphaTab.rendering.layout.ScoreLayout.renderLazyPartial(ScoreLayout.kt:190)"
13 = {StackTraceElement@34716} "alphaTab.rendering.ScoreRenderer.renderResult(ScoreRenderer.kt:195)"
14 = {StackTraceElement@34717} "alphaTab.rendering.ScoreRendererWrapper.renderResult(ScoreRendererWrapper.kt:166)"
15 = {StackTraceElement@34718} "alphaTab.platform.android.AndroidUiFacade.initialize$lambda$0(AndroidUiFacade.kt:123)"
16 = {StackTraceElement@34719} "alphaTab.platform.android.AndroidUiFacade$$ExternalSyntheticLambda6.invoke(D8$$SyntheticClass:0)"
17 = {StackTraceElement@34720} "alphaTab.platform.android.AlphaTabRenderSurface.onLayout(AlphaTabRenderSurface.kt:159)"
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
state-needs-triageBug not triaged yet.Bug not triaged yet.