/[paths]/src/main.c
ViewVC logotype

Diff of /src/main.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 26 by ben, Sat Aug 18 09:30:09 2012 UTC revision 27 by ben, Sat Aug 18 09:45:16 2012 UTC
# Line 125  static int jack_process_callback(jack_nf Line 125  static int jack_process_callback(jack_nf
125                                          continue;                                          continue;
126                                  }                                  }
127                                  struct event *ev = &app->instruments[inst].voices[voice].route[*cur];                                  struct event *ev = &app->instruments[inst].voices[voice].route[*cur];
                                 unsigned char *buf = jack_midi_event_reserve(app->instruments[inst].out_buf, i, 3);  
                                 if (!buf) {  
                                         error("no memory, note lost");  
                                         return 0;  
                                 }  
128    
129                                  jack_time_t now = jack_get_time();                                  jack_time_t now = jack_get_time();
130    
131                                  if (*press) { /* note must be released before passing to next note */                                  if (*press) { /* note must be released before passing to next note */
132                                          if (*press + ev->duration < now) {                                          if (*press + ev->duration < now) {
133                                                    unsigned char *buf = jack_midi_event_reserve(app->instruments[inst].out_buf, i, 3);
134                                                    if (!buf) {
135                                                            error("no memory, event lost");
136                                                            return 0;
137                                                    }
138                                                  buf[2] = ev->velocity;                                                  buf[2] = ev->velocity;
139                                                  buf[1] = ev->pitch;                                                  buf[1] = ev->pitch;
140                                                  buf[0] = 0x80;  /* note off */                                                  buf[0] = 0x80;  /* note off */
# Line 143  static int jack_process_callback(jack_nf Line 143  static int jack_process_callback(jack_nf
143                                                  fprintf(stderr, "off %d (%p)\n", ev->pitch, ev);                                                  fprintf(stderr, "off %d (%p)\n", ev->pitch, ev);
144                                          }                                          }
145                                  } else { /* this is a new note */                                  } else { /* this is a new note */
146                                            unsigned char *buf = jack_midi_event_reserve(app->instruments[inst].out_buf, i, 3);
147                                            if (!buf) {
148                                                    error("no memory, event lost");
149                                                    return 0;
150                                            }
151                                          buf[2] = ev->velocity;                                          buf[2] = ev->velocity;
152                                          buf[1] = ev->pitch;                                          buf[1] = ev->pitch;
153                                          buf[0] = 0x90;  /* note on */                                          buf[0] = 0x90;  /* note on */
# Line 208  int main (int argc, char *argv[]) Line 213  int main (int argc, char *argv[])
213    
214          /* mark it (...) */          /* mark it (...) */
215          app.instruments[0].voices[0].route[0].pitch = 42;          app.instruments[0].voices[0].route[0].pitch = 42;
216          app.instruments[0].voices[0].route[0].duration = 42;          app.instruments[0].voices[0].route[0].duration = 42000;
217    
218          /* init jack */          /* init jack */
219          jack.client = jack_client_open(PACKAGE_NAME, JackNullOption, NULL);          jack.client = jack_client_open(PACKAGE_NAME, JackNullOption, NULL);

Legend:
Removed from v.26  
changed lines
  Added in v.27

  ViewVC Help
Powered by ViewVC 1.1.26