Commit 94060e7
committed
feat: restructure note model, snapshot serialisation, and staff rendering
Track / note model
- Replace ad-hoc note objects with a unified ISbDmNoteEvent runtime
representation; remove ISbDmNote.
- Track now holds measures only; polyrhythm-specific logic is moved out
into a dedicated MigrationTrack used during legacy import.
- Simplify and tighten edit/clipboard/undo paths around the new model.
Snapshot serialisation
- Introduce compact V2 snapshot format with on-demand migration.
- Add ArrangementSnapshotMigrator with a clear legacy → modern path.
- Cleanly separate legacy and Animada-native serialisation formats.
- Add snapshot-packing (stringify/parse) and numeric-functions helpers.
- Move BananaDrumUrlImporter and the legacy Note type under
serialisation/migration/.
Staff / polyrhythm rendering
- Tuplet-aware StaffNoteViewer: glyph picker, per-pulse rest glyphs,
beam-count via effectiveStepsPerPulse.
- Tuplet brackets render whenever the pulse is not fully covered by a
continuous beam, even for pure-rest pulses; bracket span tightened to
first-notehead-center → last-notehead-center.
- First-bar offset for the tuplet layer via --staff-note-prefix-width.
- Play beam in the first bar aligns to the actual music start using
measureFirstBarMusicStartPx() / getBoundingClientRect.
- New PolyrhythmEventGroupBuilder and PolyrhythmEventNoteViewer; group
consecutive rests into standard rest values.
Instrument / note characteristics
- INoteStyleMeta.characteristics is now mandatory and is propagated from
each variant into the runtime noteStyles (Instrument.ts previously
read a non-existent instrumentMeta.meta.characteristics, leaving
TechniqueType info undefined at runtime).
- Tag every variant in bateria-instruments.ts with the correct
ExcitationMode and TechniqueType (HandTechnique / StickTechnique),
including damping for the surdos.
- Add ExcitationMode.Vocal + VocalCharacteristics for non-instrument
samples and apply it to the spoken number sounds.
- Break circular imports by loading bateriaInstruments and numberSounds
dynamically inside their loaders.
Misc
- Numerous test updates and new specs (snapshots, snapshot-packing,
Track, utils, PolyrhythmFlow integration).
- Minor cleanups in App, ScoreLibrary, SelectionManager, TimeCoordinator,
TrackPlayer and various UI framework components.
Signed-off-by: Mike Lischke <mike@lischke-online.de>1 parent fbeb4d7 commit 94060e7
82 files changed
Lines changed: 4513 additions & 1930 deletions
File tree
- .vscode
- src
- assets/images/notes
- components/ui
- Arrangement
- Bar
- Minimap
- Note
- Track
- framework
- Tabview
- core
- serialisation
- migration
- types
- player
- ui
- tests
- core
- lib
- mocks
- e2e
- integration
- player
- ui
- __snapshots__
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
11 | 15 | | |
12 | 16 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
| 13 | + | |
12 | 14 | | |
13 | 15 | | |
14 | 16 | | |
15 | 17 | | |
| 18 | + | |
16 | 19 | | |
| 20 | + | |
17 | 21 | | |
18 | 22 | | |
| 23 | + | |
19 | 24 | | |
20 | 25 | | |
21 | 26 | | |
22 | 27 | | |
| 28 | + | |
| 29 | + | |
23 | 30 | | |
24 | 31 | | |
25 | 32 | | |
| 33 | + | |
26 | 34 | | |
27 | 35 | | |
| 36 | + | |
28 | 37 | | |
29 | 38 | | |
30 | 39 | | |
| |||
34 | 43 | | |
35 | 44 | | |
36 | 45 | | |
| 46 | + | |
37 | 47 | | |
38 | 48 | | |
39 | 49 | | |
40 | 50 | | |
| 51 | + | |
41 | 52 | | |
42 | 53 | | |
43 | 54 | | |
44 | 55 | | |
45 | 56 | | |
46 | 57 | | |
| 58 | + | |
47 | 59 | | |
48 | 60 | | |
49 | 61 | | |
| |||
54 | 66 | | |
55 | 67 | | |
56 | 68 | | |
| 69 | + | |
| 70 | + | |
57 | 71 | | |
58 | 72 | | |
59 | 73 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
16 | 18 | | |
| 19 | + | |
17 | 20 | | |
18 | 21 | | |
19 | 22 | | |
| 23 | + | |
20 | 24 | | |
21 | | - | |
22 | | - | |
23 | 25 | | |
24 | 26 | | |
25 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
414 | 414 | | |
415 | 415 | | |
416 | 416 | | |
| 417 | + | |
417 | 418 | | |
418 | 419 | | |
419 | 420 | | |
| |||
422 | 423 | | |
423 | 424 | | |
424 | 425 | | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
425 | 434 | | |
426 | 435 | | |
427 | 436 | | |
| |||
512 | 521 | | |
513 | 522 | | |
514 | 523 | | |
515 | | - | |
| 524 | + | |
516 | 525 | | |
| 526 | + | |
517 | 527 | | |
518 | 528 | | |
519 | 529 | | |
| |||
526 | 536 | | |
527 | 537 | | |
528 | 538 | | |
529 | | - | |
| 539 | + | |
530 | 540 | | |
531 | 541 | | |
532 | 542 | | |
533 | 543 | | |
534 | 544 | | |
535 | 545 | | |
536 | | - | |
537 | | - | |
| 546 | + | |
| 547 | + | |
538 | 548 | | |
539 | 549 | | |
540 | 550 | | |
| |||
614 | 624 | | |
615 | 625 | | |
616 | 626 | | |
617 | | - | |
618 | | - | |
619 | | - | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
620 | 630 | | |
621 | | - | |
622 | | - | |
623 | 631 | | |
624 | 632 | | |
625 | 633 | | |
626 | 634 | | |
627 | 635 | | |
628 | 636 | | |
629 | | - | |
630 | | - | |
631 | | - | |
632 | | - | |
633 | | - | |
634 | | - | |
635 | | - | |
636 | | - | |
637 | 637 | | |
638 | 638 | | |
639 | 639 | | |
640 | 640 | | |
641 | 641 | | |
642 | 642 | | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
643 | 650 | | |
644 | 651 | | |
645 | 652 | | |
| |||
656 | 663 | | |
657 | 664 | | |
658 | 665 | | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
659 | 697 | | |
660 | 698 | | |
661 | 699 | | |
662 | | - | |
663 | | - | |
664 | | - | |
| 700 | + | |
| 701 | + | |
665 | 702 | | |
666 | 703 | | |
667 | 704 | | |
| |||
670 | 707 | | |
671 | 708 | | |
672 | 709 | | |
673 | | - | |
| 710 | + | |
674 | 711 | | |
675 | | - | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
676 | 740 | | |
677 | 741 | | |
678 | 742 | | |
| |||
770 | 834 | | |
771 | 835 | | |
772 | 836 | | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
773 | 846 | | |
774 | 847 | | |
775 | 848 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
43 | | - | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
44 | 47 | | |
45 | 48 | | |
46 | 49 | | |
| |||
72 | 75 | | |
73 | 76 | | |
74 | 77 | | |
75 | | - | |
| 78 | + | |
76 | 79 | | |
77 | 80 | | |
78 | 81 | | |
| |||
120 | 123 | | |
121 | 124 | | |
122 | 125 | | |
| 126 | + | |
123 | 127 | | |
124 | 128 | | |
125 | 129 | | |
126 | 130 | | |
127 | | - | |
| 131 | + | |
128 | 132 | | |
129 | 133 | | |
130 | 134 | | |
| |||
483 | 487 | | |
484 | 488 | | |
485 | 489 | | |
486 | | - | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
487 | 504 | | |
488 | 505 | | |
489 | 506 | | |
| |||
548 | 565 | | |
549 | 566 | | |
550 | 567 | | |
551 | | - | |
552 | | - | |
553 | | - | |
554 | | - | |
555 | | - | |
556 | | - | |
| 568 | + | |
557 | 569 | | |
558 | 570 | | |
559 | 571 | | |
| |||
637 | 649 | | |
638 | 650 | | |
639 | 651 | | |
640 | | - | |
| 652 | + | |
| 653 | + | |
641 | 654 | | |
642 | 655 | | |
643 | 656 | | |
| |||
Loading
Loading
0 commit comments