Commit 30f3c908f0d1865cc296e72d4c72bb8ecb7e3947
1 parent
346cc2f5
analyse flux midi
Showing
1 changed file
with
41 additions
and
7 deletions
Show diff stats
analyse_midi_keyboard.c
1 | #include <stdio.h> | 1 | #include <stdio.h> |
2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
3 | #include <stdarg.h> | 3 | #include <stdarg.h> |
4 | +#include <stdio.h> | ||
5 | +#include <stdbool.h> | ||
6 | +#include <stdlib.h> | ||
4 | #include <string.h> | 7 | #include <string.h> |
5 | #include <signal.h> | 8 | #include <signal.h> |
6 | #include <getopt.h> | 9 | #include <getopt.h> |
@@ -13,6 +16,18 @@ | @@ -13,6 +16,18 @@ | ||
13 | 16 | ||
14 | static snd_seq_t *seq; | 17 | static snd_seq_t *seq; |
15 | 18 | ||
19 | + | ||
20 | + | ||
21 | +void recup_num(){ | ||
22 | + FILE* fd; | ||
23 | + int num_port; | ||
24 | + fd=fopen("num_count2.txt","r"); | ||
25 | + fscanf(fd, "%d", &num_port); | ||
26 | + printf("num = %d \n", num_port); | ||
27 | + fclose(fd); | ||
28 | + | ||
29 | +} | ||
30 | + | ||
16 | static void init_seq(void) | 31 | static void init_seq(void) |
17 | { | 32 | { |
18 | int err; | 33 | int err; |
@@ -48,13 +63,29 @@ static void connect_port(void) | @@ -48,13 +63,29 @@ static void connect_port(void) | ||
48 | 63 | ||
49 | } | 64 | } |
50 | 65 | ||
66 | +void action(snd_seq_event_t *event){ | ||
67 | + | ||
68 | + if (event->type == SND_SEQ_EVENT_NOTEON) | ||
69 | + { | ||
70 | + printf("note : %d , velocite : %d\n",event->data.note.note, event->data.note.velocity); | ||
71 | + } | ||
72 | + if (event->type == SND_SEQ_EVENT_NOTEOFF) | ||
73 | + { | ||
74 | + printf("noteOFF : %2d , %d velocite : %d\n", event->data.note.channel, event->data.note.note, event->data.note.velocity); | ||
75 | + } | ||
76 | + if (event->type == SND_SEQ_EVENT_CONTROLLER) | ||
77 | + { | ||
78 | + printf("programme : %2d, %d %d\n", event->data.control.channel, event->data.control.param, event->data.control.value); | ||
79 | + } | ||
80 | + | ||
81 | +} | ||
51 | 82 | ||
52 | int main(){ | 83 | int main(){ |
53 | - init_seq(); | ||
54 | - struct pollfd *pfds; | ||
55 | - int npfds, err; | ||
56 | - create_port(); | ||
57 | - connect_port(); | 84 | + init_seq(); |
85 | + struct pollfd *pfds; | ||
86 | + int npfds, err; | ||
87 | + create_port(); | ||
88 | + connect_port(); | ||
58 | 89 | ||
59 | npfds = snd_seq_poll_descriptors_count(seq, POLLIN); | 90 | npfds = snd_seq_poll_descriptors_count(seq, POLLIN); |
60 | pfds = alloca(sizeof(*pfds) * npfds); | 91 | pfds = alloca(sizeof(*pfds) * npfds); |
@@ -69,7 +100,7 @@ int main(){ | @@ -69,7 +100,7 @@ int main(){ | ||
69 | break; | 100 | break; |
70 | if (event) | 101 | if (event) |
71 | { | 102 | { |
72 | - if (event->type == SND_SEQ_EVENT_NOTEON) printf("coucou %d\n",event->data.note.note); | 103 | + action(event); |
73 | } | 104 | } |
74 | } while (err > 0); | 105 | } while (err > 0); |
75 | fflush(stdout); | 106 | fflush(stdout); |
@@ -78,6 +109,9 @@ int main(){ | @@ -78,6 +109,9 @@ int main(){ | ||
78 | 109 | ||
79 | 110 | ||
80 | snd_seq_close(seq); | 111 | snd_seq_close(seq); |
81 | - | 112 | + |
113 | + | ||
114 | + recup_num(); | ||
115 | + | ||
82 | return 0; | 116 | return 0; |
83 | } | 117 | } |