Added event dispatcher; keeping jQuery for UI only
Added logging to event dispatcher
Initialize label for channel with sample filename without extension
Added ui track component: removed premade table data in favour of dynamic, made a bunch event driven
Implemented indicating progress and highlighting triggered tracks
Small cleanup in highlighting
Removed some commented out code
Added ui dialogs code (borrowed from my own non-opensource project)
Update channel label (non-ui) when a new sample is set
UI track: listen for sample change event, Implement replace button which triggers ui.sample.replace.requested event
Add list of available samples, implement replace sample dialog
Add pattern module, implemented better event usage throughout existing modules
Add sample picker ui component (with preview), add sample library as separate file
Replaced multiple choice dialog in sequencer code with new sample picker
EventDispatcher: Allow adding multiple subscriptions with a hash, clean some log stuff up
Cleaned up event dispatcher subscribe syntax in some files that had many calls
Add ui trackmanager; remove event listeners from ui track and revert back to public methods, called by trackmanager which does listen for events.
Remove sample library from main sequencer file
Not functional: labels don't update when sample replaced, adding a channel
Add a way for trying out a sample on a channel without committing it (trySample, resetSample, commit with setSample)
Move selecting a new sample for a channel to ui.Track;
ui.Track now keeps track (huehue) of sampleUrl, for use in sample selector
Added channelmanager, updated event names and stuff everywhere, removed some listeners etc