Idea: Simulate Ghost-Clips - Listen to Changes on SRC-Clips and Apply to Ghosts.
- KVRAF
- 2482 posts since 22 Sep, 2016
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
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
- KVRAF
- Topic Starter
- 2482 posts since 22 Sep, 2016
Hey Extensionistas ...
can sbdy share whether and how it is possible to iterate over all clips in a BW project ...
Thx
Peter
can sbdy share whether and how it is possible to iterate over all clips in a BW project ...
Thx
Peter
- KVRist
- 393 posts since 12 Apr, 2020
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.] 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
----------------------------------------------------------------------
/CTRL → http://slashctrl.io
Music & mixes → http://soundcloud.com/kirkwoodwest
/CTRL → http://slashctrl.io
Music & mixes → http://soundcloud.com/kirkwoodwest
- KVRAF
- Topic Starter
- 2482 posts since 22 Sep, 2016
So there's no such method as like List<Clip> project.getClips(), or a List<Clip> project.getClipBy(String nameRegexp)?Kirkwood West wrote: Mon Jun 16, 2025 12:18 amIts 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.] 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
- KVRAF
- Topic Starter
- 2482 posts since 22 Sep, 2016
I give it a bump ... is there really no way to iterate over all clips in order to get/set their content?
- KVRist
- 393 posts since 12 Apr, 2020
look at the API. You got a couple things for clips.] 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?
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
/CTRL → http://slashctrl.io
Music & mixes → http://soundcloud.com/kirkwoodwest
