Bonjour,

J'ai un petit souci avec l'interface graphique que je développe pour un synthé digital. Outre les soucis d'algorithme.

J'ai prévu le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        for (int i = 0; i < buttons.length; i++) {
            buttons[i].setOnMousePressed(new EventHandler<MouseEvent>() {
                @Override
                public void handle(MouseEvent event) {
                    playNote(event.getSource());
                }
            });
            buttons[i].setOnMouseReleased(new EventHandler<MouseEvent>() {
                @Override
                public void handle(MouseEvent event) {
                    stopNote(event.getSource());
                }
            });
            buttons[i].setOnTouchPressed(new EventHandler<TouchEvent>() {
                @Override
                public void handle(TouchEvent event) {
 
                    playNote(event.getSource());
 
                }
            });
            buttons[i].setOnTouchReleased(new EventHandler<TouchEvent>() {
                @Override
                public void handle(TouchEvent event) {
                    stopNote(event.getSource());
                }
            });
        }
Je ne sais pas si le TouchPressed fonctionne car je n'ai pas d'écran tactile. En tout cas avec le souris c'est ok.

Par contre le pianotage en clavier ne fonctionne pas avec le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
        titledPanes[0].setOnKeyPressed(event -> {
            for (int i = 0; i < buttons.length; i++) {
                if (event.getCode().equals(keycode[i])) {
                    playNote(buttons[i]);
                }
            }
        });
        titledPanes[0].setOnKeyReleased(event -> {
            for (int i = 0; i < buttons.length; i++) {
                if (event.getCode().equals(keycode[i])) {
                    stopNote(buttons[i]);
                }
            }
        });
L'enfoncement des touches ne fonctionne pas bien: c'est le même comportement que pour un "KeyTyped" avec une méthode qui se lance toutes les x millisecondes. Le KeyReleased ne fonctionne pas du tout.

https://gitlab.com/Graphics3D/MyLittleSynth