Update stringed macro.
- make single string instrument work with midi-poly-player.
- add documentation string for the generated stringed instruments.
Create single string instrument "ektara" & midi-poly-player example in comments.
Add now+ fn to eliminate most "late" messages.
Add example ~/.overtone/config.clj - fixes #191
minor tweaks
formatting and spelling corrections
spelling correction - s/max/mac
Fix spelling - s/txp/TCP
Prefer overtone.helpers.system/get-os to reading the os from the config.

Also prefer the system os discover helpers.
Work on MIDI handling:

* Incoming sysex messages are now fed into the event system
* Drop to non-updatable device lists, as this is the common denominator
* Handle quirks of the mmj lib on OS X (which supports sysex messages)
* Add :use-mmj config option to enable mmj lib support
* midi-connected-devices is now connected-midi-devices
* added connected-midi-receivers
* Keep connected-midi-devices and connected-midi-receivers as fns to support the possibility of hot-plugging devices in a future release.

Details
==========

The JVM default MIDI library is currently pretty broken on OS X:

* no support for detecting devices plugged in after the initial device list has been created
* broken sysex messaging

The mmj library (http://www.humatic.de/htools/mmj.htm) fixes the sysex issue but introduces new problems:

* multiple identical devices (same make and model) attached all resolve to the same device object (therefore making only one of the devices usable)
* even worse support for hot-plugging as each call to fetch the device list returns newly created objects (therefore meaning that the object hash is no longer usable to define device uniqueness).
* the returned device list contains duplicates and also contains the default JVM objects, and so must be filtered to either include the 

This commit tries its best to patch everything it can. It supports the presence of the mmj library by filtering out all mmj objects by default. If you wish to use the mmj objects in preference to the default JVM objects, them you can add `:use-mmj true` to your `~/.overtone/config.clj`. Also, if you use the `:use-mmj` config option, but haven't actually included the mmj library, then it will just default back to the JVM default objects.

Of course, non of this mmj nonsense happens if you're not running OS X.
Merge pull request #206 from rogerallen/rallen-string-1

Update stringed macro, add midi-poly-player compatible stringed instrument.
Merge branch 'master' of https://github.com/overtone/overtone
Add a flag to the macro to determine if the strings are freed when they go silent or not.  This *really* allows the ektara to be use with midi-poly-player.
Merge pull request #207 from rogerallen/rallen-string-2

Bugfix: Optionally free stringed synth on silence.
Merge branch 'master' of https://github.com/overtone/overtone
Rename to-synth-id -> to-sc-id to more clearly communicate that the protocol is about creating a general supercollider server id rather than just a synth id. (For example, it is already used by synths, insts and groups).
Make more abstractions extend to-sc-id - buffer,bus, sample, etc. Busses can now be passed as arguments to trigger and control synths without requiring manual extraction of ids:

(def b (audio-bus))
(ctl foo :out-bus (:id b)) ;=> this used to be the the only approach
(ctl foo :out-bus b)       ;=> now works

* audio-bus and control-bus are now records
* buffer ns use node ns rather than the other way round
* added idify and to-id to match similar fns in overtone.helpers.lib
* 
Remove trailing whitespace
Add overtone.synth.timing ns for synths related to timing signals
Remove debug print statement
Added '-main fns for some examples...

* overtone.examples.getting-started.melody
fixed a typo in docs/config