12e8235193
Add API to query set of used MIDI channels in a SMF
2022-02-05 00:13:27 +01:00
fa29647246
Fix dmg failure caused by out of space issue
...
With no clear reason why, copying the program to the dmg is running
out of space. Possibly a bug in latest catalina.
Instead of using a fixed extra space amount. Add 25% of the Product Dir
size to the dmg size.
2022-02-04 15:24:24 -06:00
d2a5fa2d9f
Fix trap error case
...
At this point TMPDMG already has .dmg added to it and
the original mktemp file was removed above.
2022-02-04 15:18:29 -06:00
617697a823
Fix playback of initial notes during MIDI audition
2022-02-04 19:32:34 +01:00
6df1bd3ad5
Triggger Clip Picker: fix crash at session close
2022-02-04 13:58:22 +01:00
834e164df0
Trigger Clip Picker: Idle update audition synth
...
This keeps the plugin in sync with any changes made to the
Plugin UI. In particular General MIDI Synth will send
notifications once patch/program changes are processed.
ACE Fluidsynth can load sf2 files, etc.
2022-02-04 13:57:33 +01:00
4fe9d99674
Auditioner: add API for UI to run the synth (idle)
...
This allows the synth to process injected out-of-band MIDI
data, such as Program/Patch Changes while audition is inactive.
2022-02-04 13:46:13 +01:00
604652b7d6
fix duplicate behavior
...
We were adding the "span" value to the position before calling
Playlist::duplicate(), but it does that internally.
2022-02-03 20:51:04 -07:00
c7d4729238
Expose session config triggerbox-overrides-disk-monitoring option
2022-02-04 01:47:29 +01:00
e2bc670e6b
Update monitoring display when TB cues change
2022-02-04 01:47:26 +01:00
5e2912b7eb
Auto Monitoring takes TriggerBox into account
...
MonitoringDisk is now only set implicitly if the triggerbox
contains no cues.
2022-02-04 01:47:20 +01:00
18207c6896
Fix Triggerbox empty(), active-slots count on session load
2022-02-04 01:40:54 +01:00
05f4ffa598
Fix cue selection
...
TriggerEntry has 3 child items:
* play-button, follow-button, name-button.
On mouse-down the TriggerEntry is grab()bed in preparation
to start a drag. From then on all events are directly sent to
TriggerEntry, which can only pass it up to parent items.
Mouse-release hence reaches the TriggerStrip and selects it.
2022-02-03 23:29:01 +01:00
e51427413c
Tweak TB event passthrough
...
Play/Stop and Follow buttons no longer pass events up.
That way the strip will not be selected on mouse-up.
2022-02-03 21:57:13 +01:00
d9ec733c47
Dump XML node if loading a source fails
...
This helps to debug issues, in case this comes up in a session
with many sources.
2022-02-03 21:57:13 +01:00
3c2fdab1ce
triggerbox: add Properties::channel_map (and sent it); save/restore channel map state (untested)
2022-02-03 13:07:04 -07:00
bce4eb36ad
triggerbox: add MIDITrigger channel mapping
2022-02-03 12:37:49 -07:00
ead02f50b1
triggerbox: save/restore state for assigned patch changes in MIDITrigger
2022-02-03 09:24:30 -07:00
ccf5c07108
Update source-tree layout
...
* Remove wine, fst, windowsVST reference,
* VST3 support
* expand paths
2022-02-03 14:47:24 +01:00
511ff3290f
Implement TriggerStrip selection
...
This also changes TriggerBox Selection to act on release
(like all other selection). Otherwise strip selection will
de-select the TriggerBox on mouse-release.
2022-02-03 05:50:07 +01:00
fd3d17562c
triggerbox: do not send embedded patch change events if Trigger has its own
2022-02-02 16:05:17 -07:00
65e3177910
Trigger Clip Picker: fix crash at exit (auditioner reference)
2022-02-02 23:08:49 +01:00
a9b484e97e
Auditioner: retain instrument plugin
...
This allows the Trigger Clip Picker to keep the
Plugin GUI available, and retain any custom settings.
2022-02-02 23:08:48 +01:00
35b6ddfb77
triggerbox: deliver required patch changes into buffers whenever MIDITrigger::startup() happens
2022-02-02 15:06:11 -07:00
c7b8faad5a
MidiStateTrack: use correct hex values to manage set/unset state
2022-02-02 15:06:11 -07:00
374faa0d5c
PatchChange: use correct hwx constants to detect/set "unset" byte values
2022-02-02 15:06:11 -07:00
31f4d8a2ca
PatchChange: fix operator=() implementation which failed to manage event buffer ownership correctly
2022-02-02 15:06:11 -07:00
6175af002c
triggerbox: MIDITriggers get 16 patch changes, 1 per channel
...
These can be set, fetched and queried but at this point they do nothing
2022-02-02 15:06:11 -07:00
603d1f1f57
evoral: some changes/extensions to Evoral::PatchChange to make it more useful
...
The concept of an "unset" PatchChange now exists, and thus a default constructor that constructs
such a thing
2022-02-02 15:06:11 -07:00
2c8427773f
Trigger-clip audition: show audition-synth GUI (WIP)
...
This is somewhat experimental, also the Plugin UI is only
available while MIDI audition plays...
2022-02-02 22:09:47 +01:00
b250c69eb8
trigger_ui: return the gain-spinner to MIDI clips; it adjusts velocity
2022-02-02 11:47:50 -06:00
0b395c161d
triggerbox: apply gain to MIDI note events
2022-02-02 09:58:57 -07:00
2eadb75bd1
move static scale_midi_velocity() function from Amp to Evoral::Event
2022-02-02 09:58:57 -07:00
15f248975f
remove unused member of MidiStateTracker
...
We store "have program" as the 8 (MSb) bit of the program
array, and similary for other state holding elements
2022-02-02 09:58:57 -07:00
cooltehno
bf2ff23e44
Update dark-ardour.colors
2022-02-02 16:45:18 +01:00
bb11be9936
Consistent height of MIDI and Audio Track connection buttons
...
Audio track shows a trim-knob -- which is SCALED(19x19px),
MIDI input button should follow suit.
2022-02-02 14:18:18 +01:00
6900facef2
Fix potential deadlock
...
block_processing() may hold the process-lock, waiting
for the latency-lock. at the same time audio-engine
may hold the latter, trying to acquire the former.
2022-02-02 14:16:50 +01:00
fec679c602
triggerbox: refactor ::maybe_compute_next_transition() so that we can use the same code when fast-forwarding
2022-02-01 19:55:37 -07:00
f5d5ecffbb
triggerbox: change note tracker to a full state tracker, and move it up to the TriggerBox
...
We don't need one state tracker per trigger, one per box is more appropriate
2022-02-01 18:06:40 -07:00
8449d344ae
add MidiNoteTracker::flush_notes() that writes note-on events corresponding to currently-on notes
...
This does not maintain note timing, but once the buffer contents arrive at a receiver, it should
be playing all the notes that were marked on in the tracker
2022-02-01 18:06:40 -07:00
885d2feb6a
add basics of a method to flush MidiStateTracker state to a MidiBuffer
...
When the buffer is delivered to a receiver, the receiver should (theoretically) end up
the same state as the MidiStateTracker
2022-02-01 18:06:40 -07:00
04004d2178
add skeleton for full MidiStateTracker
2022-02-01 18:06:40 -07:00
1ab49bcc32
change MidiStateTracker to MidiNoteTracker
...
The old name will become a bigger class/object that tracks all MIDI state,
not just notes
2022-02-01 18:06:40 -07:00
77a60d9e2d
Remove unused API
2022-02-02 00:27:35 +01:00
f103b984ab
Fix bounce + callback concurrency
...
Prevent Session::write_one_track to commence while latency
callback is already in progress. See also
* 19067f8c87
* 2eaa0183ef
2022-02-02 00:27:35 +01:00
1725fdadf6
pre-size Grid and Draw-option menus so they are less likely to dynamically resize with every click
2022-02-01 17:02:56 -06:00
26beea89ea
changes to the Draw options should immediately sync state to instant.xml
2022-02-01 17:02:56 -06:00
b7a3de126c
Fix some menus that occasionally act 'stuck'
...
* when a menu uses RadioActions, their initial state must be synced
* we use various methods to 'fix' this throughout the program
-> I'm forcing internal state to match in the case the Action is already active
* question: we tend to use RadioActions for all these menu items,
because they represent a choice between many options;
but do we really need to use RadioActions here?
2022-02-01 17:02:56 -06:00
19067f8c87
Another refinement to address bounce + callback concurrency
...
see also 2eaa0183ef
2022-02-01 23:49:38 +01:00
200469dce8
Remove 18 month old debug messages
2022-02-01 22:01:41 +01:00