notes = {
let n = new Set()
return Generators.observe(next => {
next(Array.from(n))
const inputted =
midi.inputs.forEach(inp => {
inp.addListener('noteon', 'all', (e) => {
n.add(e.data[1]);
next(Array.from(n))
})
inp.addListener('noteoff', 'all', (e) => {
n.delete(e.data[1]);
next(Array.from(n))
})
})
return () => midi.inputs.forEach(inp => inp.removeListener())
})
}