summaryrefslogtreecommitdiffstats
path: root/src/engine/events
AgeCommit message (Collapse)AuthorFilesLines
2010-02-26Perform all mixing for an audio input in a single mix operation (instead of ↵David Robillard2-10/+6
a two step polyphony mixdown (by connections) and connections mixdown (by ports)). Speed up and inline AudioBuffer::accumulate, to speed up mix(). Remove local buffer from Connection (always mix into destination InputPort's buffers). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2494 a436a847-0d15-0410-975c-d299462d15a1
2010-02-25Work on contexts and polymorphic ports.David Robillard6-63/+40
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2492 a436a847-0d15-0410-975c-d299462d15a1
2010-02-25Store patch connections in a map using a lexicographic <Port*,Port*> key forDavid Robillard5-26/+46
fast (logarathmic) connection searching. Replaces all O(num_connections) searches with O(lg(num_connections)) searches. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2491 a436a847-0d15-0410-975c-d299462d15a1
2010-02-24Merge NodeBase and NodeImpl.David Robillard3-4/+4
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2486 a436a847-0d15-0410-975c-d299462d15a1
2010-02-24Add new Delay internal.David Robillard1-1/+3
Preliminary work towards split cycles. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2485 a436a847-0d15-0410-975c-d299462d15a1
2010-02-23Fix various code issues discovered by cppcheck.David Robillard5-4/+8
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2484 a436a847-0d15-0410-975c-d299462d15a1
2010-02-23Tidy.David Robillard1-1/+0
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2481 a436a847-0d15-0410-975c-d299462d15a1
2010-02-22Don't respond with PUT (creating empty nodes) when plugin instantiation fails.David Robillard19-26/+12
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2479 a436a847-0d15-0410-975c-d299462d15a1
2010-02-20Heavy overhaul of buffer management and polyphony.David Robillard13-130/+208
* Working polyphony when nodes are instantiated at desired polyphony level (dynamic still doesn't work) * Use shared silent buffer for disconnected audio inputs (save memory) * Eliminate redundant patch compiling on delete and disconnect-all events that have child events * Fix a ton of crash bugs and other issues I've since forgotten git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2468 a436a847-0d15-0410-975c-d299462d15a1
2010-02-18Refuse to delete /control_in or /control_out (fix crashes e.g. select-all + ↵David Robillard1-11/+12
delete). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2464 a436a847-0d15-0410-975c-d299462d15a1
2010-02-17Fix double error.David Robillard1-0/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2462 a436a847-0d15-0410-975c-d299462d15a1
2010-02-17Fix crash when rapidly decreasing polyphony (make SetMetadataEvent blocking ↵David Robillard1-0/+4
if polyphony is changed). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2461 a436a847-0d15-0410-975c-d299462d15a1
2010-02-14Fix loading of subpatches.David Robillard1-0/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2450 a436a847-0d15-0410-975c-d299462d15a1
2010-02-14Preserve patch port indices across saves.David Robillard2-0/+15
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2449 a436a847-0d15-0410-975c-d299462d15a1
2010-02-14Remove voice specific control setting.David Robillard3-60/+8
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2445 a436a847-0d15-0410-975c-d299462d15a1
2010-02-13Learn and remove bindings exclusively through property interface.David Robillard4-206/+96
Note this commit breaks some aspects of OSC and HTTP control for now. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2442 a436a847-0d15-0410-975c-d299462d15a1
2010-02-09Make control bindings actually (audibly) take effect.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2436 a436a847-0d15-0410-975c-d299462d15a1
2010-02-09Fix bugs with child blocking events.David Robillard3-9/+15
e.g. CreatePortEvent as a child of SetMetadataEvent would doubly unblock the EventSource, so future blocking events wouldn't actually block and crash bugs and/or patch corruption could result. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2435 a436a847-0d15-0410-975c-d299462d15a1
2010-02-04Fix a bunch of memory leaks.David Robillard1-0/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2429 a436a847-0d15-0410-975c-d299462d15a1
2010-02-04Use std::string::empty where possible (faster, and less prone to C string ↵David Robillard2-1/+2
errors). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2420 a436a847-0d15-0410-975c-d299462d15a1
2010-02-04MIDI feedback.David Robillard3-3/+6
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2418 a436a847-0d15-0410-975c-d299462d15a1
2010-02-03Responder => Request, and handle EventSource unblocking from Request ↵David Robillard45-304/+296
(simplify Event interfaces). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2417 a436a847-0d15-0410-975c-d299462d15a1
2010-02-03Binding of MIDI notes to toggle parameters.David Robillard1-0/+3
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2412 a436a847-0d15-0410-975c-d299462d15a1
2010-02-03Comprehensive use of cached URIs and more advanced Value (Atom) system.David Robillard8-20/+70
Atoms (e.g. property values or port values) can now be an Atom::DICT, which maps directly to/from an RDF resource. This is now used to store control bindings as a port property, eliminating the special API. Full interned URIs used everywhere, instead of CURIEs pretending to be URIs. Avoid converting string literals to URIs all over the place. Support for binding MIDI pitch bender and MIDI channel pressure. Saving/restoring of MIDI bindings as a free side-effect of the above. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2409 a436a847-0d15-0410-975c-d299462d15a1
2010-02-02Use Glib string interning (quarks) to make Path/URI operator== very fast.David Robillard8-32/+42
This avoids a ton of string comparison overhead in Ingen when setting various properties (e.g. "ingen:value" was compared several times every time a port value was changed, now this is just a single pointer comparison and the full round trip of a value change does no string comparison at all, but is still property based and RDFey). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2408 a436a847-0d15-0410-975c-d299462d15a1
2010-02-02Remove set_port_value from CommonInterface (replaced with set_property(path, ↵David Robillard3-4/+4
"ingen:value", value)). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2404 a436a847-0d15-0410-975c-d299462d15a1
2010-02-01Use consistent and more globally unique inclusion guards.David Robillard25-75/+75
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2398 a436a847-0d15-0410-975c-d299462d15a1
2010-01-29Remove references to deleted ports with control bindings (fix crash when ↵David Robillard2-12/+16
applying binding to deleted port). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2393 a436a847-0d15-0410-975c-d299462d15a1
2010-01-29Send binding information to client.David Robillard2-0/+107
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2392 a436a847-0d15-0410-975c-d299462d15a1
2010-01-29Magic MIDI binding via special ingen_control port.David Robillard6-29/+44
Always set lv2:minimum and lv2:maximum properties for control ports so they show up in properties dialog (and can be used for MIDI binding). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2391 a436a847-0d15-0410-975c-d299462d15a1
2010-01-07Make ClientBroadcaster itself a ClientInterface.David Robillard8-10/+13
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2353 a436a847-0d15-0410-975c-d299462d15a1
2010-01-07Merge QueuedEventSource and EventSource.David Robillard8-12/+12
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2352 a436a847-0d15-0410-975c-d299462d15a1
2010-01-07Tidy.David Robillard1-2/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2351 a436a847-0d15-0410-975c-d299462d15a1
2010-01-06Do all logging output via Raul streams.David Robillard4-12/+14
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2349 a436a847-0d15-0410-975c-d299462d15a1
2010-01-05Merge JackMidiDriver and JackAudioDriver.David Robillard6-39/+17
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2343 a436a847-0d15-0410-975c-d299462d15a1
2010-01-03Remove patch clear command (fix ticket #375).David Robillard2-248/+0
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2332 a436a847-0d15-0410-975c-d299462d15a1
2009-12-31Various fixes related to port values and metadata (fix ticket #459 among ↵David Robillard3-5/+9
other things). Fix jitterey behaviour of port controls (on module) while dragging. Update value in status bar while dragging port slider (on module). Update plugin data (e.g. port control range) if the plugin is sent to the client after nodes that are instances of it (i.e. more robust plugin state tracking via merging like with objects). Correctly save and restore port values (ticket #459). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2327 a436a847-0d15-0410-975c-d299462d15a1
2009-12-30Better error reporting for bad PUT.David Robillard2-8/+23
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2323 a436a847-0d15-0410-975c-d299462d15a1
2009-12-30Fix JACK name of top level ports (fix ticket #457).David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2319 a436a847-0d15-0410-975c-d299462d15a1
2009-11-22Enqueue message thread requests by the port, not by the node.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2283 a436a847-0d15-0410-975c-d299462d15a1
2009-11-22Execute cross-context events in correct increasing time order.David Robillard1-1/+3
Propagate value changes / message sends breadth first instead of deptch first. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2282 a436a847-0d15-0410-975c-d299462d15a1
2009-11-22Partial support for message/value ports and the message context.David Robillard2-4/+16
This use case now works: - Add an event input and the "print" plugin from imum.lv2 to ingen - Connect the event input to the input of "print" - Hook Ingen up to JACK and play some MIDI events (or get events to the print plugin from anywhere else) - The "print" plugin will print the received events to the console in the message context (i.e. the audio thread is realtime safe) git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2281 a436a847-0d15-0410-975c-d299462d15a1
2009-11-18Rename DataType to PortType (since that's what it really means).David Robillard8-15/+15
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2273 a436a847-0d15-0410-975c-d299462d15a1
2009-11-16Rework objects extension to have "value ports" and "message ports".David Robillard6-14/+14
Make audio and control buffers in ingen actually object buffers (towards interop). Overhaul the hell out of ingen buffer and mixing stuff. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2266 a436a847-0d15-0410-975c-d299462d15a1
2009-11-15Better Parse plugin, working Print plugin.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2262 a436a847-0d15-0410-975c-d299462d15a1
2009-11-14Object extension.David Robillard6-40/+36
Port resize extension. Sensible extension(s) implementation design for Ingen. Replace string port extension support in Ingen with Object port extension. Implement port resize extension in Ingen. Some test plugins for this stuff. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2260 a436a847-0d15-0410-975c-d299462d15a1
2009-11-12String port support.David Robillard4-27/+41
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2255 a436a847-0d15-0410-975c-d299462d15a1
2009-10-31Revert (most of) r2205, which broke node creation (invisible ports).David Robillard1-3/+3
Something more elegant is required here... git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2207 a436a847-0d15-0410-975c-d299462d15a1
2009-10-31Don't double-send creation events when they are a result of a PUT.David Robillard3-3/+9
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2205 a436a847-0d15-0410-975c-d299462d15a1
2009-10-21Fix crash when plugins fail to instantiate.David Robillard2-5/+11
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2199 a436a847-0d15-0410-975c-d299462d15a1