Example #1
0
    public void SetKey(KeyInputRef kir)
    {
        pitch = kir.midi;

        text.text = kir.showText;

        Color color = new Color(1, 1, 1, 1);

        if (kir.isSteadyTone)
        {
            color = new Color(0, 1, 0, 1);
        }
        else if (kir.isPentatonic)
        {
            color = new Color(0, 0, 1, 1);
        }


        ColorBlock cb = new ColorBlock();

        cb.normalColor      = color;
        cb.highlightedColor = color;
        cb.pressedColor     = Color.gray;
        cb.disabledColor    = Color.black;
        cb.colorMultiplier  = 1f;
        button.colors       = cb;
    }
Example #2
0
    public List <KeyInputRef> GetKeyInputRefs(int keynum)
    {
        List <KeyInputRef> pitches = new List <KeyInputRef>();

        int midIndex      = keynum / 2 - 1;
        int scaleCount    = scale.Count;
        int keyScaleIndex = MuseUtil.PitchValue[key.Replace("m", string.Empty)];
        int pindex        = keyScaleIndex - midIndex - 1;

        for (int i = 0; i < keynum; ++i)
        {
            int scaleDiff = Mathf.Abs(pindex) / scaleCount;

            if (pindex < 0)
            {
                scaleDiff = -scaleDiff - 1;
            }

            int index = pindex;
            Debug.Log(index);
            Debug.Log(scaleDiff);
            if (pindex < 0)
            {
                index += scaleCount * Mathf.Abs(scaleDiff);
            }
            else if (pindex > scaleCount - 1)
            {
                index -= scaleCount * Mathf.Abs(scaleDiff);
            }


            KeyInputRef kir = new KeyInputRef();

            int midivalue = MuseUtil.NameToMidi("C") + scale[index] + scaleDiff * 12;
            kir.midi         = midivalue;
            kir.showText     = MuseUtil.MidiToName(midivalue);
            kir.isChordTone  = IsChordTone(midivalue);
            kir.isSteadyTone = IsSteadyTone(midivalue);
            kir.isPentatonic = IsPentatonic(midivalue);


            pitches.Add(kir);
            pindex++;
        }

        return(pitches);
    }