Skip to content

feat: recording-workflows and spacing optimizations#2585

Merged
Danielku15 merged 17 commits intodevelopfrom
feature/recording-updates
Apr 26, 2026
Merged

feat: recording-workflows and spacing optimizations#2585
Danielku15 merged 17 commits intodevelopfrom
feature/recording-updates

Conversation

@Danielku15
Copy link
Copy Markdown
Member

@Danielku15 Danielku15 commented Mar 1, 2026

Issues

Relates to #2560

Proposed changes

This PR adds some optimizations to allow a recording like workflow using alphaTab where we dynamically append bars and update the content of the "current" bar. All while having a "fake silent playback" for a cursor display.

As of now this PR adds:

  • a small demo recorder page which
    • sets up an optimized view for recording which avoids flickering as we extend and update. other modes might also technically work but might cause way more layout shifting (bad for UX and performance).
    • configures the player in way to play for 30mins despite the music sheet being shorter.
    • it extends the music sheet system-by-system (rows) and adds a new empty system at 80% of the second last bar. This reduces the number of times we need to insert new bars and provides a smooth cursor experience.
    • the bars are filled with quarter rests, and as users type 0-9 on the keyboard, a single note with the same fret is inserted or updated. this is simply demonstrating the recording part in a very simplified way. These updates might depend on the app (editor, recording etc.)
  • adds a new alphaTab feature which allows specifying which bar (master bar index) was changed. alphaTab will then re-render the music sheet in an optimized way avoiding performance intense full-relayouts.

new improvements in last iteration were:

in alphaTab:

  • I improved some aspects of the rhythmic spacing. within a staff you should now experience a way more consistent rhythmic spacing.
  • some bugs in the incremental rendering were fixed
  • seeking to empty beats now works fine.

in the recorder:

  • there is now a drum-pad style display with drum/percussion recording (instead of notes)
  • we have now empty beats instead of rests
  • we have a separate grid showing the beat and sub-beat quantization used for recording (closer to your grid system)
  • if you stop recording (pause) and seek back, the recorded notes will be played.

Further updates might be done based on the inputs we get on #2560

Checklist

  • I consent that this change becomes part of alphaTab under it's current or any future open source license
  • Changes are implemented
  • New tests were added

Further details

  • This is a breaking change
  • This change will require update of the documentation/website

@Danielku15 Danielku15 self-assigned this Mar 1, 2026
@Danielku15 Danielku15 changed the title Feature/recording updates feat: allow recording-like flows with optimized performance Mar 1, 2026
@Danielku15 Danielku15 marked this pull request as ready for review April 26, 2026 15:50
@Danielku15 Danielku15 changed the title feat: allow recording-like flows with optimized performance feat: recording-workflows and spacing optimizations Apr 26, 2026
@Danielku15 Danielku15 merged commit 8df315f into develop Apr 26, 2026
5 checks passed
@Danielku15 Danielku15 deleted the feature/recording-updates branch April 26, 2026 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Issues with the in-built cursor starting and when adding new bars during MIDI recording

1 participant