13
0
Commit Graph

40003 Commits

Author SHA1 Message Date
0311bffed8 progrss with rubber band selection and event handling in MIDI cue editor 2024-10-17 07:44:29 -06:00
10b48d2cc4 lock in some major steps for the midi cue/pianoroll editor 2024-10-17 07:44:29 -06:00
549defc068 more work on fixing pianorule recomposition of objects 2024-10-17 07:44:29 -06:00
3bd2d39d51 fixes to get redraws when note range changes 2024-10-17 07:44:29 -06:00
3700f191cd fix some region-view level selection issues 2024-10-17 07:44:29 -06:00
182a24751b get standalone MidiView to display notes
This also removes an unused TriggerBoxWidget from each regular
MixerStrip.
2024-10-17 07:44:29 -06:00
a8895e50c7 Fix behavior of midi region when height changes
MidiView cares about the previous height, so call that first, before
RegionView::set_height() sets the member that controls height()
2024-10-17 07:44:29 -06:00
69d929b9d2 no more slice.h 2024-10-17 07:44:29 -06:00
db89647676 revert scope change for a local variable 2024-10-17 07:44:29 -06:00
5a55f04b16 fix group used as parent for a Midi(Region)View
this fixed the nesting of the _note_group and thus notes are drawn
in the correct place.
2024-10-17 07:44:29 -06:00
0eeb281bd6 remove debug output 2024-10-17 07:44:29 -06:00
8e4edd0c07 Revert "separate out all bounds/position info from Region into "Slice""
This reverts commit f3da2cfd8b9dc077ee35fc3bbaf133adec23d463.
2024-10-17 07:44:29 -06:00
7a5d7cfe69 Revert "add set_* methods to Slice; remove property additions"
This reverts commit 81eee23baab2817218c1766c7d3c37fb7435e619.
2024-10-17 07:44:29 -06:00
c39558471f remove current slice usage/members 2024-10-17 07:44:29 -06:00
659382ecd8 convert debug output from printf to type-safe iostreams 2024-10-17 07:44:29 -06:00
33298a0ba0 get region-create drags working and no crashes (nut also no note) for note-drags 2024-10-17 07:44:29 -06:00
27e9e19aac initial refactoring of MidiRegionView IS-A MidiView 2024-10-17 07:44:29 -06:00
38ebe95613 add missing files 2024-10-17 07:44:29 -06:00
54c41372cc fix a rebase error 2024-10-17 07:44:29 -06:00
2b997343a4 first working visual evidence of MIDI display/editing on cue page 2024-10-17 07:44:29 -06:00
ff962821ad NO-OP: comment fix 2024-10-17 07:44:29 -06:00
584d97bc2d NO-OP (whitespace) 2024-10-17 07:44:29 -06:00
e24d1d069d all streamviews are now ViewBackgrounds
This new inheritance heirarchy lets us share (a very small piece of) code
between streamviews in the Editor and the nascent piano roll object on the cue
page.
2024-10-17 07:44:29 -06:00
a550b6482f start using the now-compilable MidiView
Nothing yet derives from this, but MIDI display items and drags
do use it.
2024-10-17 07:44:29 -06:00
fb1dbb1e9c remove method decls no longer based in PublicEditor.h 2024-10-17 07:44:29 -06:00
a6e02d7a94 add set_* methods to Slice; remove property additions
Derived classes (currently only Region) just register the Slice properties
_start and _length.
2024-10-17 07:44:29 -06:00
e3be2c781f constification of EditingContext/{Public}Editor time+snap methods 2024-10-17 07:44:29 -06:00
9e5211e9b1 move 2 relative time methods from RegionView to EditingContext 2024-10-17 07:44:29 -06:00
45328723b0 separate out all bounds/position info from Region into "Slice"
The idea here is to be able to describe region size, start and position
independently of an actual Region object.
2024-10-17 07:44:29 -06:00
7799adc8db make Stateful a virtual base class of StatefulDestructible
This permits dual inheritance from Stateful.
2024-10-17 07:44:29 -06:00
9d7a87083a removed unused MidiRegionView argument from SysEx (visual) constructor 2024-10-17 07:44:29 -06:00
e67e6aa363 no-compilable steps towards MidiView 2024-10-17 07:44:29 -06:00
204d4237f8 further steps towards MidiRegionView outside the Editor 2024-10-17 07:44:29 -06:00
ca7bd9a73d manually merge in new actions for note tupling 2024-10-17 07:44:29 -06:00
e6c56b39d1 finish basic distribution of EditingContext methods
This compiles but is not expected to work yet
2024-10-17 07:44:29 -06:00
4398fe931b more movement of code and members from Editor => EditingContext 2024-10-17 07:44:29 -06:00
e9d63a707a skeleton for MIDI cue editor 2024-10-17 07:44:29 -06:00
b4e592a469 adjust relationship between VerboseCursor and Editor to use EditingContext 2024-10-17 07:44:29 -06:00
8bbe117e6b add preprocessor guard clauses 2024-10-17 07:44:29 -06:00
2187c63bee add stub for cue editor 2024-10-17 07:44:29 -06:00
1bf2307137 more reorganization of implementations between Editor & EditingContext & PublicEditor 2024-10-17 07:44:29 -06:00
7d5f575d61 finish inheritance work between EditingContext & Editor
this completes the initial phase of defining what an EditingContext must offer,
though the may expand or shrink as we being work on editing outside the Editor
2024-10-17 07:44:29 -06:00
3341184f8c clean up minor mess after manual rebasing 2024-10-17 07:44:29 -06:00
dee8e920e6 editing refactoring, the drag part 2024-10-17 07:44:29 -06:00
089a9521d5 steps to an ecology of editing 2024-10-17 07:44:29 -06:00
744b491162 PublicEditor IS-A MidiEditingContext 2024-10-17 07:44:28 -06:00
722d74c3ef skeleton work for a MidiEditingContext, incomplete 2024-10-17 07:44:28 -06:00
e3d790207f modify MIDITrigger to use an RTMidiBuffer<Beats,Beats> for playback, not a MidiModel
Creating an iterator on a MidiModel (Sequence) creates a read-lock on the same,
which exists until the iterator is destroyed.

This new designs renders the model/source to an RTMidiBuffer, then atomically
swaps in a new RTMidiBuffer in an RT context.

Not yet implemented in this temporary branch is handling required
state-changing messages when the buffer is swapped.
2024-10-17 07:44:28 -06:00
a4a277c141 templatize RTMidiBuffer to allow use in different time domains
Also add ::track_state() method to configue a MidiStateTracker
to correspond to the state implied by an RTMidiBuffer<T,D>
at a given point in time.
2024-10-17 07:44:28 -06:00
b693d07fcb Add a new ::render() method to MidiSource that writes to an EventSink 2024-10-17 07:44:28 -06:00