57f74fbf13
const bool METHOD() const makes no sense
2016-07-09 17:15:17 -04:00
9389ee1e96
Better heuristics for guessing the primary type of an input or output
...
In order to choose which port name to display (if any) in the button,
MixerStrip::update_io_button() first chose a primary type for the input
or output. It was AUDIO in all cases, except if the route was a
MidiTrack where the primary type was MIDI.
In the latter case, it enabled the following code of update_io_button()
to show the MIDI sources feeding the MidiTrack rather than showing an
unhelpful dash.
But this simple heuristic has several shortcommings:
- Going further, tracks and busses will probably loose strong types so
the approach is not future-proof;
- It doesn't take midi busses into account, yet there is no reason for
them to be handled differently than midi tracks;
- It falls short when the midi track contains a synthesiser and is
meant to output audio.
Improve the heuristics by choosing the data type as follows:
A) If there are connected audio ports, consider audio as primary type.
B) Else, if there are connected midi ports, consider midi as primary type.
C) If there are audio ports, consider audio as primary type.
D) Else, if there are midi ports, consider midi as primary type.
These new heuristics give the same results for audio tracks and busses
(whose audio inputs have not been removed), and the same result for the
input of midi tracks (again, provided the inputs have not been tampered
with). It improves the situation for inputs of midi busses, and output
of midi tracks and busses, especially when synthesisers are in use.
2016-07-09 21:08:16 +02:00
35b4cb91d2
update_io_button: store input() or output() in a variable
...
This avoids repeating "if (for_input)" checks.
2016-07-09 21:08:16 +02:00
0c2a5dc0b2
better safe than sorry
2016-07-09 18:34:27 +02:00
nick_m
0e2ed90cfc
Revert incorrect 'optimisation' from 4f7a4cd233
.
...
- fixes regression in stacked layering display.
2016-07-10 02:18:38 +10:00
nick_m
23da9acf7e
Minimise duplicate calls to CairoWidget::set_dirty() in the editor summary.
...
- many regions may be changed by one operation.
2016-07-10 02:18:38 +10:00
nick_m
a44c8b96ae
Edit note dialog fixes.
...
- position display is session-relative
- Add missing undo to note edit.
2016-07-10 02:18:38 +10:00
nick_m
703150d365
Always set the musical position in Region::recompute_position_from_lock_style().
2016-07-10 02:18:38 +10:00
nick_m
8a676d2bd4
Fix missing note divisor when creating regions, ensure an existing musical time is not altered.
2016-07-10 02:18:38 +10:00
nick_m
5f0ab71989
Midi note resizing uses exact beat.
2016-07-10 02:18:38 +10:00
nick_m
11f002ddc4
Use exact beat when adding midi notes.
2016-07-10 02:18:38 +10:00
nick_m
99653ae2ca
Simplify Editor::mouse_add_new_meter_event() a bit.
2016-07-10 02:18:38 +10:00
nick_m
33dab757ee
Tempo map updates.
...
- cleanup audio-locked meter removal code
- recompute and warn if map is left unsolved due to adding a metric
- handle corner case wrt overlapping audio-locked musical sections.
2016-07-10 02:18:38 +10:00
nick_m
49159e9585
Fix long-standing spelling bug.
...
- should be a no-op.
2016-07-10 02:18:37 +10:00
nick_m
7a6f8abc1d
Fix missing tempi recompute, improve adding meter/tempo failure.
2016-07-10 02:18:37 +10:00
nick_m
0bdbe56cf1
Stop passing references to things that may disappear when a metric section is replaced.
2016-07-10 02:18:37 +10:00
nick_m
828cb52f86
Fail properly when adding a new audio locked meter's tempo.
2016-07-10 02:18:37 +10:00
nick_m
39b70ceced
Check meter/tempo section exists in copy drag.
2016-07-10 02:18:37 +10:00
nick_m
180445c18c
Indicate meter frame even when adding a music-locked meter from the gui.
2016-07-10 02:18:37 +10:00
nick_m
f4ec7f12d1
Fix broken meter manipulation in exact_beat.
2016-07-10 02:18:37 +10:00
nick_m
e40604f6bd
Back to using exact beats for midi region start_beats calculation when trimming.
...
- seems to work quite well, but not tested on live recording.
2016-07-10 02:18:37 +10:00
nick_m
e4a163e2fa
Fix bad comment.
2016-07-10 02:18:37 +10:00
nick_m
6612b73033
Use frame-based (non-exact) beat calculation to set new start in midi region trim.
2016-07-10 02:18:37 +10:00
nick_m
f1802667ba
Experimental patch to ensure playback buffer bounds use minimal beat->frame rounding.
2016-07-10 02:18:37 +10:00
nick_m
4acd365e42
AudioPlaylist doesn't double-notify that contents have changed if bounds have changed.
2016-07-10 02:18:37 +10:00
nick_m
3ee7972069
AudioRegionView - don't do coverage frames unless we're in stacked mode.
2016-07-10 02:18:37 +10:00
nick_m
f65c592567
Editor region list only updates columns that have changed,
2016-07-10 02:18:37 +10:00
nick_m
5afe2993bd
Remove extra ContentsChanged signal on tempo map change.
2016-07-10 02:18:37 +10:00
nick_m
89ea747943
Make bbt ruler visible in default session.
2016-07-10 02:18:37 +10:00
nick_m
9603233a68
Fix note trimming over tempo changes, correct note length properly when resizing midi region.
2016-07-10 02:18:37 +10:00
nick_m
13c851f3cf
Restore earlier midi region trim display.
2016-07-10 02:18:37 +10:00
nick_m
447f9ee062
Exact beat for added regions.
2016-07-10 02:18:37 +10:00
nick_m
3b4a406ba1
Only update midi regions having a playlist after tempo map change, fix 0 length regions from drawing tool.
2016-07-10 02:18:37 +10:00
nick_m
4bdbe77414
Avoid the use of dynamic_cast in TempoMap for performance improvement.
...
- review / comment would be appreciated here.
2016-07-10 02:18:37 +10:00
nick_m
b732147676
Use Note::set (Rect) for speed improvement when rendering notes.
2016-07-10 02:18:37 +10:00
nick_m
39692eed66
Add Note::set (Rect) for optimisation purposes (minimise begin/end changes)
2016-07-10 02:18:37 +10:00
nick_m
71ed5865f5
Temporary work-around for note colour.
2016-07-10 02:18:37 +10:00
nick_m
8e99b59af5
Make TempoMap::bbt_at_frame() more efficient.
...
- should be a no-op
2016-07-10 02:18:37 +10:00
nick_m
db686cca38
Show correct bbt representation of region length in region list.
...
- fixes single-tempo assumption.
2016-07-10 02:18:37 +10:00
nick_m
95ba43916f
Improve performance of automation range moves.
2016-07-10 02:18:37 +10:00
nick_m
7a6efaaf3d
Quick fix to get trim working again (bahaving oddly during trim right now)
2016-07-10 02:18:37 +10:00
nick_m
32a579ec28
Fix ordering thinko in note selected colour.
2016-07-10 02:18:37 +10:00
nick_m
9f61f8a5b0
Complete the task of Playlist::flush_notifications ()
2016-07-10 02:18:36 +10:00
nick_m
550f2925cc
Performance - don't redisplay model immediately in MidiRegionView::enable_display ().
...
- allows MidiRegionView::reset_width_dependent_items () to do it
as intended (i think).
2016-07-10 02:18:36 +10:00
nick_m
e856615c75
Performance tweak - NoteBase doesn't recalculate colour as often.
...
- not sure if we can store this atm.
2016-07-10 02:18:36 +10:00
nick_m
3c1bc99df9
Improve midi model redraw performance by caching colours.
2016-07-10 02:18:36 +10:00
nick_m
c6f2095fb7
Improve the performance of TempoMap::frame_at_beat ().
...
- should be a no-op
2016-07-10 02:18:36 +10:00
nick_m
6b0eadc62f
Use mostly beat-based calculation for displayed midi note position.
2016-07-10 02:18:36 +10:00
nick_m
0e63fa65b5
Remove frame conversion for MidiRegionView::note_in_region_range(), speed up tempo dilation
2016-07-10 02:18:36 +10:00
nick_m
93c24e4433
Paste uses exact beats. rework _start_beats calculation in copy-with-offset ctor.
2016-07-10 02:18:36 +10:00