Tempi release notes
===================

Tempi 0.1.12 (2012-03-29)
-------------------------
This release is a developer snapshot in the 0.1 series.

New features:

* Support abstractions: [abs.abstraction], [abs.inlet], [abs.outlet]
* New sampler node types: [sampler.read], [sample.write], [sampler.sample]
* New string node types: [string.join], [string.characters], [string.split]
* Rename [midi.send] to [midi.output] and [midi.receive] to [midi.input]
* New MIDI nodes: [midi.{note,program}]
* New OSC nodes: [osc.{prepend,route}]
* New 3D node: [3d.angle]
* New math node: [math.map]
* Nodes can access the regions owned by their scheduler.
* Add NameAllocator (not used yet)
* New node types: [music.nearest.note], [music.monodic], [base.dict], [random.int], [random.drunk]
* Base plugins are now dynamically loaded with Loader, a singleton.
* New pads: __call__ and __return__
* Can get/set/list attributes via __attr__ inlet/outlet


Bugs fixed:

* Move plugins-base's tests and core's tests to their directory
* Fix rst format output by utilities
* Refactor math nodes using inheritance
* New examples: oscreceive.xml, toonloop-music.xml, abs.xml, strings.xml
* Dependencies not mandatory anymore: Clutter, liblo, GLib, spatosc


Known bugs:

* Favours libraries from /usr/local/lib/, rather than ./ if present.


Tempi 0.1.10 (2012-02-19)
-------------------------
This release is a developer snapshot in the 0.1 series.

New features:

* Save and load Graph to and from XML.
* Add examples: route.xml, counter.xml, etc.
* New node types: [base.delay], [base.spigot], [base.route], [base.prepend], [base.append], [base.spatosc], [base.loadmess], [base.cast], [math.deg2rad]
* New command-line tools: tempi-launch, tempi-inspect
* Add methods to Node: removeOutlet, listInlets, listOutlets
* Add NodeSignal (especially for when deleting a pad)
* rename "attributes" inlet to "__attr__"
* more doc for many nodes
* Add abstract classes: Pad, NamedObject, DocumentedObject, NamedObjectMap
* Add in utils: argumentToString, appendArgumentFromString, castMessage, isValidType
* Add Logger with various log levels

Bugs fixed:

* Fix calculation in ms <-> ns conversion 
* Fix timing in [base.metro]
* Update license header to LGPL, as advertized
* Make some libraries non-necessary: Clutter, GLib, spatosc


Tempi 0.1.8 (2012-01-12)
------------------------
This release is a developer snapshot in the 0.1 series.

New features:

* New node types: [math.+], [math.-], [math.<], [math.>], [math./], [math.*], [math.==], [math.!=]
* New node types: [midi.route]
* Allow non type-strict attributes
* Rename properties to attributes
* Rename sink to inlet, source to outlet
* Add Message::prependMessage()
* Remove node arguments: only attributes now.
* Inlets and outlets are now named, not indexed.


Tempi 0.1.6 (2011-12-19)
------------------------
This release is a developer snapshot in the 0.1 series.

New features:

* Read multiple events at once from a Region
* Add Node::init() to move node initialization routines out of the constructor.

Bugs fixed:

* Fix timing issue with first event recorded in a Region


Tempi 0.1.4 (2011-12-14)
------------------------
This release is a developer snapshot in the 0.1 series.

New features:

* New atom types: pointer, unsigned char
* New command-line utilities: midilooper
* New namespaces: base, osc, midi, sampler, mapping, table
* New nodes types: base.print, base.prepend, sampler.sampler, base.appsink, base.any, base.counter, base.metro, midi.send, midi.receive
* New prototypes: module loader, i18n, XML state saving files
* Add Message::prepend*
* Add classes Scheduler, ThreadedScheduler, Library
* Add functions utils::stringsMatch, librarytools::loadLibrary
* Add man pages
* Add method ConcurrentQueue::clear()
* Add node arguments
* Add operator ostream for Graph and Graph
* Add the Library classes.
* Implement registerTypeT<class>(name)
* Rename utility "tempi" to "tempi-draw"

Bugs fixed:

* Move executables' source code to subdirectories
* Remove deprecated property.{h,cpp} files
* midilooper: do not list our own ports
* midilooper: do not crash in case of bad option
* Graph::getNode returns a shared pointer, not a raw one anymore


Tempi 0.1.2 (2011-10-14)
------------------------
This release is a developer snapshot in the 0.1 series.

New features:

* The osc-forward command-lineutility.
* OscReceiverNode and OscSenderNode
* can instanciate Message with va_list
* NopNode
* Graph uses a NodeFactory
* Add ::ptr typedef members to many classes
* All nodes have at least one inlet
* The set messages sets the properties. Add Node::getPropertiesNames
* Add Message::cloneRange
* Node::processMessage is called with inlet as arg
* Implement properties with Message objects
* Can now disconnect pads
* Add more version macros

Bugs fixed:

* Tests are silent
* Moved specific nodes to subdirectories
* Fix bad exception type
* Remove types.h. Compiling it used to take way too much CPU
* Add virtual destructor to all abstract classes
* Update README to be valid rst


Tempi 0.1.0 (2011-09-02)
-------------------------
This is the first developer snapshot of Tempi.

