Esempio n. 1
0
int numBPMs(int blocknum, int windownum){
  struct WBlocks *wblock=getWBlockFromNum(windownum,blocknum);
  if(wblock==NULL)
    return 0;

  return ListFindNumElements3(&wblock->block->tempos->l);
}
Esempio n. 2
0
int addLPB(int lpb_value,
           int line,int counter,int dividor,
           int blocknum)
{
  struct WBlocks *wblock=getWBlockFromNum(-1,blocknum);
  if(wblock==NULL) {
    RError("unknown block(%p)",blocknum);
    return -1;
  }

  Place *place = PlaceCreate(line,counter,dividor);

  struct LPBs *lpb = SetLPB(wblock->block,place,lpb_value);

  wblock->block->is_dirty = true;

  return ListFindElementPos3(&wblock->block->lpbs->l,&lpb->l);
}
Esempio n. 3
0
int addBPM(int bpm,
           int line,int counter,int dividor,
           int blocknum)
{
  struct WBlocks *wblock=getWBlockFromNum(-1,blocknum);
  if(wblock==NULL) {
    RError("unknown block(%p)",blocknum);
    return -1;
  }

  Place *place = PlaceCreate(line,counter,dividor);

  struct Tempos *tempo = SetTempo(wblock->block,place,bpm);

  wblock->block->is_dirty = true;

  return ListFindElementPos3(&wblock->block->tempos->l,&tempo->l);
}
Esempio n. 4
0
int addSignature(int numerator, int denominator,
                 int line,int counter,int dividor,
                 int blocknum)
{
  struct WBlocks *wblock=getWBlockFromNum(-1,blocknum);
  if(wblock==NULL) {
    RError("unknown block(%p)",blocknum);
    return -1;
  }

  Place dasplace = place(line,counter,dividor);

  struct Signatures *signature = SetSignature(wblock->block,&dasplace,ratio(numerator, denominator));

  wblock->block->is_dirty = true;

  return ListFindElementPos3(&wblock->block->signatures->l,&signature->l);
}
Esempio n. 5
0
int addNote(int notenum,int velocity,
            int line,int counter,int dividor,
            int end_line,int end_counter,int end_dividor, 
            int windownum, int blocknum, int tracknum)
{
  struct WBlocks *wblock=getWBlockFromNum(windownum,blocknum);
  struct WTracks *wtrack=getWTrackFromNum(windownum,blocknum,tracknum);
  if(wblock==NULL || wtrack==NULL) {
    RError("unknown wblock(%p) or wtrack(%p) %d/%d/%d\n",wblock,wtrack,windownum,blocknum,tracknum);
    return -1;
  }

  struct Notes *note = InsertNote(wblock,
                                  wtrack,
                                  PlaceCreate(line,counter,dividor),
                                  end_line==-1 ? NULL : PlaceCreate(end_line,end_counter,end_dividor),
                                  notenum,
                                  velocity,
                                  true);

  wblock->block->is_dirty = true;

  return ListFindElementPos3(&wtrack->track->notes->l,&note->l);
}