drawNoteRing = (context, cx, cy, t, hueShift = null) => {
const j = Math.sin(t / 15 / Math.PI * 2)
const k = Math.sin(t / 20 / Math.PI * 2)
const scale = 1 + bounceScale * j
const rotOffs = wiggleDeg * k
const noteRotOffs = noteNames.map((_, i) => {
return noteWiggleDeg * Math.sin(i / noteCount / 2 * Math.PI * 2 + t / 27 / Math.PI * 2)
})
for (let i = 0; i < noteCount; i++) {
for (let r = 1; r < noteCount / 2 + 1; r++) {
drawRelation(context, cx, cy, i, r, scale, rotOffs, noteRotOffs);
}
}
for (let i = 0; i < noteCount; i++) {
const [x, y] = noteIndexToPosition(cx, cy, i, scale, noteRotOffs[i] + rotOffs)
drawNote(context, x, y, i, scale, rotOffs, 0.65, hueShift);
}
}