ref: 8f0db97aa21e79992fda5b3a790991e9f2015834
parent: c4d014abbeb7a8e28d3e630c2b12ceee9c63fee2
author: Paul Brossier <[email protected]>
date: Thu Jan 12 18:56:28 EST 2017
examples/utils.c: allocate note event once
--- a/examples/utils.c
+++ b/examples/utils.c
@@ -76,6 +76,7 @@
#if HAVE_JACK
aubio_jack_t *jack_setup;
+jack_midi_event_t ev;
#endif /* HAVE_JACK */
void examples_common_init (int argc, char **argv);
@@ -127,6 +128,9 @@
void examples_common_del (void)
{
+#ifdef HAVE_JACK
+ if (ev.buffer) free(ev.buffer);
+#endif
del_fvec (ibuf);
del_fvec (obuf);
aubio_cleanup ();
@@ -142,6 +146,9 @@
if (usejack) {
#ifdef HAVE_JACK
+ ev.size = 3;
+ ev.buffer = malloc (3 * sizeof (jack_midi_data_t));
+ ev.time = 0; // send it now
debug ("Jack activation ...\n");
aubio_jack_activate (jack_setup, process_func);
debug ("Processing (Ctrl+C to quit) ...\n");
@@ -185,10 +192,6 @@
send_noteon (smpl_t pitch, smpl_t velo)
{
#ifdef HAVE_JACK
- jack_midi_event_t ev;
- ev.size = 3;
- ev.buffer = malloc (3 * sizeof (jack_midi_data_t)); // FIXME
- ev.time = 0;
if (usejack) {
ev.buffer[2] = velo;
ev.buffer[1] = pitch;