Paul Davis
1e8b2c521c
provide a better method to decide if a trigger(slot) is occupied
...
This is necessary with clip recording because for some short time after recording,
a trigger may be playable despite not yet having a region.
libs edition.
2024-10-17 07:44:32 -06:00
Paul Davis
596c54d742
fix ups for record state in TriggerBox
2024-10-17 07:44:32 -06:00
Paul Davis
d7d208dc34
move RecordState enum from ARDOUR::Session to ARDOUR so we can use it in TriggerBox (libs)
2024-10-17 07:44:32 -06:00
Paul Davis
6ef4a74728
cleanup of bits of clip recording code
2024-10-17 07:44:32 -06:00
Paul Davis
4466563a89
avoid double delete of clip recording audio buffers
2024-10-17 07:44:32 -06:00
Paul Davis
25400a4936
fix appending new audio data during clip recording
2024-10-17 07:44:32 -06:00
Paul Davis
7455b99b45
account for clip recording when computing monitoring state
2024-10-17 07:44:32 -06:00
Paul Davis
a357575954
less debugging
2024-10-17 07:44:32 -06:00
Paul Davis
423148c2af
tweaks to cleanup and get much closer to full audio clip recording
2024-10-17 07:44:32 -06:00
Paul Davis
26fb50d1a9
a bit more type-safety when handling audio data during clip recording
2024-10-17 07:44:32 -06:00
Paul Davis
d7c424c440
attempt to write and use audio data to disk for audio clip recording
2024-10-17 07:44:32 -06:00
Paul Davis
0959696070
NO-OP: remove pointless embedded whitespace
2024-10-17 07:44:32 -06:00
Paul Davis
b4d0b06d95
const-ify first "src" argument in AudioSource::write() and derivatives
2024-10-17 07:44:32 -06:00
Paul Davis
74132b60a0
get the data collection and initial setup part of audio clip recording working
...
Not yet implemented: writing the data to disk and creating a new Region
2024-10-17 07:44:32 -06:00
Paul Davis
ac4bb55f13
first functioning MIDI clip recording (libs)
2024-10-17 07:44:32 -06:00
Paul Davis
a2d44ba97d
remove ClipRecProcessor, whose functionality will move into TriggerBox where it should have been
2024-10-17 07:44:32 -06:00
Paul Davis
1fa42dcb95
provide rec-enable state for TriggerBoxen
2024-10-17 07:44:32 -06:00
Paul Davis
052ef18c4a
cliprec: add processor to tracks, and get MIDITrigger prepared for capture
2024-10-17 07:44:32 -06:00
Paul Davis
86b01a5d2f
provide an interesting method to convert an RTMidiBuffer<samples> to RTMidiBuffer<beats> without any memory reallocation
2024-10-17 07:44:32 -06:00
Paul Davis
88c326aee0
more clip recording refactoring
2024-10-17 07:44:32 -06:00
Paul Davis
aa9a998f60
small steps towards clip recording
2024-10-17 07:44:32 -06:00
Paul Davis
107706af8a
some tiny steps towards using new data structures for clip recording
2024-10-17 07:44:32 -06:00
Paul Davis
75f56cd3e1
the great onceification (libs)
...
Replace use of #ifndef header guards with #pragma once
Modern C++, baby!
2024-10-17 07:44:31 -06:00
Paul Davis
a9205ffd55
use nullptr, not NULL
2024-10-17 07:44:31 -06:00
Paul Davis
8baaa7eb66
TriggerReference requires some sort of lifetime tracking
...
For now we use std::weak_ptr and std::enable_shared_from_this to accomplish tracking. There
may be an argument for using our own (PBD::Destructible) mechanisms instead.
2024-10-17 07:44:31 -06:00
Paul Davis
e3ff81efcb
remove dangling line of code that does nothing
2024-10-17 07:44:31 -06:00
Paul Davis
7901b4119f
we're gonna need a bigger debug set
2024-10-17 07:44:31 -06:00
Paul Davis
c8924f4133
fix lollipop drawing
...
Cairo coordinate/argument limits are much smaller than the canvas. Trying
to clip to a gigantic rectangle throws cairo into a weird state, so
make sure we only clip to a part an exposed area
2024-10-17 07:44:31 -06:00
Robin Gareus
e67a3387fd
Fix Editor Lua bindings
...
Methods that have been moved to EditingContext need
to reference the abstract definition there, and PublicEditor's
first parent class also need to be EditingContext (same
memory address)
2024-10-17 07:44:31 -06:00
Robin Gareus
7e7440bc33
Fix Lua bindings, Session is-a HistoryOwner
...
For derived classes to work in Lua w/o explicit cast,
it needs to be the first parent.
2024-10-17 07:44:31 -06:00
Paul Davis
2fceb66193
manual fixups for errors during rebasing against master
2024-10-17 07:44:31 -06:00
Paul Davis
911ad78c06
add API to access PBD::UndoHistory member of HistoryOwner
2024-10-17 07:44:31 -06:00
Paul Davis
a61f49ad4f
show Bindings _name in DEBUG_TRACE output
2024-10-17 07:44:31 -06:00
Paul Davis
42959b1313
adjust MidiModel API to require HistoryOwner not Session for commands
2024-10-17 07:44:31 -06:00
Paul Davis
8c086693af
show HistoryOwner::_name in DEBUG_TRACE messages
2024-10-17 07:44:31 -06:00
Paul Davis
b989464914
NO-OP: add useful comment
2024-10-17 07:44:31 -06:00
Paul Davis
e8fdbb8cd9
Session IS-A history owner
2024-10-17 07:44:31 -06:00
Paul Davis
d30c8a1286
abstract concept of a history owner from ARDOUR::Session into libpbd
2024-10-17 07:44:31 -06:00
Paul Davis
fd6afb30e6
use MidiModel::ContentsChanged to drive MIDI cue edit swaps
...
No need for a special method called post-edit
2024-10-17 07:44:31 -06:00
Paul Davis
62d36832c6
more changes to get MIDI clip editing working
...
MIDITrigger now has a direct reference to a MidiModel, and uses
that as the basis for discovering what state has changed and needs
updated after an edit operation pushes a new state to the trigger
2024-10-17 07:44:30 -06:00
Paul Davis
7bf464795a
add ::render() to MidiModel since that's what we'll be editing
2024-10-17 07:44:30 -06:00
Paul Davis
06d5496f70
further preparation for MIDI cue editing in triggerbox code
2024-10-17 07:44:30 -06:00
Paul Davis
9060a32c34
MIDI state trackers: dump() is const
...
Plus minor fixes to ::resolve_diff()
2024-10-17 07:44:30 -06:00
Paul Davis
7dee98279a
extend MidiModel and MIDITrigger in preparation for edit-change handling
2024-10-17 07:44:30 -06:00
Paul Davis
5da8de05ca
NO-OP: internal whitespace and newline cleanup
2024-10-17 07:44:30 -06:00
Paul Davis
4267d5b0d7
MidiStateTracker: extend API to allow "diffs" between two MidiStateTrackers
2024-10-17 07:44:30 -06:00
Paul Davis
d550292f8f
additional DEBUG_TRACE (Destruction) output
2024-10-17 07:44:30 -06:00
Paul Davis
e7731f2e89
add -D actions to gtkmm2ext
2024-10-17 07:44:30 -06:00
Paul Davis
009a0e6ffb
stacktraces to help track down missing actions
2024-10-17 07:44:30 -06:00
Paul Davis
59ed3d7138
cleanup canvas piano roll header so that it can exist with no current MidiView
2024-10-17 07:44:30 -06:00