summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
AgeCommit message (Collapse)Author
2018-12-24Update Convolver/LuaConvolverRobin Gareus
* Add API to allow per-channnel gain and delay * Fix channel-mapping for stereo IRs w/o true-stereo
2018-12-21Fix insert/remove time duplicate automation move -- #7712Robin Gareus
Editor::insert_time(), Editor::remove_time() handle automation directly because time may be inserted to Routes without playlists and combined undo-operation with marker, and tempo-changes. However when the preference "automation_follows_regions" is enabled, the playlist already moves the automation of region under any region (possibly overriding future automation). This resulted in possibly lossy, duplicate automation moves.
2018-12-21NO-OP: whitespaceRobin Gareus
* Remove leading and trailing whitespace. * use tabs to indent, space to align /* prefer C-style comments like this, * always use an asterisk on every line, this * way small ASCII-graphics are always aligned * using spaces after the asterisk. * * ^ * / \ * / \ * / \ * / \ * / \ * / /\ \ * /__/ \_/\_^__\ * A R D O U R * << NO asterisk, there may be tabs :( * */
2018-12-20Amend e4304f3bf, plugin-preset, preset-recordRobin Gareus
2018-12-18Wouldn't it be nice if plugin presets had a description/comment?Robin Gareus
2018-12-16Optimize automation-event process splittingRobin Gareus
Use RCU of automated parameter when looking for next automation event to use for split processing. This speeds up PluginInsert processing when rolling for plugins with many not-automated parameters.
2018-12-16Optimize plugin-processing for non-automated paramsRobin Gareus
Keep a dedicated list of automated parameters to evaluate in realtime. This fixes a performance issue with plugins that have many controls with only few of them being automated.
2018-12-05Prevent endless read of silent filesRobin Gareus
This fixes issues with analysis and archiving that rely on a readable to return 0. Note however that createSilent() uses max_samplecnt (INT64_MAX) by default. This relies on a region setting the length of its missing source.
2018-12-03Special case Mixbus Chanstrip for load calculationRobin Gareus
These processors don't have a UI, so their load stats are not easily visible. The stats can still be queried via Lua API or DSP-load overview window, so we retain this for debug builds.
2018-12-02Don't invalidate AU preset on loadRobin Gareus
This works around async parameter-changed signal emission when loading an AU preset. A simple timeout is used to delay making the preset as modified.
2018-11-28Remove ambiguous API implementationRobin Gareus
* PortEngine::available() implementation * AudioEngine::connected() wrapper Eventually we may re-introduce PortEngine::available along with a libardour internal port-engine.
2018-11-26Fix various issues when the engine disconnects:Robin Gareus
Previously Port::PortDrop was never handled. The signal was disconnected directly when the connection is re-used by Port::PortSignalDrop. Ports::drop() was not called when the engine was stopped or disconnected, and port-handles were not invalidated. This lead to crashes whenever a port-related operation was performed while the engine was stopped. e.g. adding/removing tracks or plugins (latency recompute, notify port-engine) and various other operations.
2018-11-25Fix Linux/PPC64 runtimeRobin Gareus
This fixes an error while loading shared libraries: libardour.so R_PPC64_ADDR32 reloc at 0x... for symbol `' out of range Treating a local as an immediate value in asm code makes the library non-relocatable.
2018-11-23NO-OP: whitespace and re-organizationRobin Gareus
2018-11-23Load audition synth on demandRobin Gareus
This saves some memory (gmsynth loads a 30MB soundfont), and also re-initializes the synth every time to gm defaults in case some .mid changes patches or parameters.
2018-11-22Save LV2 Port Property values locallyRobin Gareus
This keeps track of lv2:Parameter properties modified with Port:Set, currently file-paths.
2018-11-21Allow to revert export-format from diskRobin Gareus
This allows to restore ProfileManager's ExportFormatSpec without re-instantiating the ProfileManager.
2018-11-21Set encoder quality for existing ExportFormatSpecsRobin Gareus
2018-11-20Prepare session-metadata export to external commandRobin Gareus
2018-11-20Implement vorbis encoder qualityRobin Gareus
This also prepares for codec-quality defaults, but ExportFormatSpecification does not yet set those for previously unset or new formats/presets.
2018-11-20Implement FFMPEG/MP3 export-format spec and profileRobin Gareus
2018-11-19Prepare export-format codec-quality settingRobin Gareus
2018-11-19Initial backend support for external export encoderRobin Gareus
This adds an experimental pipe to ffmpeg to encode mp3. Currently quality is hardcoded and various aspects remain to be implemented. However, it is sufficient for initial testing.
2018-11-19Move video-tool paths to libardour (1/2)Robin Gareus
This is in preparation to allow calling ffmpeg, or similar (sox, lame,..) directly from libardour.
2018-11-12Make foldback bus match foldback sends namewiseLen Ovens
to avoid confusion with listener sends or monitor bus
2018-11-12Changed send/deliver role "Personal" to "Foldback" so bus type can matchLen Ovens
2018-11-07get_stripables and get_routelist are now presentationinfo awareLen Ovens
2018-11-07Consolidate VST Plugin InfoRobin Gareus
This unifies common PluginManager VST code to construct *VSTPluginInfo and also provides a dedicated is_instrument() method for VST plugins.
2018-11-07Add support for recording to .flacRobin Gareus
2018-11-04Remove C++11'ismRobin Gareus
While gnu-gcc had `std::map:at const` as non-standard extension it is n/a for older gcc on OSX. Surprisingly this const& p() const; performs a tad better as well, likely due to different exception handling. Perhaps it is also worth investigating boost::flat_map<> as replacement for std::map<>, here. Our common case is just a single entry, so using a std::vector emulated mapping might help.
2018-11-04Fix AudioUnit, missing const in cbef72b8a13Robin Gareus
2018-11-04Optimize Plugin connect & run API, use const mapsRobin Gareus
2018-11-02rename TransportMasterManager::init() to ::set_default_configuration() to ↵Paul Davis
make its purpose more clear
2018-11-02fix crash during first-run configuration of the application, caused by using ↵Paul Davis
an incomplete TransportMasterManager
2018-11-01Create sidechain ports when created from template (#0007680)Johannes Mueller
When a route with a sidechain is created from a template or by route duplication the number of ports of the sidechain are set according to the XMLNode defining the sidechain. Then the names are set according to the name of the newly created route. Thus all the pin connections defined in the template are replicated in the newly created route.
2018-11-01Update names of sidechains.Johannes Mueller
When a PluginInsert is created it does not have an owner right away. That's why a we need to set the sidechains name once the owner is known, in order to include owner's name into the name. Furthermore we need to follow renames of the owner.
2018-10-31Add option to limit automatable control parmatersRobin Gareus
VCVRack VST currently exposes 9999 automatable-control parmaters. This slows down various GUI dropdown lists and dialogs. (even worse: those parameters are not mapped to anything by default). This change allows to limit automatable parameters to a reasonable number, without loosing state of already automated parameters in existing sessions.
2018-10-30Add ListenBus to stripable typesLen Ovens
2018-10-25Fix race-condition/deadlock, plugin-copy while rollingRobin Gareus
lili93's session (#ardour) triggered this w/jackd 512fpp: Drag/Drop copy a latent plugin from one track to another while rolling. The GUI-thread as well as the auto-connect thread concurrently call jack_recompute_total_latencies(). The auto-connect thread holds a process lock while doing so. The GUI does not use any mutexes. This randomly deadlocks in libjack. backtrace: https://pastebin.com/6m3KGhWS
2018-10-21Potential fix for lost VST MIDI eventsRobin Gareus
Ardour's VST MIDI buffer API does not yet implement offsets and limits. When a cycle is split, the same midi-buffer is used for all sub-divisions leading to duplicate, offset, events.
2018-10-21Add plugin version and parameter count to VST user presetsChristopher Arndt
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
2018-10-20Implement basic libardour convolution DSPRobin Gareus
2018-10-20Allow Lua DSP processors to report latencyRobin Gareus
2018-10-19Add personal monitor sendsLen Ovens
2018-10-17Option to hide send if aux is hiddenLen Ovens
2018-10-17correct commentPaul Davis
2018-10-17add new API for retrieving port flags from backendPaul Davis
2018-10-16OSC: personal monitor send hidden follows aux hiddenLen Ovens
2018-10-15Remove a #include and substitute a forward declaration (to simplify and ↵John Emmas
speed up compilation)
2018-10-14fix several inter-related problems with libptformatPaul Davis