Ardour 6.0-pre0

Ardour is an audio processing and editing application. It integrates broad hardware support, JACK and ALSA backends, flexible recording features, multi-channel nesting, import and exporting various file formats, comes with ready to use samples from freesound.org. It has a pretty editing UI, mixing, routing, monitoring, panning. Ardour allows non-destructive and non-linear editing, can be used for augmenting audio layers in video files even. And comes with many effect, input and output plugins. It's open source, but asks for donations on the download page for prebuilt binaries.

Tags c audio editor jack multimedia music soundtrack conversion mixing audio-processing audio-effects sampling midi
License GNU GPL
State stable

Recent Releases

6.0-pre019 Sep 2017 10:45 minor feature: Namespace PBD::RingBuffer. Update GUI, PBD::Ringbuffer namespace. Add libzita-resampler as lib. NO-OP: whitespace. ALSA Backend: Separate Device Reservation into its own class. Prototype using additional ALSA devices (w/resampling). FP8: call directly into session. Revert "Temporary session-format compatibility (revert before release)". Add support for Latch Automation. GUI support for Latch. Initial support of Latch for some ctrl-surfaces. Add TouchChanged signal (and re-indent). Bump session file format (pre 6.0). Totally crude mockup of new disk_io.h header. Add basic data members and methods for adding an explicit size alloca?. Crawling towards the APIs for separate disk i/o. Merge AudioDiskstream playback code into DiskReader. Two additional AudioDiskstream methods, partially commented out now. Merge MidiDiskstream into DiskReader (playback parts). Move ChannelInfo structure from DiskReader into DiskIOProcessor. Move need-butler from DiskReader to DiskIOProcessor. Remove duplicated (in heirarchy) loop location from DiskReader. Merge almost all audio midi diskstream code, redistribute between D?. Mega-commit to save state of first "it compilesand links" state for s?. Remove Session::track_by_diskstream_id(). Add DE::DiskIO. Remove now-non-existent method from Lua. Remove Diskstream from Track and derivatives; get ardour to actually ?. Random changes required to get an audio track created and transport f?. Fully remove diskstream code. Reinstate input monitoring function. Nothing to do anymore at the Track level when input config changes. Addd more DE_TRACE for DiskIO; set DiskIOProcess::_need_butler mor?. Save processor type for Disk Reader,Writer . Correctly create Tracks, not Busses. Remove deoutput. Get diskreader working, and remove per-track varispeed API and mechanism. no more per-track varispeed. Remove all remaining vestiges of per-track varispeed from libardour. Manual for various XML API changes in master, required after re?. Don't crash when recordi
5.1215 Sep 2017 07:25 minor feature: Revert "Revert ongoing SessionDialog changes for 5.11 release.". Complete Lua-binding dump (after 8eb3b9d). unit-test data (XML attributes changed). Expose enums used in RCConfig and other missing classes to Lua. SessionDialog: hide created-with column in Ardour, use a tooltip. Check major session file format version. Update GUI, session-format notifications, skip unusable in recent list. Catch some exceptions during session loading. Templates: Dim the border around template description text. Templates: dialog tweaks. Templates: unintended commit from deging. Track Templates: initial lua backend support. Track Templates: redesign of Add Track dialog. merge error. NO-OP: whitespace scope. Add an example script for prototyping. Track templates: add some (unfinished) template files. Hide Created-W?. Some initial track templates. Track Templates: shorten some of the track names. Consolidate add/track/route/bus wrappers -- step one. Expose Lua bindings to create/delete VCAs. NO-OP: whitespace. NO-OP: whitespace scope. Initialize an uninitialized variable. typo in 952b8e1. Push user track-templates to the template list. MIDI Quantization for internationalized Ardour. quantization end-grid size. strip / from displayed path when printing bindings to HTML. NO-OP: whitespace. Add luaRef is Boolean. Redesign Session+Route Template Meta Script API. amend e0a83a7 RouteDialog + script details. Remove old destructive API (non layered is a dynamic mode) 1/2. Remove old destructive API (non layered is a dynamic mode) 2/2. Add Lua binding to un/assign VCAs. Update Route-template example script documentation. prh: Added version 1b of my Mixbus Mix controller. Templates: aesthetic tweaks. Templates: first stab at a dialog with tabular layout. Templates: basic support for columns in the script dialog. Templates: Mostly working tabular script. Lua may call C++ functions with throw. Catch them. Lua may call C++ functions with throw. Catch them. NO-OP: whitespace. Revert non "aesthet
5.1116 Aug 2017 05:45 minor feature: Rationalize Editor Zooming: make it harder for user to step into ridi?. Editor Summary: Tweaks. Editor Summary: likely for crash-on-quit. Editor Summary: thinko in initial value. CursorZoomDrag rework: Allow adding tracks w/o running backend. Don't try to rename the route template state dir if it doesn't exist. Set the name of the route in a route template to the template name. Rename the route in a route template when renaming the template. Editor Summary: Don't require user to re-click to scroll + zoom. Select the clicked route in the current mixer strip. Equivalent for #7429 for the mixer. crash when renaming track to an invalid name. Non-layered MIDI recording. Add automation button to VCA strip. Amend c242cbc (VCA automation button). Properly propagate TAV TimeSelection. Increase range of a-comp#stereo release time. OSC make all group dispositions the same. Editor::playhead_forward/backward_to_grid snaps even in magnetic mode. Add missing braces to Editor::cut_copy conditional. both note length setting and display in EditNoteDialog. Remove double-nested reversible command when note editing. Call Editor::abort_reversible_command() in MidiRegionView::abort_comm?. Rework time info box updates on region selection change. Time info box updates its length display correctly over a tempo change. Indicate musical position lock style of regions and locations using B?. Check for identical meter positions in old sessions by beat rather th?. various wrt BBTRulerDrag. Remove duplicated tempo curve colour change when dragging. Only add a new tempo or meter on click if the primary modifier is pre?. Disable tempo end/twist drag for meter-locked tempi. time selection undo for multiple time selections. Cropping a single region to time selection works for multiple ranges. Rework region selection XML. incorrect double-snap when moving audio-locked tempi. Remove redundant beat arg from TempoMap::add_meter. Move some duplicated replace/add tempo section code. TempoMap : Remove old so
5.1016 Jun 2017 06:05 minor feature: It might not be obvious why... but 'ARDOUR::ControlProtocol::name()' ?. OSC: combine two identical if() statements. OSC: added automation name feedback. Set Display Name for OSX/macOS. remove unused variable. OSC: Add /strip/fader/touch. MCP: map the well-known EQ knobs more explicitly, not heuristically. MCP: with strip "select" buttons that stayed stuck on. OSC: Add fake timeout based touch. OSC: Catch case of surface sending fader move before touch. libhid compile with /recent/ libc (GNU_SOURCE). OSC: c++98 mistake. OSC: Further so multiple controls can touch at once. failure to laod old tempo maps. Remove dead assignment in MiniTimeline::draw_edge. Remove dead assignment in Editor::metric_get_bbt. Use correct variable in BasicUI::jump_by_seconds. Use braces in BasicUI::jump_by_seconds(). Use braces in BasicUI::jump_by_bars(). Remove dead assignment in Editor::export_audio(). Remove unused header file in gtk2_ardour. Tempo sections with a BBT start XML node are never ramped. Sort tempo map after legacy sections have been assigned a pulse. Remove old jack_utils.h header that was moved to the JACK backend. Accommodate recently removed source(s) in our MSVC project (gtk2_ardour). OSC - make /strip/list accept a parameter like everything else. OSC add feedback for extra comp and eq controls. OSC: Added lpf and hpf controls for freq,enable and slope. OSC: return value for successful touch. Include ParameterDescriptor in read-only control output. Implement basic AU parameter-printing. Pretty print control-outputs in generic-UI. Always create a deep copy of MIDI regions when copying playlists. Use correct property names for Editor transport controllable state. Use correct property names in Meterbridge::get_state(). Remove attempt to retrieve invalid Meterbridge properties. Use correct names when setting MidiTrack properties. Use correct property name in generic MIDI surface. Remove normalization of property names from libpbd xml code. Use string concatenation and PBD::t
5.915 May 2017 09:45 minor feature: Use PBD::to_string instead of std::ostream when setting up video serv?. Use PBD::string_to/to_string in IO::find_possible_bundle. Remove unused header include in ARDOUR::Amp source file. Use PBD::string_to/to_string when de/serializing in AutomationList class. Use PBD::to_string() from pbd/string_convert.h in JACK utils. Use PBD::to_string() from pbd/string_convert.h in ardour ALSA utils. Use PBD::to_string API from pbd/string_convert.h in AudioTrackImporter. Use PBD::to_string API from pbd/string_convert.h in AudioFileTagger. Use PBD::to_string/string_to in ARDOUR::ElementImporter class. Use XMLNode::get_property in ARDOUR::ElementImporter. Use PBD::to_string from pbd/string_convert.h in ARDOUR::ExportFilename. Use PBD::string_to/to_string in ARDOUR::user_config_directory_name(). Use PBD::to_string from pbd/string_convert.h in ARDOUR::VCAManager. Use PBD::to_string from pbd/string_convert.h in WaveView decode. Use PBD::to_string() from pbd/string_convert.h in ControlSlaveUI. Use PBD::to_string from pbd/string_convert.h in ExportTimespanSelector. Use PBD::to_string from pbd/string_convert.h in MeterStrip class. Use PBD::to_string from pbd/string_convert.h in MixerStrip class. Use PBD::to_string from pbd/string_convert.h in RouteTimeAxis. Use PBD::to_string from pbd/string_convert.h in SoundFileBox class. Use PBD::to_string from pbd/string_convert.h in VCAMasterStrip class. Use PBD::to_string() from pbd/string_convert.h in VCATimeAxisView. Remove PBD::to_string() function from pbd/convert.h. Use std::string::operator+() instead of string_compose template in Ro?. Use std::string::operator+ instead of string_compose in VSTPlugin. Use PBD::to_string() in LV2Plugin instead of string_compose for state?. Use PBD::to_string to set state-dir property in LV2Plugin. Add additional PBD::string_to/to_string specializations for PBD::ID. Use PBD::to_string in AutomationTimeAxis instead of boost::lexical_ca?. Use size type for Playlist sort id as it is serialized. Use PBD::string_t
5.804 Mar 2017 06:45 minor feature: Crash caused by thinko in 123fcf3. Crash caused by trying to connect monitor section before it has p?.
5.727 Feb 2017 15:25 minor feature: Update Japanese translation. credit where credit is due. missing position property in MidiRegion::clone(). 'snap to beat' havoc-causing misplaced bracket. latest Czech translation for libs/ardour, from Pavel Fric (December 2?. remove unused background expose. Update scripts for API change in 59daffe. update email address. new implementation of move-selected-tracks. reinstate ensure-time-axis-visible after move-selected-tracks. Prepare record with count-in action. GUI action Transport/RecordCountIn. Clarify session property (now that there's an action). Reset window-size when switching between custom and generic plugin UI. lua-doc (Null pointer c'tor doc). update luadoc tool (new manual website system). Add missing bindings (after 59daffe). Update Lua script - API change after 59daffe. Another update for Lua-documentation (new manual.ardour.org). NO-OP: whitespace. Save/restore location clock mode. Separate MSB/LSB MIDI Bank select. unconditionally set region quarter note in set_position(). Don't copy-construct MusicFrame, pass const reference. Add Lua bindings for plugin re-ordering. Example lua script to re-order/reverse plugins. loading of 4.x sessions with a missing initial tempo section. Allow bundling suil/qt4,5 using system-wide QT. tentative steps in trying to region action sensitivity. classify all region actions based on how they get a list of regions t?. use leave/enter from track canvas to be the primary driver of region ?. simplify arguments to Editor::sensitize_the_right_region_actions(). constrained region drags across tracks (7242). amend 32248b7 (legacy tempo map). improve logic for region action sensitivity settings. check region action sensitivity from two more places that may alter it. Properly update main window-title. Better solution 213cc1d. Prevent "punch" and "mon" buttons from increasing toolbar height. Toolbar spacing: Add back one pixel of vertical padding, and preserve?. route ordering (mixer TV lacks master-bus). initial order-keys when
5.611 Feb 2017 10:25 minor feature: GUI: use new preroll-rec + trim mode. Update monitor section controls when channelcount changes. Relax monitor-section processor channel restriction. Allow to change metronome level via mouse-wheel. Metronome level preference display. Add delete x-run marker script. Remove use of boost::optional to define "undefined" Canvas::Rect, and?. Ancillary change related to removal of boost::optional. Scale default Atom Ringbuffer size with samplerate. Oddities when replacing VST-presets. Add a note. Plug a memory leak (recent session list, session info). Yet another pane pain: allow deleting children using forall_vfunc. Plug some libardour memory leaks. MIDI leaks -- the Controllergate conspiracy debunked. Remove cruft. Free some one time alloc of the UI (cleaner valgrind output). Plug some mixer memory leaks. Breathe at exit: allow event-loops to clean up. Free dead request-buffers. Reap invalidation records. Leave some notes about memory-leaks. Elaborate valgrind options. a -Wformat. Remove cruft. Extract program version that a session was created with. Update UI, new info API, display created_version in tooltip. Allow Lua bindings up to 10 args. Instrument channel option when adding track. GUI follow up for new-MIDI-track API change. Instrument insert options: Add GUI part to immediately fan-out multi-out instruments on track cr?. Update bbe62da - use last-modified-with, strip git-rev. Show last modified in recent-list. Update metronome tooltip on gain change. Translatable Metronome tooltip, formatting and typo. Don't inhertit "last modified" for snapshot. Parse modified-with for up to 5 snapshots. SlavableAutomationControl::get_value(), if doing automation playback,?. Amp is the one place where we generate a per-sample vector for automa?. Remove decruft from wscript for push2 that breaks with python3. Use SSE/AVX for scaling gain automation buffer via masters' value. Don't repeat-hard-code names for 3 automation types. LuaBindings: prefer shared_ptr over weak_ptr. Lua ad
5.501 Dec 2016 11:25 minor feature: Midnam replacement: Extend Mixbus' "Safe Mode". Crash when instrument instantiation fails on track creation. OSC: Make Aux buses able to be separate. Update lua script to follow API change (bb459a2). Prevent infinite loop when calculating tick marks on low zoom levels. LTC-generator 24h wraparound. Make ControlProtocolManager actually handle control protocols that fa?. Drifting Master hopefully for real this time. OSC: default strip types to include Auxes. One more piece to the moving master puzzle. LV2 state:StateChanged URI. Set session dirty if tracks are reordered by user. Make auto track naming make a bit more sense. Honor VST "Synth" Category for now. Remove dead code. Support multiple readers for MIDI source/model. Another lua DSP example. Parse PortGroups into Plugin::IOPortDescription. Grow luabindings. Prototype script to fan out instrument outputs to busses. NO-OP, explanatory comments. C++ implementation of fan_out_instrument.lua. Don't ship fan-out instrument lua script (but keep it as example). Add AU support for output-channel/bus grouping. Check and link to the pangoft2 module with a mingw build if it exists. For conflicting definition of _xgetbv with mingw-w64 = 5. Use better deoutput in PortaudioBackend. #include in a couple of places. Revert "update lua script to follow API change (bb459a2)". Refactor tempo api, include quarter-note distance in frames method. MidiRegion _start/_length beats are frame based only when lock style ?. Rename Region pulse to pos_beats. use new beat distance api where req?. Clamp setting tempo via vertical drag. Add some documentation for TempoMap. Remove public pulse methods from TempoMap. Remove remaining frame api from TempoSection. More documentation in tempo.cc, constant in pulse_at_tempo_lo?. Tempo.h reorganization. should be a no-op. Remove unused TempoMap::tempo_at_beat(). implement unused tempo_at_qu?. Lock error in empoMap::quarter_note_at_bbt_rt(), expand constant ?. More tempo documentation. Remove comment
5.402 Oct 2016 19:25 minor feature: Add support for LV2 #coarseBlockLength and #enabled. Update a-plugins to use official lv2plug.in URI. Give the Windows MMTimer test a better chance of passing. Add test for PBD::canonical_path on Windows using utf8 strings. Copy UTF-8 test strings from libpbd tests into libardour test utils. Add test to create new Sessions with localized names and reopen them. Move PBD::canonical_path to pbd/file_utils.h/cc and reimplement for W?. PBD::canonical_path will no longer throw so change test. Add API to create tar.xz archives. Fully restore ARDOUR::SoloControl state. Fully restore ARDOUR::SoloIsolateControl state. Fully restore ARDOUR::SoloSafeControl state. Restore ARDOUR::MuteControl state. Initial support for archiving sessions. GUI support to archive session. Add missing files. LV2 State Flags for Atom:Path. Add a SndFileSource c'tor to create.flac encoded file for archiving. Add API to change FileSource path in-place. Add a static flag to force writing LV2 state. Add option to flac encode audio when archiving. GUI updates for archiving sessions. Report archive encoding progress. Update Archive GUI: expose audio-encoding, set progress text. Gain controls are supposed to be "gain-like". PortManager::silence() should not clear data in AsyncMIDIPorts. Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour). Remove _midi_regions_use_bbt_beats from Session, _start_pulse and _le?. Where drawing long notes placed the new note on the previous ?. Make bundle DSP URI configurable and version/variant independent. a typo. Add an option to exclude unused Audio Sources when archiving the session. GUI option to Exclude unused sources. Update default URL to follow harrison website restructuring. Detecting.flac format. Hide unfinished "Archive" feature for 5.4 release. Match new with delete . Adjustments to build nascent push2 surface support. Various for push2 support. Now setups video display when enabled. Remove duplicate/unnecessary header inclusions. Push2: po
5.331 Aug 2016 01:05 minor feature: Ardour 5.3 is almost entirely a bug fix release that corrects a number of issues noticed and corrected since 5.1. There was no 5.2 release, due to a mistake during the release process. Fixes: Ensure click free bypass for all a-* plugins. Enable normal operation when using an audio interface on OS X that is split into two "halves" (playback and capture), both with the same name. The Behringer UMC22 is one such device, but there are others already known to use this wierd and poor design. Our assumption is that the device(s) do not use the same sample clock for playback and capture. Improve layout of a-eq GUI. Update CC automation menu on when track selected channels change. Building with support for Windows-VST on Linux now works again. Correct "focus-on-clock" behaviour (bound to keypad divide key by default). New Stuff: Extend lua bindings (processor selection, plugin-info). Single action/button punch in/out feature (available for control surface use or via shortcuts).
5.126 Aug 2016 06:25 minor feature: allow to manually override gcc ABI selection in the installer. path to glibmm that we check. check for null pointer in Locations::remove(). revert 388a8fc; prefer gcc4 if we can't determine the ABI. Another step towards gcc-ABI detection when installing as root. add RMS region normalization option. tweak strings now that 5.0 is out. Nobody expects the LV2 inquisition!. Add "Marker Toggle" #5193. add nstewart to authors. Allow negative return in TempoMap::beat_at_frame() and its exact_ var?. Audio-locked midi region. Always send start property changes when a midi region trim alters pos?. Ensure positive length whan drag-adding new midi region. Ensure BBTRulerDrag operates within the tempo map. Ensure RelevantModifierKeyMask is updated on each modifier change. Resolve potential ambiguity between the constraint modifier and the c?. User Interaction pref shows the push points modifier in the 'beginnin?. Add a new modifier combination that allows overlap with snap-related ?. Choose some non-overlapping defaults for User Interaction modifier keys. Sync User Interactoin tooltips with new default settings. Remove assumption that the meter starts at frame 0 in Editor::apply_m?. Don't call any Transmitter from realtime context. change PBD::Transmitter code to use PBD::Signal not sigc::signal,?. edit text regarding the "required" nature of JACK during installation?. Expose Stripable Color Ordering API to Lua. Enforce rounding to beat as = 0.0. frame-based beat calculation in MidiRegionView::snap_frame_to_gri?. Midi region ghost note uses beat-based note time calculation. Add missing line feed in midi_region_view.cc. allow constrained-drag of MIDI notes to work. Re-enable luabridge addProperty(). expose SessionConfiguration as lua bindings. allow for whitespace in XDG_DESKTOP_DIR. add some missing enum bindings (for config variables). extend lua-doc to show properties. turn comments into doxygen doc. copy/paste typo in bc0bb6c. Also send lv2:timePosition whenever BBT or Temp
5.013 Aug 2016 04:27 major feature: Ardour 5.0 is now available for Linux, OS X and Windows. This is a major release focused on substantial changes to the GUI and major new features related to mixing, plugin use, tempo maps, scripting and more. As usual, there are also hundreds of bug fixes. Ardour 5.0 can be parallel-installed with older versions of the program, and does not use the same preference files. It will load sessions from Ardour 2, 3 and 4, though with some potential minor changes.
5.0-rc210 Aug 2016 08:25 minor feature: thinko-typo in SoloControl::soloed_by_others(). initialize uninitialized variable. whitespace. OSC: MB spelling mistakes stopped compile. OSC: eq bands off by one. GenericUI: replace ComboBoxText by ArdourDropdown. GenericUI: only connect one PropertyChanged callback. GenericUI: move up filepath property handling. GenericUI: add a sanity-check for FileChoosers. GenericUI:Β don't add all inputs to automation vector. GenericUI: replace early return by an else. GenericUI: remove duplicate connection to signal. GenericUI: replace if() by assert(). GenericUI: disable super rapid timer for input controls. GenericUI: Show automation UI for dropdowns. GenericUI: Update all input controls on preset load. OSC: make send enables work in MB. 2016-07-29 Update zh.po for Ardoru 5.0. Don't compress linux bundle, compress installer (with xz). make makeself compression options optional. prepare installer for multiabi bundles. Make monitor detection reuse the port name translation. Update French translation. and now with proper bash syntax. yet another multi-ABI bundle installer. Update Spanish translation. Update clear-gray-ardour.colors. Use S_ macro when comparing modifier names in User Interaction Prefer?. Update clear-gray-ardour.colors. validation of midnam files. Add some controls for the Waldorf Blofeld. possible ringbuffer overflow. Support LV2 log trace messages. Support thread-safe LV2 state restoration. state features array. Remove duplicate setters that don't affect the outcome. Remove redundant condition. Be more tolerant to missing values or errors in io_config(). make Session::get_remote_nth_stripable() ignore hidden stripables unl?. ptformat: Decrypt ptf files exported from ptx sessions. include XT plugins with Ardour bundles and x42 on OSX/Win. if we can't determine the gcc4/5 prefer the new gcc5 ABI. add a wrapper to launch the vst-scanner manually. add support for VST default values (instantiation time value). workaround changes in glibmm 2.49.x. add a "Pin Manage
5.0-rc130 Jul 2016 02:05 minor feature: Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour). With solo-in-place. do not delete MIDIControllable when dealing with pending MIDI Contro?. a more reliable/robust/less complex version of previous commit. Properly handle meter channel count changes. Invalidate meter-color cache when midi channel count changes. Remove the temporary note group in MidiRegionView, update start trim ?. Make Region's _beat a PBD::Property. Add a lua timer callback signal. Add a script to exercise varispeed playback. Retain desired samplerate when switching backends. Rework FFT-graph, add pointer-position annotations. Add a ToDo note for after string-freeze. Make the trim knob on busses show only if there is audio. Kilo is a lower-case 'k'. Export rate formatting: Some more (untranslatable) lower case kilos. Gtk2_ardour: update UK English localisation. Libs/ardour: update UK English localisation. OSC: Make pan controls work properly with MB too. Prepare region RMS (loudness) normalization. Some spelling inconsistencies. Plugin Analysis: show numeric values on mouse over. Frequence display for plugin analysis mouse over. Crash in preferences dialog if lv2-extended is not defined. Add a timeout to flush_pending(). Add some flush_pending timeouts. The endless quest to plug memory leaks -- episode 378. The endless quest to plug memory leaks -- episode 379. Plugin spectrum analysis: plot A/B. Improve shuttle control response when grabbed. Another attempt to playhead position with varispeed. 32bit compat (amend 90a67d0). Make a right click on metronome really show click preferences. Add initial midi sidechain if plugin has one. Add Sidechain change handler for automatically added initial SC ports. Factor out and simplify the search by components in options tree. When showing a prefs pane, select the row in the tree. Add missing locale guard for luadsp preset loading. pt(_BR) update for gtk2_ardour from Marcelo Teles. OSC: Remove redux control. OSC: forward detection to in
5.0-pre124 Jul 2016 17:05 minor feature: Ordering thinko in note selected colour. Quick to get trim working again (bahaving oddly during trim right?. Improve performance of automation range moves. Show correct bbt representation of region length in region list. Make TempoMap::bbt_at_frame() more efficient. Temporary work-around for note colour. Add Note::set (Rect) for optimisation purposes (minimise begin/end ch?. Use Note::set (Rect) for speed improvement when rendering notes. Avoid the use of dynamic_cast in TempoMap for performance improvement. Only update midi regions having a playlist after tempo map change, fi?. Exact beat for added regions. Restore earlier midi region trim display. Note trimming over tempo changes, correct note length properly wh?. Make bbt ruler visible in default session. Remove extra ContentsChanged signal on tempo map change. Editor region list only updates columns that have changed. AudioRegionView - don't do coverage frames unless we're in stacked mode. AudioPlaylist doesn't double-notify that contents have changed if bou?. Experimental patch to ensure playback buffer bounds use minimal beat-?. Use frame-based (non-exact) beat calculation to set new start in midi?. Bad comment. Back to using exact beats for midi region start_beats calculation whe?. Broken meter manipulation in exact_beat. Indicate meter frame even when adding a music-locked meter from the gui. Check meter/tempo section exists in copy drag. Fail properly when adding a new audio locked meter's tempo. Stop passing references to things that may disappear when a metric se?. Missing tempi recompute, improve adding meter/tempo failure. Long-standing spelling. Tempo map updates. Simplify Editor::mouse_add_new_meter_event() a bit. Use exact beat when adding midi notes. Midi note resizing uses exact beat. Missing note divisor when creating regions, ensure an existing mu?. Always set the musical position in Region::recompute_position_from_lo?. Edit note dialog. Minimise duplicate calls to CairoWidget::set_dirty() in the
5.0-pre002 Jun 2016 13:05 minor feature: Make GUI fader positions reflect VCA master values. Add GainControl::slaved() predicate. Rename GainMeter::gain_adjusted() to GainMeter::fader_moved() to be m?. Adjust logic for slaved faders, not necessarily correctly. GUI modifications to improve VCA strips and their placement in the mixer. Restoration of editor pane positions. Add VCAMasterStrip::set_selected(). Probably get the design of VCAs basically correct: use a per-master r?. Revert GainMeter back to simpler code now that VCA model appears correct. Change master-record management to use std::map to avoid const iterat?. Ensure that GainControl::get_value() never returns Config- get_max_?. Add solo/mute logic to VCA masters. Add solo/mute controls to VCAMasterStrip. Add GUI support for slaving VCAs to other VCAs. Ambiguity in VCA constructors. no self-assign for VCA masters. Incorrect selection of all strips/tracks at opening. Deadlock caused by VCA= VCA slaving and set_state(). Correctly restore VCA-VCA slave/master relationships at session load ?. Update VCA assign buttons to show status for VCA strips. Redesign Route and VCA objects to inherit from ARDOUR::Stripable. Use redesigned Route and VCA object architecture/API. Use redesigned Route and VCA object architecture/API. VCA solo and mute controls need to call AutomationControl::set_value(?. Save+restore VCA counter value across instances. Add required header. Don't increment actual VCA counter when saving session state. Move VCA assignment up to Route level. Move vca assignment up to the Route level. Session API changes to enable VCAs to set soloed-by-upstream on assig?. Remove VCA active button. Trivially change API of GainMeter but more importantly don't show met?. Follow session track-number policy in mixer strip, as is done in the ?. GUI tweaks for VCAMasterStrip, including renaming. Start adding a context menu for VCA strips. Change master records in GainControl to use AutomationControl. Redesign control slave/master system, move code from GainC
4.719 Feb 2016 12:45 minor feature: Initialize Editor::clicked_selection to prevent programming error dia?. Center the playhead for stationary_playhead playback. Use visible playhead location for editing during a jog-wheel event. Editing from a control surface must have the ability to ignore mouse ?. Make Send button light appropriately. Mackie: improvements to display when switching subview modes. Prevent bank/channel switching past the end of the available routes; ?. Buses and Auxes are slightly different view-filters in Mixbus. Device-list update concurrency. Add new API to Route to get name of "well-known" nth-send. Mackie: display of send level value. Mackie: use Route::send_name() rather than Route::nth_send(). Mackie: don't overload "Audio Instruments" and "Instruments" buttons. Mackie: Global View button function. Added Behringer X-Touch device files. Mackie Protocol: HasSeparateMeters flag for X-Touch devices. Another attempt ing crash at exit on windows. Mackie: redesign display logic entirely. Button::AudioInstruments should not be lit without good reason. Mackie: in Sends subview mode, the enable control for the send should?. Add new Route API ::master_send_enable_controllable() to provide gene?. Mixbus: vpot press in non-subview mode should toggle master bus send. Mixbus: don't assert(ch_post()) in case we use various methods on "od?. Mackie protocol: More LED indicator. Mackie: make group button (appear) to do something. NOOP: change brace placement to avoid confusing emacs. Mackie: if a subview mode is not OK because there's no selection, sho?. Modify Selection API to provide (default-valued) "with_signal" argume?. Use new selection API to avoid double signal when a track or tracks a?. Mackie: initial attempt at making automation-related buttons set fade?. Mackie: basically (fully?) operation fader automatio control for firs?. Mackie: remove mention of "blinkers" concept. Surfaces with separate meters should meter even when stopped. Add track select buttons to Launchkey map. Mackie prot
4.612 Jan 2016 03:16 minor feature: Compilation of debuilds. Warning message typo. Name ALSA midi ports after device.
4.420 Oct 2015 20:45 minor feature: Update AU GUI positioning and resizing. Avoid calls to Glib::ustring
4.315 Oct 2015 10:05 minor feature: Add missing space. ..and another packaging typo. Accept/ignore --gcc5abi option during packaging. Mixer group-tab width - #6572. Update semantics of PBD::remove_directory(). Export directory browser dialog when clicking on 'Cancel' butto?. LV2 state cleanup, patch from deva. Sort ports in state-save. Add deva to authors. Mixer-strip name context-menu cleanup. Remove cruft. Remove outdated limiation. Long options of gcc-glibmm-abi-check. Add new action and loop marker menu item for setting up loop record. Session::disable_record() should work whether we are in loop mode or not. Loop record is a feature whether or not loop-is-mode is true or not. Move code location where loop playback is cancelled when stopping. a long-standing arising from a change to some logic which rev?. Minor for possible off-by-one logic when at/near the end of the l?. a few new DE_TRACE calls related to session transport state. The logic of the GUI "toggle roll" action as it pertains to loop ?. When editing an audio clock, swallow illegal keys rather than allowin?. Change the way the audio clock cursor is drawn (somewhat of an experi?. Change semantics of 4th argument to Session::locate to mean "this loc?. Better more reliable checks on renamed, newly created and imported tr?. Get loop recording working when using seam-ed looping. Revert "add new action and loop marker menu item for setting up loop ?. Const-ness. Initialization of reserved I/O names vector. Introduce Ctrl+Shift+Click on lock solo in the mixer. Merge branch 'chaot4-_lock_solo_ctrl_shift'. Change clearlooks style file so that small_entry and related styles u?. BWF USID according to EBU-R99. Revert "change the way the audio clock cursor is drawn (somewhat of a?. Mackie control metering. Set waveform height depending on Layer mode. Midi tracer to show MSB too. is there a better way to make gcc+enumwriter happy?. Split Butler::flush_tracks_to_disk() into two distinct versions with ?. Remove apparently bogus adjustment to capture_ca
4.214 Aug 2015 03:15 minor feature: separate solo isolate into two components (self-solo-isolate and solo?. ctrl-shift-click on solo isolate now enables AND disables solo-isolat?. rework AU scanning/discovery. Possible fix for http://tracker.ardour.org/view.php?id=6332. Revert "Possible fix for http://tracker.ardour.org/view.php?id=6332". prevent multiple concurrent plugin scans. clarify splash message (plugin scan/discover). remove ?Refresh? button in Plugin manager. offer to scan for plugins at first start. merge fix. merge fix again. reworked variant of john?s soundfile locale fix. print name instead of ID for skipped AUs. do not carry out a size check on peakfiles for files still being reco?. Minor changes to ensure that MSVC knows about 'CaptureStackBackTrace()'. OSX 10.5/PPC compat. fix compilation w/o posix_malign. another OSX/PPC fix. amend 7a3280b, fix typo. configure Analysis Plugin. plugin analysis set block-size. copy AU parameters with plugin. use power of 2 log-scale for parameters. fix auditioning on systems with larger disk read chunk sizes. do not call playhead priority (auto-return) code after selections cha?. patches to fix notebook tab tearoff on DnD. bye bye Unix. update system config. VST plugin title. OSX bundle libstdc++ for 10.5 support. amend 674e727. amend a3c21ae, video-server localhost - 127.0.0.1. fix typo in old (pre 10.6) coreaudio API wrapper. OSX: remove unused architectures from xjadeo harvid. avoid llabs ambiguity. amend a73a039, separate VST cache for 32/64bit. signed/unsigned comparison. rename Marker class. don?t bother to set OSX DMG icon on old systems. When peakfiles get opened using a non-glib function (in a non-English?. When saving a session (in a non-English locale) make sure that we use?. When printing an XML related error, guard against NULL pointers getti?. A few more instances of non-glib 'open()' getting used without locale?. coreaudio aggregate device fix for 10.5. VST info: use g_fopen() for Windows compat. tweak OSX packaging. Remove sse optimiz
4.125 Jun 2015 03:15 minor feature: Layering - the return of "later is higher". C/C++ style checking script from erik de castro-lopo, for use in clie?. fix pasted whitespace. whitespace cleanup. add pre-commit hook for optional (but recommended) use. add check for white-space only lines; fix tests to allow for _(...) m?. don't interpret C++ templates with indirection/pointer/reference oper?. catch identifiers ending or starting with _ when checking operator sp?. fix C++ template/operator test. Fix missing undo for audio timefx operations. Fix stuck notes on save during MIDI playback. fix cleanup (code is self-evident). From Yevgeny @ waves. Relative snap. Revert incorrect region_length() definition. Fix typo. Cleanup relative snap code. Relative snap - support magnetic mode (hackishly for now). Relative Snap -make it activated by the tertiary modifier during drag. Clean up drag modifiers. Relative snap now always on - disabled with Tertiary modifier (shift). "Lock" mode is now "Constrained", make sna
4.020 Apr 2015 18:05 minor feature: New graphics engine. Abstracted the audio I/O. Improvements to MIDI editing. A Windows port. Better cross platform support. Ardour now runs on GNU/Linux, OS X and for the first time, Windows. JACK is no longer required, making it easier than ever for new users to get Ardour up and running (though JACK is still usable with Ardour). The user interface has seen a thorough overhaul, leading to a more modern and polished experience.