Commit graph

41648 commits

Author SHA1 Message Date
Paul Davis
06dc00546f fix plural forms 2025-11-17 17:37:04 -07:00
Paul Davis
1b0aeef8be when using cue page pianoroll record length dropdown, show active value 2025-11-17 16:05:03 -07:00
Paul Davis
6dfca90b8e fix illegal MIDI event message during import
This happens when reimporting a MIDI file taken from Ardour, which
has sequencer specific data (namely, note-IDs). In that case
SMF::read_event() returns zero to indicate a meta event that we
should or could be interested in. For import, we are not interested,
hence the ignored_note_id variable
2025-11-17 16:05:03 -07:00
Paul Davis
65332e603b libsmf: speed up ridiculous design of smf_save()
This would realloc a buffer for every event, making it absurdly slow for
large MIDI files (say, 10k events). Use the somewhat standard heuristic
of doubling the requested allocation every time we need to increase the size.

This results in a speedup of 40-100x when saving SMF to disk
2025-11-17 16:05:03 -07:00
Paul Davis
662d1b9e46 NO-OP: fix commented printf of MIDI data 2025-11-17 16:05:03 -07:00
Paul Davis
2c7841777b Evoral: more useful output if there's an illega MIDI event sent to SMF or Sequence 2025-11-17 16:05:03 -07:00
Robin Gareus
30e1567e23
Add ComboBox like active API to ArdourDropdown 2025-11-17 23:57:01 +01:00
Paul Davis
a0302bd7fc MidiView: fix display of out-of-range live (recording) notes
This involves better handling of note range changes, and also a renaming of
member variables to better reflect their function.

It adds _finished_live_notes to hold notes that were recorded live but have
ended, since these also need to be updated as zooming or note range changes
2025-11-17 11:07:18 -07:00
Paul Davis
68c69fb89d MidiViewBackground: make ::maybe_apply_note_range() return bool
Just like ::apply_note_range, to indicate if the range was
actually changed.
2025-11-17 11:07:18 -07:00
Paul Davis
9e9afef527 NO-OP: correct comment description of a value 2025-11-17 11:07:18 -07:00
Aleksandr Prokudin
e01184ada0 Make the PDC option in the application bar items list consistent with the rest 2025-11-17 10:21:44 +01:00
Paul Davis
1e6d75d781 MidiBuffer: make ::write() return an error code if ::insert_event() fails 2025-11-16 14:03:11 -07:00
Paul Davis
6e58f6e2c8 NO-OP: space for function decl 2025-11-16 14:03:11 -07:00
Paul Davis
1fcc09ca84 NO-OP: space for function decl 2025-11-16 14:03:11 -07:00
Paul Davis
493a136d43 MidiBuffer: print an error if ::push_back() fails 2025-11-16 14:03:11 -07:00
Paul Davis
66f18a065e MIDI diskwriter: at least pretend to catch errors when pushing to MidiRingBuffer 2025-11-16 14:03:11 -07:00
Paul Davis
cc3981643a NO_OP: spaces for function call 2025-11-16 14:03:11 -07:00
Paul Davis
8baf7fbab2 NO-OP: comment formatting 2025-11-16 14:03:11 -07:00
Paul Davis
ec9120ab05 NO-OP: change variable name and better alignment 2025-11-16 14:03:11 -07:00
Paul Davis
67a09c19c8 NO-OP: spaces for function calls 2025-11-16 14:03:11 -07:00
Paul Davis
21a4501e47 MIDI: fix major error in computing delta times for SMFSource::append_event_samples()
timecnt_t constructor is: (distance, position); this code was not computing the
distance between the new event and _last_ev_time_samples.
2025-11-16 14:03:11 -07:00
Paul Davis
637e59a14f SMFSource: auto-ify a knarly container iteration 2025-11-16 14:03:11 -07:00
Paul Davis
33d6d5a330 MidiView: no reason to suspend note range changes until after _active_note check 2025-11-16 14:03:11 -07:00
Paul Davis
1c09bb88be prevent unnecessary calls to MidiViewBackground::maybe_extent_note_range()
When building a MidiView from a Model, we call ::add_note() for every note, and
there is no reason to be adjusting the note range each and every time, since it
potentially a slightly expensive operation.
2025-11-16 14:03:11 -07:00
Paul Davis
695ca40b23 missing initialization for MidiView member in copy constructor 2025-11-16 14:03:11 -07:00
Paul Davis
015890f16c slight optimization for MidiView::extend_active_notes() 2025-11-16 14:03:11 -07:00
Paul Davis
e2cea58876 in MidiView::view_changed(), don't update existing events unless zoom has changed 2025-11-16 14:03:11 -07:00
Paul Davis
b14859fc46 NO-OP: add comment 2025-11-16 14:03:11 -07:00
Paul Davis
87a1f602d2 NO-OP: add detail to a comment 2025-11-16 14:03:11 -07:00
Paul Davis
e5ef93821c NO-OP: remove inaccurate comment 2025-11-16 14:03:11 -07:00
31core
f22b269b7d Improve Simple Chinese translation in gtk2_ardour/po/zh.po. 2025-11-16 18:30:46 +01:00
Robin Gareus
03d5411843
Allow to load partial state 2025-11-15 16:44:43 +01:00
Robin Gareus
f2a267675c
Allow to uniquely identify sessions
This is in preparation to allow merging sessions, or importing
partial state, and particularly different versions of the same
session where PBD::Ids may match.
2025-11-15 16:44:43 +01:00
Aleksandr Prokudin
b6cca7afce Update Russian translation 2025-11-15 14:54:23 +01:00
Aleksandr Prokudin
92ad1368e8 Fix the title case in a user-visible message 2025-11-15 14:52:20 +01:00
Aleksandr Prokudin
f26994c747 Remove the X to make a user-visible message translatable 2025-11-15 14:18:33 +01:00
Aleksandr Prokudin
bc78ac183f Add ellipsis, because this action opens a dialog 2025-11-15 13:57:34 +01:00
Aleksandr Prokudin
1886490f4f Bark is a reference to a real person, so use title case 2025-11-15 13:35:24 +01:00
Aleksandr Prokudin
fee513a5c4 Fix a typo in a user-visible message 2025-11-15 13:18:35 +01:00
Aleksandr Prokudin
a2ce111eb6 Mark user-visible messages for translation 2025-11-15 12:34:23 +01:00
Robin Gareus
04b180cc79
Remove unused cycles/cycle-timer 2025-11-14 17:43:51 +01:00
Robin Gareus
fa319ffda2
FIX SNAFU with MIDI pending overwrite 2025-11-14 17:35:30 +01:00
EZ4Stephen
8ca2d12198
Change to ytk wscript, to work slightly better with MSVC
Replace obj.ldflags  = '-l... with obj.lib  = ['... to work for both MinGW and MSVC.
Also, obj.linkflags = ['-Wl,--export-all-symbols'] only happens for MinGW.

(Previously, both lines were ignored by MSVC.
2025-11-14 00:21:11 +01:00
Paul Davis
637d99167a SessionDialog: remove explicit button press handling
This is not needed since ArdourButton + related action takes care of it
2025-11-13 09:56:24 -07:00
Robin Gareus
7bb7f21ae0
Refine condition for auto opening instrument plugin UI 2025-11-13 02:03:13 +01:00
Robin Gareus
5960ad2e0f
Fix additional for loop iterators that were lost in auto-fication
see also c469c33bc4
2025-11-13 01:56:39 +01:00
Robin Gareus
2bf4fd1796
Don't show empty GUI if instrument plugin has no custom view 2025-11-13 00:35:06 +01:00
Robin Gareus
aae94e859f
Add preference to opt-out of auto showing instrument plugin GUIs 2025-11-13 00:07:39 +01:00
Paul Davis
143bca4a6d SessionDialog: move NEW button to the bottom
This creates a default focus chain that allows easy access to all 3
buttons before traversing other focusable widgets in the dialog
2025-11-12 16:02:12 -07:00
Paul Davis
bbf2920f7f SessionDialog: associate actions with buttons
This allows SPACE to activate the button
2025-11-12 15:41:01 -07:00