Particle and NewTable

13 views
Skip to first unread message

Rogerio Barbosa

unread,
Apr 10, 2024, 9:00:00 AM4/10/24
to pyo-discuss
Hello everyone,

I would like to know if it is possible to use the Particle object on a NewTable that is being recorded, before the recording is finalized?

Regards

Alexandros Drymonitis

unread,
Apr 16, 2024, 6:59:38 AM4/16/24
to pyo-d...@googlegroups.com

Can you share some code? I don't understand what you are trying to achieve. Is it overdubbing? What is it that's not working as you want?

--
You received this message because you are subscribed to the Google Groups "pyo-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pyo-discuss...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pyo-discuss/9424e927-aa75-487e-b5ce-ac9787a390a5n%40googlegroups.com.

Rogerio Barbosa

unread,
Apr 19, 2024, 5:02:14 PM4/19/24
to pyo-d...@googlegroups.com
Dear Alexandros,

Thank you for your attention.

My goal is to record a performance (it could be an improvisation) and extract data from the ongoing recording to create a second sound layer superimposed on the first, using granulation techniques. It will not be a direct use of the Particle class, but a class that will use Particle internally for more varied granulation operations (for example, combining multiple fragments from the Table or mixing grains from different points in the Table). At first, due to errors, I came to think that the NewTable would be blocked for access while the recording was not finished, but I discovered that it is possible to access the Table. The code below shows how I managed to solve this problem. I can move the "pos" slider and access different points in the NewTable as the recording continues.

==================================

from pyo import *

s = Server().boot()

mic = Input(0).out()

buf = NewTable(30)
buf.view()
rec = TableRec(mic, buf, fadetime=0.01).play()  

def buff_view():
    buf.refreshView()

m = Metro(0.5).play()
tf = TrigFunc(m, buff_view)

grains = Particle(buf, HannTable(), pos=0, dur=0.5, dev=0.02, chnls=2, mul=0.5).out()
grains.ctrl()


s.gui(locals())

==================================

In a second stage of the work, I am implementing an attack detector that saves timepoints in a dictionary, so that I can access these points randomly in order to guide the granulation process.
By the way, your book has been a great help in understanding how to better use the Pyo library.

Best regards,

Rogério

Reply all
Reply to author
Forward
0 new messages