Idea: Simulate Ghost-Clips - Listen to Changes on SRC-Clips and Apply to Ghosts.

Post Reply New Topic
RELATED
PRODUCTS

Post

I saw a few videos of guys showing of what can be done with the API.
One was doing this "Hey I can control Bitwig by a 'control language' which I put into the clip titles ...
That got me thinking about Ghost-Clips. A ghost clip is a copy of a clips whose content is tied to the content of the source through the whole lifecycle. That means - if the source is changed the ghosts are changed as well. It's not a copy just at the time of coying and then then source and copy life their own lives.

So bringen ghoosts and nameing clips together.
Can on simply go by the fwollowing clip title naming convention:
1.) Name a source clip "SRC://name"
2.) Name a "simulated" ghost "GHST://name"

And then write a script that listens to changes in any clip named "SRC://"
If a change happens scan (or better have a cache) for all "GHST" clips (you would have to be able to listen ti create clip and destroy clip to keep a cache up to date)
Do a name matching to match src and ghsts while ignoring the "#" posfix that is added when you copy a clip
Apply the changes from the changed src-clip to all matching ghst-clips.

Would that be doeable?
Has it already been done and I missed that script?

BR
PeterH

Post

Hey Extensionistas ...

can sbdy share whether and how it is possible to iterate over all clips in a BW project ...

Thx
Peter

Post

] Peter:H [ wrote: Tue Jun 10, 2025 6:18 am Hey Extensionistas ...

can sbdy share whether and how it is possible to iterate over all clips in a BW project ...

Thx
Peter
Its a difficult task. The contents of the a "Clip" can only be accessed one at a time through a CursorClip. So doing propagation would be indeed difficult... not saying it can't be done tho.
----------------------------------------------------------------------
/CTRL → http://slashctrl.io
Music & mixes → http://soundcloud.com/kirkwoodwest

Post

Kirkwood West wrote: Mon Jun 16, 2025 12:18 am
] Peter:H [ wrote: Tue Jun 10, 2025 6:18 am Hey Extensionistas ...

can sbdy share whether and how it is possible to iterate over all clips in a BW project ...

Thx
Peter
Its a difficult task. The contents of the a "Clip" can only be accessed one at a time through a CursorClip. So doing propagation would be indeed difficult... not saying it can't be done tho.
So there's no such method as like List<Clip> project.getClips(), or a List<Clip> project.getClipBy(String nameRegexp)?

Post

I give it a bump ... is there really no way to iterate over all clips in order to get/set their content?

Post

] Peter:H [ wrote: Thu Jul 10, 2025 8:01 am I give it a bump ... is there really no way to iterate over all clips in order to get/set their content?
look at the API. You got a couple things for clips.

ClipLauncher and the CursorClip

ClipLauncher is more for high level clip information and state.

CursorClip is the thing that looks at the contents of a clip.

I don't think there is any easy way to move a clip other than to un-pin (if its a pinnable clip), then select a clip launcher row in the Clip Launcher object. then you could lock it again to do your changes. rinse repeat.

when the CursorClip moves it will update the state of all the observable steps. and you can take it from there.

Perhaps there is a better way to move a CursorClip around but I couldn't find one.
----------------------------------------------------------------------
/CTRL → http://slashctrl.io
Music & mixes → http://soundcloud.com/kirkwoodwest

Post Reply

Return to “Controller Scripting”