It looks like your loop logic is wrong. This:
if(d<2){
for (int x = 0; x<sizeof(sT)-1; x++){
sT[x][0]= sT[x+1][0];
sT[x][1]= sT[x+1][1];
}
sT[sizeof(sT)-1][0]=0;
sT[sizeof(sT)-1][1]=0;
delay(noteBreak);
}
should be like this:
if(d < 2)
{
int final_entry_index = (sizeof sT)/(sizeof sT[0]) - 1;
for (int x = 0; x < final_entry_index; x++)
{
sT[x][0]= sT[x+1][0];
sT[x][1]= sT[x+1][1];
}
sT[final_entry_index][0]=0;
sT[final_entry_index][1]=0;
delay(noteBreak);
}
In the orginal, you are addressing memory that you do not own, who knows what you are overwriting. That is why your XIAO is bricked.