ardour.git
7 years agopush2: first somewhat operational versions of menus
Paul Davis [Sun, 10 Jul 2016 12:37:45 +0000 (08:37 -0400)]
push2: first somewhat operational versions of menus

7 years agopush2: basics of 4x 4x4 percussive mode, similar to MPC (and vaguely to Live)
Paul Davis [Sun, 10 Jul 2016 03:26:02 +0000 (23:26 -0400)]
push2: basics of 4x 4x4 percussive mode, similar to MPC (and vaguely to Live)

7 years agoControlOnly port flag is gone
Paul Davis [Sat, 9 Jul 2016 16:21:46 +0000 (12:21 -0400)]
ControlOnly port flag is gone

7 years agoadd Session::get_physical_ports() to centralize "get physical ports but (maybe) ignor...
Paul Davis [Sat, 9 Jul 2016 16:21:32 +0000 (12:21 -0400)]
add Session::get_physical_ports() to centralize "get physical ports but (maybe) ignore control-only (and MIDI Through) ports"

7 years agoremove ControlOnly port flag, since it was essentially unusable
Paul Davis [Sat, 9 Jul 2016 16:20:54 +0000 (12:20 -0400)]
remove ControlOnly port flag, since it was essentially unusable

7 years agoignore control-only physical ports when building system bundles
Paul Davis [Fri, 8 Jul 2016 22:41:15 +0000 (18:41 -0400)]
ignore control-only physical ports when building system bundles

7 years agopush2: use correct selection API
Paul Davis [Fri, 8 Jul 2016 22:17:34 +0000 (18:17 -0400)]
push2: use correct selection API

7 years agopush2: passthru pitch bend, aftertouch and channel pressure from dem fancy pads!
Paul Davis [Fri, 8 Jul 2016 21:53:20 +0000 (17:53 -0400)]
push2: passthru pitch bend, aftertouch and channel pressure from dem fancy pads!

7 years agopush2: connect pad port to selected MIDI at protocol startup
Paul Davis [Fri, 8 Jul 2016 21:46:35 +0000 (17:46 -0400)]
push2: connect pad port to selected MIDI at protocol startup

7 years agochange bundling of Push 2 ports so that the implicit connection ports don't show up
Paul Davis [Fri, 8 Jul 2016 21:39:30 +0000 (17:39 -0400)]
change bundling of Push 2 ports so that the implicit connection ports don't show up

7 years agoadd bundle support to push2
Paul Davis [Fri, 8 Jul 2016 21:10:26 +0000 (17:10 -0400)]
add bundle support to push2

7 years agovarious tweaks to port matrix display logic to try to avoid a few wierd things
Paul Davis [Fri, 8 Jul 2016 21:10:08 +0000 (17:10 -0400)]
various tweaks to port matrix display logic to try to avoid a few wierd things

7 years agoadd MIDI bundles to Generic MIDI support so that the ports show up nicely in the...
Paul Davis [Fri, 8 Jul 2016 21:09:44 +0000 (17:09 -0400)]
add MIDI bundles to Generic MIDI support so that the ports show up nicely in the grid

7 years agoadd PortManager::port_is_control_only() and use it in PortManager::get_ports()
Paul Davis [Fri, 8 Jul 2016 21:09:09 +0000 (17:09 -0400)]
add PortManager::port_is_control_only() and use it in PortManager::get_ports()

This allows us to avoid using "control-only" ports (e.g. Ableton Push 2 hardware ports) as inputs or outputs

7 years agoadd explanatory comment
Paul Davis [Fri, 8 Jul 2016 20:13:15 +0000 (16:13 -0400)]
add explanatory comment

7 years agoremove debug output
Paul Davis [Fri, 8 Jul 2016 20:12:58 +0000 (16:12 -0400)]
remove debug output

7 years agopush2: save and restore push2 pad state, etc.
Paul Davis [Thu, 7 Jul 2016 20:28:15 +0000 (16:28 -0400)]
push2: save and restore push2 pad state, etc.

7 years agopush2: almost fully operational ableton style pad mapping, etc
Paul Davis [Thu, 7 Jul 2016 19:53:19 +0000 (15:53 -0400)]
push2: almost fully operational ableton style pad mapping, etc

7 years agopush2: initial sort of working pad remapping
Paul Davis [Thu, 7 Jul 2016 18:26:55 +0000 (14:26 -0400)]
push2: initial sort of working pad remapping

7 years agopush2: get automatic pad connection to selected MIDI track working again
Paul Davis [Thu, 7 Jul 2016 13:42:26 +0000 (09:42 -0400)]
push2: get automatic pad connection to selected MIDI track working again

7 years agopush2: start of pad layout editing
Paul Davis [Thu, 7 Jul 2016 13:26:06 +0000 (09:26 -0400)]
push2: start of pad layout editing

7 years agopush2: use a map for direct lookup of pad note
Paul Davis [Thu, 7 Jul 2016 04:17:17 +0000 (00:17 -0400)]
push2: use a map for direct lookup of pad note

7 years agopush2: update GUI pad display when octave shift is used, or pad map is changed
Paul Davis [Thu, 7 Jul 2016 04:10:27 +0000 (00:10 -0400)]
push2: update GUI pad display when octave shift is used, or pad map is changed

7 years agopush2: basics of octave shifting
Paul Davis [Thu, 7 Jul 2016 03:49:07 +0000 (23:49 -0400)]
push2: basics of octave shifting

7 years agopush2: add missing files
Paul Davis [Thu, 7 Jul 2016 02:43:34 +0000 (22:43 -0400)]
push2: add missing files

7 years agopush2: basic GUI dialog
Paul Davis [Thu, 7 Jul 2016 02:34:10 +0000 (22:34 -0400)]
push2: basic GUI dialog

7 years agopost-rebase fixes
Paul Davis [Wed, 6 Jul 2016 21:13:05 +0000 (17:13 -0400)]
post-rebase fixes

7 years agomove shadow port stuff from AsyncMIDIPort to MidiPort, where it belongs
Paul Davis [Mon, 20 Jun 2016 19:00:58 +0000 (15:00 -0400)]
move shadow port stuff from AsyncMIDIPort to MidiPort, where it belongs

7 years agopush2: connect first selected track to pad port (and disconnect).
Paul Davis [Mon, 20 Jun 2016 17:47:45 +0000 (13:47 -0400)]
push2: connect first selected track to pad port (and disconnect).

Provisional. Lots of (fun) work to do here

7 years agoexpose AsyncMIDIPort::shadow_port()
Paul Davis [Mon, 20 Jun 2016 17:47:17 +0000 (13:47 -0400)]
expose AsyncMIDIPort::shadow_port()

7 years agoset latency range for shadow port.
Paul Davis [Mon, 20 Jun 2016 16:52:01 +0000 (12:52 -0400)]
set latency range for shadow port.

Not tracked if parent/owner port changes latency

7 years agoFlush shadow port buffer (to the backend port buffer) if filtering wrote anything.
Paul Davis [Mon, 20 Jun 2016 16:49:29 +0000 (12:49 -0400)]
Flush shadow port buffer (to the backend port buffer) if filtering wrote anything.

7 years agoAdd additional flags when registering a shadow port.
Paul Davis [Mon, 20 Jun 2016 16:49:04 +0000 (12:49 -0400)]
Add additional flags when registering a shadow port.

7 years agoadd two new port flags
Paul Davis [Mon, 20 Jun 2016 16:47:26 +0000 (12:47 -0400)]
add two new port flags

7 years agochange PortManager API to allow specifying additional flags when registering a port
Paul Davis [Mon, 20 Jun 2016 16:47:05 +0000 (12:47 -0400)]
change PortManager API to allow specifying additional flags when registering a port

7 years agoremove declaration for non-existent method
Paul Davis [Mon, 20 Jun 2016 16:46:17 +0000 (12:46 -0400)]
remove declaration for non-existent method

7 years agouse modified add_shadow_port API(); make pads flash when pressed
Paul Davis [Mon, 20 Jun 2016 12:31:33 +0000 (08:31 -0400)]
use modified add_shadow_port API(); make pads flash when pressed

7 years agopush2: fix one pad registration detail
Paul Davis [Mon, 20 Jun 2016 12:31:05 +0000 (08:31 -0400)]
push2: fix one pad registration detail

7 years agochange API for shadow ports and filters
Paul Davis [Mon, 20 Jun 2016 12:30:21 +0000 (08:30 -0400)]
change API for shadow ports and filters

Filter functor needs to be set before registering port, so provide it when adding the port.

7 years agoadd a shadow port for the Push 2 port, to allow us to filter pads (note on/off) to...
Paul Davis [Mon, 20 Jun 2016 03:41:53 +0000 (23:41 -0400)]
add a shadow port for the Push 2 port, to allow us to filter pads (note on/off) to other parts of Ardour

7 years agoadd initial implementation of a "shadow port" for AsyncMIDIPort.
Paul Davis [Mon, 20 Jun 2016 03:41:26 +0000 (23:41 -0400)]
add initial implementation of a "shadow port" for AsyncMIDIPort.

The shadow port is a secondary port that can be used to allow others to get a copy of part, all or none of the MIDI
stream received by the owner (input) port.

7 years agopush2: splash screen
Paul Davis [Sun, 19 Jun 2016 16:26:28 +0000 (12:26 -0400)]
push2: splash screen

Coded while the paint prep dries in the sun

7 years agopush2: expose page right/left buttons for scrolling; use right/left for banking;...
Paul Davis [Fri, 17 Jun 2016 22:54:13 +0000 (18:54 -0400)]
push2: expose page right/left buttons for scrolling; use right/left for banking; mute+solo debugging in place

7 years agopush2: stop segfaults when closing push2 support
Paul Davis [Fri, 17 Jun 2016 21:51:02 +0000 (17:51 -0400)]
push2: stop segfaults when closing push2 support

7 years agopush2: numerous changes, including long press actions
Paul Davis [Fri, 17 Jun 2016 19:51:16 +0000 (15:51 -0400)]
push2: numerous changes, including long press actions

7 years agoamend FaderPort code to use BasicUI::goto_start() with optional argument
Paul Davis [Fri, 17 Jun 2016 19:49:06 +0000 (15:49 -0400)]
amend FaderPort code to use BasicUI::goto_start() with optional argument

7 years agoadd a new action to allow surfaces to access Keyboard::close_current_dialog()
Paul Davis [Fri, 17 Jun 2016 19:48:31 +0000 (15:48 -0400)]
add a new action to allow surfaces to access Keyboard::close_current_dialog()

7 years agofix PresentationInfo::flag_match() to match type bits
Paul Davis [Fri, 17 Jun 2016 19:48:13 +0000 (15:48 -0400)]
fix PresentationInfo::flag_match() to match type bits

7 years agochange API for BasicUI::goto_start() to use optional roll-after arg
Paul Davis [Fri, 17 Jun 2016 19:47:47 +0000 (15:47 -0400)]
change API for BasicUI::goto_start() to use optional roll-after arg

7 years agochange Session::goto_start() to take an argument to optionally roll after locate
Paul Davis [Fri, 17 Jun 2016 19:41:28 +0000 (15:41 -0400)]
change Session::goto_start() to take an argument to optionally roll after locate

7 years agoclear button states at startup *and* shutdown
Paul Davis [Fri, 17 Jun 2016 13:32:18 +0000 (09:32 -0400)]
clear button states at startup *and* shutdown

7 years agobasic implementation of scrubbing via push2 touch strip
Paul Davis [Fri, 17 Jun 2016 13:21:29 +0000 (09:21 -0400)]
basic implementation of scrubbing via push2 touch strip

7 years agogain automation implemented.
Paul Davis [Fri, 17 Jun 2016 13:03:26 +0000 (09:03 -0400)]
gain automation implemented.

Push 2 is rather slow to send touch-end messages.

7 years agouse encoders for gain control
Paul Davis [Fri, 17 Jun 2016 12:37:39 +0000 (08:37 -0400)]
use encoders for gain control

7 years agouse right-side buttons to goto_nth_marker()
Paul Davis [Fri, 17 Jun 2016 05:59:01 +0000 (01:59 -0400)]
use right-side buttons to goto_nth_marker()

7 years agoadd method (taken from GTK GUI) to goto_nth_marker() to BasicUI
Paul Davis [Fri, 17 Jun 2016 05:55:36 +0000 (01:55 -0400)]
add method (taken from GTK GUI) to goto_nth_marker() to BasicUI

7 years agobeginning of stripable control; solo+mute mostly operational
Paul Davis [Fri, 17 Jun 2016 05:29:00 +0000 (01:29 -0400)]
beginning of stripable control; solo+mute mostly operational

7 years agoadd shift modifier support
Paul Davis [Fri, 17 Jun 2016 04:32:06 +0000 (00:32 -0400)]
add shift modifier support

7 years agoturn on all buttons that be envisaged as useful in ardour (for now); add support...
Paul Davis [Fri, 17 Jun 2016 04:15:55 +0000 (00:15 -0400)]
turn on all buttons that be envisaged as useful in ardour (for now); add support for edit-range-from-playhead ops

7 years agoremove debug output
Paul Davis [Fri, 17 Jun 2016 03:34:28 +0000 (23:34 -0400)]
remove debug output

7 years agolight solo button, and do cancel_all_solo() when it is pressed
Paul Davis [Fri, 17 Jun 2016 03:31:51 +0000 (23:31 -0400)]
light solo button, and do cancel_all_solo() when it is pressed

7 years agouse new shared cancel_all_solo() in Mackie code
Paul Davis [Fri, 17 Jun 2016 03:31:31 +0000 (23:31 -0400)]
use new shared cancel_all_solo() in Mackie code

7 years agoadd correct implementation for cancel all solo to BasicUI
Paul Davis [Fri, 17 Jun 2016 03:31:11 +0000 (23:31 -0400)]
add correct implementation for cancel all solo to BasicUI

7 years agopulse metronome led when enabled
Paul Davis [Fri, 17 Jun 2016 03:04:23 +0000 (23:04 -0400)]
pulse metronome led when enabled

7 years agoexpand display contents to include TC & BBT clocks, plus button function and track...
Paul Davis [Fri, 17 Jun 2016 02:51:30 +0000 (22:51 -0400)]
expand display contents to include TC & BBT clocks, plus button function and track indicators

So many possibilities, so little time. Really going to need a "native" widget kit before this is finished

7 years agoonly 1 MIDI port needed; more button functionality
Paul Davis [Thu, 16 Jun 2016 21:45:41 +0000 (17:45 -0400)]
only 1 MIDI port needed; more button functionality

7 years agopush2: working bidirectional communication, some transport control/display (LED only...
Paul Davis [Thu, 16 Jun 2016 18:06:16 +0000 (14:06 -0400)]
push2: working bidirectional communication, some transport control/display (LED only); some scrolling

7 years agopush2: working port i/o
Paul Davis [Thu, 16 Jun 2016 14:43:21 +0000 (10:43 -0400)]
push2: working port i/o

7 years agopush2: port registration, LED setup
Paul Davis [Thu, 16 Jun 2016 14:02:46 +0000 (10:02 -0400)]
push2: port registration, LED setup

7 years agoremove duplicate/unnecessary header inclusions
Paul Davis [Thu, 16 Jun 2016 14:01:43 +0000 (10:01 -0400)]
remove duplicate/unnecessary header inclusions

7 years agovarious fixes for push2 support. Now setups video display when enabled
Paul Davis [Thu, 16 Jun 2016 04:07:43 +0000 (00:07 -0400)]
various fixes for push2 support. Now setups video display when enabled

7 years agoadjustments to build nascent push2 surface support
Paul Davis [Thu, 16 Jun 2016 02:41:01 +0000 (22:41 -0400)]
adjustments to build nascent push2 surface support

7 years agoMatch new[] with delete[]
Ross Lagerwall [Tue, 27 Sep 2016 17:22:53 +0000 (18:22 +0100)]
Match new[] with delete[]

7 years agohide unfinished "Archive" feature for 5.4 release
Robin Gareus [Mon, 26 Sep 2016 23:23:20 +0000 (01:23 +0200)]
hide unfinished "Archive" feature for 5.4 release

7 years agofix detecting .flac format
Robin Gareus [Sun, 25 Sep 2016 20:20:08 +0000 (22:20 +0200)]
fix detecting .flac format

7 years agoupdate default URL to follow harrison website restructuring
Robin Gareus [Fri, 23 Sep 2016 21:13:37 +0000 (23:13 +0200)]
update default URL to follow harrison website restructuring

7 years agoGUI option to Exclude unused sources
Robin Gareus [Fri, 23 Sep 2016 18:43:26 +0000 (20:43 +0200)]
GUI option to Exclude unused sources

7 years agoadd an option to exclude unused Audio Sources when archiving the session
Robin Gareus [Fri, 23 Sep 2016 18:34:28 +0000 (20:34 +0200)]
add an option to exclude unused Audio Sources when archiving the session

7 years agofix a typo.
Robin Gareus [Fri, 23 Sep 2016 16:46:34 +0000 (18:46 +0200)]
fix a typo.

Really a no-op, AudioSource::length() ignores the position, and
for regular regions > 0 is equivalent to != 0

7 years agoMake bundle DSP URI configurable and version/variant independent
Robin Gareus [Thu, 22 Sep 2016 22:47:33 +0000 (00:47 +0200)]
Make bundle DSP URI configurable and version/variant independent

7 years agoFix bug where drawing long notes placed the new note on the previous snap line.
nick_m [Thu, 22 Sep 2016 19:06:03 +0000 (05:06 +1000)]
Fix bug where drawing long notes placed the new note on the previous snap line.

- NoteCreateDrag already applies this shift, so it was
  always applied twice to the note start frame.

7 years agoRemove _midi_regions_use_bbt_beats from Session, _start_pulse and _length_pulse from...
nick_m [Thu, 22 Sep 2016 17:39:05 +0000 (03:39 +1000)]
Remove _midi_regions_use_bbt_beats from Session, _start_pulse and _length_pulse from MidiRegion.

- _start/length_beats are now quarter notes regardless
  of loaded session version.

- also restores note colour update

7 years agoAccommodate newly introduced source(s) in our MSVC project (gtk2_ardour)
John Emmas [Thu, 22 Sep 2016 09:54:48 +0000 (10:54 +0100)]
Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour)

7 years agoPortManager::silence() should not clear data in AsyncMIDIPorts
Paul Davis [Thu, 22 Sep 2016 04:02:38 +0000 (23:02 -0500)]
PortManager::silence() should not clear data in AsyncMIDIPorts

This data was generated asynchronously and is not required to be "silenced"
the way that session data would be. Compare also to the similar tests for
sync-related MIDI ports

7 years agogain controls are supposed to be "gain-like"
Paul Davis [Wed, 21 Sep 2016 22:18:48 +0000 (17:18 -0500)]
gain controls are supposed to be "gain-like"

7 years agoUpdate Archive GUI: expose audio-encoding, set progress text
Robin Gareus [Wed, 21 Sep 2016 10:56:20 +0000 (12:56 +0200)]
Update Archive GUI: expose audio-encoding, set progress text

7 years agoreport archive encoding progress
Robin Gareus [Wed, 21 Sep 2016 11:04:25 +0000 (13:04 +0200)]
report archive encoding progress

7 years agoGUI updates for archiving sessions
Robin Gareus [Wed, 21 Sep 2016 02:06:23 +0000 (04:06 +0200)]
GUI updates for archiving sessions

7 years agoAdd option to flac encode audio when archiving
Robin Gareus [Wed, 21 Sep 2016 02:05:45 +0000 (04:05 +0200)]
Add option to flac encode audio when archiving

7 years agoadd a static flag to force writing LV2 state
Robin Gareus [Wed, 21 Sep 2016 01:45:57 +0000 (03:45 +0200)]
add a static flag to force writing LV2 state

This is needed for save-as and archiving, LV2 state may not be saved
otherwise if lilv_state_equals() returns true.

Also if thestate is saved as part of save-as or archiving or
template, the state-version did increase.
Upcoming normal save will reference a plugin state that does not exist
in the current session bundle.

7 years agoadd API to change FileSource path in-place
Robin Gareus [Wed, 21 Sep 2016 01:42:06 +0000 (03:42 +0200)]
add API to change FileSource path in-place

This allows to retain IDs and References of a FileSource, while
changing the actual file under the hood (e.g. from .wav to .flac)

7 years agoadd a SndFileSource c'tor to create .flac encoded file for archiving
Robin Gareus [Wed, 21 Sep 2016 01:40:48 +0000 (03:40 +0200)]
add a SndFileSource c'tor to create .flac encoded file for archiving

7 years agofix LV2 State Flags for Atom:Path
Robin Gareus [Wed, 21 Sep 2016 01:34:43 +0000 (03:34 +0200)]
fix LV2 State Flags for Atom:Path

state-restore does not set the same flag, so lilv_state_equals()
returns false even for identical states and a new state is saved regardless

actual fix also depends on http://dev.drobilla.net/ticket/1145

7 years agoadd missing files
Robin Gareus [Tue, 20 Sep 2016 18:07:56 +0000 (20:07 +0200)]
add missing files

7 years agoGUI support to archive session
Robin Gareus [Tue, 20 Sep 2016 17:46:49 +0000 (19:46 +0200)]
GUI support to archive session

7 years agoinitial support for archiving sessions
Robin Gareus [Tue, 20 Sep 2016 17:46:07 +0000 (19:46 +0200)]
initial support for archiving sessions

7 years agoRestore ARDOUR::MuteControl state, fixes bug #7025
Tim Mayberry [Tue, 20 Sep 2016 05:44:38 +0000 (15:44 +1000)]
Restore ARDOUR::MuteControl state, fixes bug #7025

This should be the final part of a fix for bug #7025, which means the id
property of PBD::Controllable is restored and a new id is not generated at
first save.

I'm assuming this was a typo, comparing with the wrong name meant the state of
the MuteControl was never being restored. This also fixes restoring bindings
associated MuteControl instances.

7 years agoFully restore ARDOUR::SoloSafeControl state
Tim Mayberry [Tue, 20 Sep 2016 05:39:10 +0000 (15:39 +1000)]
Fully restore ARDOUR::SoloSafeControl state

This is part of a fix for bug #7025 which means the id property of
PBD::Controllable is restored and a new id is not generated at first save.

7 years agoFully restore ARDOUR::SoloIsolateControl state
Tim Mayberry [Tue, 20 Sep 2016 05:37:00 +0000 (15:37 +1000)]
Fully restore ARDOUR::SoloIsolateControl state

This is part of a fix for bug #7025 which means the id property of
PBD::Controllable is restored and a new id is not generated at first save.

7 years agoFully restore ARDOUR::SoloControl state
Tim Mayberry [Tue, 20 Sep 2016 05:12:36 +0000 (15:12 +1000)]
Fully restore ARDOUR::SoloControl state

This is part of a fix for bug #7025 which means the id property of
PBD::Controllable is restored and a new id is not generated at first save.

This also fixes restoring bindings associated SoloControl instances, which is a
bit surprising hasn't been noticed/reported.