summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_region_view.cc
AgeCommit message (Collapse)Author
2016-09-23Fix bug where drawing long notes placed the new note on the previous snap line.nick_m
- NoteCreateDrag already applies this shift, so it was always applied twice to the note start frame.
2016-09-23Remove _midi_regions_use_bbt_beats from Session, _start_pulse and ↵nick_m
_length_pulse from MidiRegion. - _start/length_beats are now quarter notes regardless of loaded session version. - also restores note colour update
2016-09-15Do not delete selected MIDI notes while dragging. (See #6602)Guido Aulisi
This is not caused by commit_reversible_command, but because NoteDrag::total_dx calls Evoral::Note<Evoral::Beats>::time() with invalid MIDI note (deleted).
2016-09-07Remove unused variable.nick_m
2016-09-02Ensure the correct position is passed to MidiRegionView::get_grid_beats().nick_m
2016-08-31No-op - rename var in MidiRegionView::note_dropped().nick_m
2016-08-31MidiRegionView uses quarter note snapping.nick_m
- also ensures poiinter ghost note respects the snap modifier.
2016-08-16Add missing line feed in midi_region_view.ccnick_m
2016-08-16Midi region ghost note uses beat-based note time calculation.nick_m
2016-08-16Fix frame-based beat calculation in ↵nick_m
MidiRegionView::snap_frame_to_grid_underneath() - this caused the ghost note under the pointer to behave badly when hovering near an audio-locked meter.
2016-08-08fix thinko that causes near duplicate menu items in group context menu when ↵Paul Davis
not in group tabs
2016-07-22Remove the temporary note group in MidiRegionView, update start trim during ↵nick_m
drag.
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-12use new midi-note-name APIRobin Gareus
2016-07-10remove reference "const int32_t&" -> const int32_t"Robin Gareus
this simplifies lua-bindings and also let's the compiler worry about constant primitive types.
2016-07-10Midi note resizing uses exact beat.nick_m
2016-07-10Use exact beat when adding midi notes.nick_m
2016-07-10Fix note trimming over tempo changes, correct note length properly when ↵nick_m
resizing midi region.
2016-07-10Restore earlier midi region trim display.nick_m
2016-07-10Use Note::set (Rect) for speed improvement when rendering notes.nick_m
2016-07-10Temporary work-around for note colour.nick_m
2016-07-10Quick fix to get trim working again (bahaving oddly during trim right now)nick_m
2016-07-10Performance - don't redisplay model immediately in ↵nick_m
MidiRegionView::enable_display (). - allows MidiRegionView::reset_width_dependent_items () to do it as intended (i think).
2016-07-10Use mostly beat-based calculation for displayed midi note position.nick_m
2016-07-10Remove frame conversion for MidiRegionView::note_in_region_range(), speed up ↵nick_m
tempo dilation
2016-07-10Paste uses exact beats. rework _start_beats calculation in copy-with-offset ↵nick_m
ctor.
2016-07-10Exact beat - provide audio->music mapping for region split.nick_m
- for those not in the know, this series provides a way to remove the temporal distortion introduced when using an audio frame-based gui for music-locked objects. In short, the gui uses an audio frame representation to move objects. It displays the object using frame_at_beat(), quantizing the time value to audio frames. This is fine until the user selects that frame but expects it to be interpreted as a beat. Thus beat_at_frame() would not produce the user-expected beat (temporal quantization error of up to 0.5 audio samples). This is one method of mapping audio time to music time accurately.
2016-06-11Fix many offset errors when drawing notes in midi regions that have been edited.nick_m
- hopefully this can close bugs such as 6270 & 6793
2016-06-08Step edit cursor no longer assumes constant tempo.nick_m
2016-05-31slight improvement of MIDI program names in verbose cursor while scrollingPaul Davis
2016-05-29Revert terrible thinko in 647c86e. (back to slow for now)nick_m
2016-05-29Speed up redraw while tempo dragging with midi regions (and possibly other ↵nick_m
redraws)
2016-05-27Tempo ramps - rename meter_at() -> meter_at_frame() & make the ticker ↵nick_m
slightly more efficient.
2016-05-27Crapola - this is an experimental performance hack that must be reverted.nick_m
2016-05-27Tempo ramps - remove double calls to RegionView::set_duration() and ↵nick_m
MidiRegionView::redisplay_model() - massively improves note redrawing performance when dragging tempos and audio-locked meters,
2016-05-27Tempo ramps - respect tempo note type and meter note divisor correctly.nick_m
- tempo and meter position is now pulse-based, although meter still has a beat for convenience.
2016-05-27Tempo ramps - midi notes resize when dragged, misc bug fixes.nick_m
2016-05-27Tempo ramps - fix constant tempo assumption wrt midi ghost note.nick_m
2016-05-27Tempo ramps - update midi regions and locations when dragging tempo.nick_m
- also make locations and regions use a double beat rather than bbt for musical position.
2016-05-27Tempo ramps - fix changing from const to ramp in the gui.nick_m
- also fixes some midi mouse over problems - start using replacements for frames_per_bar() frames_per_beat() etc.
2016-02-22Spelling correction patch from DebianAdrian Knoth
Patch taken (and forward-ported to HEAD) from <https://anonscm.debian.org/cgit/pkg-multimedia/ardour.git/plain/debian/patches/0100-fix-typos.patch>
2016-02-11Fix bug #6762, MIDNAM note read outs don't work when dragging MIDI noteTim Mayberry
Also fixes it so the key is selected in the piano roll header
2016-01-14Change handling of Midi note selection to eliminate signal emission/delays.Tim Mayberry
Each MidiRegionView(MRV) is connected to the Selection::ClearMidiNoteSelection signal that is used to notify the all MRV instances to clear their note selection. The MRV class also has a private static SelectionCleared signal that is used to signal other MRV instances when their selection has been cleared. When the Selection::ClearMidiNoteSelection signal is emitted it causes each MRV to also emit the SelectionCleared signal. So the emission takes quadratic time. With 1500 MRV instances emission takes about 2.2 seconds on my machine, and some operations like track selection cause it to be emitted 3 times(another issue). The Selection class in the Editor knows which MRV instances have note selections, as it is notified by MidiRegionView whenever the selection count becomes zero or becomes non-zero. Clearing the Note selection should then just be O(N) and direct calls can be used rather than signals. This change removes both the signals and uses the existing references between Selection and MRV class to control note selection. There should be no behavioural changes in Midi note selection with this change.
2016-01-12Comment remaining unsolved bug.André Nusser
2016-01-12Don't show a ghost note when draw mode is entered over a note.André Nusser
2016-01-12Clean enter_internal and leave_internal in MidiRegionView.André Nusser
2016-01-12Hide MIDI ghost note when over existing note.André Nusser
2016-01-12Hide ghost note when switching from draw to internal edit mode.André Nusser
Before it was only hidden after moving the mouse.
2016-01-12Fix appearing ghost note after drag select in internal edit mode.André Nusser
2015-12-22Better align note end time with gridNil Geisweiller