Commit Graph

17216 Commits

Author SHA1 Message Date
Paul Davis d6beba67dc note joining should occur per-channel 2023-11-24 08:32:28 -07:00
Paul Davis f95e94bc29 note tupling tweaks, and note join added
bindings moved to s/S and j, no need to use split-by-grid first

split-by-grid still needs work for non-grid aligned notes
2023-11-23 22:42:04 -07:00
Robin Gareus 438bd7a720
Import Dialog: clean up MIDI information 2023-11-23 18:35:56 +01:00
Paul Davis b92b2389fd make note-tupling work on multiple notes 2023-11-22 19:37:46 -07:00
Paul Davis fb930e8f47 add invalidator() calls to MixerStrip as it connects to ParameterChanged
when the surround bus is removed, it (probably erroneously) causes
changes to the I/O routing for the auditioner, which will be
delivered to anyone who cares via an RCConfiguration ParameterChanged
signal. This will be emitted from a non-GUI thread, and so will not
be handled synchronously. The GUI thread will first handle the notification
that the surround bus was deleted, and that will include deleting the
MixerStrip for the surround bus. But another call_slot() request will
be pending to notify the now-deleted MixerStrip about the auditioner change.

Adding invalidator() calls ensures that the deletion of the MixerStrip removes
all of these pending call_slot() requests.
2023-11-22 17:24:26 -07:00
Paul Davis c3d14b1169 basic note-tupling functionality implemented 2023-11-21 17:07:42 -07:00
Paul Davis 7f779bb934 define new MIDI note splitting actions 2023-11-21 17:07:42 -07:00
Paul Davis 3792bf86e4 MidiRegionView: stubs for new methods 2023-11-21 17:07:42 -07:00
Paul Davis 0f170ec87b MidiRegionView: initialize new members 2023-11-21 17:07:42 -07:00
Paul Davis e39709863a add new state and methods to MidiRegionView for note splitting 2023-11-21 17:07:42 -07:00
Robin Gareus 71e049202c
Fix crash when clicking on region boundary box to start Drag
The box outlines a given region, the grab position may be earlier
than the region's position.

Previously this caused a crash (uncaught exception):

```gdb
__cxa_throw () at /lib/x86_64-linux-gnu/libstdc++.so.6
Temporal::timecnt_t::timecnt_t(Temporal::timecnt_t const&, Temporal::timepos_t const&) at ../libs/temporal/timeline.cc:79
RegionMoveDrag::setup_pointer_offset() at ../gtk2_ardour/editor_drag.cc:2226
```
2023-11-21 20:17:20 +01:00
Paul Davis 4647dd6b41 fix crash when freezing a track with > 1 region (#9539)
deleting regionviews changed the region selection, but the regionview
ptr had not been removed from the RegionViewList. The selection change signal
caused an iteration over the list, and manipulated the deleted regionview.
2023-11-20 19:13:22 -07:00
Mate Pušić e010cf91b9
Fixed a typo 2023-11-20 20:04:27 +01:00
Robin Gareus bea9215a0e
Remove noop include (deprecated, unused gtk header) 2023-11-19 20:28:48 +01:00
Paul Davis da175cc2e8 temporal: remove TempoMap::insert_time() and use shift() instead
The former was incorrectly implemented, and the latter has already been tested more
in real life.

We should likely remove ::remove_time also and use shift() there too, but that
requires testing negative shifts more broadly.
2023-11-19 12:14:10 -07:00
Paul Davis b76c3b11d9 when importing SMF tempo map, use copy&paste to keep position 2023-11-17 10:02:34 -07:00
Paul Davis e0d9970056 remove mistakenly retained stacktrace() call 2023-11-14 19:47:17 -07:00
Paul Davis 7762fa47ea make an attempt to show note length with verbose cursor
Likely much more intelligent string formatting is needed to make this
actually useful to most people
2023-11-14 11:05:13 -07:00
Paul Davis f5af821aba startup: in the usual weird logic, mark startupFSM complete from startup_done()
this disconnects the startupFSM from signals it should no longer
handle, even if its existence continues as a leak (noted
elsewhere in the code).
2023-11-14 11:03:09 -07:00
Paul Davis 729eb60de3 startupFSM: move definition of ::set_complete into source file
and also disconnect from Keyboard signal when called.
2023-11-14 11:02:08 -07:00
Paul Davis 8e583f4c4c startup FSM: save connection to Keyboard::HideMightMeanQuit signal 2023-11-14 11:01:39 -07:00
Robin Gareus 7be61b0909
Fix typo in 69c7db8595 2023-11-13 22:19:03 +01:00
Robin Gareus 69c7db8595
Add Mute button to recorder view 2023-11-13 00:08:38 +01:00
Paul Davis adb508b189 no-strobe behavior for varispeed blink 2023-11-11 10:11:30 -07:00
Paul Davis a5ac6e097e switch no-strobe from cmdline to UI config preference 2023-11-10 15:50:44 -07:00
Paul Davis cc5bd6c63a provide a (visible) UI preferences option for no-strobe 2023-11-10 14:33:39 -07:00
Paul Davis 863ad01a90 no strobe for rec-enable buttons (all of them) 2023-11-10 11:18:17 -07:00
Paul Davis 1b35d5824b remove non-existent method decl 2023-11-10 11:17:53 -07:00
Paul Davis 9c5600ad87 no strobe for mixer ui meters 2023-11-10 10:56:03 -07:00
Paul Davis 5e087864f6 no strobe for editor-visible meters 2023-11-10 10:55:44 -07:00
Paul Davis 08af0fe04a no strobe for the transport peak meter 2023-11-10 10:54:54 -07:00
Paul Davis 036596ba3f no-strobe changes for clocks 2023-11-10 10:37:07 -07:00
Paul Davis 6b5b63240b fix missing inclusion of 's' in opts list 2023-11-10 10:21:28 -07:00
Paul Davis d60dae8cbe new command line flag to control strobe-like effects in the GUI 2023-11-10 10:18:58 -07:00
Robin Gareus 6b3eb55ff6
Fix Lua 1Hz timer signal (#9529) 2023-11-10 14:27:19 +01:00
Robin Gareus db9e11d973
Hide internal plugins from users in the GUI 2023-11-09 02:02:43 +01:00
Paul Davis e658056cd7 length (& position) of the region added for step entry shouuld use in beat time 2023-11-06 20:38:08 -07:00
Robin Gareus 7cd681ec9e
Retain Region layering when duplicating Regions
Editor::duplicate copies regions one at a time. This lead
to region layeres not being retained, particularly since
Playlist::duplicate() puts the duplicated layer at the top.
2023-11-07 00:57:22 +01:00
Paul Davis 673e41434e add image for launchpad mini 2023-11-04 15:13:01 -06:00
Paul Davis 9240b96bea reduce default size of lollis and make them scale with the UI scale factor 2023-11-04 12:27:55 -06:00
Paul Davis cd29e03c05 selection dragging: use time domain given to drag, not editor default 2023-11-03 15:11:38 -06:00
Paul Davis 1b76e90246 when drawing range selection rect, use exclusive end semantics 2023-11-03 15:11:38 -06:00
Robin Gareus 7664b15617
Fix build, amend previous commit 2023-10-31 20:25:18 +01:00
Robin Gareus c162aa7aca
Consistently use context-menu button action
This fixes an issue where brining up a menu can directly activate an
action in the menu. Notably on macOS.

Nathan reports that this may also address #9515

Note: mac touchpads are not affected since right-click there is
effectively a "press and hold".
2023-10-31 20:16:23 +01:00
Robin Gareus 49abbe5777
RhythmFerret: fix heap-use-after-free
After splitting regions, the AudioRegionView of the original
Region no longer exists when the RhythmFerret calls
`clear_transients()` at the end.
2023-10-31 04:31:08 +01:00
Robin Gareus 560885b7da
Do not automatically set `font-size` on macOS
freetype on macOS does not scale fonts, font-scale and ui_scale
have to remain at 100% otherwise other UI elements change size
while the font does not.
2023-10-30 21:52:43 +01:00
Martin Vlk 562a6335de
Czech translation updates. 2023-10-29 02:41:18 +02:00
Paul Davis d5a7e5f289 pass vectors for velocities by reference 2023-10-28 17:48:33 -06:00
Robin Gareus e22415f0ce
Disambiguate In/Out for translations (1/2) #9512 2023-10-28 14:45:33 +02:00
Paul Davis 4ea676b855 lollipops: try to make sure we use the right velocity when setting lolli heights (dragging vs. not dragging 2023-10-27 14:11:47 -06:00
Paul Davis ef0938a16d more improvements to velocity drawing (including straight line) 2023-10-27 11:50:15 -06:00
Paul Davis 91fbb1c65b first steps towards improving straight line drags for velocity 2023-10-27 11:50:15 -06:00
Robin Gareus b8551eed7e
Properly unload VST3 plugins
The InstrumentSelector keeps a PluginPtr reference to all
instruments. By default Ardour does not destroy the editor
at exit, So 3 instances of Instrument Selector can remain

 * TriggerClipPicker in the editor sidebar (owned by _editor)
 * TriggerClipPicker on the TriggerPage (owned by trigger_page)
 * SoundFileOmega (sfbrowser owned by Editor)

If a shared_ptr reference is retained, VST3 Module is not
unloaded at exit. This leads to issues with various plugins.
eg. Reason Rack does not terminate, Ardour hangs at exit.
2023-10-27 00:39:03 +02:00
Robin Gareus 830910c787
Region list columns do not use property_markup
This fixes an issue with frozen region "<F1>Foo" being
displayed as "&lt;F1&lt;Foo" in the sidebar.
2023-10-26 05:46:11 +02:00
Alexandre Prokoudine d5c62fe2b9 Add Alexander Mitchell to the list of authors 2023-10-26 03:48:07 +02:00
Paul Davis a5a1caf9fa NOOP: whitespace changes 2023-10-22 17:15:20 -06:00
Paul Davis 8f405f3657 provide preference for scrolling-adjusts-note-velocity 2023-10-22 17:15:20 -06:00
Robin Gareus 711668267a
Clarify toolbar widget preference
PDC toolbar widget is not just showing information,
but also interactive.
2023-10-21 18:08:52 +02:00
Paul Davis b0871f50b8 an icon image for the launchpad x 2023-10-19 23:41:57 -06:00
Paul Davis 98ff1307bf ardev and waf tweaks for launchpad X 2023-10-19 22:19:23 -06:00
Paul Davis 2e4ceaf34d conform to platform expectations for scroomer select mouse ops 2023-10-18 10:14:34 -06:00
Paul Davis 71ba96aa3b improve/fix mouse click logic on piano roll header
ctrl-click now toggles that note row's selected status, as intended
2023-10-18 09:29:39 -06:00
Paul Davis 4974369787 fix logic in MidiRegionView::select_matching_notes() to not add notes when asked not to 2023-10-18 09:05:48 -06:00
Paul Davis b7b2189d95 fix copy-paste but in MidiTimeAxisView::set_note_selection() - use set, not add 2023-10-18 09:05:10 -06:00
Paul Davis d88b9d36ca freehand draw for velocity only affects selected notes, if any are selected (#9491) 2023-10-18 08:26:42 -06:00
Paul Davis edc0e636e2 allow users to opt for "select only the last drawn note" when drawing notes 2023-10-17 22:03:47 -06:00
Robin Gareus 1f7abff38b
Include Track name when consolidating ranges 2023-10-16 21:12:44 +02:00
Mads Kiilerich 2973e82a90 wscript: sanitize strings from fetch_*_revision_date early instead of applying str() all over
This can perhaps be simplified further when Python2 support is dropped.
2023-10-15 10:47:16 -06:00
Mads Kiilerich 0e3e51d958 wscript: drop str() on VERSION
It will already have been converted to str in sanitize(), and even
python2 is fine without the extra str.
2023-10-15 10:47:16 -06:00
Mads Kiilerich 92aca32652 wscript: stop loading misc where nothing is using it
It is apparently only used in gtk2_ardour/wscript - and it seems to be
enough to load it in configure(), even though it is used in build().
2023-10-15 10:47:16 -06:00
Mads Kiilerich 88cecdfaef wscript: drop repeated autowaf.set_options - it is enough to set at top level 2023-10-15 10:47:16 -06:00
Paul Davis dfbe4f61cd more debug output for bad buffer sized trout 2023-10-12 21:19:21 -06:00
Robin Gareus 653cd3fa17
Fix double free, heap-use-after-free
_canvas_grid_zone and _section_box are destroyed when the
Canvas Container (here: `_track_canvas_viewport`) deletes
child items.
2023-10-11 16:06:35 +02:00
Robin Gareus 273f81fad7
VarispeedDialog fixes, use 100% for speed 1.0
* Honor max-speed
* Fix percentage off-by one (100%)
* keep cents in range -50 .. +50
2023-10-10 05:12:53 +02:00
Robin Gareus 417f3647cc
Keep shuttle ctrl in sync with actual speed
When using "VS" the numeric control shows the "default speed"
when not rolling. Then when starting to roll default speed will
be the actual speed.

Previously the shuttle was not updated when `last_speed_displayed`
was the current speed. This dated back to before "VS" showed
default speed.
2023-10-10 04:18:53 +02:00
Robin Gareus 0f21d26f2c
Mitigate varispeed by percentage issues by constraining range 2023-10-09 23:25:15 +02:00
Robin Gareus 1b0f248e68
Fix creating sessions using CLI arguments (#9473)
Initialize uninitialized variable. Previously this crashed
when setting up the session's time-domain.
2023-10-09 21:16:09 +02:00
Robin Gareus b803179768
Fix label in insert-time dialog
The return of the accidentally removed label in 5b038e488
2023-10-09 20:24:19 +02:00
Paul Davis 0fa63b6d37 add percentage field to varispeed dialog
All fields are kept sync'ed to each other, so it does not matter
which one(s) you use
2023-10-09 11:09:07 -06:00
Robin Gareus c0d91362cf Fix duplicate close-session dialog on macOS
Previously [GtkApplicationDelegate applicationShouldTerminate:]
triggered both StartupFSM::queue_finish and ArdourUI::queue_finish.
Both of which registered an idle-callback to call ArdourUI::finish.
2023-10-09 17:19:17 +02:00
Robin Gareus 120979bd76
Remove unused variable 2023-10-07 22:43:27 +02:00
Paul Davis d67e7cd222 remove some preference metadata related to removed options 2023-10-07 13:14:39 -06:00
Paul Davis d6323a1686 GUI side of 122c9141 (API change for TempoMap::move_meter()) 2023-10-07 11:11:31 -06:00
Robin Gareus cece64e649
Remove another accidentally commited debug message 2023-10-07 18:25:32 +02:00
Robin Gareus f78d82a192
Allow single click to create Region-Gain points (again)
regression was introduced in 18819a48a9
2023-10-07 18:17:36 +02:00
Robin Gareus b962addc8c
Fix Region Gain freehand draw offset for regions with start offset 2023-10-07 17:55:39 +02:00
Robin Gareus 31730794be
Remove debug output from 5426bbfd57 2023-10-07 16:59:26 +02:00
Robin Gareus 5426bbfd57
Allow single-click on TempoMap Ruler markers
This fixes the abort, when clicking on a Tempo, Meter or BBT
Marker using the grid tool.
2023-10-07 15:54:23 +02:00
Robin Gareus b87937a20e
Fix crash when double-clicking on TempoMap Ruler markers
heap-use-after-free. Marker is deleted (and re-created), when
the tempo-map edit is aborted:

```
    #0 0x7f77528ac017 in operator delete(void*) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:160
    #1 0x55f81062800d in TempoMarker::~TempoMarker() ../gtk2_ardour/marker.cc:794
    #2 0x55f80ffb2fc0 in Editor::reset_tempo_marks() ../gtk2_ardour/editor_tempodisplay.cc:205
    #3 0x55f80ffb2b19 in Editor::reset_metric_marks() ../gtk2_ardour/editor_tempodisplay.cc:185
    #4 0x55f80ffb49fb in Editor::tempo_map_changed() ../gtk2_ardour/editor_tempodisplay.cc:301
    #5 0x55f80ffbdf00 in Editor::abort_tempo_map_edit() ../gtk2_ardour/editor_tempodisplay.cc:850
    #6 0x55f80fcf967a in TempoMarkerDrag::finished(_GdkEvent*, bool) ../gtk2_ardour/editor_drag.cc:333
```

Since no movement occurred, the tempo-map was not changed.
however we need to drop the lock and writable thread-pointer...
2023-10-07 15:35:15 +02:00
Robin Gareus 4a8dc04f14
Remove ScrubDrag and vari-speed based fake-scrubbing 2023-10-05 21:53:39 +02:00
Robin Gareus 96c45b65ee
Remove more or less useless Mouse Audition Button
Audition action is very much preferred and also works with
multiple selection.
2023-10-05 21:49:55 +02:00
Robin Gareus e9bde1c638
Make all "Feedback"s translatable #9461 2023-10-05 21:11:59 +02:00
Paul Davis 558b300177 tweaks to arprof to make it more useful with CALLGRIND_* macros 2023-10-05 08:31:11 -06:00
Paul Davis e23f79a8a9 do not create a Gtk::ColorSelectionDialog for every trigger/slot, create on demand 2023-10-05 08:31:11 -06:00
Paul Davis 91f50b8a06 in insert time, don't differentiate between audio/music time markers 2023-10-04 18:50:42 -06:00
Paul Davis dd556f6ee8 NO-OP: line formattting 2023-10-04 18:50:42 -06:00
Paul Davis 85f0648b6b don't pass unnecessary argument to Playlist::shift() 2023-10-04 18:50:42 -06:00
Paul Davis 0ffb9d6c8a following c40f40, make insert/remove time apply to all markers
That is, since there is no "glued-to" concept any more, if markers
are moving, then all markers are moving
2023-10-04 17:07:34 -06:00
Paul Davis 5b038e488c no more "glue to ..." concept in GUI 2023-10-04 17:07:34 -06:00
Paul Davis e363da1f90 NOOP: remove unused variable 2023-10-04 17:07:34 -06:00
Paul Davis 40a0ad2299 tweak shortcut window so that the tree is expanded to actually show search results 2023-10-04 17:07:34 -06:00
Robin Gareus c1be897eed
Explicitly sandbox Lua instances (3/4)
This allows UI scripts (saved in preferences) to access
os.* functions (non-sandboxed), while preventing other
scripts to do so.

Lua scripts that can run os commands can execute arbitrary
code on the system. While this is a nice feature, it can be
equally dangerous.
2023-10-04 02:50:38 +02:00
Krzysztof Gajdemski 7e7337aa61 Update Polish translation 2023-10-04 01:09:24 +02:00
Paul Davis 945ce377aa tempo mapping (like all other drags) must use button1 only
Without this, Editor::button_release_handler() will handle a button3 press
without checking for an active drag, resulting in two drags, and two reversible
commands, and an abort ...
2023-10-03 16:00:35 -06:00
Paul Davis 364c892c68 remove debug output 2023-10-03 11:13:57 -06:00
Paul Davis b2e168e79e NOOP: whitespace cleanup 2023-10-03 10:16:48 -06:00
Paul Davis 2194ae70da must reset BBT markers in GUI after reset_tempo_marks()
reset_tempo_marks() will have destroyed the tempo marks referenced by any
existing BBT marks
2023-10-03 10:16:36 -06:00
Paul Davis 969dcaa8a6 update all location markers during tempo/meter drags 2023-10-02 16:52:34 -06:00
Paul Davis dd8f5c477f remove debug output 2023-10-02 16:52:34 -06:00
Ben Loftis 4d8a0b3535 add a descriptive tooltip to the Timebase selector (needs translations) 2023-10-02 16:02:06 -05:00
Paul Davis e7ced9b855 mergeable line: check callbacks are non-null before calling them 2023-10-02 13:23:52 -06:00
Paul Davis 764ed125a4 region gain line freehand draw: ensure drawn line is above waveform 2023-10-02 12:04:57 -06:00
Alexandre Prokoudine cda1f12845 Update Russian translation 2023-10-02 11:00:05 +02:00
Robin Gareus a1fc671a23
Tweak marker rename dialog title 2023-10-02 03:45:21 +02:00
Paul Davis 1455619e7d revert change in 4bed642d71 that made build_session_from_dialog() do nothing at all 2023-10-01 15:06:29 -06:00
Ben Loftis 0709c20adb add a note why preffered-time-domain is NOT editable from rc_option_editor 2023-10-01 14:01:11 -05:00
Ben Loftis 2f4838db68 if user changes session:property:time-domain, switch the rulers
* if the user has explicitly made any ruler settings, they will be found
   and this will not take effect
2023-10-01 13:59:30 -05:00
Ben Loftis df479bf8cd pre-load the session timebase selector with the user pref 2023-10-01 13:58:45 -05:00
Paul Davis 460b9a24ff add missing file 2023-09-30 12:22:54 -06:00
Paul Davis 18819a48a9 region gain and MIDI CC freehand line drawing
This involved a significant change in event handling for automation region views,
but it brings it into line with how it works for other things. On button press
we initiate a drag, then if no motion occurs, the Drag returns false during
finalization, and only then do we continue through Editor::button_release_handler()
to eventually end up in ::add_automation_event().

Although it is a substantial change, the fact that it now works the same
way for audio regions, automation regions and automation tracks seems
like a definite plus.
2023-09-30 11:09:58 -06:00
Paul Davis 6b64ebdb27 NOOP: do not wrap lines for small screens 2023-09-30 11:09:58 -06:00
Paul Davis b2bb8e9bac move (empty) Drag destructor into source file and add DEBUG_TRACE 2023-09-30 11:09:58 -06:00
Paul Davis 944fcf251d initial refactoring of freehand line drawing
This sets the state to use it with MIDI CC and region gain.

class names LineMerger and MergeableLine need revisiting
2023-09-30 11:09:58 -06:00
Paul Davis 2b2112e303 NO-OP: fix line/whitespace 2023-09-30 11:09:58 -06:00
Ben Loftis 8681d46fbc fix the case where the grid-tool stopped working when you vertically scroll the canvas
there is no need to calculate the size of the grid_zone, just make it "huge"
2023-09-30 07:41:49 -05:00
Paul Davis f504eba0fe velocity regions should never be opaque, even when the region is selected 2023-09-29 08:49:40 -06:00
Paul Davis c72a94250c update to aca5d7d988 to fix lollipop position
As noted in the commit message for that earlier commit, the radius
adjustment should not be required
2023-09-29 08:45:14 -06:00
Ben Loftis 3af055e0c0 tempo-marker start bpm text was not being updated during+after a mouse drag 2023-09-28 09:09:37 -05:00
Krzysztof Gajdemski 3a6a70c240
Update Polish translation 2023-09-28 01:20:46 +02:00
Robin Gareus bed041cf96
Set DnD time's time-domain
Drag::_raw_grab_time is set to the correct time-domain. However
during ::motion() and other operations the adjusted time was
always AudioTime.

Most notably this caused editor->selection->time to have
different time-domains for start and end.
2023-09-28 00:41:17 +02:00
Ben Loftis 72761734e8 region groups: more fixes for drag-copy and range-paste operations 2023-09-27 11:06:40 -05:00
Alexandre Prokoudine 73991c4190 Clean up the Korean translation from dupes 2023-09-26 21:41:57 +02:00
Paul Davis 3166ca7ffd only UI scale the scroomer itself, not the kbd header 2023-09-26 11:33:48 -06:00
Robin Gareus 201b9574a2
In Draw mode, do not allow to grab lines.
see also 3cf1227421 and c578695a64
2023-09-26 17:03:09 +02:00
Alexandre Prokoudine 1f937fa0b1 Update Russian translation, Part 3 2023-09-26 14:07:03 +02:00
Robin Gareus 611452df35
Retain Change Dialog settings when MIDNAM model changes 2023-09-26 05:32:57 +02:00
Robin Gareus 3c5ea74aca
Fix patch-change dialog channel switch
* Correctly show initial patch when switching channels
  prefer plugin's information, if available
* Retain channel and bank when MIDNAM is updated
2023-09-26 05:32:57 +02:00
Paul Davis 70c3142c2c small visual and peformance tweaks for midistreamview bg draw 2023-09-25 20:03:04 -06:00
Paul Davis 6f802015d7 scroomer should follow UIConfiguration's max note height setting 2023-09-25 18:40:12 -06:00
Robin Gareus 3cf1227421
Revert "in draw mode, mouse drags in automation tracks are always freehand drawing"
This reverts commit c578695a64.

When hovering over a control point there is still the "Fader"
cursor shown. It is also handy to be able to directly modify
a control-point right after adding it.

A freehand draw operation can be still be initiated above,
below, or left/right of a given control point.
2023-09-26 01:10:16 +02:00
Robin Gareus eed79f45d7
Fix layering when copy/pasting regions (2/2) 2023-09-25 22:36:28 +02:00
Robin Gareus 5fe127eb49
Keep preset message dialog on top of export dialog 2023-09-25 22:36:27 +02:00
Robin Gareus ccef22f998
ArdourMessageDialog allow for NULL parent window
This is handy on Windows, where Widget::get_toplevel() may
return NULL or not-a Gtk::Window.
2023-09-25 22:36:27 +02:00
Paul Davis b711da9153 scroomer prelight and handles 2023-09-25 11:01:22 -06:00
Paul Davis d892614742 fix DEBUG_TRACE message about a drag 2023-09-25 11:01:22 -06:00
Robin Gareus ed60ef40b0
Fix arrangement rectangle prelight
This follows the general rule to lighten a widget on hover
(like ArdourButton, Triggermaster etc)
2023-09-25 18:55:04 +02:00
Robin Gareus d7c611e025
Guess UI scale for copy-config dialog
This dialog shows before the new user wizard,
where a user would configure HDPI/UI scaling.
2023-09-25 17:07:15 +02:00
Paul Davis 9f475d5427 avoid double call to ::model_changed() during set up of a MidiRegionView
There is a DisplaySuspender in MidiRegionView::init(), and another invoked
during the addition of a RegionView to a StreamView. Before this change, both
suspenders were created to invoke a full "model-changed" redisplay. Since every
RegionView must be added to a StreamView to be visible, we only need the second
suspender to invoke the model-change. The first one can be just a view
change (and probably isn't necessary at all, but I did not want to change that
much at this point in time).
2023-09-24 18:41:51 -06:00
Paul Davis 1f13b311fd midi display: ensure that lollipops are visible right after import
VelocityGhostRegion used the visibility of the "parent" note canvas item of a
lollipop canvas item to determine the lolli's visibility. But during the
construction of the MidiRegionView, the note's container is not yet visible, so
this fails.

In addition this logic would hide lollis for notes that are outside the current
visible note range of the track (because the parent note item was not visible).

This change adds a method to MidiRegionView to decide if a note is within the
region's time range, and if so, we show the lollipop item. This means that
lollis for notes outside the note-range will still be visible, which seems more
correct. In addition, the nascent condition of the parent note's container no
longer affects lolli visibility.
2023-09-24 18:38:20 -06:00
Paul Davis 61d8ceaa85 change API of Editor::get_quantize_op() and fix flaky UX when using quantize-notes 2023-09-24 15:01:04 -06:00
Paul Davis 318af69057 do not grab magic widget focus for MIDI editing purposes
The bindings use will all work just fine without this focus grab; the focus
grab in turn confuses the use of some/all global bindings (such as the spacebar
to toggle tranport state)
2023-09-24 15:01:04 -06:00
Robin Gareus 39595244e8
Credit where credit is due 2023-09-24 19:58:59 +02:00
Martin Vlk 5ec2c9ed4d
Czech translation updated for the 8.0 release. 2023-09-24 19:57:25 +02:00
JungHee Lee 8a0efbed7a
Update ko.po 2023-09-25 00:07:24 +09:00
Krzysztof Gajdemski b745a463df
Update Polish translation
This is a major update as previous translation was very dated.
2023-09-24 16:39:02 +02:00
Paul Davis a38a4954a7 add a few new configuration params/preferences to the metadata list
Technically this breaks our string freeze, but only for searching preferences, not
for text displayed in the GUI
2023-09-24 07:52:18 -06:00
Robin Gareus 32efd92360
Add missing #include for NoteType 2023-09-24 14:27:29 +02:00
Robin Gareus 184bd500f7
NO-OP: clang-format 2023-09-24 14:25:14 +02:00
Robin Gareus ad24d397f5
Fix various MIDI List editor issues (#9457)
* Fix crash when inserting note to empty region
* Consistently use fine-grained modifier
* Don't allow to edit BBT as text field
  This is currently not supported.
* Fix GTK_IS_CELL_EDITABLE assertions (Tab to next)
2023-09-24 14:15:45 +02:00
Robin Gareus 1386a96af0
MIDI List editor: fix off by one with scroll duration 2023-09-24 13:11:07 +02:00
Robin Gareus 82fdd08953
MIDI list editor: fix note position scroll 2023-09-24 12:56:44 +02:00
Robin Gareus 2d24a5fe88
MIDI list editor: fix note-length dropdown (#9457) 2023-09-24 12:55:10 +02:00
Krzysztof Gajdemski 82d03607b8
PortGroup: fix missing "_" in "Tracks"
This small typo prevented (a rather important) noun "Tracks" from being
translated.
2023-09-23 14:10:54 +02:00
Paul Davis 44d32d6325 move MIDI note draw actions from Editor tab to MIDI tab, and rename
Sorry translators, this is a small string freeze breakage.
2023-09-22 22:45:28 -06:00
Paul Davis 979e96a342 fix a char[] scope issue reported by ASAN 2023-09-22 15:18:27 -06:00
jujudusud 2d2660a6eb
Update FR translation for ardour8 2023-09-22 19:52:49 +02:00
Robin Gareus b2f36804be
Add missing Lua bindings (UIConfig get/set) 2023-09-22 17:40:42 +02:00
Alexandre Prokoudine 34c40e0a44 Update Russian translation, Part 2 2023-09-22 12:38:29 +02:00
Alexandre Prokoudine 22e15b135e Update Russian translation, Part 1 2023-09-22 04:38:32 +02:00
Paul Davis c642611fe8 fix crash in ghostregions after adding notes but not invalidating optimization iter (#9452) 2023-09-21 16:26:59 -06:00
Robin Gareus 0a1ab716a1
Try to track down abort() reported by Nathan
This should have had a `fatal` message like other
all abort() calls.
2023-09-21 20:49:36 +02:00
Mads Kiilerich 226ff63e3c temporal: avoid using superclock in Editor::initialize_canvas before creating the session
cb78043adc "Indicate selection extents in time ruler" introduced use of
superclock before it has been set. But as it only is used at time 0, the
actual superclock doesn't matter. Still, we work around it in order to
avoid triggering any warnings of uninitialized use.
2023-09-20 12:30:53 -06:00
Robin Gareus b3f26354a9
New Session dialog, reorder folder/timebase options
This keeps the folder option next to the filename.
Which is handy when using Tab to move focus.
2023-09-20 00:31:33 +02:00
Paul Davis 727b666c18 NOOP: reformat comment 2023-09-18 19:57:37 -06:00
Paul Davis 5122036054 startup: fix use-after free of startup FSM object
In some startup flows, the entire loading process happens inside
StartupFSM::start(). In others, that call gets things moving but
we return from it and loading is not complete until later.

Deleting the StartupFSM while still inside the ::start() call
led to a use-after-free error. This new code will leak the StartupFSM
in some startup flows.
2023-09-18 16:27:11 -06:00
Paul Davis bc91ea3c42 startup: fix logic/design error that led to deep errors
The old state in this commit would lead to an existing session
being loaded with the claim that it was a new session. This went
unnoticed until 4bed642d71, where newness impacted the time
domain of the session (and actually led to it being set to a random memory
value).
2023-09-18 16:27:11 -06:00
Paul Davis 9dd50d4536 provide an easy way to get core dumps with address sanitizer
The options to make this work are quite long and hard to remember. So just set
ASAN_COREDUMP and adev_common.sh.in will take care of it for you
2023-09-18 16:27:11 -06:00
Mads Kiilerich f1bb18ae53 wscript: drop unused path_prefix
It is not referenced anywhere, and also not set consistently.
2023-09-17 07:34:55 -06:00
Mads Kiilerich d220f477ed wscript: drop unused "mandatory variables" 'top' and 'out' in libs
Variables by these names are only used from the local wscript and when
running "waf configure", which already for other reasons only can run at
the top-level.

These variables are thus not mandatory and not used.
2023-09-17 07:34:55 -06:00
Mads Kiilerich 69e987909e wscript: inline top = '.' for build_i18n
'top' was a constant that was set to '.', even when inside
subdirectories. It is thus not really top.

I don't know if the intent was to use the actual top (which is available
as bld.top_dir), but for now we make it explicit what we have and do.
2023-09-17 07:34:55 -06:00
Mads Kiilerich 5d5aa61e0f wscript: drop unused gtk2_ardour wscript functions
This gets rid of an odd use of "out".
2023-09-17 07:34:55 -06:00
Mads Kiilerich 6bf9fd4ffb wscript: drop unused base_font variable 2023-09-17 07:34:55 -06:00
Mads Kiilerich aa3f6e3a5c wscript: drop unused local VERSION variables
pyflakes correctly points out problems like:
  gtk2_ardour/wscript:537:5 local variable 'VERSION' is assigned to but never used
2023-09-17 07:34:55 -06:00
Mads Kiilerich 7737c17d52 wscript: drop unused imports, scripted
Done with ad hoc scripting hacks processing unused imports found by pyflakes:

for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Logs.* but unused' | cut -d: -f1 | while read f; do sed -i 's/^import waflib.Logs as Logs,/import/g' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Options.* but unused' | cut -d: -f1 | while read f; do sed -i 's/import waflib.Options as Options, /import /g' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Options.* but unused' | cut -d: -f1 | while read f; do sed -i 's/^from waflib import Options,/from waflib import/g' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep ' imported but unused$' | sed "s/^\([^:]*\):[0-9]*:[0-9]* '\(.*\)'.*/\1 \2/g" | while read f lib; do sed -i "/^import $lib$/d" $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Options.* but unused' | cut -d: -f1 | while read f; do sed -i '/from waflib import Options$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.TaskGen.* but unused' | cut -d: -f1 | while read f; do sed -i '/from waflib import TaskGen$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Task.Task.* but unused' | cut -d: -f1 | while read f; do sed -i '/^from waflib.Task import Task$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Tools.winres.* but unused' | cut -d: -f1 | while read f; do sed -i '/^from waflib.Tools import winres$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Utils.* but unused' | cut -d: -f1 | while read f; do sed -i '/^import waflib.Utils as Utils$/d' $f; done
2023-09-17 07:34:55 -06:00
Edgar Aichinger 9aaf5d2c8c
update german translation 2023-09-17 14:20:33 +02:00
Ben Loftis f11a5880af more thematically correct scroomer color. TODO: prelight it 2023-09-15 19:13:54 -05:00
Ben Loftis 376246f0fc markers should snap when created by context-menu 2023-09-15 19:05:23 -05:00
Paul Davis aaff07f2c9 editor cursors: fix position computation
The cairo 0.5 pixel offset for odd-width lines is handled by Canvas::Line and is not
needed in the EditorCursor code
2023-09-15 17:34:30 -06:00
Ben Loftis 55b862832a Stretch Markers -> Adjust Markers 2023-09-15 18:05:14 -05:00
Ben Loftis 12f02a685e tweak section-marker height so they fill the whole ruler 2023-09-15 18:04:59 -05:00
Ben Loftis e49005d0e4 implement color themes for piano roll keyboard and text 2023-09-15 17:41:24 -05:00
Ben Loftis 53ccede4fb make piano-keyboard colors theme-able 2023-09-15 17:40:56 -05:00
Ben Loftis 6716f64032 tone down selection-rect fill 2023-09-15 17:40:32 -05:00
Ben Loftis 98f926d6f5 'midi meter' is not an appropriate alias color for a widget 2023-09-15 17:32:29 -05:00
Robin Gareus cc0c00f807
Snap cursor for section_rect ctx menu, just like popup_ruler_menu 2023-09-15 14:49:33 +02:00
Ben Loftis 8da5d49e54
Add a checkbox for 'stretch markers' and show it when MouseGrid is active
Also, de-sensitize the checkbox if the session is AudioTime
2023-09-14 23:13:14 +02:00
Ben Loftis b03f6d8616
Set the default ruler visibility based on the new session's time domain 2023-09-14 23:13:08 +02:00
Ben Loftis 4bed642d71
Allow user to choose the session time-domain 2023-09-14 23:13:05 +02:00
Ben Loftis d7345d7d4d
Remove marker 'Hide' item from context menu.
It is accessible in sidebar.
In the sidebar you can both Hide and Show, so less prone to error
2023-09-14 23:12:50 +02:00
Robin Gareus 214a2a962f
Fix grid off-by one, complete removal of Playhead grid
See also 503e6249f4
2023-09-14 20:42:04 +02:00
Paul Davis 1cc0870725 tweak scroomer colors and alpha to work better with most themes
Blueberry Milk is a problem, but cooltehno will need to take a look
2023-09-14 08:22:06 -06:00
Paul Davis f5d3b1c79f use new user-immediate API in GUI 2023-09-13 23:58:31 -06:00
Paul Davis a2656d6612 when the "draw channel" is set to auto, consider the midnam display channel
This has higher priority than the playback mask
2023-09-13 23:58:31 -06:00
Robin Gareus 31f45a488a
Add menu items to set/cycle marker click behavior 2023-09-13 20:44:07 +02:00
Paul Davis 5644c8587e only show scroomer note names in draw/internal edit modes (if at all) 2023-09-13 11:53:18 -06:00
Robin Gareus 36f8d48e93
Add editing mode to select marker click behavior
So far this only adds actions, not a GUI dropdown or
context menu. See also f9a121ce9c
2023-09-13 03:16:24 +02:00
Ben Loftis 94b7ed8d4c partially revert 218fb. TODO: menu actions need to operate on the clicked section 2023-09-12 08:40:07 -05:00
Robin Gareus 218fbda6e7
Arrangement Ruler: overhaul context menu, do not select on RMB 2023-09-12 05:39:02 +02:00
Robin Gareus 0a316f7566
Remove GridTypePlayhead (fix -Wswitch) 2023-09-11 23:34:38 +02:00
Robin Gareus b00b80ec7e
Mixbus: cut/copy section always pastes at playhead 2023-09-11 23:18:52 +02:00
Robin Gareus 964600b9bd
Remove tempo-map cut/copy section warning 2023-09-11 23:18:52 +02:00
Paul Davis d064a2ead1 keep highlighted note in correct place when scrolling 2023-09-11 14:29:03 -06:00
Paul Davis 85375397ed fix semi-random MIDI note separator line vanishing 2023-09-11 14:04:59 -06:00
Paul Davis 4b15f94ccf add theme color names for scroomer 2023-09-11 13:56:22 -06:00
Paul Davis de45fc3882 make scroomer color & opacity themeable 2023-09-11 13:52:31 -06:00
Paul Davis d1caa2401f the return of double-click on scroomer zooms to data-based note range 2023-09-11 13:16:27 -06:00
Paul Davis e52d9a41da NO-OP: whitespace/indent 2023-09-11 13:16:27 -06:00
Paul Davis 9194dc9843 fix for incorrect text appearing in MIDNAM model selector
I do not understand why this works, but all of this code related to MIDNAM
model names is just a total mess in terms of rational design (caused, in turn,
by MIDNAM's design, which might possibly reflect the real world).
2023-09-11 13:16:27 -06:00
Ben Loftis 885fd2caff Y is the shortcut key for MouseGrid 2023-09-11 13:22:37 -05:00
Ben Loftis 25daebbaf2 remove snap-to-grid option (subsumed by SnapTarget preference) 2023-09-11 12:18:16 -05:00
Ben Loftis 082c009e1b take Snap Target preference into account when snapping with grid enabled 2023-09-11 12:18:16 -05:00
Ben Loftis 7672ea9cfe add a ui_pref to store the users Snap Target preference 2023-09-11 12:18:16 -05:00
Paul Davis 28af3c2024 i like nullptr 2023-09-11 10:26:54 -06:00
Paul Davis fa78fe1f33 fix incorrect design of abort-tempo-map-edit operation 2023-09-11 10:26:54 -06:00
Paul Davis 88b5613f46 suppress warning about memcpy() use on a struct/class 2023-09-11 10:26:54 -06:00
Paul Davis 734a62101f remove use of Tempo::active() from GUI
This has not been accessible in the GUI since 7.0.
2023-09-11 10:26:54 -06:00
Robin Gareus 730bec5dc1
Reduce ASAN clutter when starting Ardour
This currently prints warnings for statically linked libs
here: zita-resampler global Resampler_table::_mutex
Both libardour and ALSA backend statically link against zita-resampler.
2023-09-11 17:16:37 +02:00
Robin Gareus b98b984859
Update Codenames 2023-09-11 17:13:06 +02:00
Paul Davis 09b368f5db fix visual update of tempo markers during tempo marker drag 2023-09-10 20:07:41 -06:00
Paul Davis 3a19e7d48b fix redisplay of track headers after UI scale change
The suspend/resume routes code requires that there be a call to
Editor::redisplay_track_views() if anything is to happen on resume. This was
missing from the events triggered by a UI scale change.
2023-09-10 18:20:35 -06:00
Paul Davis 848e0e0a10 fix manual errors during rebase against master 2023-09-10 18:20:35 -06:00
Paul Davis 776d8590f9 fix crash when opening a session created before the midnam-channel GUI property existed 2023-09-10 18:20:35 -06:00
Paul Davis 194f0fbed6 finalize (?) some details of note name display options 2023-09-10 18:20:35 -06:00
Paul Davis df95ec6b43 partial response to note name display option 2023-09-10 18:20:35 -06:00
Paul Davis 2f0bfedb58 include "Channel" in text for MIDNAM display channel selector 2023-09-10 18:20:35 -06:00
Paul Davis 090b9d4f60 remove MIDI scroomer from code 2023-09-10 18:20:35 -06:00
Paul Davis 605fd136e0 add preferances item for note name display 2023-09-10 18:20:35 -06:00
Paul Davis 8f41576491 add enum declarations 2023-09-10 18:20:35 -06:00
Paul Davis 71f168834d obey note name display preference 2023-09-10 18:20:35 -06:00
Paul Davis b81da94fa2 add UI config var for note name display 2023-09-10 18:20:35 -06:00
Paul Davis b4f684e02f missing enum convert 2023-09-10 18:20:35 -06:00
Paul Davis 6966a2b7d8 add basic Editing enums/types for note name display options 2023-09-10 18:20:35 -06:00
Paul Davis 5611e7eeed tweak gradient width in scroomer area 2023-09-10 18:20:35 -06:00
Paul Davis 0b9a54ac32 fix scope of a char* [] buffer 2023-09-10 18:20:35 -06:00
Paul Davis a3838f0c66 alex mitchell's piano roll header: add correct motion event handler 2023-09-10 18:20:35 -06:00
Paul Davis baa32aa5bd merged commit from alexander mitchell, implementing a new piano roll header 2023-09-10 18:20:35 -06:00
Robin Gareus d37f85f9d2
Emit selection `RegionsChanged` when region is removed
This is required to properly update the selection.
Previously deleting a region did not update selection
markers and other selection displays that depend on
Editor::get_selection_extents (which includes region selection).

This fixes a crash: Select a region (this sets a time-selection).
Delete the region, click on the time-selection markers (red triangles).
2023-09-10 15:25:12 +02:00
Robin Gareus c0287cb0de
Fix thinko in e81b2353cc, selection may not start at a marker
This fixes a crash when selecting a section, and then changing
the time-selection. Previously it was assumed that the section
context menu can only be shown for sections. But it applies to
any time[line]-selection.
2023-09-09 21:27:11 +02:00
Asahi Lina d1cc71150f Adjust interpretation of swing amount
Previously,

0 -> no swing (1:1, 50%)
50 -> triplet swing (2:1, 66%)
75 -> hard swing (3:1, 75%)
100 -> sextuplet swing (5:1, 83%) (default!)
150 -> absolute maximum (inf:1, 100%)

This is rather confusing...

One common interpretation uses percentages of the beat, where triplet
swing is 66%. However, that causes precision issues since it's really
66.666...

Since we already default to 100 and take "no swing" as zero, let's make
that reference point triplet swing. Then the scale becomes:

0 -> no swing (1:1)
100 -> triplet swing (2:1)
150 -> hard swing (3:1)
200 -> sextuplet swing (5:1)
300 -> absolute maximum (inf:1)

300 doesn't make any sense, so let's change the range to -250 .. 250
which covers all useful values.

Also remove the division through 100 and back, to avoid rounding issues.

Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-09-09 20:06:37 +09:00
Asahi Lina ca25b5c841 Fix quantize threshold setting
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-09-09 20:06:37 +09:00
Asahi Lina 577918dc07 Fix quantize beat divisions
Signed-off-by: Asahi Lina <lina@asahilina.net>
2023-09-09 20:06:37 +09:00
Paul Davis aca5d7d988 place lollipops in correct location on timeline
It is not immediately clear to me why the + radius expression is reqired
2023-09-08 16:16:15 -06:00
Ben Loftis 503e6249f4 remove GridTypePlayhead 2023-09-08 15:27:04 -05:00
Robin Gareus d57676b9c7
Maybe clear time-selection when switching to draw tool 2023-09-08 14:50:43 +02:00
Ben Loftis e81b2353cc
Indicate arrangement section selection on canvas 2023-09-08 03:26:00 +02:00
Robin Gareus b243b93072
Allow to reuse range context menu w/o track/region selection 2023-09-08 03:25:59 +02:00
Robin Gareus 019a3a1976
Allow to select Arrangement sections
This also adds interaction with sections in the
Arrangement Ruler.

Note that selecting a range switches to the Range tool.
This is enforced because time-range selection is only meaningful
with tools that perform edit operations on the whole timeline.
2023-09-08 03:25:59 +02:00
Ben Loftis b6e9f37007
Arrangement Sidebar: follow-edits locates to selected section 2023-09-08 03:25:59 +02:00
Robin Gareus d2b083f385
Arrangement Sidebar: allow name edit by double-click 2023-09-08 03:25:59 +02:00
Robin Gareus 78db634321
Unconditionally show time-selection in info box with object tool
Arrangement Section can be selected with the object tool,
and should be indicated even when not using Smart mode.
2023-09-08 03:25:59 +02:00
Robin Gareus 20b646e962
Handle MouseGrid cursor (fix -Wswitch, amend 784d2ecc) 2023-09-08 03:25:59 +02:00
Paul Davis 250174b16e don't bother locating at end of no-motion marker drag if using external sync 2023-09-07 14:23:08 -06:00
Paul Davis f9a121ce9c click (no drag) on markers locates there, unless using marker as edit point 2023-09-07 14:23:08 -06:00
Ben Loftis 3f14b27ee3 remove (unimplemnted) Stretch MIDI checkbox 2023-09-07 15:18:36 -05:00
Robin Gareus cc47b5fe3c
Only allow grid-tool with musical grid 2023-09-06 23:56:10 +02:00
Paul Davis 966dce5516 remove now-invalid tempo edit menu items 2023-09-06 15:29:55 -06:00
Ben Loftis da4d2a645f
remove tempo-mapping bar, tempo_meta group. this reverts 8fbf2c and related 2023-09-06 19:31:00 +02:00
Ben Loftis 784d2ecce4
Add the tool for Grid, and accompanying buttons and event-handling 2023-09-06 19:30:56 +02:00
Ben Loftis 268d1d33c7
Add invisible Rectangle to initiates Tempo(grid) drags 2023-09-06 19:14:14 +02:00
Robin Gareus 80a813ff1c
Fix use-after-free when undoing marker creation
Create a marker by ctrl-click, hover over it and then ctrl+z
undo. This used to crash in Editor::get_preferred_edit_position()
gtk2_ardour/editor.cc:5179, checking for entered_marker->position()
2023-09-06 17:37:11 +02:00
Robin Gareus 3851a93e39
Update selection-markers on track and time selection 2023-09-06 00:02:36 +02:00
Robin Gareus 10ff5ad599
Use section delete for Editor::Delete operation 2023-09-06 00:02:31 +02:00
Ben Loftis 6e87a46ba4
convention for selection (as used on track headers) is red border, red tint 2023-09-05 23:08:30 +02:00
Robin Gareus 29430ac550
NO-OP: clang-format 2023-09-05 23:08:30 +02:00
Robin Gareus 68ccbc8ac3
Arrangement: locate on double-click 2023-09-05 23:08:30 +02:00
Ben Loftis e5e40c751f
if user moves selection markers, convert selection to a timeline section 2023-09-05 23:08:30 +02:00
Ben Loftis 4217a68852
Arranger: implement bi-directional selection 2023-09-05 23:08:30 +02:00
Ben Loftis 5ceb66c902
Arranger: allow renaming by context-menu 2023-09-05 23:08:29 +02:00
Robin Gareus cf9f9db48b
Set length of new percussive hits to 1 tick
This prevents overlap of successive hits.

Ardour 7 added a new duration select drop-down menu,
which defaults to "Auto" (musical grid) and removed
the special case when drawing percussive notes.
It was possible to accidentally create overlapping notes,
without the user being aware of doing so.
2023-09-04 23:26:54 +02:00
Ben Loftis 7d95334c0d fix thinko in e53a7 which resulted in unmatched tempo-map UNDO transactions 2023-09-04 08:48:49 -05:00
Robin Gareus 774adfb33c
Fix rounding of arrangement markers 2023-09-01 21:53:26 +02:00
Ben Loftis a6844279ad arranger-treeview 'search' function was stealing keybd events 2023-09-01 07:18:22 -05:00
Paul Davis 0d89bc5789 fix height of tempo ruler curve elements
These were being drawn in a way that failed to really convey relative
tempos very well. This is now better, though perhaps there are other
improvements possible
2023-08-31 18:25:18 -06:00
Paul Davis da9140a390 polish the way we print tempo numerics in tempo ruler 2023-08-31 10:34:48 -06:00
Paul Davis 43d6d4187c display tempo with only 1 digit of decimals 2023-08-31 10:34:48 -06:00
Robin Gareus b5b4be96e3
Use "Arrangement" in GUI instead of Section (amend 2f6a0abf) 2023-08-31 16:12:50 +02:00
Robin Gareus 1bc795509b
Use "Arrangement" in GUI instead of Section (amend 2f6a0abf) 2023-08-31 05:29:29 +02:00
Robin Gareus b162ffbca8
Clear Arrangement rects when closing a session 2023-08-31 00:58:51 +02:00
Paul Davis 8209cb0ab5 launchpad pro: remove color map; implement note/x,y mapping 2023-08-30 16:06:13 -06:00
Paul Davis 9d153af72d image for launchpad pro "gui" 2023-08-30 16:06:13 -06:00
Paul Davis 3fa15d9162 skeleton for launchpad pro support 2023-08-30 16:06:13 -06:00
Robin Gareus 7997c83b01
Allow to edit arrangement label in sidebar 2023-08-30 23:04:39 +02:00
Paul Davis 44e1de4261 no warning dialog about tempo map cut/copy/paste
Left in place since it may come back in a different form
2023-08-30 14:16:21 -06:00
Paul Davis 076320430a assert() that the tempo & Meter markers associated with a BBT marker exist 2023-08-30 14:16:21 -06:00
Robin Gareus 797c362500
Fix segfault when undoing marker deletion
find_location_markers() may return NULL.
This also consolidates code from acc55083e5
2023-08-30 20:46:20 +02:00
Robin Gareus aaff022fd2
Fix typo in dbda07f6b7 2023-08-30 19:40:19 +02:00
Robin Gareus affea2b83b
NO-OP: remove reducant code 2023-08-30 18:31:13 +02:00
Robin Gareus dbda07f6b7
Update Markers when Location flags change
Since b66e12610 there is a dedicated Marker type for
Section/Arrangement so changing location flags may need to
update the Marker type.
2023-08-30 18:27:21 +02:00
Ben Loftis 366e84e10e arrangement ruler: theme tweak 2023-08-29 23:06:42 -05:00
Ben Loftis 54c713c794 remove another instance of time-domain icon 2023-08-29 23:02:05 -05:00