Commit Graph

36740 Commits

Author SHA1 Message Date
Ben Loftis ac30964d67 remove debug output 2022-12-26 14:03:32 -06:00
Ben Loftis a5378e559a dsp_stats: aesthetic tweaks to text and padding 2022-12-26 07:53:34 -06:00
Ben Loftis d5160b6e8c export_dialog: use more sensible padding around the preset widgets 2022-12-26 07:53:34 -06:00
Robin Gareus 140b373cac
Clean up ExportAnalysis code
* only zero limiter_pk array on initialization
  (other data is explicitly initialized)
* resize peak-data vector to at least 800 bins
2022-12-26 14:34:25 +01:00
Robin Gareus 7b3cbaf68f
Inform User when audio-read failed (debug builds)
Previously AudioPlaylist::read always returned the timecnt that
it was supposed to read into the buffer, regardless if the given
number of samples was read. The check in DiskReader::refill_audio
`if (nread != to_read)` never triggered.

This can happen when changing an audio-region's time-domain to
music-time (glue to bars/beats). Region-length (beats converted
to samples) can exceed the actual audio-source length (in samples).
2022-12-26 13:40:05 +01:00
Robin Gareus 7e9f29e888
FP8: directly cancel solo (do not rely on GUI) 2022-12-26 13:33:19 +01:00
Olivier HUMBERT 9c0fb6e49a
Update French translation 2022-12-26 11:51:16 +01:00
Ben Loftis 037de53c3f bbt_marker_dialog: improve layout + spacings 2022-12-21 19:22:29 -06:00
Paul Davis b2a6fb70b4 remove debug output 2022-12-20 22:01:41 -07:00
Paul Davis e2d265c018 tempo edit: use ::replace_tempo() instead of ::set_tempo() after dialog 2022-12-20 21:56:37 -07:00
Paul Davis 253419a321 tempo marker drag: update GUI during drag 2022-12-20 21:54:59 -07:00
Paul Davis ed7e0a4166 snap: add missing break statements. oops! 2022-12-20 21:54:35 -07:00
Paul Davis 818c30a98d temporal: add optional with_reset arg to all map ::remove_*() methods 2022-12-20 21:54:05 -07:00
Paul Davis 0ee0226776 temporal: no stretching a tempo that is the last one or precedes a BBT marker 2022-12-20 21:33:13 -07:00
Paul Davis d3dd865093 temporal: NOOP - add helpful comment 2022-12-20 21:31:31 -07:00
Paul Davis ae36f8e445 temporal: provide TempoMap::replace_tempo() 2022-12-20 21:31:02 -07:00
Paul Davis 033b4c5152 temporal: fix implementation of TempoMap::copy_points()
This could re-order the map in the presence of BBT markers
2022-12-20 21:29:44 -07:00
Paul Davis e32d4f7b71 try to get BBTRulerDrag to work on all platforms 2022-12-19 15:03:57 -07:00
Paul Davis b48821887d restore primary-drag in BBT ruler function 2022-12-19 13:35:27 -07:00
Paul Davis 90ae38e353 note create drag: tweak to fix dragging when snap is not bars 2022-12-19 12:19:05 -07:00
Paul Davis 615aff92d7 note create drags: work better if snapping to bars 2022-12-19 12:19:05 -07:00
Paul Davis 509d762cdd editor: fix snap_to_bbt() to do something closer to right for bars
At the very least, snapping to bars should be different from snapping to beats.
2022-12-19 12:19:05 -07:00
Ben Loftis 3e19363c4c fix typo in prior 10d125: sort presets 2022-12-19 10:04:29 -06:00
Robin Gareus f058f910f4
Actually use overloaded get_presets() implementations 2022-12-19 16:43:42 +01:00
Robin Gareus 10d12599dd
Sort plugin presets by default 2022-12-19 16:41:41 +01:00
Robin Gareus 6725e8b661
GTK treeview: click to DnD (not edit), specialize per column 2022-12-19 15:21:24 +01:00
Robin Gareus ae321721cf
Also thin automation after touch/latch
AutomationList::start_touch must not start a write-pass.
That function is also called when the transport is no rolling.
A write-pass is started via AutomationWatch::add_automation_watch.
2022-12-18 01:45:04 +01:00
Robin Gareus 028c19cd10
Remove hardcoded thinning factor 2022-12-18 00:55:28 +01:00
Robin Gareus a5f36bbbbf
Fix thinning (normalize parameter value)
This fixes thinning of MIDI data (range 0..127) and
other parameters with range other than 0..1.
2022-12-18 00:55:12 +01:00
Robin Gareus bd3f713d0e
Fix gain menu (polarity, envelope) with multiple selection 2022-12-17 19:13:26 +01:00
Robin Gareus 0f949bc02b
Add region polarity invert to Region menu 2022-12-17 13:15:42 +01:00
Robin Gareus 9819cdb117
GUI support for per region polarity invert 2022-12-17 13:15:37 +01:00
Robin Gareus 5b52aa956f
Prepare for region polarity inversion (using negative gain) 2022-12-17 13:14:54 +01:00
Robin Gareus 37d6f1026a
a-eq: ifdef methods only used for inline display 2022-12-16 23:05:36 +01:00
Ben Loftis 24ed994d02 redirect box: add a Reset action to the Presets submenu 2022-12-16 15:36:27 -06:00
Ben Loftis 483047635c Rec page: implement Undo actions and shortcuts
* undo is not (currently) a Global action, it's an Editor action
* ... but we want the ability to undo a recording

One option would be to chagne Undo to a Global action, which would have a
 sizable impact on code and existing shortcuts.

Instead I'm choosing to implement a Rec-page-specific Undo action & shortcut

It's conceivable that someday we would want the Recorder page to ONLY undo
 record operations, and the Mixer page to ONLY undo mixer operations, or
 something like that.  This lays the foundation for that.
2022-12-16 13:18:37 -06:00
Ben Loftis 10ef8535c7 Import dialog: tweak layout
* labels on the left, following conventions we use in Prefs et-al
* separate colums for Global, MIDI, Audio  settings
2022-12-16 13:18:37 -06:00
Robin Gareus 3b9a253a84 Bind weak pointers to rt_slot events
This fixes a crash when deleting routes, while there are still
automation events queued for the route.

Specifically, SoloControl has a reference Soloable& _soloable; which
points to the parent route. A rt-event can still hold a valid shared
pointer to the SoloControl, even if the route is destroyed.
Calling SoloControl::actually_set_value is fine (the control still
exists due to the shared ptr), but then checking the parent route:
```
if (_soloable.is_safe() || !can_solo())
```
accesses the already deleted route, which causes a crash.

The solution implemented here is to not bind a shared_ptr to the
realtime event. However, since deletion of the route happens in the main
UI thread, there may or may not still be a race.
2022-12-16 00:12:48 +01:00
Robin Gareus c64869596e
Fix auto audio monitoring when using hw monitoring 2022-12-15 17:24:17 +01:00
Robin Gareus edd68d8682
Automatically align metronome when recording it to a track 2022-12-15 00:55:32 +01:00
Robin Gareus 95544a86a0
Convert SMF track names to UTF-8 2022-12-15 00:30:18 +01:00
Robin Gareus eec36feb11
Fix importing MIDI files with duplicate track names 2022-12-15 00:29:50 +01:00
Robin Gareus 75c9927d75
Tweak MIDI file import parameters
* Create opaque regions
* Set interpolation of parameters to be discrete
  (just like at rec-stop).
2022-12-14 16:14:47 +01:00
Robin Gareus 224f7bb263
Set imported regions to be opaque by default 2022-12-14 16:10:22 +01:00
David Robillard 27dfd8a7e3 Fix loading LV2 presets with non-float port values
In practice, this mostly means integers when presets leave off the ".0", but we
implement all the numeric types here for good measure.

Also while we're at it, warn about unknown types now so it doesn't take three
people a half an hour to figure out what's going on the next time something
like this happens.
2022-12-13 22:03:48 -05:00
Paul Davis bd8c3af2a2 fix crash on MIDI unlearn for cue slot (bad iterator 2022-12-13 17:43:16 -07:00
Robin Gareus eb1373404a
FP8: do not reset fader to unity on re-selecting
This disables the feature added in 057fd9259e.
The idea was to use double-click to reset the fader (like
Harrison consoles). Simply re-select can lead to accidents.
2022-12-13 18:01:27 +01:00
Robin Gareus bd091906ac
Fix OSC/liblo zeroconf, properly query server URL 2022-12-13 17:15:54 +01:00
Robin Gareus d704572ed5
FP8: fix monitor control
monitor_active() is the wrong API (it checks if any
monitor-bus settings are enabled or used).
2022-12-13 17:14:52 +01:00
Robin Gareus 6187556498
Opaque regions are supposed to be opaque 2022-12-13 01:35:28 +01:00