Example #1
0
static void Scroll_play_down3(
                      struct WBlocks *wblock,
                      const Place *p1,
                      const Place *p2
){
  struct Tracks *track = wblock->block->tracks;

  while(track != NULL){
    struct Patch *patch=track->patch;
    if (patch != NULL){
      struct Notes *note = track->notes;
      while(note != NULL){
        if (PlaceIsBetween2(&note->l.p, p1, p2))
          PATCH_play_note(patch, note->note, note->id, VELOCITY_get(note->velocity), TRACK_get_pan(track));
        
        if (PlaceIsBetween2(&note->end, p1, p2))
          PATCH_stop_note(patch, note->note, note->id);
        
        note = NextNote(note);
      }
    }
    
    track = NextTrack(track);
  }
}
Example #2
0
static void Scroll_play_down3(
                      struct WBlocks *wblock,
                      const Place *p1,
                      const Place *p2
){
  struct Tracks *track = wblock->block->tracks;

  while(track != NULL){
    
    if (track->onoff==1){
      
      struct Patch *patch=track->patch;
      
      if (patch != NULL){
        
        struct Notes *note = track->notes;
        
        while(note != NULL){
          if (PlaceIsBetween2(&note->l.p, p1, p2))
            PATCH_play_note(patch, 
                            create_note_t(NULL,
                                          note->id,
                                          note->note,
                                          VELOCITY_get(note->velocity),
                                          TRACK_get_pan(track),
                                          ATOMIC_GET(track->midi_channel),
                                          0)
                            );
          
          if (PlaceIsBetween2(&note->end, p1, p2))
            PATCH_stop_note(patch,
                            create_note_t(NULL,
                                          note->id,
                                          note->note,
                                          0,
                                          TRACK_get_pan(track),
                                          ATOMIC_GET(track->midi_channel),
                                          0
                                          )
                            );
          
          note = NextNote(note);
        }
      }
    }
    
    track = NextTrack(track);
  }
}
Example #3
0
static void stop_all_notes_in_track(struct Tracks *track){
  int tracknum = track->l.num;

  if (tracknum < MAX_SCROLLPLAYTRACKS) {

    struct Patch *patch=track->patch;

    if (patch!=NULL) {
            
      VECTOR_FOR_EACH(struct Notes *note, &scrollplaying_notes[tracknum]){
        PATCH_stop_note(patch,note->note,note->id);
      }END_VECTOR_FOR_EACH;
      
    }

    VECTOR_clean(&scrollplaying_notes[tracknum]);
  }
Example #4
0
static void stop_all_notes_in_track(struct Tracks *track){
  int tracknum = track->l.num;

  if (tracknum < MAX_SCROLLPLAYTRACKS) {

    struct Patch *patch=track->patch;

    if (patch!=NULL) {
            
      VECTOR_FOR_EACH(struct Notes *note, &scrollplaying_notes[tracknum]){
        PATCH_stop_note(patch,create_note_t(NULL,
                                            note->id,
                                            note->note,
                                            0,
                                            0,
                                            ATOMIC_GET(track->midi_channel),
                                            0
                                            ));
      }END_VECTOR_FOR_EACH;
      
    }

    VECTOR_clean(&scrollplaying_notes[tracknum]);
  }