Age | Commit message (Collapse) | Author |
|
This reverts commit e8eff9fb9c2fa6fc518404c2f9b731f8c28d3a23.
OS X compiler gets confused by this change.
|
|
|
|
double-negation as boolean"
This reverts commit a19902b52f08bf33c54e60dfb49c44a1c154f4c9.
OS X compiler gets confused by this change.
|
|
This reverts commit e8eff9fb9c2fa6fc518404c2f9b731f8c28d3a23.
OS X compiler gets confused by this change.
|
|
|
|
double-negation as boolean
|
|
|
|
- also fixes a couple of absolute snap bugs wrt midi notes.
|
|
|
|
- this should work as before, but when applied to a button 1 drag,
the constraint is in the first direction travelled.
|
|
|
|
- also clean up, rename and comment some previous hanges.
|
|
|
|
- remove "no_magnets" ugh.
|
|
Disabled/enabled with the shift key. no config stuff at all now.
Move existing (strange) trim feature to primary + tertiary modifiers.
|
|
|
|
|
|
This moves MIDI channel filtering into a reusable class and moves filtering to
the source, rather than modifying the buffer afterwards. This is necessary so
that the playlist trackers reflect the emitted notes (and thus are able to stop
them in situations like mute).
As a perk, this is also faster because events are just dropped on read, rather
than pushed into a buffer then later removed (which is very slow).
Really hammering on mute or solo still seems to produce stuck notes
occasionally (perhaps related to multiple-on warnings). I am not yet sure why,
but occasional beats always.
|
|
During DnD, the region uses the 'old/current'
midi_stream_view()'s range and its position/height calculation.
Ideally DnD would decouple the midi_stream_view() for the
region(s) being dragged and set it to the target's range
(or in case of the drop-zone, FullRange).
but I don't see how this can be done without major rework.
For now, just prevent visual bleeding of events in case
the target-track is smaller.
|
|
My apologies to translators.
|
|
This is debatable, the "sustained until mouse release" behaviour is handy
sometimes, but this way seems like what most people probably want.
Also, this "fire it and forget it and let it delete itself a bit later" thing
with MidiPlayer makes me nervous. I guess it's unlikely someone manages to
select a note then delete a track within 100ms, but, well...
|
|
|
|
This avoids stuck notes if active notes are edited, but without stopping all
active notes in the region on any edit as before.
This implementation injects note ons in places that aren't actually note
starts. Depending on how percussive the instrument is, this may not be
desired. In the future, an option for this would be an improvement, but there
are other places where "start notes in the middle" is a reasonable option. I
think that should be handled universally if we're to do it at all, so not
considering it a part of this fix for now.
|
|
|
|
|
|
Newly drawn notes are selected.
Clear midi note selection on Selection::set_state().
|
|
|
|
|
|
|
|
|
|
Fix several other cases where a single mouse click could cause several
(not nested) selection ops.
Fix missing selection memento for midi notes and midi commands.
Rename some variables.
Fix random style issues.
|
|
|
|
The reasonable value 1 tick doesn't seem to work here, presumably it gets lost
in rounding conversion somewhere. Instead use a really small power of two
reciprocal. Once we use actual beats and ticks we can fix this to be a minimum
of one tick (the actual minimum length for a note).
|
|
|
|
This doesn't make sense, but I'm okay with that.
|
|
... almost. There are some artifacts when you zoom out while recording that I
can't figure out, but whatever.
Also fix performance issues caused by last attempt at rec display while zoom.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Seems unlikely, but if the event firing stuff is off, it could trigger the
issue (#5502) and/or a possible memory leak.
|
|
For example, if you're in a note and something about the mode changes, it's the
underlying region context that needs to change. So, seems we need a stack of
entry contexts to deal with this sort of thing.
Switching in/out of smart mode still doesn't update immediately because we
don't have the y-coordinate needed to update it.
|
|
RCConfiguration
|
|
Add a new scoped cursor system that makes it much harder to screw up and end up
with stick cursors and so on.
|
|
|
|
|
|
|