New config/setup method (work in progress) for assigning properties and common start-up callbacks. eg. soundManager.setup({ url: '/path/to/swfs/', flashVersion: 9, onready: function() { console.log('onready!') }, defaultOptions: { volume: 50 }})
HTML5: Firefox seems to have changed when unloading HTML5 audio, url = '' now loads hosting page HTML (boo) instead of "null" / no request. Changed to about:blank like everyone else. Also fixed boolean logic on isMovieStar assignment.
Warn if soundManager.setup() called with url or flashVersion, and init has already fired (ie., flash options already set + movie already loaded) where changes will not take effect until soundManager.reboot()

Make nested object case work, eg., soundManager.setup({ defaultOptions: { volume: 50 } }), checking and rejecting invalid options.
Upgrading to soundManager.setup({...}) for most configuration cases (vs. setting soundManager.url, soundManager.defaultOptions.autoLoad directly etc.)
local var for audioFormats
Fix false positive (undocumented error handler case) with HTML5 play() falsely reporting 32-sound ceiling edge case and calling SMSound.onplayerror() (if assigned) when using flashVersion = 9. Should only apply when flash 9 is being used for playback, and ceiling hit.
Also: Shuffled property assignment around a bit.
Assign top-level soundManager properties (eg. soundManager.url) from soundManager.setupOptions at DOMReady time; this allows legacy soundManager.url = ... assignment to work, and helps to ensure legacy-style, directly-assigned top-level property values get written back to soundManager.setupOptions.
More onload / onready updates, simplifications
+"SURVIVOR" demo
 Improve HTML5 audio load/playback stability, reuse cases (play() -> load({url: ...}) and iOS behaviour. Prior behaviour was making initial HTTP request when object was being created (meta/preload, not necessarily loading entire file.)
Unused image
Correct empty options on _setup_html5() when reusing audio object per https://getsatisfaction.com/schillmania/topics/possible_bug_when_html5_audio_tag_is_reused_20120527_release
Don't attempt to remove flash unless reference exists (prevent false warning when reboot() called in 100% HTML5 mode)
Fix #hifi=1 mode, missing arc width (demo only)
Finally assign + use SMSound.id (instead of sID), maintain legacy sID property (ancient behaviour to avoid potential "ID" conflicts on JS objects, now silly.) Reset SMSound.id3 = {} with property reset, and load().
SMSound.sID -> SMSound.id (legacy stuffs)
Demo tweaks
More .sID -> .id
Latest
SMSound.sID -> SMSound.id for demos/docs