It seems that only markInterested() objects are accessible (i.e we can evaluate their property) during the runtime (after init() has run). Also objects can only be markInterested() within init()?
So we discover that a track has an Instrument Layer in it's device bank during run time. We want to traverse this device bank but can't because it has not previously been markInterested(). What am I missing?
thanks
How do we markInterested() devices nested in an Instrument Layer (java)
- KVRAF
- 4888 posts since 13 May, 2004
Yes. That's how it works.dungle wrote: Sun Jan 26, 2025 11:23 am It seems that only markInterested() objects are accessible (i.e we can evaluate their property) during the runtime (after init() has run). Also objects can only be markInterested() within init()?
You need to select one of the child devices which makes it become the cursor device which you can then use to go deeper...dungle wrote: Sun Jan 26, 2025 11:23 am So we discover that a track has an Instrument Layer in it's device bank during run time. We want to traverse this device bank but can't because it has not previously been markInterested(). What am I missing?
thanks
What you sadly cannot do is e.g. get a full path from the cursor device up till the root.
-
- KVRist
- Topic Starter
- 39 posts since 4 Oct, 2007
Thank you. Understanding the role of Cursor related classes is key, and it has been really hard work getting the hang of this. Bitwig API programming is kind of niche and there aren't much in the way of up to date written tutorial or simple examples, for a variety of reasons I suppose.
-
- KVRist
- Topic Starter
- 39 posts since 4 Oct, 2007
This is turning out to be tricky.
We assign our CursorDevice and CursorDeviceLayer members to obtain the properties of the referenced objects, but we have to return from the method and resume in a scheduled Task for the cursor referenced properties to become valid? (this is what I'm seeing..)
And then there appears to be synchronisation issues where the cursor points to the wrong element.
These issues are solvable but (sanity check) it seems to lead to some code complexity for what is a conceptually simple script?
We assign our CursorDevice and CursorDeviceLayer members to obtain the properties of the referenced objects, but we have to return from the method and resume in a scheduled Task for the cursor referenced properties to become valid? (this is what I'm seeing..)
And then there appears to be synchronisation issues where the cursor points to the wrong element.
These issues are solvable but (sanity check) it seems to lead to some code complexity for what is a conceptually simple script?
