protected override void SpawnAndArrangePrompts(DrumSequence next)
    {
        if (next.type != DrumSequence.SequenceType.Circle)
        {
            return;
        }

        //Add needed prompts
        while (prompts.Count < next.keys.Count)
        {
            GameObject promptObj = Instantiate(promptPrefab, wheelPivotT);
            promptObj.SetActive(true);
            DrumGamePrompt prompt = promptObj.GetComponent <DrumGamePrompt>();
            prompt.SetHighlightVisible(false);
            prompts.Add(prompt);
        }

        //Remove extras
        while (prompts.Count > next.keys.Count)
        {
            DrumGamePrompt last = prompts[prompts.Count - 1];
            prompts.Remove(last);
            Destroy(last.gameObject);
        }

        //Arrange around a circle
        float radius = promptPrefab.transform.localPosition.y;

        for (int i = 0; i < prompts.Count; i++)
        {
            float phaseRadians = ((i / (float)prompts.Count) * 360f) * Mathf.Deg2Rad;
            float x            = radius * Mathf.Sin(phaseRadians);
            float y            = radius * Mathf.Cos(phaseRadians);

            prompts[i].transform.localPosition = new Vector3(x, y, 0);
        }
    }
    protected override void SpawnAndArrangePrompts(DrumSequence next)
    {
        if (next.type != DrumSequence.SequenceType.Line)
        {
            return;
        }

        //Add needed prompts
        while (prompts.Count < next.keys.Count)
        {
            GameObject promptObj = Instantiate(promptPrefab, this.transform);
            promptObj.SetActive(true);
            promptObj.transform.SetParent(promptParent.transform);
            DrumGamePrompt prompt = promptObj.GetComponent <DrumGamePrompt>();
            prompt.SetIndex(prompts.Count);
            prompt.SetHighlightVisible(false);
            prompts.Add(prompt);
        }

        //Remove extras
        while (prompts.Count > next.keys.Count)
        {
            DrumGamePrompt last = prompts[prompts.Count - 1];
            prompts.Remove(last);
            Destroy(last.gameObject);
        }

        //Arrange according to coordinate info

        for (int i = 0; i < prompts.Count; i++)
        {
            prompts[i].transform.localPosition = next.coords[i];
        }

        segmentHighlighter.DrawSegments(next.coords, next.showLine);
    }