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; }
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); }