13
0
Commit Graph

121 Commits

Author SHA1 Message Date
fe13d08874 Large nasty commit in the form of a 5000 line patch chock-full of completely
unecessary changes.  (Sorry, doing a "sprint" based thing, this is the end of the first one)

Achieved MIDI track and bus creation, associated Jack port and diskstream creation, and minimal GUI stuff for creating them.  Should be set to start work on actually recording and playing midi to/from disk now.

Relevant (significant) changes:

- Creation of a Buffer class.  Base class is type agnostic so things can point to a buffer but not care what kind it is (otherwise it'd be a template).  Derived into AudioBuffer and MidiBuffer, with a type tag because checking type is necessary in parts of the code where dynamic_cast wouldn't be wise.  Originally I considered this a hack, but passing around a type proved to be a very good solution to all the other problems (below).  There is a 1:1 mapping between jack port data types and ardour Buffer types (with a conversion function), but that's easily removed if it ever becomes necessary.  Having the type scoped in the Buffer class is maybe not the best spot for it, but whatever (this is proof of concept kinda stuff right now...)

- IO now has a "default" port type (passed to the constructor and stored as a member), used by ensure_io (and similar) to create n ports.  IO::register_***_port has a type argument that defaults to the default type if not passed.  Rationale:  previous IO API is identical, no changes needed to existing code, but path is paved for multiple port types in one IO, which we will need for eg synth plugin inserts, among other things.  This is not quite ideal (best would be to only have the two port register functions and have them take a type), but the alternative is a lot of work (namely destroying the 'ensure' functions and everything that uses them) for very little gain.  (I am convinced after quite a few tries at the whiteboard that subclassing IO in any way is not a feasible option, look at it's inheritance diagram in Doxygen and you can see why)

- AudioEngine::register_audio_input_port is now register_input_port and takes a type argument.  Ditto for output.

- (Most significant change) AudioDiskstream abstracted into Distream, and sibling MidiDiskstream created.  Very much still a work in progress, but Diskstream is there to switch references over to (most already are), which is the important part.  It is still unclear what the MIDI diskstream's relation to channels is, but I'm pretty sure they will be single channel only (so SMF Type 0) since noone can come up with a reason otherwise.

- MidiTrack creation.  Same thing as AudioTrack but with a different default type basically.  No big deal here.

- Random cleanups and variable renamings etc. because I have OCD and can't help myself. :)

Known broken:  Loading of sessions containing MIDI tracks.




git-svn-id: svn://localhost/ardour2/branches/midi@641 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-26 16:01:34 +00:00
e13e84677a Merged with trunk revision 610
git-svn-id: svn://localhost/ardour2/branches/midi@611 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-15 22:31:13 +00:00
b5db1f624d Merged with trunk revision 600
git-svn-id: svn://localhost/ardour2/branches/midi@601 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-15 01:34:54 +00:00
868f557f26 Merged with trunk (painfully)
git-svn-id: svn://localhost/ardour2/branches/midi@581 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-13 07:27:52 +00:00
b7757ddd70 changes to autoscroll behaviour. not perfect, but probably better
git-svn-id: svn://localhost/trunk/ardour2@533 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-05-25 20:30:32 +00:00
2fba6d0925 breakout control protocol code into LGPL library; fix panner buttons even more than nick did, plus some other bits and pieces
git-svn-id: svn://localhost/trunk/ardour2@522 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-05-23 19:54:52 +00:00
Nick Mainsbridge
479ee9cc00 Mixer strip layout, emsure correct column expands on treeviews, 'Manual' automation mode labels.
git-svn-id: svn://localhost/trunk/ardour2@519 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-05-21 10:11:59 +00:00
62b491362c fix timestretch dialog/progress etc; make tranzport protocol non-mandatory
git-svn-id: svn://localhost/trunk/ardour2@517 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-05-20 02:57:38 +00:00
9c6984dbbb allow for mandatory control protocols, plus some ongoing work on automation control point selection (unfinished)
git-svn-id: svn://localhost/trunk/ardour2@516 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-05-19 20:10:35 +00:00
60fbeedb5f a) basic prototype of OSC control
b) various changes to ControlProtocol model/implementation
c) more attempts to get autoscroll to work nicely (unfinished)
d) move editor item types into their own header


git-svn-id: svn://localhost/trunk/ardour2@506 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-05-18 02:19:27 +00:00
979b95a56e enable use of arrow keys, fix hscroller issues, start work on smoother auto-scroll
git-svn-id: svn://localhost/trunk/ardour2@490 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-05-02 01:08:34 +00:00
Taybin Rutkin
49ab3aa0b3 All included libraries now link dynamically instead of statically.
Moved items from gtk2_ardour/utils to pbd3/convert.
Various cleanups.


git-svn-id: svn://localhost/trunk/ardour2@475 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-25 20:23:50 +00:00
028e1ebc4a a) completely refactor abstract UI code
b) single-thread Tranzport implementation
c) implement BasicUI to share functionality across multiple
     controllers
d) various minor fixes here and there


git-svn-id: svn://localhost/trunk/ardour2@468 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-24 22:45:19 +00:00
17b18acda3 a) use ink extents in most places where we used to use logical extents
for text sizing

b) add back scroll-wheel functionality to plugin parameter controls


git-svn-id: svn://localhost/trunk/ardour2@460 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-20 18:14:00 +00:00
74e6e37d30 a) fix editor hscroller to follow PT behaviour - scrollbar always
covers 0...full session + 10% of current zoom page size
b) add "big meter" mode to tranzport and fix more bugs with tranzport
   support


git-svn-id: svn://localhost/trunk/ardour2@455 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-19 02:11:39 +00:00
a157537898 a) moved metering and meter falloff code into libardour
b) added initial "big meter" mode for tranzport
c) fixed some lock issues in ARDOUR::IO objects
d) generic_midi control surface module now compiles and loads


git-svn-id: svn://localhost/trunk/ardour2@450 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-10 03:54:00 +00:00
Nick Mainsbridge
7e8a982245 Reinstate mouse scroll actions (audio clocks, shuttle wheel, faders), clearing selection is undoable, fix compiler warning, add modified patch by Jon Michael Smith for mouse wheel track height adjustment and vertical canvas scrolling (thanks Jon)
git-svn-id: svn://localhost/trunk/ardour2@449 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-10 02:14:05 +00:00
e9f9ca5278 3 different data wheel modes for tranzport, plus lock on writes, and more
git-svn-id: svn://localhost/trunk/ardour2@448 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-06 16:51:27 +00:00
0f530372d2 significant extensions to tranzport support
git-svn-id: svn://localhost/trunk/ardour2@446 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-06 01:52:45 +00:00
Nick Mainsbridge
825d7a769d fix incorrect marker/range marker right-click menus, try to clarify the text in them, select all between cursors ('u' is the shortcut) separate regions using range marker (a new right click menu on a range matker), easter egg
git-svn-id: svn://localhost/trunk/ardour2@438 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-01 00:21:25 +00:00
2aced5ff65 a) add "Add Range Markers" to region context menu
b) add "Set Range" to region context menu


git-svn-id: svn://localhost/trunk/ardour2@437 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-31 23:00:40 +00:00
3aa346b253 significant changes in code to handle import/embedding - much cleaner and less code, plus the import progress bar now works; unify response handling for Gtkmm2ext::Choice
git-svn-id: svn://localhost/trunk/ardour2@415 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-22 17:03:00 +00:00
eb3fc0d966 add crossfade and layering options to menu system; add missing crossfade editor curve image; add control for destructive recording xfade; remove dead options from options editor
git-svn-id: svn://localhost/trunk/ardour2@411 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-21 15:27:57 +00:00
5e836403ad lots of fidgety work to get track renaming to work correctly now that we have to rename audio files too; some GUI tweaks
git-svn-id: svn://localhost/trunk/ardour2@404 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-17 17:39:21 +00:00
1dee60510a Make the FFT Anaylsis optional and disabled by default until further discussion.
git-svn-id: svn://localhost/trunk/ardour2@386 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-13 03:27:58 +00:00
Sampo Savolainen
b6efb1fdd9 Make FFT easier to use. right click on a range selection or a region and
in the range/region submenu you should find a "Analyze range/region"
entry.


git-svn-id: svn://localhost/trunk/ardour2@385 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-12 22:35:39 +00:00
Sampo Savolainen
3891c733af First commit on FFT analysis window. Still some functionality missing,
but it's mostly done.


git-svn-id: svn://localhost/trunk/ardour2@383 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-12 21:58:52 +00:00
a8640ec0af removed the following environment variables:
ARDOUR_GLADE_PATH
	ARDOUR_RC
	ARDOUR_UI
	ARDOUR_UI_RC
	ARDOUR_BINDINGS
	ARDOUR_COLORS

They have been replaced with just one environment
variable called ARDOUR_PATH which can contain a number
of colon separated paths that are used to find various
configuration and data files. Files located in
ARDOUR_PATH have priority over files in ~/.ardour/ and
in the system path.

Moved two member functions of the Configuration class
into globals.cc as they should of been static and I'm
trying to keep the non-portable code together when it
makes sense.


git-svn-id: svn://localhost/trunk/ardour2@380 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-12 16:19:03 +00:00
Doug McLain
670641c3df create xpm files from hard coded pixmaps, added function get_xpm() to make sure any xpm only gets load from disk once
git-svn-id: svn://localhost/trunk/ardour2@379 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-12 15:46:29 +00:00
673642c8d5 further travels down the road toward true route group bliss
git-svn-id: svn://localhost/trunk/ardour2@368 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-10 04:05:11 +00:00
8ca43d57fe new mix group interface, not yet finished and still to propagate to edit_group
git-svn-id: svn://localhost/trunk/ardour2@366 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-09 23:44:39 +00:00
06ee54887d add/remove edit groups via buttons (still a bit of work left to do)
git-svn-id: svn://localhost/trunk/ardour2@364 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-08 23:26:28 +00:00
10976e9a3b fix for erroneous use of a menu group; remove lots of cerr cruft; no playlist ops for destructive tracks
git-svn-id: svn://localhost/trunk/ardour2@359 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-08 15:37:39 +00:00
0d2c8771a7 fix for deferred saves by StateManager-derivatives; changes to new/copy/clear playlist ops (not finished), TRUE/FALSE -> true/false in editor_mouse.cc
git-svn-id: svn://localhost/trunk/ardour2@358 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-08 02:50:53 +00:00
5a39bf595c export range markers patch (revisited), change selection model, copy-drag tempo+meter marker patch
git-svn-id: svn://localhost/trunk/ardour2@349 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-05 19:39:16 +00:00
Nick Mainsbridge
da721aff2c change before/after cursor keybindings, attempt to clarify range/diskstream popup menu, typo in last commit.
git-svn-id: svn://localhost/trunk/ardour2@333 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-02-15 20:04:29 +00:00
Nick Mainsbridge
69c9f3d7ce select all in time range, show object selection while in range mode, trim range ends by a frame when selecting, make things semantically a bit better.
git-svn-id: svn://localhost/trunk/ardour2@329 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-02-15 12:15:29 +00:00
517d411bb0 new color management design starts to take shape (canvas color only for now)
git-svn-id: svn://localhost/trunk/ardour2@326 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-02-14 17:19:58 +00:00
e92c949f3c fix style overwriting done by fastmeter, and lack of clip mask/clip origin restore in pixscroller; fixes meter redraw botch when moving fader, and the style fix corrects visual problems with Clearlooks as soon a ameter is realized
git-svn-id: svn://localhost/trunk/ardour2@323 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-02-13 16:08:32 +00:00
da093c7939 restore many keybindings from ardour 0.99
git-svn-id: svn://localhost/trunk/ardour2@313 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-02-07 13:58:33 +00:00
98046ce92d remove editor mixer button, fix up editor mixer state save/restore
git-svn-id: svn://localhost/trunk/ardour2@306 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-31 03:27:25 +00:00
81ef56fba9 fix (mostly) measure lines and click box text and meter markings
git-svn-id: svn://localhost/trunk/ardour2@300 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-28 13:33:54 +00:00
5a381e9651 a few small things
git-svn-id: svn://localhost/trunk/ardour2@295 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-24 12:38:33 +00:00
Nick Mainsbridge
dfcd837d67 select all, musical (fuzzy) loop/punch/range region selections, soundtouch patch for gcc 4.1, needs 's' key to not clear selection.
git-svn-id: svn://localhost/trunk/ardour2@289 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-23 16:02:48 +00:00
Nick Mainsbridge
897d071e97 fix setting sync point crash, reinstate keymouse zoom tentatively
git-svn-id: svn://localhost/trunk/ardour2@284 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-21 00:11:03 +00:00
06d3bd1cb0 make F11 take us fullscreen (bug remains in edit pane position restore); reduce track controls area width
git-svn-id: svn://localhost/trunk/ardour2@281 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-20 03:03:15 +00:00
e1ad4e0a53 F11 now toggles maximal editor space
git-svn-id: svn://localhost/trunk/ardour2@280 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-19 18:05:31 +00:00
2e582e03e4 a metric boatload of changes; plugin UIs work, adding tracks work, redirect list is useful again, and more
git-svn-id: svn://localhost/trunk/ardour2@273 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-17 16:40:57 +00:00
32c182088c mixer track list now uses checks and reordering properly
git-svn-id: svn://localhost/trunk/ardour2@265 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-12 03:43:52 +00:00
Nick Mainsbridge
fc67efb64d more gcc 4.1 complaints, route_list is a ListStore
git-svn-id: svn://localhost/trunk/ardour2@256 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-10 15:09:38 +00:00