hi @rorywalsh - Happy new year to you! it’s taken a bit of time on my end to figure out how to approach triggering the correct row but i think i have figured it out now.
at the moment i’m currently triggering the EnableCubeToPlaySound function on the LayerController. this is the same code triggered by the layer playheads. here’s the code for that function:
public void EnableCubeToPlaySound(int row, int index, bool state)
{
if(enableLayer)
{
row = row +1;
string channel = "rowCubeIndex"+row;
csound.SetChannel(channel, index);
channel = "rowCubeState"+row;
if (state==true)
{
csound.SetChannel(channel, posIntensity[index]);
}
else if (state == false)
{
csound.SetChannel(channel, 0);
}
channel = "rowCubeNote"+row;
//get note plus modifier
csound.SetChannel(channel,noteRowList[index]+transpose);
}
}
so i think the function doesn’t seem too difficult. i can pretty easily call it outside of that function, but perhaps i should set a different channel rather than the one indicated here?
also an interesting bug/behavior i’ve run into that has been present for nearly all of the time i’ve been working on this new version - the first runthrough of any layer when playback is enabled will be silent, or perhaps only play the first note, but by the second repeat it will respond correctly. it’s a bit weird but seems consistent. it hasn’t bothered me much yet especially on tracks that are running with faster rhythmic values but on slower tempo relationships it can mean several seconds of silence before that layer plays. and it might be the reason the notes aren’t currently being triggered manually either when interacted with.
anyway, any help appreciated - as always!