13
0
Commit Graph

17413 Commits

Author SHA1 Message Date
55cd20d862 don’t set paClipOff, have portaudio clip to -1,+1
Fixes issues with some integer drivers where overflow wraps
(values > 1.0 end up at -1, producing a hard click)
2015-08-03 22:57:10 +02:00
c6a02503b4 Windows XP compat 2015-08-03 22:53:53 +02:00
9cabc1bb9a Fix MIDI input on Portaudio Backend with 32bit Windows release/optimized builds
MIDI input doesn't work with -O3 or -O2 optimization levels, no real idea why
at this point. So just append -O0 to CXXFLAGS to override previous optimization
flags for compiling the PortaudioBackend files
2015-08-04 00:15:59 +10:00
8132a31606 don't resize plugin-scan-report window, use sensitivity. 2015-08-03 15:54:55 +02:00
712b709e2a dump VST blacklist at end of scan 2015-08-03 15:45:31 +02:00
1fe6c19329 translatable VST error/info messages 2015-08-03 15:17:39 +02:00
30dc3b871c fix byte-order detection for gcc < v4.4. 2015-08-03 15:16:50 +02:00
469ead78f7 Fix typo in 8c45d4 preventing compile 2015-08-03 13:00:00 +10:00
f6fa4581b0 sha1: cleanup & separate unit test 2015-08-03 02:13:44 +02:00
8c45d446ad VST cache rework (part one)
Don’t clutter up actual vst-plugin dirs with additional files.

Use dedicated folder for VST info-cache; use sha1-hash (of absolute dll
path) for .fsi file.

Use a single blacklist file (one path per line) instead of individual 
.fsb files per plugin.
2015-08-03 00:25:19 +02:00
d9de55ae93 add sha1-hash calc. 2015-08-03 00:14:06 +02:00
d22768f96f quiet unzip 2015-08-03 00:09:48 +02:00
5122b7f8e1 Specifically #include <mmsystem.h> to get us TIMECAPS
(not sure why windows.h isn't already #including this for us - but it doesn't seem to be)
2015-07-31 13:48:25 +01:00
3015be533f Add some newly introduced sources to our MSVC project (portaudio_backend) 2015-07-31 13:45:18 +01:00
f3d3082872 Use llabs (rather than std::abs) for compatibility with MSVC
MSVC doesn't offer an override which accepts int64_t (at least, the 32-bit compiler doesn't)
2015-07-31 13:43:22 +01:00
0428f2e4c9 Use BOOL (rather than WINBOOL) for compatibility with MSVC
(WINBOOL is MinGW specific)
2015-07-31 13:41:16 +01:00
f9f01104c6 add missing pthread.h includes 2015-07-31 02:28:12 +02:00
cfbd9dd6d4 Add functionality to show ASIO control panel 2015-07-31 09:59:54 +10:00
acd17a9b53 Use MMCSS to elevate the thread priorities for audio and MIDI threads
use AVRT_PRIORITY_NORMAL for audio threads and AVRT_PRIORITY_HIGH for MIDI
threads
2015-07-31 09:59:54 +10:00
e9d00f5cfb Add MMCSS related code for raising thread priority on Windows 2015-07-31 09:59:54 +10:00
fe50d06876 Implement AudioBackend::driver_name() in PortaudioBackend
This was missing and is necessary for EngineControl dialog to work properly
2015-07-31 09:59:54 +10:00
6a0e46352c Add extra DEBUG_TRACE output to PortaudioBackend 2015-07-31 09:59:54 +10:00
e258c827e2 WinMME based midi input/output for portaudio backend
TODO:

Use MMCSS to elevate thread priorities
Enable/test and fix SYSEX related code
2015-07-31 09:59:54 +10:00
b12f865a4a Fix for PortAudioBackend::available_sample_rates
Was being called without initializing PA. PA should probably be initialized in
ctor but PA backend also needs to support hot-plugging devices at some point so
this will do for now
2015-07-31 09:59:54 +10:00
6b7875de1e Support selecting separate input and output devices in portaudio backend 2015-07-31 09:59:54 +10:00
ff1d4d5c67 Refactor PortAudioIO::discover into three private methods 2015-07-31 09:59:54 +10:00
4e370feeb1 Set default input/output device based on selected host api rather than global default 2015-07-31 09:59:54 +10:00
e2001ac4f3 Fix crash when unable to open portaudio stream
Calling Pa_Terminate after failing to open stream causes an assertion
2015-07-31 09:59:54 +10:00
b6db19a5c6 Add host api/driver selection to PortaudioBackend 2015-07-31 09:59:54 +10:00
2437bbbe23 Fix state restoration in Engine dialog for Backends with driver selection
Connect to the backend_combo changed signal after setting state as calling
backend_combo.set_active_text() in set_state was triggering backend_changed(),
which would then see the driver_combo had not been set and set it to the
incorrect value.

The value/name of the backend needs to be restored first then we can populate
the driver combo and set the correct active entry from the saved state. After
which backend_changed() will populate the device combo's etc so they can then
be set to the correct active values from the saved state.
2015-07-31 09:59:53 +10:00
b2817bfac5 make it easier to get errors out of GTK + Glib 2015-07-30 19:05:12 +02:00
ca0c9b3636 Replace "%z" modifier with glib macro for portability. 2015-07-30 17:00:03 +02:00
67c75c5a33 fix file metadata tagging on windows.
This allows TagLib to open the file and create a Tag object (see 2a0365c)
Tagging still fails later (taglib seek/SetFilePointer fails when writing)
2015-07-30 05:28:43 +02:00
0bfdc82034 use “CPU family” to match ppc, ppc7400, etc. 2015-07-30 03:17:33 +02:00
b715ef7e93 prepare for MB/PPC 2015-07-30 00:00:19 +02:00
0113de9b92 Don’t create MTC debug string if it’s not needed.
Removes periodic call to operator<< (and eventually loadlocale) 
in RT-thread in the debug version.
2015-07-29 17:54:56 +02:00
a021da9a9d oops. 2015-07-29 03:34:27 +02:00
36f6aa9356 work-around OSX loadlocale thread safety.
This is not a real fix; just a stop-gap for the worst offender.

iostream on OSX is not thread safe.
Sadly no crash report so far managed to catch the 2nd thread in action.
looks like the GUI thread is preempted, 2nd thread succeeds, and the 
crash occurs later).

see also https://discussions.apple.com/thread/3479591

crash in
   s << c->internal_to_user (c->get_value ());

ardour-4.1.335(5000,0x7fff777f5300) malloc: *** error for object 0x7fe2f3e06170: pointer being freed was not allocated
1   libsystem_c.dylib       abort + 129
2   libsystem_malloc.dylib  free + 428
3   libsystem_c.dylib       __numeric_load_locale + 544
4   libsystem_c.dylib       loadlocale + 216
5   libstdc++.6.dylib       std::__convert_from_v(int* const&, char*, int, char const*, ...) + 193
6   libstdc++.6.dylib       std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const + 193
7   libstdc++.6.dylib       std::ostream& std::ostream::_M_insert<double>(double) + 221
8   ardour-4.1.335          ProcessorEntry::Control::set_tooltip() + 854 (processor_box.cc:578)
9   ardour-4.1.335          ProcessorEntry::Control::control_changed() + 446 (processor_box.cc:637)
10  ibpbd.dylib             PBD::StandardTimer::on_elapsed()
2015-07-28 20:54:43 +02:00
64af6c880c Revert "debug/fix LV2 state loading on OSX 10.5/PPC"
This reverts commit 22bc62ed43.
forwarded upstream: http://dev.drobilla.net/ticket/1073
2015-07-28 18:58:17 +02:00
2a0365cbef don't crash if taglib cannot open file 2015-07-28 00:45:09 +02:00
ab4263bff9 Merge branch 'ovenwerks-master' 2015-07-27 16:17:51 -04:00
1a51f19493 Clean up extra white space added by editor. 2015-07-27 16:17:38 -04:00
8b4a237ee3 Handle the 4 common encoder types. 2015-07-27 16:17:38 -04:00
938f365cc1 Added MasterPosition value=0 to all mcp device files as this is saved and will not default 2015-07-27 16:17:38 -04:00
d3b4ef4eed Add enc to midi map for mcp style encoders. 2015-07-27 16:17:38 -04:00
ae3d4efce0 Make program change toggle or 1 only. 2015-07-27 16:17:38 -04:00
6ab04a27c3 Allow any one midi event to control only one thing. 2015-07-27 16:17:38 -04:00
fee54fb155 fix LV2 freewheeling port, explicit cast bool to float.
http://lv2plug.in/ns/lv2core/#freeWheeling mentions "true"
and http://lv2plug.in/ns/lv2core/#toggled defines true as > 0.
false as <= 0.
2015-07-27 19:08:29 +02:00
22bc62ed43 debug/fix LV2 state loading on OSX 10.5/PPC 2015-07-27 17:11:52 +02:00
c55b659f39 add Session::routes_solo_changed(), a plural method which makes changing many route solo states much faster.
Code originally by Grygorii Zharun in Tracks
2015-07-27 09:41:57 -04:00