Paul Davis
2de09888b6
some const_cast<> additions for OS X where gcc believes that volatile int* means const int*
2013-08-14 12:40:49 -04:00
Paul Davis
8d8770f4cc
remove JACK midi system stuff from jack_utils, because we're not going to use it (for a while, at least)
2013-08-14 12:40:10 -04:00
Paul Davis
7b34b6a3f6
provide clock_gettime() implementation for lovely OSX, which doesn't have it
2013-08-14 12:39:34 -04:00
Paul Davis
dfac01bdd4
don't bother with old MIDI port data in ardour.rc
...
result: we lose connections to global MIDI ports in older sessions. may fix this in the future
2013-08-13 22:06:31 -04:00
Paul Davis
07c63fb2d7
save and restore all ardour-owned MIDI ports
...
still need to check on MCU port status
2013-08-13 21:59:05 -04:00
Paul Davis
a5a75d5e0d
fixes to get MTC (and probably MIDI clock) slaving working again
...
incoming MIDI data has to be parsed EVERY process cycle, not just when Slave::speed_and_position() is called.
The private MIDI::Parser owned by the MTC and MClck slaves was irrelevant, since the port has its own.
See comments in midi_port.h on the strangled inheritance heirarchy.
2013-08-13 12:53:28 -04:00
Paul Davis
a5a3f713d5
assorted extra debug output for MTC
2013-08-12 05:40:11 -04:00
Paul Davis
50bbf3f656
fix output latency option in jack command line
2013-08-10 09:25:18 -04:00
Paul Davis
9680c345c4
don't write a bogus jack cmdline ... leave the existing ~/.jackdrc file alone if an error creating the cmdline occurs
2013-08-09 18:35:07 -04:00
Paul Davis
862315ec2a
actually write JACK command line out to ~/.jackdrc so that settings take effect
2013-08-09 18:11:04 -04:00
Paul Davis
4b9289e17e
don't waste time with sending MTC or MMC after stop if we're disconnected from the engine.
...
Also, add note about threading oddities with send_mmc_locate() being called from ::non_realtime_stop() which gets
called from a *realtime* context.
2013-08-09 18:06:08 -04:00
Paul Davis
cec2a3da36
allow ardour to exit after JACK disconnects us
2013-08-09 16:57:23 -04:00
Paul Davis
f0fcda2044
Merge branch 'master' into audioengine
2013-08-09 16:29:23 -04:00
Paul Davis
8685d8eb47
remove use of jack_get_time() from ARDOUR::get_microseconds(), use clock_gettime() instead since this function is never used in reference to a backend clock
2013-08-09 15:40:46 -04:00
Paul Davis
ca76496ef3
more purging of JACK as an explicit name from libardour
2013-08-09 13:56:23 -04:00
Paul Davis
d0381b902c
remove more naming that refers to JACK
2013-08-09 13:39:33 -04:00
Paul Davis
55e52bcbd5
remove another naming that refers to JACK
2013-08-09 13:38:09 -04:00
Paul Davis
8960ebcdf9
remove another naming that refers to JACK
2013-08-09 13:27:05 -04:00
Paul Davis
521f8eb776
more sensible ALSA device names now in use
2013-08-09 13:26:40 -04:00
Paul Davis
fc040a72e9
use original names for ARDOUR MIDI "persistent" ports (MMC, MTC, etc)
2013-08-09 13:03:57 -04:00
Paul Davis
5abeb799cf
try new code from rui/qjackctl for names of ALSA PCM devices
2013-08-09 13:03:21 -04:00
Paul Davis
a34d707175
split up session code that uses parts of the JACK API (timebase + session event handling) and connect it directly to the jack audiobackend
...
i've made the audiobackend call the session directly so that only one object (ARDOUR::Session) has a need for the JACK types
and only one .cc file (session_jack.cc) needs jack.h. having ARDOUR::AudioEngine act as an intermediary would be cleaner
conceptually but would end up causing two different ARDOUR objects to have jack types in their own API.
2013-08-09 12:15:37 -04:00
Paul Davis
c9f6b0dab5
the JACK audio backend shared object depends on libasound (ALSA) on linux, so it requires explicit linkage
2013-08-09 11:04:04 -04:00
Paul Davis
fcb76c8c05
fix freewheeling
2013-08-08 22:12:52 -04:00
Paul Davis
3070cd723b
fix crashes, clean up session code warmup and other details in audioengine
2013-08-08 19:32:56 -04:00
Paul Davis
111d35c9c7
add methods to queue full MTC and SPP messages, now that they are synchronous
2013-08-08 19:31:10 -04:00
Paul Davis
d90e2b4221
rationalize (a bit) engine start/stop/restart so that it is possible to start up, disconnect from JACK and then reconnect
2013-08-08 16:31:08 -04:00
Paul Davis
917aed0da0
add new files (code based on the old midi++ JACKMidiPort)
2013-08-08 09:10:11 -04:00
Paul Davis
1ab61b8564
major redesign of MIDI port heirarchy and management (part 2)
2013-08-07 22:22:11 -04:00
Paul Davis
83a0c30c24
major redesign of MIDI port heirarchy and management
...
basic, very flaky functionality is back. program unstable at present
2013-08-07 22:21:36 -04:00
Robin Gareus
a1370f83db
fix compiler warning
2013-08-07 15:57:29 +02:00
Paul Davis
616f2a0370
fix conflicts after merge with master
2013-08-05 14:22:32 -04:00
Paul Davis
499b7fcfa9
document PortEngine API
2013-08-05 13:55:50 -04:00
Paul Davis
a5f69910e4
add notion of unavailable devices to ARDOUR::AudioBackend
2013-08-05 13:19:23 -04:00
Paul Davis
a66e3859e1
can now start JACK based on config dialog
2013-08-05 12:51:51 -04:00
Paul Davis
7218bd91de
start work on the changes to EngineControl (dialog) to integrate with new backend design, and add "requires-driver" concept to AudioBackend to handle JACK specifically
2013-08-04 14:03:19 -04:00
Robin Gareus
f5c52f500a
Timecode: fix subframe rounding
...
if sub-frames are used, frames are rounded up for the later half of
a sub-frame. e.g. @48KSPS, 25fps, 100 subframes per frame
audio-samples >=1910 already yield 00:00:00:01
2013-08-04 16:22:00 +02:00
Robin Gareus
976fc86811
fix no-roll LTC encoder, honor locates when transport is stopped
2013-08-04 16:13:43 +02:00
Robin Gareus
efc46f1553
make master-meter in toolbar optional
2013-08-04 00:06:29 +02:00
Paul Davis
333a3c9d02
cleanup more dangling members of AudioEngine
2013-08-03 17:49:19 -04:00
Paul Davis
a64908af7f
fix undeclared use of cerr
2013-08-03 17:47:26 -04:00
Paul Davis
1d50d041c9
fix problem with session exit caused by dangling unused members in AudioEngine
2013-08-03 16:45:07 -04:00
Paul Davis
f2ca3ecf0c
add file
2013-08-03 16:44:13 -04:00
Paul Davis
c2e7c32c53
add tim's jack_utils code to rationalize setup of JACK config
2013-08-03 16:37:10 -04:00
Robin Gareus
91e0e0f9f8
advance track's play-position even if processing is locked
...
fixes
* http://tracker.ardour.org/view.php?id=5628
* http://tracker.ardour.org/view.php?id=5561
2013-08-03 21:35:19 +02:00
Paul Davis
1c4d00e8b7
audioengine branch can now load and run at least one test session.
...
currently hard-coded to deal only with the situation where JACK is already running
2013-08-03 11:57:56 -04:00
Robin Gareus
b14d9a6451
properly handle port removal in route.
...
bug:
- add midi track
- add additional midi port
- remove additional midi port
- press play
-> crash
because..
ARDOUR::MidiTrack::roll's route_buffer still has 2 midi-channels. This is
because processor_max_streams was not updated (no plugins added/removed)
fill_buffers_with_input() eventually asserts when trying to get the 2nd
(nonexistant) midi port via ARDOUR::PortSet::nth_midi_port() in
ARDOUR::PortSet::port().
2013-08-03 13:44:37 +02:00
Robin Gareus
0eb5b7d1ab
Merge branch 'midiclock' of https://github.com/axetota/ardour
2013-08-03 01:37:25 +02:00
Michael Fisher
e82574de05
Send and Read MIDI Positions the right way
2013-08-02 18:23:36 -05:00
Robin Gareus
99fb7346f0
on session-load: skip output-change-handler until IOs are restored
...
fixes loading a session with tracks that have more input-ports
than output-ports.
the problem:
input -ports are added first, when added, IO::ensure_port() emits
IOChange::ConfigurationChanged which in turn triggers the route to
allocate corresponding output ports.
Due to this callback the output-ports were created before the actual
output-port-configuration and plugin-configuration from the
session-state was parsed and set.
2013-08-03 00:51:08 +02:00