Example #1
0
    private void onChannelMessagePlayed(object sender, Midi.ChannelMessageEventArgs arg)
    {
        var command = arg.Message.Command;

        if (command == Midi.ChannelCommand.NoteOn && arg.Message.Data2 == 0)
        {
            command = Midi.ChannelCommand.NoteOff;
        }

        switch (command)
        {
        case Midi.ChannelCommand.NoteOn:
            Actions.Add(delegate {
                Controller.setKeyPosition(arg.Message.Data1, 1);
            });

            break;

        case Midi.ChannelCommand.NoteOff:
            Actions.Add(delegate {
                Controller.setKeyPosition(arg.Message.Data1, 0);
            });

            break;
        }
    }
Example #2
0
    public override void OnInspectorGUI()
    {
        PianoController t = target as PianoController;

        if (GUILayout.Button("Reset Keys"))
        {
            t.resetKeys();
        }

        for (int index = 21; index <= 108; ++index)
        {
            float angle = t.getKeyPosition(index);
            angle = EditorGUILayout.Slider(index.ToString(), angle, 0, 1);
            angle = Mathf.Max(Mathf.Min(angle, 1), 0);
            t.setKeyPosition(index, angle);
        }
    }