nick_m
3129370bc5
add ArdourCanvas::Flag::width()
2016-12-29 04:16:09 +11:00
nick_m
d0580ecfbc
allow all types of range location (loop, start, end etc.) to be glued to bars and beats.
2016-12-29 01:39:31 +11:00
27ee53bf8f
Emit signal for special cased configuration variable
2016-12-28 13:38:49 +01:00
3120270d87
Add enum for locale-config
2016-12-28 13:38:49 +01:00
6df001e9e1
Some operators need to have different visibility (as they're now used outside of libardour)
2016-12-28 09:14:51 +00:00
bbbf8e6127
Add backend support to extract session-archives
2016-12-27 22:24:24 +01:00
fe01666475
Normalize audio when archiving to fixed-point format.
2016-12-27 18:33:41 +01:00
54a79639df
Allow gain factor for audio sources.
...
In preparation for archiving files as .flac (fixed point),
normalized with gain factor.
2016-12-27 18:20:02 +01:00
Nil Geisweiller
6431c4a6d9
More 8 whitespace to tab indentation fixes
2016-12-22 14:20:13 +02:00
Nil Geisweiller
c1127c245b
Fix minor typo in comment
2016-12-21 23:09:40 +01:00
Nil Geisweiller
4c66e36b91
Fix indentation 8 whitespaces to tab
2016-12-21 23:09:40 +01:00
nick_m
ef8187662a
check audio-locked meter ordering by frame.
2016-12-22 05:36:40 +11:00
de04da27ee
Fix crash when unpacking or deleting pane
...
Gtk::Widget_Class::dispose_vfunc_callback calls hide() which invokes
Pane::handle_child_visibility which calls Pane::reallocate which
tries to get the allocation of the widget being destroyed.
2016-12-21 17:10:37 +01:00
nick_m
109cd269b4
fix yet another meter-locked tempo ordering thinko.
2016-12-21 05:56:07 +11:00
377b357afb
Add Zoom/Expand icon
2016-12-20 18:48:10 +01:00
6941d0b74d
Fix the case of jump-to-next-Subdivision
2016-12-19 17:25:59 -06:00
22bc091c37
Fix the case of jump-to-next{prev}-Bar
2016-12-19 17:25:59 -06:00
0a167f5c99
Fix minimum/maximum discovery for integer params (from Hanspeter Portner)
2016-12-19 23:10:36 +00:00
7b9d3f94d4
make solo button on faderport actually work
2016-12-19 22:56:37 +00:00
53be243f6a
Session::_ac_thread_active should be used with atomics to create memory barriers, even though lock ordering is likely correct now
2016-12-19 15:33:54 +00:00
3d1eb9a6e5
Session::auto_connect_thread_terminate() cannot use ::auto_connect_thread_wakeup() because that method is allowed to "fail".
...
Should fix hangs when closing a session with the ALSA backend (and perhaps others too).
2016-12-19 14:36:39 +00:00
004431426d
Towards packing CairoWidgets on ArdourCanvas.
2016-12-19 13:36:42 +01:00
218d376154
vertically center text in time rulers
2016-12-19 13:27:22 +01:00
6bbb2c72f0
NO-OP: whitespace
2016-12-19 13:27:22 +01:00
bd0fc8cafc
Shorten sync-button label/size
2016-12-18 23:17:29 +01:00
nick_m
d4f7f5ffa2
TempoMap - rename some methods.
...
gui_move_tempo -> gui_set_tempo_position
gui_move_meter -> gui_set_meter_position
gui_dilate_tempo -> gui_stretch_tempo
2016-12-19 04:13:17 +11:00
nick_m
27b95300e2
add frame parameter for Meter ctor and TempoMap::replace_meter(). allow for various failures.
2016-12-19 04:02:01 +11:00
nick_m
741df6e6ef
there is no curve for identical note_types_per_minute values.
2016-12-19 03:23:33 +11:00
ecc2348ecc
should not really bind a shared_ptr<Port> to a sigc slot, so don't do that
2016-12-18 00:07:59 +00:00
1223c8d1cd
move termination of auto connect thread till after control protocols are destroyed.
...
Otherwise, control protocol ports don't actually get deleted
2016-12-18 00:07:59 +00:00
f80fb029e2
Prepare configurable mini-timeline time-span
2016-12-18 00:06:39 +01:00
8ba7e8f4ef
Hide/remove per-track record-mode in favor of global setting.
2016-12-17 02:43:42 +01:00
73f8ffce63
add copy constructor, operator= and a clean ::dump() method for TempoMap
2016-12-16 16:49:27 +00:00
e487014e56
add arguments (unusued) to control whether or not SMF tempo map is used during import
2016-12-16 14:57:10 +00:00
6a0ea65885
"toll free bridging" between smf_tempo_t and Evoral::SMF::Tempo
2016-12-16 13:45:43 +00:00
c0aa738395
expose SMF tempo information in Evoral::SMF
2016-12-16 10:43:52 +00:00
2378e7b60c
add function to get number of tempos found in SMF tempo map
2016-12-16 10:43:41 +00:00
fe0761d404
unused but slightly tricky code to add track name/instrument to an SMF file when saved
2016-12-16 09:36:52 +00:00
76dca432f0
add comments about limitations for Evoral::SMF and tracks
2016-12-16 09:36:52 +00:00
462c3eeb84
MIDI tracer actually changes the event-loop
2016-12-16 01:56:15 +01:00
6c88f339ca
some further invalidation details:
...
Prevent double unref during when the EventLoop terminates:
deleting the ringbuffer deletes all requests, some of which may
contain stale invalidation
remove the buffer_map_lock, now that signals ref-count the IR.
2016-12-15 18:19:38 +01:00
529b91828d
store InvalidationRecord in a Connection object and ref/unref it as appropriate
2016-12-15 16:36:50 +00:00
342c112ae3
add ::use_count() method to InvalidationRecord
2016-12-15 16:36:50 +00:00
nick_m
d118a60090
fix unused Outside filled framed curve for constant points outside the draw area.
2016-12-16 02:54:10 +11:00
nick_m
49c6d13386
revert c3ab67dd
now that this misbehaviour is understood.
2016-12-16 02:52:39 +11:00
nick_m
d3ad6dc001
fix issue with disappearing tempo curve at constant tempi.
2016-12-16 02:50:07 +11:00
nick_m
9add5ed480
tempo before the initial section is always constant.
2016-12-16 02:15:56 +11:00
nick_m
9afe719827
amend incomplete change in previous commit.
2016-12-16 02:01:50 +11:00
nick_m
a99331a4e9
more work on patch change redisplay.
...
- fixes just-introduced undo crash.
2016-12-16 01:58:58 +11:00
nick_m
2a79bcd6b2
fix thinko in TempoMap::framepos_plus_qn.
...
- affects region relative time conversion when
initial meter is non-zero.
2016-12-16 01:04:22 +11:00
cf4668a11e
std::list::erase() needs a non-const iterator.;
...
at least for some versions of gcc.
2016-12-15 11:40:22 +00:00
714da0f68e
and now with erase
2016-12-15 10:57:40 +01:00
71bfe79e2c
C++98 compatible iterator erase
2016-12-15 10:40:45 +01:00
a95be76741
rework request invalidation
...
This kills 2 birds with 1 stone: Removes the necessity of locks
and makes call_slot() realtime safe (req->invalidation->requests list
push_back). On object destruction, the invalidation-record (IR) itself is
invalidated.
Invalidated IRs are pushed onto a trash-pool and deleted in the event-loop
of the invalidated object (GUI thread) once all requests that reference it
have been processed.
One last detail remains: PBD::signal connect should reference the IR
and disconnect unreference it. This will guarantee that signal emission
will not reference the IR while the pool trash is dropped.
2016-12-15 06:11:30 +01:00
62b06fa427
Add a trash pool for invalidation requests.
...
While EventLoop::invalidate_request() does invalidate request in the
request-list. It does *not* invalidate requests in the
per-thread-request-ringbuffer(s).
The invalidation record cannot be deleted in EventLoop::invalidate_request
see 6b5891a78f
.
2016-12-14 22:39:25 +01:00
07bcdc7f0a
NO-OP: re-indent
2016-12-14 22:39:22 +01:00
77845f6019
Atomically to invalidate request
...
Yet another slightly overkill approach, but it /may/ explain crashes.
2016-12-14 22:39:18 +01:00
7dbdf6cc6d
Add some more invalidation debug messages.
2016-12-14 19:43:12 +01:00
6b5891a78f
The threading anecdotes - Episode 7
...
When do_request() destroys the receiver object, the receiver will
free the invalidation record. So the IR needs to be removed from the list
before executing the request.
Invalid read of size 8
at: AbstractUI<Gtkmm2ext::UIRequest>::handle_ui_requests() (abstract_ui.cc:242)
by: BaseUI::request_handler(Glib::IOCondition) (base_ui.cc:141)
by: sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition>::operator()(Glib::IOCondition const&) const (mem_fun.h:2066)
by: sigc::adaptor_functor<sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition> >::deduce_result_type<Glib::IOCondition const&, void, void, void, void, void, void>::type sigc::adaptor_functor<sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition> >::operator()<Glib::IOCondition const&>(Glib::IOCondition const&) const (adaptor_trait.h:89)
by: sigc::internal::slot_call1<sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition>, bool, Glib::IOCondition>::call_it(sigc::internal::slot_rep*, Glib::IOCondition const&) (slot.h:148)
by: sigc::slot1<bool, Glib::IOCondition>::operator()(Glib::IOCondition const&) const (slot.h:643)
by: cross_thread_channel_call_receive_slot(_GIOChannel*, GIOCondition, void*) (crossthread.cc:49)
by: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2)
by: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2)
by: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2)
by: gtk_main (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.31)
by: Gtkmm2ext::UI::run(Receiver&) (gtk_ui.cc:286)
by main (main.cc:408)
Addrd1b8 is 24 bytes inside a block of size 48 free'd
at: operator delete(void*) (vg_replace_malloc.c:576)
by: PBD::EventLoop::invalidate_request(void*) (event_loop.cc:98)
by: sigc::internal::trackable_callback_list::~trackable_callback_list() (in /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0.0.0)
by: sigc::trackable::notify_callbacks() (in /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0.0.0)
by: ProcessorEntry::LuaPluginDisplay::~LuaPluginDisplay() (processor_box.cc:1757)
by: ProcessorEntry::LuaPluginDisplay::~LuaPluginDisplay() (processor_box.cc:1760)
by: ProcessorEntry::~ProcessorEntry() (processor_box.cc:251)
2016-12-14 18:46:01 +01:00
518c31eeb7
skip dead threads (if the event remains, it'll be cleaned up below)
2016-12-14 17:48:44 +01:00
036390f4c2
fix potential invalid lock
2016-12-14 17:31:31 +01:00
7a1ff7ce8f
rework locking ( fa07233a
, 112fba182
)
...
For now: use a single lock, which should fix all related crashes.
optimize (with less contended partial locks) if this works.
2016-12-14 13:43:20 +01:00
f3b3a411d0
use SMF track or instrument names in imported MIDI track names, if requested
2016-12-14 11:46:26 +00:00
6ea7f37c6b
add new member to ImportStatus object to allow specifying how to name new MIDI tracks
2016-12-14 11:46:26 +00:00
721f3270c3
add a new enum to identify how SMF data should be used when naming imported MIDI tracks
2016-12-14 11:46:26 +00:00
d2fd01c241
add API to Evoral::SMF to retrieve all track/instrument names for use when importing
2016-12-14 11:46:26 +00:00
7e0dbd06db
extract track and instrument names from SMF while loading
2016-12-14 11:46:26 +00:00
24160a3b85
add braces and warning for unlikely error
2016-12-14 11:46:26 +00:00
ff6f8ca6c4
fix incorrect test for textual meta events in libsmf
2016-12-14 11:46:26 +00:00
54ef5fadc2
braces please
2016-12-14 11:46:26 +00:00
d5074be4f1
braces, please
2016-12-14 11:46:26 +00:00
8002a0c66e
free track name/instrument string memory when necessary
2016-12-14 11:46:26 +00:00
28caef7d81
add track and instrument name members to smf_track_t
2016-12-14 11:46:26 +00:00
dd525d1613
release locks before deleting record
2016-12-14 02:25:13 +01:00
112fba182f
amend prev commit
2016-12-14 00:51:40 +01:00
fa07233a17
mutex 'er up
...
Some overzealous locking to track down RequestObject related crashes.
bc0fa4d689
wrongly locked the current event loop's
request_invalidation_lock instead of the invalidation's list lock.
Also Abstract UI is able to delete requests concurrently with with
EventLoop invalidation.
e.g. PortManager::PortRegisteredOrUnregistered and GlobalPortMatrixWindow
so the lock needs to be exposed.
If this solves various issues, mutexes should to be consolidated
(request_buffer_map_lock + request_invalidation_lock) and be chosen
such that there is as little contention as possible.
2016-12-13 23:47:07 +01:00
545f5bee87
changes to adapt to modified version of GTK/Quartz which uses only MOD2 for Command, everywhere.
...
The default version of GTK2/Quartz uses MOD2+META for keys and MOD2 for scroll, which is
basically insane
2016-12-13 07:02:08 -05:00
989f934c38
Fix layered-record undo, include changes to existing region(s)
2016-12-13 02:33:07 +01:00
8276a4658a
Fix possible crash when removing ports with jack1
2016-12-12 22:47:16 +01:00
e37bfffca5
Add Slavable::AssignmentChanged signal to notify when a slavable is assigned/unassigned to/from a master
2016-12-12 18:43:55 +00:00
nick_m
e9deb82ef6
only update MidiRegion length_beats in partial copy ctor if there is an offset.
2016-12-13 04:36:07 +11:00
nick_m
a4d8cc2e04
only recalculate MidiRegion start_beats if there is an offset in the 'part-of' ctor.
...
- when drag-copying MIDI regions, a partial region ctor is used
which can lead to _start_beats being off by a sample.
this in turn leads to 7168 happening, but only if magnetic snap
is used and the regions are copied as a group.
this should fix 7168, but the magnetic snap part is not yet addressed.
2016-12-13 02:15:34 +11:00
d3803c54de
Fix a potential deadlock/crash (here tape-track peak-file)
...
read_peaks_with_fpp() already holds _lock, build_peaks_from_scratch()
takes the _lock again.
Depending on glib[mm] and the threading lib it may either result in a
deadlock, or with EDEADLK in undefined behavior when a
non-recursive lock is released twice.
2016-12-12 03:13:16 +01:00
b52bf1a42c
Fix potential deadlock on session-load
2016-12-12 00:09:38 +01:00
nick_m
e4d6e4a87f
disallow placement of audio-locked tempi within a frame of any other.
2016-12-12 02:37:26 +11:00
nick_m
9598f2a811
fix loop/crash when dragging an audio-locked tempo over a music-locked one while snapped to grid.
2016-12-12 02:07:00 +11:00
nick_m
0d7b298fbe
no-op - rename TempoMap::set_active_tempos -> TempoMap::set_active_tempi
2016-12-12 02:07:00 +11:00
nick_m
4d625d35b6
clean up some odd logic.
2016-12-12 02:07:00 +11:00
nick_m
34e41a3ca6
rename MetricSection movable -> initial, but of course initial is !movable..
2016-12-12 02:07:00 +11:00
0c54e56f96
Add support for MacVST hidden/favorites
2016-12-11 15:52:56 +01:00
nick_m
c3ab67ddb6
go back to always interpolating framed curve points.
2016-12-11 23:54:03 +11:00
nick_m
00eef2e000
make TempoMap::dump slightly more readable.
2016-12-11 23:51:00 +11:00
nick_m
d8cabc67d9
fix incorrect audio-locked tempo position when setting bbt via tempo dialog.
2016-12-11 23:49:02 +11:00
nick_m
08cec2350e
fix bar renumbering for audio-locked metrum.
2016-12-11 23:42:26 +11:00
cdbf49b873
Revert "Pixel hunt cairo-packer (status-bar, selection-clock border)"
...
This reverts commit 6015481377
.
2016-12-11 02:19:10 +01:00
6015481377
Pixel hunt cairo-packer (status-bar, selection-clock border)
2016-12-11 01:32:27 +01:00
39903a0023
Check for reserved i/o that are not routes, fixes #7171
2016-12-11 00:04:08 +01:00
642b357376
CairoPacker draws outside of its widget allocation
...
This fixes fixes TimeInfoBox packing when the InfoBox position changes.
2016-12-10 21:30:33 +01:00
1468e270de
Tweak transport icons
2016-12-10 15:56:47 +01:00
61693a318a
Add LIBPBD_API to a function declaration
...
The new specialisation for ConfigVariable<float>::set_from_string() needs to be exportable (it gets used somehow by ARDOUR::SessionConfiguration).
If adding LIBPBD_API causes a problem for gcc, we could change it to LIBPBD_TEMPLATE_MEMBER_API
2016-12-08 17:29:49 +00:00
3fe99b0c7c
remove dups.
2016-12-08 15:41:21 +01:00
975f959adb
For building with MSVC, std::strtof() didn't get introduced until VS2013
...
(use std::strtod() in earlier versions)
2016-12-08 13:57:23 +00:00
f04c1ca4db
I can't find a source file called MIDIXML.cpp (??)
2016-12-08 13:55:11 +00:00
4992ed1211
Add missing enum bindings
2016-12-08 13:21:00 +01:00
61c7af141d
Clarify "frames" (video, timecode) vs "samples" (audio)
2016-12-08 12:45:44 +01:00
f05f19bdd4
add Lua bindings for Timecode conversion
2016-12-08 12:45:44 +01:00
e1ca4b2887
Speed up recent session display (for many large sessions)
...
- don't parse XML into XMLTree
- only read the file, extract relevant elements
- don't read session-template contents, only test file
2016-12-08 10:36:12 +01:00
9a46d593cb
a-fluidsynth process events even when no sf2 is loaded.
...
Keep track of program-changes, re-apply Bank/PGM once the
soundfont is loaded. fluidsynth itself keeps track of CCs.
2016-12-07 19:48:52 +01:00
bb30d92814
amend 581c7b6
-Wparentheses
2016-12-07 19:47:29 +01:00
295562dd52
Save/Restore MIDI Automation Controls (current CC, PGM)
2016-12-07 19:47:04 +01:00
581c7b6b10
Speed up unloading large sessions.
2016-12-07 12:50:35 +01:00
fe45f9bc21
Set MidiPgmChangeAutomation control value
2016-12-07 12:45:01 +01:00
28ab1f1f74
Add Lua bindings to inspect MidiTrack::MidiControl
2016-12-07 11:30:40 +01:00
f521bdb9dc
Fix another crash at exit.
2016-12-07 01:58:58 +01:00
22ff03ff60
fix copy/paste typo in prev. commit
2016-12-07 01:06:22 +01:00
b14ece32c2
Work around silence-trim config 0dBFS ( 7b1f97bf
)
2016-12-07 01:03:46 +01:00
230fa064b2
Revert "Fix export silence threshold by using a constant value for now"
...
This reverts commit 6784923a05
.
2016-12-07 00:56:14 +01:00
7b1f97bffa
fix parsing "-inf" in config variables
...
The default for export-silence-threshold is -INFINITY, written
as "-inf" (by cfgtool) into system_config. Yet parsing the config using
a std::stringstream results in "0" (due to bugs in various libc++).
2016-12-07 00:50:00 +01:00
1ef1734e76
Allow sparse CC lists.
2016-12-06 22:56:04 +01:00
2d37392f1a
a-fluid synth: label Reverb & Chorus sends.
...
Also globally enable Reverb + Chorus FX (so that sends work by default)
2016-12-06 22:56:04 +01:00
f26ed23fd9
a-fluid synth: list all bank/programs
2016-12-06 17:00:12 +01:00
9c20892c27
Turn a-fluidsynth into C++
2016-12-06 17:00:12 +01:00
8d8132aa3c
rough-in a-fluid synth midnam support
2016-12-06 17:00:12 +01:00
Julien ROGER
0356d64195
Fix #6753
...
Fix "Illegal instruction" due to recursive acquisition/multi release on a RWLock
See #6753 notes
2016-12-06 22:41:25 +10:00
4985f0d7ae
Include last sample in reverse test for nonsilence in end trim during export
2016-12-06 20:55:17 +10:00
b7bee5c903
Fix Multi Duplicate for a Range Selections
...
As mentioned in the previous commit
2016-12-06 14:06:18 +10:00
bd52d4e328
Fix issues in export with trim enabled
...
A complete reimplementation of AudioGrapher::SilentTrimmer::process to support
trimming the beginning and end in the same processing block
Fix export with trim end enabled to actually trim silent frames
Only add silence to beginning or end of export data if data was written
Should resolve : #6412
2016-12-06 13:44:19 +10:00
568cf861f9
Rename AudioGrapher::SilentTrimmer method to reflect behaviour
...
Unlike many of the other uses of the term "frame" this is actually returning
the index to the first sample in the interleaved frame that contains
non-silence.
2016-12-06 13:43:10 +10:00
2c67e71e98
Always signal writing to file is complete at end of the export process
...
With end trim enabled, the only case that would successfully export was if
there was at least some samples above the silence threshold in the last export
processing block.
The issue was that the EndOfInput flag was not being passed to
AudioGrapher::SndFileWriter::process which would then call sf_write_sync and
emit the FileWritten signal to start post processing. Fix that by always
passing the EndOfInput flag in the last export process cycle.
Related: #6412
2016-12-06 13:43:09 +10:00
6784923a05
Fix export silence threshold by using a constant value for now
...
All float values defined in the CONFIG_VARIABLE macro seem like they are cast
to at some stage before writing (another issue that needs addressing). The
default value for export-silence-threshold (-INFINITY) is converted to a value
of 0 and as a result nothing is exported with trim enabled.
Use the same fixed silence threshold as Mixbus until proper bounds checking and
GUI is in place.
Related: #6412
2016-12-06 13:41:17 +10:00
9e794af3ea
Add script to run audiographer tests
2016-12-06 13:20:54 +10:00
62672fa259
add another useful PluginInsert binding
2016-12-06 00:22:24 +01:00
ed5a46d214
Fixup 08fffef
(consistent class name)
2016-12-05 23:49:19 +01:00
7f9befae2d
Add Lua bindings to manage Groups
2016-12-05 23:49:19 +01:00
3cc644b467
set AtomObject body ID to zero (as per spec when unused)
2016-12-05 15:43:54 +01:00
388765e8ce
Remove boost_system test kludge
2016-12-04 19:15:29 -05:00
5ab2e34b2c
Update evoral test suite
2016-12-04 18:49:56 -05:00
9a848d5ba6
Fix configuration
2016-12-04 18:26:30 -05:00
1438191938
Improve coverage of evoral tests
2016-12-04 15:40:21 -05:00
9dbc524060
Improve coverage of evoral tests
2016-12-04 15:17:08 -05:00
9aac954744
Add missing include
2016-12-04 15:16:08 -05:00
b51321bd7d
Make libpbd and evoral capable of standalone build
...
Just an update to slightly rotten wscripts, shouldn't be any changes during an
ardour build. Motivation being a short development cycle for working on evoral
and/or its test suite.
2016-12-04 15:15:11 -05:00
7d2ed46b63
Remove dead/annoying/unsafe code
...
Note the old Note::operator= was unsafe, since it made shallow copies of the on
and off events, which results in a double delete of events when the notes are
destructed.
2016-12-04 15:10:05 -05:00
11464bfb18
Skip testing example lua scripts which are not bundled
2016-12-04 17:50:34 +01:00
454df30ae5
Fix Sequence test
2016-12-03 15:49:13 -05:00
d17f58e531
Remove dead code
2016-12-03 15:28:23 -05:00
398a318934
Fix event type and parameter type confusion
...
I'm not sure if this is really the best way to do event types (should it
just be a completely static enum in evoral, or completely dynamic and
provided by the type map, or a mix like currently?), but previously the
event type was frequently set to either total garbage, or parameter
types, which are a different thing.
This fixes all those cases, and makes Evoral::EventType an enum so the
compiler will warn about implicit conversions from int.
2016-12-03 15:28:19 -05:00
bfbc4566ad
Fix warnings
2016-12-03 15:27:38 -05:00
08fffeffec
Remove Evoral::MIDIEvent
...
It is slightly questionable whether type specific methods like
velocity() belong on Event at all, these may be better off as free
functions. However the code currently uses them as methods in many
places, and it seems like a step in the right direction, since, for
example, we might some day have events that have a velocity but aren't
stored as MIDI messages (e.g. if Ardour uses an internal musical model
that is more expressive).
In any case, the former inheritance and plethora of sloppy casts is
definitely not the right thing.
2016-12-03 15:18:21 -05:00
875b1367b2
Factor out and extend MIDIXML implementation
2016-12-03 15:18:20 -05:00
0f5a73a7fd
Fix Sequence/Event const-correctness issues
2016-12-03 15:18:20 -05:00
b433874019
update summary & connection-matrix colors when route-color changes
2016-12-01 15:51:25 +01:00
Olivier Humbert
e44e1f6227
One fix.
2016-11-30 22:25:46 +01:00
Olivier Humbert
059bbbf23f
French translation update
2016-11-30 20:31:32 +01:00
Olivier Humbert
193a0c7671
French translation update
...
more translation + fixes
2016-11-30 20:24:52 +01:00
f1f47664ff
fix compilation with newer version of *mm and gcc-6.2 (RefPtr<> cast)
2016-11-30 16:00:05 +01:00
24c799cde3
prefer bool operator
2016-11-30 12:15:35 +01:00
David Carlier
be7c6225c8
moving POSIX_VISIBLE to the waf script part
2016-11-29 13:18:46 +00:00
David Carlier
28435d1a30
Making buildable under OpenBSD.
2016-11-29 13:18:46 +00:00
5f1d94a7b2
Protect a-comp's display/state against NaN/Inf.
2016-11-29 09:04:13 +01:00
0fe62a34da
protect a-delay again Inf, NaN, HUGE and stuff.
2016-11-29 08:41:10 +01:00
7b687d08a1
properly handle FS pitch-bend - closes #7140
2016-11-28 12:53:20 +01:00
2614b0df43
OSC: Solo toggle should maintain state when locked, rec and rec_safe should show true state.
2016-11-27 20:52:14 -08:00
e9eea8de9d
Fix Duplicate Track with Copy Playlist option selected
...
Previously two new empty playlists were created.
Related to and mentioned in issue #7141
2016-11-28 12:38:58 +10:00
8ddeca133b
OSC: Squelch select feedback when no feedback is configured.
2016-11-27 18:32:50 -08:00
f50ab8ccec
Fix duplicate track with new playlist so only one playlist is created
...
Instead of 2 empty playlists, thanks to elgoun for the patch
Resolves : #7141
2016-11-28 10:57:06 +10:00
1de584961a
NO-OP; Backport changes from Mixbus branch
2016-11-27 22:54:23 +01:00
2f30d763ed
Fix loading, recording & saving MIDI with PolyKeyPressure events.
...
GUI still does not handle this (neither automation lane, nor List Editor),
but the file loads, plays and exports correctly.
2016-11-27 17:25:42 +01:00
9bf4f339b9
revert 335debfa
for the PA backend
...
The same device may have different names for input + output
2016-11-27 00:42:08 +01:00
d26aac9020
OSC: no op, white space cleanup
2016-11-26 10:23:36 -08:00
c7f8471d52
OSC: Make plugin and plugin parameter numbering 1 based to match everything else.
2016-11-26 09:18:36 -08:00
842c33fba8
Add [hidden] option to list "Dummy" backend with optmized bundles
2016-11-26 15:31:21 +01:00
335debfa2f
Add API to enforce valid device selection.
2016-11-26 15:31:21 +01:00
5bf8a5537b
OSC: Add patch from 7137 and make it work for manual port selection.
2016-11-25 10:10:49 -08:00
4d81e3ec07
RAII to postpone processor changes/graph recalculation
2016-11-25 18:16:08 +01:00
98f1cb76ed
OSC: Patch from 7136 added cleaned and tested.
2016-11-25 07:26:18 -08:00
174d5e05c9
when duplicating tracks and copying playlists, use a new name for the copied playlist
2016-11-25 13:19:38 +00:00
fa642e0e9d
Fix forwarding of output-buffers.
...
fbc8504f9e
swapped the iterators: Instead of iterating over output
buffers like BufferSet::read_from(), the new code iterates over
the current buffers. In case of 1 in -> 2 out, only the 1st channel
was be copied. Also unlike BufferSet::read_from() the ChanCount was
not updated.
Processors after a Delivery e.g. out-meter, AFL processor did not see
all channels.
2016-11-25 13:26:38 +01:00
0d9030cee1
make the session do the right thing when clearing solo state during non-loading conditions
2016-11-25 11:50:39 +00:00
bb8ddc4322
remove redundant (identical) 2nd conditional, and improve comment
2016-11-25 11:50:08 +00:00
4ecb48b055
when clearing route solo state, do the required update
2016-11-25 11:49:30 +00:00
17e803fef4
Do not try to restore Route solo state after clearing all solo state
2016-11-25 11:48:58 +00:00
9f3bcf968d
fix implementation of SoloControl::clear_all_solo_state()
...
This no longer emits Changed() unless a change was made, and more
importantly, calls AutomationControl::actually_set_value() if
the self-soloed value needs to be changed
2016-11-25 11:48:18 +00:00
c5eda4cfe1
provisional changes to speed up solo changes to large numbers of routes.
...
Moves global update of solo state and emission of Session::SoloChanged to
a single point after 1 to N solo controls are changed.
Also avoid unnecessarily emitted Activated() signal for listen controls,
though Process::{activate,deactive}() should probably be redesigned to
avoid this in a "deeper" way
2016-11-25 10:29:42 +00:00
e35ce4c002
Speed up AFL/PFL changes for large sessions
...
update_latency_compensation() and resort_routes() are expensive and
were called for every individual change.
2016-11-25 10:41:23 +01:00
a7210d256e
_maps_from_state is legal after unfreeze (restore state)
2016-11-24 21:58:50 +01:00
bc0fa4d689
Fix mysterious crashes such as #7049
...
Fixes an issue with corrupted std::lists<> due to concurrent writes
to the invalidation list which eventually resulted in
EventLoop::invalidate_request() not invalidating requests.
Concurrency sucks rocks hard.
2016-11-24 09:02:47 +01:00
Edgar Aichinger
dbd8909fad
catch up with .de translation
2016-11-23 14:12:57 +01:00
nick_m
3a362563a4
constify some TempoMap functions.
2016-11-23 01:45:43 +11:00
nick_m
11090b2e01
remove set but not used variable in tempo.cc
2016-11-22 22:51:10 +11:00
nick_m
b53ea4ea0e
amend 66488e117
- BBT clock scrolling handles multiple audio-locked meters.
2016-11-22 03:17:01 +11:00
nick_m
66488e1174
TempoMap::bbt_duration_at() handles an audio-locked meter.
...
- fixes some odd results when scrolling down/up over the BBT clock display.
2016-11-22 00:29:53 +11:00
Edgar Aichinger
979d5d12f3
update german translation
2016-11-20 23:29:03 +01:00
nick_m
5b8e213ff9
fix typo in tempo.cc
2016-11-21 07:08:04 +11:00
33a67c26be
Allow to call ARDOUR.DSP Lua functions from UI scripts
2016-11-19 21:56:52 +01:00
97f81479d3
fix ambiguity
2016-11-19 01:36:34 +01:00
b4b600a7b8
Generally speaking we use Glib::usleep() now in preference to standard ::usleep()
2016-11-18 20:01:43 +00:00
ed7b6fee0c
Remove the MSVC 'poll()' emulation now that Ardour's stopped using poll()
2016-11-18 18:19:08 +00:00
3e3791b72e
OSC: mark session dirty if setup changes
2016-11-18 08:43:58 -08:00
1015e19ad3
OSC: issue 7116 fix send enable not working
2016-11-18 07:53:40 -08:00
d624bac38e
Recursively scan for MacVSTs
2016-11-18 02:36:04 +01:00
nick_m
c37d31054b
remove thinko in MidiRegion::post_set().
...
- should fix incorrect midi region length on split.
2016-11-18 06:48:44 +11:00
cbd1a25f8c
Fix track-templates with sidechains -- closes #7117
2016-11-17 16:31:40 +01:00
9298ad856a
fix type in prev. commit
2016-11-17 14:08:26 +01:00
170380fda9
Add runtime option to disable MacVST
2016-11-17 14:06:45 +01:00
08f94c0878
Allow to migrate sessions with VST plugins
2016-11-17 14:06:41 +01:00
cc72cff504
try VST2.4's VSTPluginMain first
...
This fixes a crash with loading u-he Diva on windows.
2016-11-17 13:03:36 +01:00
cd5a319e48
fix mingw64 debug build
2016-11-17 12:58:28 +01:00
4c8380ce75
fix 32bit+PPC OSX builds
2016-11-16 17:25:02 +01:00
f6bdb4bb3c
update MSVC project in the wake of cf1651e6
2016-11-15 23:11:50 +01:00
nick_m
586882f86c
a better fix for 6ed8c113a2
(scope)
2016-11-16 05:18:35 +11:00
nick_m
6ed8c113a2
Region:;set_state() should always set quarter_note.
...
- fix for 4.x sessions showing notes stacked at session start.
2016-11-16 05:03:14 +11:00
cf1651e6d7
consolidate VSTState functions
2016-11-15 17:10:13 +01:00
f944c24c4b
Accommodate a newly introduced source file in our MSVC project (libardour)
...
(although I'm not sure if it's actually used yet in the Windows build).
2016-11-15 11:12:25 +00:00
15161d641d
really fix windows compilation.
2016-11-15 03:25:32 +01:00
694de29953
amend 5dc2497100
...get the windows version to compile.
...
eventually vststate_init() needs cleaning up, but not tonight.
2016-11-15 03:21:02 +01:00
5dc2497100
rework 8e3b6c9ac
(fstwin is C code, not C++)
2016-11-15 02:49:41 +01:00
4e8d705d99
fix another typo ( f30fbcaaf
)
2016-11-15 01:18:10 +01:00
3e7d620c9c
Fix some typo.
2016-11-15 00:44:13 +01:00
d10913e2de
Fix intermittent hang when stopping PortaudioBackend
...
This issue is not always reproducible but when it does occur it happens
somewhat consistently on both 32bit and 64bit builds(Tested on Windows 7).
The midiOutReset call does not return (or it takes so long that it might as
well be indefinite) and as it is not strictly necessary just remove it.
Resolves: http://tracker.ardour.org/view.php?id=7095
2016-11-15 09:36:52 +10:00
35de5080a6
add signal for VST state load
...
MacVST has no dedicated VST event-loop to directly handle this.
2016-11-15 00:32:59 +01:00
f30fbcaaf9
Fix VST state-lock SNAFU (effSetChunk and process are exclusive)
2016-11-14 21:06:18 +01:00
8e3b6c9ac6
consolidate VSTState initialization
2016-11-14 21:06:18 +01:00
48c470d51d
Pass const references to plugin-list
2016-11-14 21:06:18 +01:00
63f86b1314
Later code depends on prev_t not being NULL, use an assert()
2016-11-14 16:47:22 +01:00
e4e2d92649
tempo map cannot be empty (help static analyzer)
2016-11-14 16:47:19 +01:00
37137d5b3c
fix LV2 state versioning with session-templates
2016-11-14 01:40:57 +01:00
1d60986283
const'ness FTW
2016-11-14 01:14:11 +01:00
8975f6c8d2
register some missing enums
2016-11-14 01:14:06 +01:00
aee2606b28
VST set defaults only once (initially)
...
Opening the generic plugin UI or re-opening the GUI will call
get_parameter_descriptor() again, and replace the defaults with
current values.
2016-11-13 18:48:33 +01:00
ec31741ee6
copy VST state on copy construction
...
This fixes issues with replicate instances & plugin-analysis instances
not using the same set of parameters.
2016-11-13 16:35:06 +01:00
8b93fb02f3
Mac VST-2.x support
2016-11-13 16:35:06 +01:00
43bd7f5db1
fix const-cast
2016-11-12 16:20:43 +01:00
a32a272709
VST buffer paranoia
2016-11-11 16:40:01 +01:00
nick_m
50d12abeab
fix compilation on osx
2016-11-11 21:35:13 +11:00
2f8ccb5732
Remove a group when the last track in the group is removed
2016-11-10 23:57:47 +01:00
ddd79819dc
Correct the #includes for 'ardour/midi_cursor.h' (see commit #ec12fccf08)
...
There are a couple of header files where we use a reference to class ARDOUR::MidiCursor (rather than a pointer). To keep MSVC happy we need to #include its header file, rather than simply using a forward reference.
2016-11-10 19:31:26 +00:00
nick_m
bf416cb91e
remove debugging output
2016-11-11 03:37:08 +11:00
nick_m
425fe93fde
remove unused variable and debugging.
2016-11-11 03:37:08 +11:00
nick_m
d9dea0a3aa
rename Region pos_beats -> quarter_note
2016-11-11 03:37:08 +11:00
nick_m
3816ee4e92
more tempo documentation.
2016-11-11 03:37:08 +11:00
nick_m
4e41b71a4e
ensure non-zero midi region length when tempo map changes.
2016-11-11 03:37:08 +11:00
nick_m
a5dc7a01d3
TempoSection note-types-per-minute node name goes back to beats-per-minute for now.
2016-11-11 03:37:08 +11:00
nick_m
e8042f5843
use note_type explicitly when constructing a Tempo in the hope that others follow.
...
- should be a no-op
2016-11-11 03:37:08 +11:00
nick_m
5aafb0b534
remove recently added xml nodes.
2016-11-11 03:37:08 +11:00
nick_m
43f79cb00c
use frame interval api for empoMap::framepos_plus_qn()
2016-11-11 03:37:08 +11:00
nick_m
35ec9b33cf
clarify bbt_at_frame() warning.
2016-11-11 03:37:08 +11:00
nick_m
b025f8e42a
rename note_divisions_per_minute -> ote_types_per_minute (double note_type)
2016-11-11 03:37:08 +11:00
nick_m
0b7db6ebbb
add empoMap::quarter_notes_between_frames().
...
- in an ideal world, this wouldn't be here at all,
but is required to support framewalk_to_qn().
if Beats are at tick resolution, the frame-induced
temporal rounding is acceptable.
2016-11-11 03:37:08 +11:00
nick_m
a432f6585c
TempoSection::tempo_at methods return a Tempo, document the opposite direction.
2016-11-11 03:37:08 +11:00
nick_m
3ee59cf499
audio units uses quarter_notes_per_minute().
2016-11-11 03:37:08 +11:00
nick_m
33e95a1577
rename Tempo _beats_per_minute to _note_types_per_minute, provide pulse helpers.
...
- adds quarter_notes_per_minute(), note_divisions_per_minute (double)
pulses_per_minute() and frames_per_quarter_note()
- this should be a no-op except for the use of tempo by
the vst callback which definitely uses quarter notes per minute.
- the XML node for TempoSection named 'beats-per-minute'
has been renamed.
2016-11-11 03:37:08 +11:00
nick_m
e52f90357e
tempo doc explains that currently Tempo::beats_per_minute means something else.
...
- Tempo beats_per_minute() is currently implemented as note types per minute.
a further patch will change Tempo to reflect this and provide some helpers.
2016-11-11 03:37:08 +11:00
nick_m
2f593e3af9
remove commented code.
2016-11-11 03:37:08 +11:00
nick_m
9df27844fc
more tempo documentation.
2016-11-11 03:37:08 +11:00
nick_m
5788f42438
fix lock error in empoMap::quarter_note_at_bbt_rt(), expand constant tempo test.
2016-11-11 03:37:08 +11:00
nick_m
93ca7b42fb
remove unused TempoMap::tempo_at_beat(). implement unused tempo_at_quarter_note().
2016-11-11 03:37:08 +11:00
nick_m
99e707217b
tempo.h reorganization. should be a no-op
2016-11-11 03:37:08 +11:00
nick_m
9674b15358
more documentation in tempo.cc, fix constant bug in pulse_at_tempo_locked()
2016-11-11 03:37:08 +11:00
nick_m
1fa7c0d829
remove remaining frame api from TempoSection.
2016-11-11 03:37:08 +11:00
nick_m
594137f5cc
remove public pulse methods from TempoMap.
...
- the only object whose musical position is not expressed in
quarter notes is MetricSection.
there is now no need to expose this.
2016-11-11 03:37:08 +11:00
nick_m
3db68b4f9e
add some documentation for TempoMap.
2016-11-11 03:37:08 +11:00
nick_m
dca96d8b5d
rename Region pulse to pos_beats. use new beat distance api where required.
...
- add more debugging output detecting regions whose
beat and frame position do not align on a playlist.
this is required as a check as we have never used
frame rounding on constant tempi before 8884a5723dc
2016-11-11 03:37:08 +11:00
nick_m
ac23496b40
MidiRegion _start/_length beats are frame based only when lock style is Audiotime
2016-11-11 03:37:08 +11:00
nick_m
0e867b544b
Refactor tempo api, include quarter-note distance in frames method.
...
- moves frame rounding up to TempoMap, which is needed
in order to calculate pulse distance without frame rounding.
- the time unit for tempo is still minute, but this now also
applies to meter sections. (new audio locked meter sections no
longer require a frame position).
- there is no longer a discontinuity
in the pulse for audio-locked meter/tempi.
- temporarily add debugging output in Region::set_position()
to test for region beat not matching region frame.
2016-11-11 03:37:08 +11:00
ec12fccf08
#include <ardour/midi_cursor.h> in a couple of places
...
I'm not entirely sure why it's needed in 'smf_source.cc' but MSVC fails to link the compiled module if I don't #include it ?!?
2016-11-10 12:20:53 +00:00
8b5fad0cf9
Use better debug output in PortaudioBackend
...
When failing to open audio stream in callback mode
2016-11-10 15:23:43 +10:00
ed09a68f24
Fix for conflicting definition of _xgetbv with mingw-w64 >= 5
...
Simplify the #ifdef logic so it is easier to follow and add exceptions in the
future if necessary.
2016-11-10 15:23:43 +10:00
781d88e4ed
Add AU support for output-channel/bus grouping
2016-11-10 05:02:31 +01:00
d253d49739
NO-OP, explanatory comments
2016-11-10 01:45:00 +01:00
da937cf1a4
Grow luabindings
...
* expose Route IOs, Panner and Instrument
* add plugin + processor ChanCount
* bind IOPortDescription
* remove Port::**(Port*) API because there's no Port* but only
boost::shared_ptr<Port>
2016-11-10 01:32:02 +01:00
ef3fa314f0
Parse PortGroups into Plugin::IOPortDescription
2016-11-10 01:31:56 +01:00
c61373212a
Support multiple readers for MIDI source/model
...
Fixes the multiple reader issue #6541 properly without resorting to a
linear search kludge.
All the read state has been pulled out into a MidiCursor which the
caller is required to pass. The playlist keeps cursors for all the
regions it is reading, any number of cursors are allowed at a time.
MidiCursor should probably be made a smarter and more fool-proof
object (and/or possibly merged with some of the other tracker/fixer
stuff) but for now I wanted to keep it simple.
2016-11-08 20:34:45 -05:00
72297c0ca3
Remove dead code
2016-11-08 13:52:44 -05:00
5438c94765
Honor VST "Synth" Category for now...
...
..until we find a backwards compatible way to save/load effFlagsIsSynth
in the cache info files.
2016-11-08 13:30:09 +01:00
6fb099a88b
make auto track naming make a bit more sense
2016-11-07 11:08:00 -08:00
ea10a896c6
Fix LV2 state:StateChanged URI
2016-11-07 07:10:08 -05:00
91c2527f5c
OSC: Fix default strip types to include Auxes.
2016-11-04 12:10:37 -07:00
8fb8e1bbde
make ControlProtocolManager actually handle control protocols that fail to activate
2016-11-03 20:24:09 +00:00
3abdef2637
fix LTC-generator 24h wraparound
2016-11-02 19:24:46 +01:00
77c9106769
OSC: Make Aux buses able to be separate.
2016-10-30 17:50:38 -07:00
3f0130f8ea
Fix crash when instrument instantiation fails on track creation.
2016-10-31 00:35:53 +01:00
a994fd30bd
extend Mixbus' "Safe Mode"
2016-10-30 22:25:18 +01:00
e08c80370c
Fix midnam replacement:
...
Unloading before update may otherwise reset the patch to
generic midi (when the current patch is no longer available)
2016-10-30 21:24:26 +01:00
2a0aadfd97
remove debug output
2016-10-30 17:39:55 +01:00
db2d238cec
Update prototype API ( 3f739738
) for windows/dll compat
...
memory allocated by a .dll must be free()d by the given dll.
2016-10-30 17:39:55 +01:00
0ea9270a4b
avoid C++11 (and remove debug output)
2016-10-30 04:51:31 +01:00
3f73973806
Prototype LV2 extension for plugins to provide Midnams
2016-10-29 19:57:43 +02:00
f8167ebe20
Prepare for the day when MTAV does no longer force-override InstrumentInfo
2016-10-29 19:57:43 +02:00
0332c127cd
Allow to dynamically un/load Midnam Patches
2016-10-29 19:57:43 +02:00
06700cb2f4
Allow to construct a XML tree from a text buffer
2016-10-29 19:57:43 +02:00
5ed764178a
Fix crash with empty patch-names.
...
An empty text will not produce a bounding box.
2016-10-29 19:57:43 +02:00
c5d4900ea4
a-fluidsynth: fix off-by one. Assign all MIDI channels if possible
2016-10-29 19:57:43 +02:00
9d63002d2f
OSC: Slow down data storm at surface refresh
2016-10-29 10:56:44 -07:00
82d3842656
OSC: Add names/fader value to master and monitor.
2016-10-28 17:34:17 -07:00
e631119092
OSC: simplify int sends too.
2016-10-28 15:05:40 -07:00
d802c982cb
OSC: More simplification - floats this time.
2016-10-28 14:42:56 -07:00
4eb2da491f
OSC: simplify Global feedback (remove repetitive code)
2016-10-28 13:45:30 -07:00
8de0788f7b
yet another waf/HIDAPI tweak
2016-10-27 15:57:47 +02:00
8d70b76059
Fix restoration of key bindings assigned to Windows+key, bug #7037
...
Windows key generates Mod4+Super (at least with the version of Gdk we use on
linux) so for bindings using the Windows key to work, GDK_SUPER_MASK has to be
added to modifier mask.
2016-10-26 12:03:17 +10:00
0e65852901
Desperate hack to align master-bus on export.
...
Another 90% solution which hopefully gives us another year :(
see comments Session::start_audio_export() for explanation.
2016-10-25 22:33:37 +02:00
nick_m
927b16aa53
don't mix framepos with quarter notes when calculating _start frames.
...
- quarter note precision is greater than the frame-based
_position. using it as a reference may cause a rounding error
if the region is locked to MusicTime.
- also fixes a _start position bug when trimming midi regions.
- we really need a better api for this kind of thing.
- in combination with the previous two patches, this should fix
various missing first note issues.
2016-10-25 04:36:34 +11:00
nick_m
dfb0868847
make MidiRegion::start/length_beats() const.
2016-10-25 04:15:50 +11:00
nick_m
ce3ae4cdc9
remove unnecessary rounding from MidiSource::midi_read()
...
- we already have start_beats, so don't try to recalculate
something similar for the position comparison.
2016-10-25 04:14:14 +11:00
nick_m
20d02c4c68
expand on existing tempo tests.
2016-10-25 04:02:58 +11:00
nick_m
509d938b04
Don't recalculate region beat position on session load, fix AudioTime thinko.
2016-10-25 03:59:13 +11:00
5743013ae4
OSC fix debug logic for catchall messages
2016-10-23 19:00:20 -07:00
dd015e09a7
OSC Accept int in first parameter in path commands as well as float.
2016-10-23 18:45:25 -07:00
53e9337eba
Fix HIDAPI optional (python: False vs 'False')
2016-10-24 00:51:51 +02:00
c78824aef5
Include hidapi library
2016-10-23 22:53:10 +02:00
57d1f68cd6
Introduce "virtual" async MIDI ports
...
This allows to flush an async MIDI port's ringbuffer at cycle-start,
to makes its data available as "input/source" during process(), while
collecting data in the background for the next cycle.
This facilitates virtual MIDI Ports for eg. Control Surface Pads:
output from a surface, input to Ardour channels.
2016-10-23 22:25:40 +02:00
7e861bd12e
NO-OP: whitespace
2016-10-23 22:18:07 +02:00
7c8ab05c09
Don't add initial points for MIDI-CC
...
eg. import a .mid that has a CC later in the file.
Arodur wrongly added an initial point, effectively moving the event
backwards to "0" (no virgin territory)
2016-10-23 14:21:24 +02:00
6866359c48
when fetching MIDI ports for bundles and auto-connection, ignore control-only (and "virtual") MIDI ports
...
"virtual" is a placeholder name for ALSA sequencer MIDI through ports
2016-10-21 16:32:46 -04:00
fb200cfbb9
remove debug output
2016-10-21 16:31:53 -04:00
235c1f9adb
infrastructure for save/restore of MIDI port user-provided information
2016-10-20 16:34:52 -04:00
12c558f62e
tweak logic for MIDI input follows selection
2016-10-20 16:34:52 -04:00
8ac97d55c9
slight improvements in logic for midi-input-follows-selection
2016-10-19 23:17:39 -04:00
72c8ab0103
add PortManager::disconnect (std::string const&)
2016-10-19 23:17:08 -04:00
f96b698234
infrastructure for MIDI-input-follows-selection
2016-10-19 17:49:35 -04:00
0a8ab08e5f
basics of following MIDI track selection and rewiring input
2016-10-19 17:49:35 -04:00
d0b2767856
NOOP: whitespacing tweak
2016-10-19 17:49:35 -04:00
8c911234e6
basics of managing a list of port names for MIDI-input-follows-selection
2016-10-19 17:49:35 -04:00
1cc561bf74
Use official LV2 state:StateChanged URI
...
http://lv2plug.in/git/cgit.cgi/lv2.git/commit/?id=dbb18d82136d43eec435e321bffa835ba5776d6e
2016-10-19 19:45:53 +02:00
56711b99c9
Work around OSX MIDI devices that send no timestamps
2016-10-19 19:45:53 +02:00
d29d93f4cd
fix retrieval of port properties (metadata) when the value has no type
2016-10-18 16:46:33 -04:00
nick_m
715b178130
Improve bbt ruler drawing performance for large time ranges.
...
- when the timeline displays many bars, zoom/autoscroll
speed is improved by calculating the bbt ruler scale first
then requesting a suitably scaled grid.
2016-10-19 03:56:43 +11:00
208cb967e5
Warn about skipped MIDI events
...
This can occur when the MIDI readahead time is too low and events get
pushed into the MidiRingBuffer after the corresponding read. In this
case, skip_to() gets called (as it does before every read) and the
events are silently dropped.
This is a Very Bad Thing(TM), so warn about it. I am not sure which
other scenarios can skip events that aren't problematic, but there's
probably some. A more sophisticated detection/reporting (or maybe even
dynamic reconfiguration) scheme would be nice here, but some false
positive messages are at least better than silently failing to play
notes and the like.
2016-10-17 20:22:26 -04:00
94f8b7b8f2
Clean up MIDI debugging output
2016-10-17 20:22:26 -04:00
69cbcb84a6
spelling corrections from Jaromír Mikeš <mira.mikes@seznam.cz>
...
Corresponds to https://anonscm.debian.org/cgit/pkg-multimedia/ardour.git/tree/debian/patches/0070-spelling.patch
2016-10-17 17:57:39 -04:00
c43046320b
reset peak meters used in push2 when stripable goes away
2016-10-17 15:58:39 -04:00
687ac2d294
remove unused variable
2016-10-17 15:58:39 -04:00
Nathan Stewart
84c66c75db
Initialize uninitialized member variables in ctor - warning suppression
2016-10-17 15:58:39 -04:00
3e32a00a52
fast region export -- don't call process()
2016-10-17 21:35:00 +02:00
8519677a24
fix potentially crash-inducing race condition by removing event loops' x-thread channel from an event loop when it is destroyed
2016-10-17 14:48:15 -04:00
157253c2c6
remove debug output
2016-10-17 13:41:22 -04:00
9a3c1dbfe7
fix thinko in d2835bc80
(re-enables mute, solo and likely other automation controls)
2016-10-17 13:20:03 -04:00
5b22e67387
add more DEBUG_TRACE statements for port/destruction debugging
2016-10-17 11:16:07 -04:00
2c2ce7aa55
convert cerr<< to DEBUG_TRACE
2016-10-17 11:16:07 -04:00
1fd7ec58cd
use existing method rather than inline code for pending port deletions
2016-10-17 11:16:07 -04:00
nick_m
46d137414b
Initialize TempoMetric _pulse in sonstructor.
2016-10-18 02:14:15 +11:00
nick_m
0585393989
Music locked regions stay positive after tempo map change.
2016-10-18 02:12:33 +11:00
466141229f
ignore send buffers for which there's no return
...
This fixes an issue with Audio+Midi sends feeding into an audio only return.
2016-10-17 00:33:02 +02:00
d2835bc802
improved and hopefully correct fix for "setting AutomationControl marks session dirty even when it should not, if in playback mode"
...
Hopefully comment is more explanatory as well.
2016-10-16 15:51:50 -04:00
nick_m
92920307ae
Tempo curve cleanup, now also works on optimized builds.
2016-10-17 01:28:33 +11:00
f52443e17e
Increase range of a-comp release time.
...
This facilitates ducking music for voice-overs w/o hold-time.
2016-10-15 21:27:29 +02:00
07ee9b6164
Source and AudioSource Lua bindings
2016-10-15 21:27:29 +02:00
nick_m
8ae0c1b36c
Minor cleanup (don't set pulse twice in Region::set_position()).
2016-10-16 03:50:14 +11:00
nick_m
3a0a628a75
Rework duration clock and TempoMap::insert_time to include meter at offset.
...
- should fix 7072
- also fixes scroll behavior over multiple tempi.
2016-10-16 02:33:49 +11:00
102547089b
remove debug output
2016-10-14 11:50:27 -04:00