pya
pya copied to clipboard
Aserver-nodes
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.