cdf88efeff
fix crash caused by VelocityDisplay _optimization_iterator
...
Never use the _optimization_iterator when looking for a note to update or select
because those two conditions may be preceded by note add/delete operations (including
those via undo/redo) which would make the iterator invalid.
The _optimization_iterator only makes sense when actually iterating over the event list,
which is ironic because that's the one time we don't need it
2024-11-10 12:44:05 -07:00
96ef4d20f2
when recording MIDI, create active_notes on demand
...
Since the signal handler for "data recorded" is in the GUI thread, we can do
whatever we want there, including memory allocation
2024-11-09 09:20:25 -07:00
a7bd0da8ea
fix missing initialization
2024-11-09 09:19:01 -07:00
a76afae0e9
use smaller ("very small") text for rulers on macOS
...
This fixes a years-long visual issue with the rulers on macOS, where the
text has been MUCH larger than on Linux (and maybe Windows, not sure)
2024-11-08 17:16:12 -07:00
8196734e3f
change references to what was "very small text" to "smaller text";
...
This is more consistent with the naming of the font size for the canvas
via wscript.
Also, provide the new "very small" font size.
Also, several styles defined in clearlooks.rc.in used spaces in
font names or derived styles instead of underscores, this fixes that.
2024-11-08 17:14:33 -07:00
c08cfa8109
more work on multiple automation display
2024-11-08 12:16:09 -07:00
c8b2c0c543
Fix crash looking up smart-mode
...
we need to call
get_toggle_action (char const*, char const, bool d = false)
and not
get_toggle_action (const string& name, bool)
For whatever reason `(string, char*)` matches the latter
function's signature.
2024-11-08 19:15:46 +01:00
bbdb6b0e63
more extensive automation display design for cue editor
2024-11-07 16:10:31 -07:00
Juan Vardy
f2fc5fc0dc
Update Spanish translation
2024-11-07 17:51:11 +01:00
Alejandro Domínguez
1124e191f0
Replace boost::integer::gcd with std::gcd
2024-11-06 23:08:36 +01:00
Zabooma
1155da84dd
Add text control type for LuaDialog, based on Gtk::TextView
2024-11-06 16:39:00 +01:00
a76d4b4c82
Fix class/struct mismatch (can cause with Windows builds)
2024-11-06 05:43:25 +01:00
02fde5f1aa
Fix unlikely buffer overflow #9845
...
> warning: 'sscanf' may overflow; destination buffer in argument 6
> has size 32, but the corresponding specifier may require size 33
> [-Wfortify-source]
2024-11-06 04:08:19 +01:00
b3a22a024c
add more buttons to midi cue editor and use Canvas::Box for packing
2024-11-05 14:59:20 -07:00
19e4063b6b
add a button bar and 1 button at the bottom of the MidiCueView
2024-11-05 13:27:22 -07:00
61f1466f50
use virtual methods to get MidiRegionView to do ::set_model() correctly
2024-11-05 13:27:22 -07:00
laIK4ndPDScproJyv9ofA
f0ec6b5bda
Redraw arrangement rectangles upon tempo change
...
Previously, changing tempo would leave arrangement rectangles out of sync with markers.
2024-11-03 15:15:35 +01:00
1b13bf607f
Micro optimization: only queue resize when widget is realized
2024-11-03 02:49:51 +01:00
57252cd1c7
clip recording: begin/end write only happens on trigger arm/disarm
2024-11-01 17:45:00 -06:00
56c99a43d2
remove any existing data display from a MidiView when ::begin_write() happens
2024-11-01 17:45:00 -06:00
0631f99f15
add ability to change stop-on-grid from Preferences
2024-10-31 12:22:35 -06:00
8986768731
fix invisble notes in MidiRegionView after transport stopped-recording
...
MidiCueView needs an _active_notes array setup when it is assigned a track that is
already rec-enabled, because we can start clip recording without session record-enable
being active.
MidiRegionView does not need this; it uses session rec-enable status to create or delete
_active_notes (also transport stop, sometimes)
2024-10-31 12:22:35 -06:00
c7192b4cc0
add the concept of a length that is data-independent to MIDI files (GUI)
2024-10-31 12:22:35 -06:00
John Emmas
42602e0329
Add an alternative #include
...
Having removed boost::function.hpp we need to replace it with gtkmm2ext/actions.h - otherwise, glibmm/refptr.h can't make sense of the type 'Gtk::ActionGroup' (go figure...)
2024-10-26 14:50:22 +01:00
e11caf2dea
various changes to get MIDI clip recording to display the post-capture region
2024-10-22 14:49:50 -06:00
Mads Kiilerich
7a4fe02d53
wscript: waf i18n
is usually running pot&po&mo and should thus also run appdata_i18n_mo
2024-10-22 00:37:40 +02:00
Mads Kiilerich
6742c1e4b4
wscript: waf i18n
should generate gtk2_ardour/appdata/ardour.appdata.pot when invoking appdata_i18n_pot
2024-10-22 00:37:40 +02:00
b5d6b97fd2
Keep inline control state in sync with editor-mixer
2024-10-22 00:36:50 +02:00
Mads Kiilerich
3228a61e62
wscript: the i18n worker functions do not define the i18n waf commands
...
Rename the worker functions to make it clear that their name in this
case isn't magic. These functions "are not" the waf commands. It is the
custom build context class definitions that define the i18n commands ...
which will invoke these top level worker functions which in turn invoke
the others recursively.
The bare printing of the build environment in the top level i18n command
seems to be old debug code that safely can be removed.
2024-10-20 19:52:14 -06:00
Mads Kiilerich
48fcb30608
wscript: fix whitespace formatting
...
No tabs and no trailing spaces.
2024-10-20 19:52:14 -06:00
Mads Kiilerich
b4ff4f356c
Make header files more self-contained - add missing Ardour and lib includes
2024-10-20 03:30:46 +02:00
Mads Kiilerich
955e634371
Make header files more self-contained - add missing std includes
2024-10-20 03:11:53 +02:00
Mads Kiilerich
8a5f21d8e3
Drop some unused files - avoid trying to maintain stuff that can't be tested
2024-10-20 03:11:53 +02:00
Mads Kiilerich
140670541f
Use .inc.h for #include files that not are plain headers
...
Regular .h files *should* be self-contained and independent of previous
includes and guarded to only include once. Make it clear which files
that *doesn't* apply for at all.
2024-10-20 03:11:53 +02:00
Mads Kiilerich
38db12c9ea
Drop Frontier Tranzport surface - it has been dead for a decade
2024-10-20 03:08:03 +02:00
74c4ca3e52
Reduce reliance on boost - the hard part
...
the rest from `tools/convert_boost.sh`.
* replace boost::function, boost::bind with std::function and std::bind.
This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
ff95d81612
Reduce reliance on boost - the easy part
...
* boost::unordered_map -> std::unordered_map
* BOOST_STATIC_ASSERT/static_assert
* BOOST_FOREACH -> for
* boost::tuple -> std::tuple/g
* boost::math::isnormal -> std::isnormal
* boost::container::set -> std::set
* boost::none -> std::nullopt
* boost::optional -> std::optional
2024-10-19 03:41:16 +02:00
168b917730
Prepare for std::optional
2024-10-19 03:40:04 +02:00
609b723650
Remove unused header
2024-10-19 03:39:54 +02:00
Alejandro Domínguez
56cc8557c5
Replace boost::replace_all with std::replace
2024-10-19 03:39:48 +02:00
Alejandro Domínguez
21e70d28cc
Replace boost::scoped_ptr with std::unique_ptr (2/2)
2024-10-19 01:04:14 +02:00
883a7cc65b
Remove unused include
2024-10-19 01:04:07 +02:00
2c503eab09
Remove old Coreaudio OSX 10.5 support
2024-10-18 22:52:34 +02:00
99906a2215
Drop build-system support for macOS < 10.13 (require C++17)
2024-10-18 22:52:29 +02:00
2339b4dfdc
Replace PBD::Signals (2/2)
2024-10-18 20:41:08 +02:00
Alejandro Domínguez
6e19813c9b
Adapt LuaCallback to new template variadic Signal
2024-10-18 20:41:08 +02:00
6c14a6c407
non-crashing version of previous commit
2024-10-18 09:57:43 -06:00
9f14eea88a
avoid memory leak (and GUI object leak)
2024-10-18 09:55:16 -06:00
70b41d10b1
actally stop doing clip recording visual stuff when disarmed (gui)
2024-10-18 09:50:48 -06:00
a1643573be
Fix optimized builds (missing stacktrace include)
2024-10-18 15:38:54 +02:00
7c6fc78b11
Amend ca1583cdad
fix windows builds
2024-10-18 15:37:23 +02:00
bf2016071d
a variety of improvements related to clip recording & editing
2024-10-17 21:47:52 -06:00
229506147a
playhead for MIDI clip editor during playback (first steps)
2024-10-17 15:06:33 -06:00
c5c865f589
fix potentially unset variable (thanks clang!)
2024-10-17 15:06:04 -06:00
e74f57c52b
get playhead functioning during clip recording (MIDI)
2024-10-17 14:36:27 -06:00
7b88ae2466
fix initial LR sizing of midi cue editor canvas sections
2024-10-17 13:37:21 -06:00
2ff90a0557
probably fix an assert() logic error
2024-10-17 11:27:57 -06:00
05cb6197a6
return to file-conditional for pre-release dialog
2024-10-17 07:49:25 -06:00
c2094085e3
sort of get MIDI notes to extend during clip recording
...
Also, robustify MidiView against a missing MidiModel member variable
2024-10-17 07:44:33 -06:00
774f5f49da
robustify MidiView against the condition where it has no MidiRegion
2024-10-17 07:44:33 -06:00
e390c2c3dd
trigger page should respond to rec-enable changes
2024-10-17 07:44:33 -06:00
9ad08fa9a5
add input,output,rec-enable buttosn to trigger strip
...
With clip recording starting to function, these things now matter on the cue page
2024-10-17 07:44:33 -06:00
d7e85de7c2
first somewhat version of show-clip-capture MIDI notes as they arrive
2024-10-17 07:44:33 -06:00
bd0b5495c6
robustify MidiView so that it can be created without a MidiTrack
2024-10-17 07:44:33 -06:00
35f16f1bb6
preparations for clip data display (MIDI) while recording (GUI edition)
2024-10-17 07:44:33 -06:00
67c6a9dbf4
fix lambda warning (unused captured this)
2024-10-17 07:44:32 -06:00
01068fe306
further adventures in drag-refactoring do that LineDrag can be used in MidiCueEditor also
2024-10-17 07:44:32 -06:00
302337e8fd
resurrect a slightly modified pre-release dialog in prep for merge with master
2024-10-17 07:44:32 -06:00
dfe3c48d0f
use button.y and modifier state when adding a control point in the midi cue automation lane
2024-10-17 07:44:32 -06:00
2afdeb519f
refactor rubberband drags to take a functor for the no-drag condition
...
Also move code for adding automation line control points into automation line, rather
than in AutomationTimeAxisView (some work still required to finalize this)
2024-10-17 07:44:32 -06:00
e6c0fcf98f
refactor end-of-rb-selection for EditingContext
...
Whhat the main editor and the cue editor do with a click varies significantly
2024-10-17 07:44:32 -06:00
db30a7d040
fix sprintf overflow warning from clang on macOS
2024-10-17 07:44:32 -06:00
f3d099f83f
fix unused variable warning from clang on macOS
2024-10-17 07:44:32 -06:00
dd6b2c8c7f
fix several set-not-used warnings from clang on macOS
2024-10-17 07:44:32 -06:00
b8fb779fa7
allow dragging in MIDI automation line in cue editor
...
Note: once this is cleaned up and checked with respect to snap and more,
the same should be done for MidiRegionView
2024-10-17 07:44:32 -06:00
4b8c51574d
refactor the "selectables" API to allow use within separate (e.g. cue) editors
2024-10-17 07:44:32 -06:00
83ea6e18b5
get MIDI cue editor mouse mode buttons to reflect state at startup
2024-10-17 07:44:32 -06:00
b02a930c04
remove debug output
2024-10-17 07:44:32 -06:00
1961a9207c
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.
GUI edition.
2024-10-17 07:44:32 -06:00
e089953e78
get blinking rec status closer to correct for clip recording
2024-10-17 07:44:32 -06:00
1146a4ad07
move RecordState enum from ARDOUR::Session to ARDOUR so we can use it in TriggerBox (GUI)
2024-10-17 07:44:32 -06:00
90858279bc
tweak drawing of clip recording rec-enable icon
2024-10-17 07:44:32 -06:00
1e193d0363
GUI side of clip recording (recording indicators etc.)
2024-10-17 07:44:32 -06:00
8069a4a514
remove some debug output
2024-10-17 07:44:32 -06:00
fa6da8818f
first functioning MIDI clip recording (GUI)
2024-10-17 07:44:32 -06:00
ca1583cdad
the great onceification (gui)
...
Replace use of #ifndef header guards with #pragma once
Modern C++, baby!
2024-10-17 07:44:31 -06:00
56ce9c33c0
renaming: AutomationLineBase => AutomationLine, AutomationLine => EditorAutomationLine
2024-10-17 07:44:31 -06:00
90c8726c6d
wideranging changes to get automation editing working in cue editor
2024-10-17 07:44:31 -06:00
4169f11ddd
cue automation lines: take height into consideration
2024-10-17 07:44:31 -06:00
71d5b50a94
kinda-sorta get an automation line for modwheel in the cue editor
2024-10-17 07:44:31 -06:00
afa15a0061
get velocity editing working in both the cue editor and MIDI region views
...
Quite a bit of hairy coordinate system stuff in here that ought to be commented more
clearly
2024-10-17 07:44:31 -06:00
ee305a7169
catch up on TriggerReference API changes in GUI
2024-10-17 07:44:31 -06:00
a72bde5d3c
add the final virtual GhostRegion method to VelocityGhostRegion
2024-10-17 07:44:31 -06:00
76104f994b
velocity display: clear must invalidate optimization iterator
2024-10-17 07:44:31 -06:00
a44e8ac088
fix drawing of lollipops.
...
There may be more virtual GhostRegion methods that VelocityGhostRegion has to proxy
to VelocityDisplay
2024-10-17 07:44:31 -06:00
54fdf90cc2
lots of detailed fixes to get lollipops in tracks working again, post re-factor
2024-10-17 07:44:31 -06:00
739d58840f
manually reimplement 3766b22e06
from master (sysex deletion)
...
Things have changed
2024-10-17 07:44:31 -06:00
15258b9aa4
new base class for automation lines
2024-10-17 07:44:31 -06:00
fa993ec9f4
various fixes to get lollipops to display (cue editor only so far)
2024-10-17 07:44:31 -06:00
0399cd9d02
initial use of refactored VelocityDisplay
2024-10-17 07:44:31 -06:00