UNPKG

gibberwocky

Version:

music sequencing for Live and Max/MSP

80 lines (65 loc) 2.47 kB
require( './vanillatree.js' ) /* NOTE THAT DRAG/DROP CODE IS IN VANILLATREE.JS FILE */ let Gibber = null, count = -1 let momView = { tree: null, init( _gibber ) { Gibber = _gibber this.setup() this.create() count++ if( count ) Gibber.log( 'The Max scene has been updated.' ) }, setup() { document.querySelector( '#momView' ).innerHTML = '' this.tree = new VanillaTree('#momView', { placeholder: '' }) this.tree.mode = 'max' }, processDevice( device, id ) { momView.tree.add({ label:device.path, id:device.path, parent:'devices' }) for( let value of device.values ) { let deviceID = value.name // device.title momView.tree.add({ label:deviceID, id:deviceID, parent:device.path }) } }, create() { let deviceBranch = momView.tree.add({ label:'devices', id:'devices', opened:true }) for( let deviceName in Gibber.Max.devices ) { momView.processDevice( Gibber.Max.devices[ deviceName ] ) } let namespaceBranch = momView.tree.add({ label:'messages', id:'message', opened:true }) if( Gibber.Max.MOM.messages !== undefined ) { for( let ns of Gibber.Max.MOM.messages ) { momView.tree.add({ label:ns, id:ns, parent:'message' }) } } let paramsBranch = momView.tree.add({ label:'params', id:'params', opened:true }) for( let param of Gibber.Max.MOM.root.params ) { momView.tree.add({ label:param.varname, id:param.varname, parent:'params', opened:true }) } let receivesBranch = momView.tree.add({ label:'receives', id:'receives', opened:true }) for( let param in Gibber.Max.MOM.receives ) { momView.tree.add({ label:param, id:param, parent:'receives', opened:true }) } let signalsBranch = momView.tree.add({ label:'signals', id:'signals', opened:true }) for( let ns of Gibber.Max.MOM.signals ) { momView.tree.add({ label:ns, id:ns, parent:'signals' }) } let patchersBranch = momView.tree.add({ label:'patchers', id:'patchers', opened:true }) for( let ns in Gibber.Max.patchers ) { momView.tree.add({ label:ns, id:ns, parent:'patchers' }) const patcher = Gibber.Max.patchers[ ns ] for( let key in patcher ) { if( key.indexOf('::') === -1 ) { if( key !== 'sequences' && key !== '__client' ) { momView.tree.add({ label:key, id:key, parent:ns }) } } } } } } module.exports = momView