Commit Graph

482 Commits

Author SHA1 Message Date
Mads Kiilerich 49855e52aa wscript: consistently have at most one empty separator line 2022-04-09 12:16:40 +02:00
Mads Kiilerich bac32a8c2d wscript: consistently use 4 spaces for indentation 2022-04-09 12:16:40 +02:00
luz paz 59320b378f
wscript: fix 'testing equality is none' issue
ref: https://lgtm.com/rules/7900090/
2022-04-08 18:27:10 +02:00
Robin Gareus 3689068561
Clip Library support
This allows to export Regions to a shared folder.
2022-01-29 16:22:47 +01:00
Mads Kiilerich 8bb91099c5 wscript: drop configure statements already present in the top level wscript
Avoid repeated pointless configure messages like:
Checking for 'g++' (C++ compiler!)                   : /usr/lib64/ccache/g++
Checking for 'gcc' (C compiler)                      : /usr/lib64/ccache/gcc
2022-01-22 22:19:03 +01:00
Robin Gareus 8e7810f40c
Disable session unit-tests for now
Converting, loading old sessions/templates fails:

#0  0x00005555568a2590 in  ()
#1  0x00007ffff7b8dfd9 in ARDOUR::SessionEventManager::merge_event(ARDOUR::SessionEvent*) (this=0x55555d89c3f0, ev=0x555555cfb510) at ../libs/ardour/session_events.cc:204
#2  0x00007ffff7bb1c79 in ARDOUR::Session::queue_event(ARDOUR::SessionEvent*) (this=0x55555d89c260, ev=0x555555cfb510) at ../libs/ardour/session_process.cc:836
#3  0x00007ffff7b8d780 in ARDOUR::SessionEventManager::clear_events(ARDOUR::SessionEvent::Type, boost::function<void ()>) (this=0x55555d89c3f0, type=ARDOUR::SessionEvent::Skip, after=...)
    at ../libs/ardour/session_events.cc:156
#4  0x00007ffff7b17991 in ARDOUR::Session::sync_locations_to_skips() (this=0x55555d89c260) at ../libs/ardour/session.cc:1752
#5  0x00007ffff7b175bd in ARDOUR::Session::update_skips(ARDOUR::Location*, bool) (this=0x55555d89c260, loc=0x0, consolidate=false) at ../libs/ardour/session.cc:1701
#6  0x00007ffff7b18bed in ARDOUR::Session::_locations_changed(std::__cxx11::list<ARDOUR::Location*, std::allocator<ARDOUR::Location*> > const&)
    (this=0x55555d89c260, locations=empty std::__cxx11::list) at ../libs/ardour/session.cc:1877
#7  0x00007ffff7b3ff7d in ARDOUR::Locations::apply<ARDOUR::Session>(ARDOUR::Session&, void (ARDOUR::Session::*)(std::__cxx11::list<ARDOUR::Location*, std::allocator<ARDOUR::Location*> > const&)) const (this=0x55555e19ed10, obj=..., method=
    (void (ARDOUR::Session::*)(ARDOUR::Session * const, const ARDOUR::Locations::LocationList &)) 0x7ffff7b18b38 <ARDOUR::Session::_locations_changed(std::__cxx11::list<ARDOUR::Location*, std::allocator<ARDOUR::Location*> > const&)>) at ../libs/ardour/ardour/location.h:263
#8  0x00007ffff7b18b35 in ARDOUR::Session::locations_changed() (this=0x55555d89c260) at ../libs/ardour/session.cc:1858
#9  0x00007ffff7bc4914 in ARDOUR::Session::set_state(XMLNode const&, int) (this=0x55555d89c260, node=..., version=7000) at ../libs/ardour/session_state.cc:1666
2022-01-03 01:11:54 +01:00
Robin Gareus 987df219e0
Fix building libardour unit-tests, disable BBT tests for now 2022-01-03 01:11:54 +01:00
Robin Gareus 6c3c38e924
Replace Tabs with Space in python script 2022-01-02 14:34:53 +01:00
Paul Davis 483bdd99cc libardour: new SegmentDescriptor type added (but not used) 2021-12-12 10:55:05 -07:00
Paul Davis d4d4298320 triggerbox: add Chris Cannam's minibpm and use to determine tempo and thus stretch 2021-10-06 15:21:44 -06:00
Paul Davis 41796ecc14 soundtouch support is not enabled by default and currently will not compile 2021-08-13 16:19:47 -06:00
Paul Davis 1927e4673b remove StepSequencer, BeatBox and BeatBoxGUI from wscripts and #ifdef code occurences. Files remain 2021-08-13 12:51:36 -06:00
Paul Davis b8a3b25dee add TriggerBox processor (extremely prototypical)
This takes some barely working ideas from the old ableton branch and turns it into a processor instead of a separate track object
2021-08-13 12:51:36 -06:00
Paul Davis 73ad70648d bump session file version 2021-08-13 12:51:35 -06:00
Paul Davis 47246b0179 libs/ardour/superclock.cc is not needed 2021-08-13 12:51:30 -06:00
Paul Davis 256eb2d1d3 changes for lv2 plugin/new tempo map 2021-08-13 12:51:29 -06:00
Paul Davis f67029bd02 random commit to facilitate trivial move of work from laptop back to main system 2021-08-13 12:51:29 -06:00
Paul Davis eae9d276fe libardour: conversion to use timeline types (mega-commit) 2021-08-13 12:51:29 -06:00
Paul Davis f42bd3fe47 add per-thread sample rate variable and libardour method to update it 2021-08-13 12:51:28 -06:00
Paul Davis 6905a705a9 initial landing of new internal StepSequencer object 2021-08-13 12:51:26 -06:00
Paul Davis 6b39febabc meet the beatbox 2021-08-13 12:51:26 -06:00
Robin Gareus 82c536ec81
Fix test/profiling tools
* use dummy-backend (don't expect engine to be running)
* add required TestUI / Receiver

Lots of regions: add scope to prevent SessionHandleRef
  existing across session deletion

RunPC: take process-lock before processing, prevents various
  assert() and concurrency issues.
2021-07-16 18:47:13 +02:00
Robin Gareus d4212da693
AU: standalone scanner tool 2021-07-03 19:07:26 +02:00
Robin Gareus 39fd3ff62a
VST2: use new scanner 2021-07-03 19:07:26 +02:00
Robin Gareus a74b4e8ef0
No more wine 2021-07-03 19:07:25 +02:00
Robin Gareus fce374fd41
Foundation for plugin-manager, persistent logs 2021-07-03 19:07:24 +02:00
Marijn Kruisselbrink 0a54f96a44
Add M4A support to the audio import dialog using FFMPEG.
This uses the existing optional runtime ffmpeg dependency to add support
for m4a files (and in theory whatever other file formats ffmpeg
supports) to the import audio dialog.

The same functionality is mostly already available via Session -> Open
Video, with the "import audio only" selection (even though m4a isn't
currently included as one of the video formats, it still works). Having
this in the import audio dialog however seems much more user friendly.
2021-06-21 02:30:36 +02:00
Robin Gareus 65cc9264c8
Create regions with property changes suspended
This fixes various issues with signal emission(s) when creating
regions from withing playlist operations.

eg. Playlist::duplicate() takes RegionWriteLock() and then calls
RegionFactory::create().

see also 6a82aa392c
2021-04-30 18:43:36 +02:00
Robin Gareus 114d5f20e6
Add Monitor Return
This is a special case of an Internal Return processor
dedicated to the monitor-section. The main use-case will
be to collect signals from physical ports in a realtime-safe
manner (no connections or Port creation)
2021-02-22 00:59:59 +01:00
Robin Gareus f2d2ea4baa
Refactor Solo/Mute release
This is in preparation to move RoueUI::SoloMuteRelease
to libardour to reuse the implementation in various places.
This also prepares the solo logic for exclusive port-monitoring.
2021-02-22 00:59:58 +01:00
Robin Gareus ecdaf7136d
Add dedicated Monitor Port
This allows for rt-safe monitoring, collecting data
directly from input-ports without requiring a dedicated connection
or dynamic ARDOUR::AudioPort creation.
2021-02-22 00:59:57 +01:00
Robin Gareus 24f69d5174
Fix linking with gcc-10.2
Explicit libardour/fftw3f is needed for thread-safe-planner
2021-01-22 18:36:59 +01:00
Robin Gareus 9a7379dfff
Add a CircularSampleBuffer for input port scopes 2021-01-08 18:39:56 +01:00
Robin Gareus cd72bbb2d4
Make AVX/FMA support optional
Older compilers do not yet have fmaintrin.h. This fixes compile errors:
```
x86_functions_fma.cc:51:39: error: '_mm_fmadd_ss' was not declared in this scope
x86_functions_fma.cc:85:35: error: '_mm256_fmadd_ps' was not declared in this scope
x86_functions_fma.cc:106:35: error: '_mm256_fmadd_ps' was not declared in this scope
x86_functions_fma.cc:129:39: error: '_mm_fmadd_ss' was not declared in this scope
```
2021-01-02 16:41:43 +01:00
Ayan Shafqat 407882d23d
Add support for Intel/AMD's FMA extension
By supporting FMA extension, the number of instruction needed
for multiply accumulate to mix channels are reduced. Since,
this extension has been around since middle of 2012, more
computers have this instruction set available.
2021-01-01 21:05:16 +01:00
Robin Gareus e6fe0e8cca
Prepare for static CP API removal 2/2
This partially reverts bc78629788
2020-10-18 14:28:45 +02:00
Robin Gareus 01c278a00c
Fix unit-test builds
For the time being (since bc78629788) vst3 plugin uses
the Control Protocol API for track selection and focus, and
hence users of libardour also need to use libardour_cp
2020-10-17 18:18:05 +02:00
Robin Gareus e391352b6d
Use predefined "testcommon" target for unit-tests 2020-10-16 02:32:30 +02:00
Robin Gareus 516a1b0d2e
Use unique target names for unit-test build rules 2020-10-16 02:31:39 +02:00
Robin Gareus 16d9e72c31
Fix OSX unit-test compile 2020-10-15 06:00:17 +02:00
Robin Gareus 8ff7e18d78
Fix native builds on RPi with --dist-target=armhf 2020-10-15 03:07:34 +02:00
Robin Gareus cc935ab34e
Add basic FPU unit test 2020-10-14 22:52:43 +02:00
Robin Gareus 2a9795113b
VST3: Plugin discovery 2020-09-16 22:49:20 +02:00
Robin Gareus 84a86fa21a
VST3: Implement host classes 2020-09-16 22:49:20 +02:00
Robin Gareus 9bd8c43693
VST3: Load and instantiate 2020-09-16 22:49:20 +02:00
Robin Gareus 0ca0b4f335
VST3 skeleton 2020-09-16 22:49:19 +02:00
mx 262281bc1f
Use soundtouch for vocal audio time stretching (1/2) 2020-08-26 19:04:58 +02:00
Robin Gareus 773a1a0725
Fix optimized armhf builds
Apparently gcc-6.2 with -O3 and -mfpu=neon can use ARM instructions
that requires 64bit alignment (here vst1.64) with data that
is not 64bit aligned (g->strcache) https://i.imgur.com/vYktsUn.png

So we need to be able to build "arm_neon_functions.cc" with
-mfpu=neon, while not automatically using NEON for the rest
of the codebase, unless explicitly asked for.
2020-08-22 02:35:19 +02:00
Robin Gareus fb5abde677
Use specific build-target for ARM/NEON routines 2020-08-21 03:39:56 +02:00
Ayan Shafqat c8c57f14bf
Adding ARM NEON optimized routines
This commit adds ARM NEON optimized routines for the following procedures
below:

*_compute_peak
*_find_peaks
*_apply_gain_to_buffer
*_mix_buffers_with_gain
*_mix_buffers_no_gain
*_copy_vector

NEON optimized routines have a prefix of: arm_neon_
2020-08-21 03:29:39 +02:00