Commit graph

432 commits

Author SHA1 Message Date
Nikolaus Gullotta
0ae8268bf0
lib_ardour part: add mixer_snapshot class 2020-03-23 13:49:13 -05:00
Paul Davis
e89b0cfd27 remove tape_file_matcher source 2020-03-17 16:31:49 -06:00
David Robillard
45026100aa LV2: Implement ui:requestValue feature 2020-03-17 16:55:35 +01:00
Robin Gareus
3483c3589a
Add a Read Only Memory Audio Source
This will come in handy for FIR, or short samples in combination
with a Lua convolution processor.
2020-02-06 17:30:21 +01:00
Robin Gareus
56c1fa0c90
Break out API to create readables from files 2020-02-06 17:30:21 +01:00
Nikolaus Gullotta
39dac5b20f Fix tests failing to build by adding LIB_FFTW3F 2020-01-29 10:12:04 -06:00
Robin Gareus
5c789547cb
Fix building unit-tests 2020-01-27 17:43:37 +01:00
Robin Gareus
5a841ef462
Tweaks to build/package scripts for new waf
* Windows: delete waf installed .dll.a files
* Windows: override waf's conf.env.LIBDIR = conf.env.BINDIR
  with explicit --libdir
* Windows: fix asm (`x86_64-w64-mingw32-as` -D flag is for
  debug messages, -D defines are not available)
* Mac: override waf adding -install_name (and
  -Wl,-compatibility_version -Wl,-current_version)
  by moving -dynamiclib from linkflags to ldflags
* Mac: Allow libs with compat version number suffix
  (not needed anymore, but may help in the future)
2020-01-25 04:07:42 +01:00
David Runge
2e9ac80e99
Towards waf python 2+3 support 2020-01-25 04:07:37 +01:00
Robin Gareus
bca825e515
NO-OP: whitespace 2020-01-14 00:52:24 +01:00
Robin Gareus
d0b6c437ce
Implement mp3 import, using minimp3 2019-12-06 18:18:54 +01:00
Robin Gareus
fa6a21f94e
Ardour 6.0 Alpha - Enterprise Edition
Its 5 year mission
To explore strange new sounds
To seek out new bugs and new users
To boldly go where no Ardour session has gone before
2019-12-04 23:07:42 +01:00
Paul Davis
c0a1aec516 start removal of NoteFixer code
Plan is to always read MIDI directly from rendered version. MidiPlaylistSource needs
attention before MidiPlaylist::read() can be removed
2019-11-02 16:32:18 -06:00
Paul Davis
22da779322 introduce new all-in-RAM MIDI datastructure and use it for MIDI playback 2019-11-02 16:32:18 -06:00
Paul Davis
5ec5bc4523 goodbye USE_TRACKS_CODE_FEATURES and is_tracks_build 2019-09-25 12:16:13 -06:00
Paul Davis
d7c91b5322 split session-bundled-related methods to their own file 2019-09-22 12:23:54 -06:00
Paul Davis
bd229936ec add finite state machine to control/manage transport state 2019-09-17 18:26:03 -06:00
Robin Gareus
38b36d2ea5
Engage thread-safe fftw planner in libardour
This way initialization happens constently, and independent from the GUI,
for session-utils, lua, headless..
2019-09-10 03:06:21 +02:00
Robin Gareus
01c5aa34c6
Update MClk unit-test - new transportmaster API 2019-09-05 14:52:08 +02:00
Robin Gareus
3630113414
LV2 support is not optional since 04ccd328dc 2019-06-24 21:52:27 +02:00
David Robillard
30d59c8f6e Remove support for building against LV2 older than 1.2.0
LV2 1.2.0 was released in 2012, over 6 years ago now.
2019-04-10 10:24:33 +02:00
Robin Gareus
2a8d3ff4f0
Amazing PCM byte/array convert functions, unused. 2019-02-28 18:52:10 +01:00
Robin Gareus
3cffaeac74
Prepare to allow to disable latency-compensation
Previously "zero custom/user latency" meant "default plugin latency".
This is now saved in a separate boolean allowing a user to reduce a
processor's latency to zero.

This also prepares for a global switch to use zero latency throughout
the whole session.
2019-02-16 01:10:50 +01:00
Paul Davis
04ccd328dc remove configure-time --no-lv2 option. LV2 is integral to what we do 2018-12-28 09:47:55 -05:00
David Robillard
79c9c62154 Remove conditional support for ancient versions of Lilv
This updates the dependency to 0.24.2, which was released in January 2017 and
is the most recent version in Debian 9 (stretch).
2018-12-19 20:08:47 -05:00
Robin Gareus
4c6ff5f7e7 Move video-tool paths to libardour (1/2)
This is in preparation to allow calling ffmpeg, or similar (sox, lame,..)
directly from libardour.
2018-11-19 03:18:48 +01:00
Robin Gareus
087b8d7f33 Implement basic libardour convolution DSP 2018-10-20 00:24:38 +02:00
Paul Davis
0cf27fd2cd fix several inter-related problems with libptformat 2018-10-14 20:35:29 -04:00
Damien Zammit
3fd7f9478f PT import: Minor changes to session 2018-10-12 19:09:40 +11:00
Paul Davis
e6915e01de new transport slave/master implementation, libs/ edition 2018-09-18 19:06:04 -04:00
Paul Davis
8a18929d57 remove Session::controllable_by_descriptor() and move code into GenericMIDI code (the only user).
This also removes enums introduced to describe well-known parameters for Mixbus. Lookup now involves string
parsing every time, but this is not likely to be a notable cost.
2018-06-21 13:05:58 -04:00
Robin Gareus
0f9ca82684 Remove interpolation unit-test (fails to compile)
Ardour vari-speed does no longer use ARDOUR::CubicInterpolation
and LinearInterpolation was removed.
vari-speed is now using zita-resampler.
2018-03-02 16:13:37 +01:00
Robin Gareus
4cab03887c Add a Raw MIDI parser (based on ALSA raw MIDI) 2017-12-05 16:09:42 +01:00
Robin Gareus
539560bcac Add polarity-invert processor 2017-10-31 03:15:43 +01:00
Robin Gareus
fba0fce441 Add a RT-Tasklist 2017-10-30 16:31:38 +01:00
Robin Gareus
927788a0b0 Move vari-speed into backend (resample ports)
Previously Ardour used a /local/ per track vari-speed mechanism.
Now that the disk-reader is a latency-compensated processor, the speed
of each disk-reader would need to be maintained locally, offset by each
disk-reader's output latency. Furthermore each disk-reader may
produce a different number of samples, depending on its global alignment.

This commit introduces port-data resampling directly at the engine-level:
Up/down-sample all input ports at the beginning, and down/up-sample output
port-data using the inverse ratio at the end of the session's process
cycle.
The session itself is unaware of the speed-change, and only needs to
handle transport speeds {-1, 0, +1}.

This also allows for aligned cue-monitoring and vari-speed recording,
and also pitch-shifts synthesized MIDI along.
2017-10-29 20:04:00 +01:00
Paul Davis
7db12f6b12 convert codebase to use Temporal for various time types 2017-09-24 12:03:54 -04:00
Robin Gareus
16f9f58057 More s/frame/sample/ - fixes unit-test compilation
"frame" in #include file-names was replaced, this actually renames
the files to follow suit.
2017-09-19 05:37:58 +02:00
Paul Davis
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Paul Davis
68e57101ad fully remove diskstream code 2017-09-18 11:40:53 -04:00
Paul Davis
c05cfe3328 merge AudioDiskstream playback code into DiskReader 2017-09-18 11:40:52 -04:00
Robin Gareus
5cfb5dbd4c Bump session file format (pre 6.0)
* latch automation
* logarithmic interpolation option
2017-09-18 11:40:52 -04:00
Paul Davis
0c035778e1 libardour now has CoreSelection object to manage selection status of Stripables and AutomationControls 2017-05-05 18:56:25 +01:00
Robin Gareus
7a489dd553 Add a ReadOnlyControl parameter abstraction
This allows to pass a sperici Controllable alike instance around without
relying on directly exposing the Plugin instance and parameter-id.
2017-04-12 21:14:46 +02:00
David Robillard
875b1367b2 Factor out and extend MIDIXML implementation 2016-12-03 15:18:20 -05:00
Robin Gareus
cf1651e6d7 consolidate VSTState functions 2016-11-15 17:10:13 +01:00
Robin Gareus
5dc2497100 rework 8e3b6c9ac (fstwin is C code, not C++) 2016-11-15 02:49:41 +01:00
Robin Gareus
8b93fb02f3 Mac VST-2.x support 2016-11-13 16:35:06 +01:00
Robin Gareus
99e9382cdb Unit-tests to check Lua session+DSP scripts 2016-10-11 00:00:52 +02:00
nick_m
af289cab62 Remove unused methods, add tests to ensure meter divisors don't mess with Beats.
- TempoMap::framepos_minus_beats() was only used by its test,
	  so don't build the test.
2016-10-02 03:55:18 +11:00