pya icon indicating copy to clipboard operation
pya copied to clipboard

Aserver-nodes

Open thomas-hermann opened this issue 4 years ago • 0 comments

The current Aserver doesn't allow to free a scheduled or playing signal. For the branch Aserver-nodes, I propose

  • to add automatic node_id allocation for any played asig
    • this will require the introduction of a src_nodes list
  • Aserver.play() to return that node_id (Asig.play() to store it in its context dict (_['node_id'])
  • service functions to interact with existing nodes, e.g.
    • free_all(): to remove all scheduled and playing entries
    • free(node_id): to remove a specific node_id
    • ... (any other useful suggestion?) I have added a threading.Lock(), hope I have secured all critical parts...

A code could be

alongsig1.play()
node = alongsig1._['node_id']  # later with Metadata:  node = alongsig1.info.node_id
alongsig2.play()
s.free(node)  # at a later time
# alongsig2 will keep playing...
  • So far only free_all() works. Please try it and comment.

thomas-hermann avatar Jan 08 '20 22:01 thomas-hermann