Commit Graph

34 Commits

Author SHA1 Message Date
David Robillard
5a48f99f72 Use nframes_t for timestamps of real (jack) time MIDI events (i.e. in MidiBuffer and MidiRingBuffer).
Use iterator interface of Sequence to read events in a MIDISource rather than Sequence::read, avoiding timestamp confusion.
Disable no longer useful Sequence::read.


git-svn-id: svn://localhost/ardour2/branches/3.0@4570 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-15 01:24:26 +00:00
David Robillard
166ef64e3d Make (MIDI) event time stamp type a template parameter.
git-svn-id: svn://localhost/ardour2/branches/3.0@4473 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-02 02:36:05 +00:00
David Robillard
44ac5f5097 Removed fixed/maximum event size assumption/limitation from MIDI buffer.
git-svn-id: svn://localhost/ardour2/branches/3.0@4471 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-01 21:04:12 +00:00
Carl Hetherington
d6637dad5a Rework Port class hierarchy a bit. Hopefully now simpler, and should
support connection of JACK ports with internal ones.


git-svn-id: svn://localhost/ardour2/branches/3.0@4417 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-21 02:27:21 +00:00
Carl Hetherington
bed58e9f37 Make Bundles work a bit better. A few include optimisations.
git-svn-id: svn://localhost/ardour2/branches/3.0@4408 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-01-14 23:54:46 +00:00
David Robillard
7eadc684a5 Plugin automation fixes from torbenh.
git-svn-id: svn://localhost/ardour2/branches/3.0@3826 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-29 01:22:21 +00:00
David Robillard
909995338c Fix warnings.
Mostly fix MIDI track resizing wackiness (from torbenh).


git-svn-id: svn://localhost/ardour2/branches/3.0@3817 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-27 18:07:37 +00:00
Paul Davis
ce693248dc minor optimization tweak for metering
git-svn-id: svn://localhost/ardour2/branches/3.0@3814 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-27 06:52:27 +00:00
David Robillard
a2d2f738cb Move event specific ringbuffer stuff to evoral.
Sane event type interface between evoral and libardour (no more shared magic numbers).
Cleanup Evoral::Sequence iterator, fix bugs, probably introduce new ones.
Move MIDI specific event functions to Evoral::MIDIEvent (is-a Evoral::Event).


git-svn-id: svn://localhost/ardour2/branches/3.0@3785 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-22 16:28:02 +00:00
David Robillard
d357eca668 Factor out sequencing related things into an independant new library: "evoral".
Anything related to the storage of events/values over a range of time lives in evoral.
This includes MidiModel (Evoral::Sequence) and automation data (AutomationList (Evoral::ControlList),
	Automatable (Evoral::ControlSet), etc).
libs/evoral synced with http://svn.drobilla.net/lad/trunk/evoral r1511.


git-svn-id: svn://localhost/ardour2/branches/3.0@3754 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-19 00:47:49 +00:00
Paul Davis
68e943265e merge from 2.0-ongoing @ 3581
git-svn-id: svn://localhost/ardour2/branches/3.0@3711 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-10 15:03:30 +00:00
Paul Davis
449aab3c46 rollback to 3428, before the mysterious removal of libs/* at 3431/3432
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-06-02 21:41:35 +00:00
Doug McLain
9c0d7d72d7 remove empty sigc++2 directory
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-06-02 05:02:28 +00:00
Paul Davis
eb4a1fdbb8 refactor JACK MIDI port to allow writing from a non-process() thread, and move ARDOUR::MidiEvent into MIDI namespace along with midi_events.h header
git-svn-id: svn://localhost/ardour2/branches/3.0@3155 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-03-18 03:42:32 +00:00
David Robillard
bb457bb960 Merge libs/ardour and gtk2_ardour with 2.0-ongoing R2837.
git-svn-id: svn://localhost/ardour2/trunk@2883 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-01-10 21:20:59 +00:00
David Robillard
f2aa623858 Use normal Processor run_in_place interface on Meter.
git-svn-id: svn://localhost/ardour2/trunk@2714 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-11-26 01:29:11 +00:00
David Robillard
53415b270c Little MidiEvent prettification additions, ifdef'd non-realtime aspects (for future purposes).
Fix MIDI recording crash bug.


git-svn-id: svn://localhost/ardour2/trunk@2228 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-08-02 21:08:18 +00:00
David Robillard
d7db3f757f Better MidiModel command framework, ready to go for all your canvas editing needs.
Rewrote MidiEvent to be a well-behaved self-contained object that optionally owns it's buffer, has proper copying semantics, etc.
Fixed crazy bugs triggered by adding lots of events with varying times to a region.
Speed up initial session display significantly (don't redraw each MIDI region tons of times, though still happens more than once and can use fixing...).


git-svn-id: svn://localhost/ardour2/trunk@2213 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-08-01 20:50:09 +00:00
David Robillard
823a1d36c1 Remove random access interface from MidiBuffer, towards killing fixed/limited event size assumption.
git-svn-id: svn://localhost/ardour2/trunk@2159 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-07-20 05:37:24 +00:00
David Robillard
eb296b2c95 Reduce overhead of multi-type-ness (last Summer's SoC):
Use uint32_t instead of size_t counts (halves size of ChanCount on 64-bit).
	Shift DataType values down to eliminate subtraction every index of a ChanCount or *Set.

Allow using DataType directly as an array index (prettier/terser).
Fix some mixed spaces/tabs in file comment headers.


git-svn-id: svn://localhost/ardour2/trunk@2082 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-29 06:58:07 +00:00
David Robillard
05bcdd1d4c Renamed Insert to Processor and Redirect to IOProcessor.
git-svn-id: svn://localhost/ardour2/trunk@2071 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-27 20:23:48 +00:00
David Robillard
49ee64ada7 Insert/Redirect refactoring, towards better MIDI support in mixer strip, and
http://ardour.org/node/1043 style things.


git-svn-id: svn://localhost/ardour2/trunk@2027 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-23 20:13:13 +00:00
David Robillard
b17a003d0a Logarithmic MIDI metering.
git-svn-id: svn://localhost/ardour2/trunk@1978 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-07 21:04:37 +00:00
David Robillard
e9de0dec8a Fix MIDI metering to not "clip" on many notes.
git-svn-id: svn://localhost/ardour2/trunk@1951 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-04 03:24:14 +00:00
David Robillard
10a282777a MIDI metering.
git-svn-id: svn://localhost/ardour2/trunk@1950 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-04 01:38:28 +00:00
David Robillard
9a4a9cbb63 Added nicer looking wrapper methods for ChanCount::get(DataType), sedified code to use it.
git-svn-id: svn://localhost/ardour2/trunk@1816 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-05-10 03:50:17 +00:00
David Robillard
34009a4565 Fixed metering instant-dropoff bug.
git-svn-id: svn://localhost/ardour2/branches/midi@1786 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-05-06 01:36:26 +00:00
Paul Davis
a8da89d745 optimize some performance bottlenecks; remove jack_nframes_t that crept back into the code
git-svn-id: svn://localhost/ardour2/branches/midi@1779 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-05-03 23:28:57 +00:00
Paul Davis
0c7b7216ef initial fixes to get build to work without new JACK MIDI, and to get it running with an older session, at least somewhat
git-svn-id: svn://localhost/ardour2/branches/midi@1773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-05-01 23:26:14 +00:00
David Robillard
cdaec2d09e Fixed meter crash bug.
git-svn-id: svn://localhost/ardour2/branches/midi@1771 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-05-01 17:12:25 +00:00
David Robillard
532f6aad4a Merged with trunk R1283.
NOTE: Compiles, but broken (crash on adding MIDI track).


git-svn-id: svn://localhost/ardour2/branches/midi@1292 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-01-09 23:24:54 +00:00
David Robillard
fedf3d34f3 Merged with trunk R992.
Completely untested other than it compiles, runs, and records somewhat (need to merge again).


git-svn-id: svn://localhost/ardour2/branches/midi@999 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-10-21 19:01:50 +00:00
David Robillard
0c3d8378f3 Adding sends/port inserts to MIDI tracks (not actually working yet though)
git-svn-id: svn://localhost/ardour2/branches/midi@877 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-08-31 06:59:14 +00:00
David Robillard
30ab1fd615 Towards MIDI:
- Converted vector<Sample*> to BufferList and numerous counts from int to ChanCount (and related changes)
- Added fancy type-generic iterators to BufferList, PortIterator (see IO::collect_input for a good example of the idea - the same code will work to read all input (of various types in a single IO, eg instruments) without modification no matter how many types we add)
- Fixed comparison operator bugs with ChanCount (screwed up metering among other things)
- Moved peak metering into it's own object, and moved most of the pan related code out of IO to panner (still a touch more to be done here for MIDI playback)

Not directly MIDI related fixes for problems in trunk:

- Fixed varispeed gain/pan automation to work properly (was reading the wrong range of automation data, probably causing nasty clicks?)
- Fixed crash on varispeed looping (possibly only a 64-bit problem).  It still doesn't work, but at least it doesn't die

Quite a few things broken, and the new classes are pretty filthy still, but I think the direction is a lot better than all my previous plans...


git-svn-id: svn://localhost/ardour2/branches/midi@795 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-08-12 08:20:24 +00:00