feat: generate bounded ascending and descending MIDI arpeggio patterns
This commit is contained in:
parent
6be4f9803a
commit
ea0b4ca3da
9 changed files with 89 additions and 5 deletions
|
|
@ -142,4 +142,25 @@ static void chords(void)
|
|||
assert(xtc_project_note_count(p,&count)==XTC_OK && count==XTC_PROJECT_MAX_NOTES);
|
||||
xtc_project_destroy(p);
|
||||
}
|
||||
int main(void){markers();sections();ripple();duplicate_track();split_midi();merge_midi();humanize();chords();puts("Next DAW workflow tests passed.");return 0;}
|
||||
static void arpeggio(void)
|
||||
{
|
||||
xtc_project *p=NULL,*q=NULL;uint64_t t,c,n;size_t count;xtc_note_info note;int intervals[2]={4,7};
|
||||
assert(xtc_project_create(&p)==XTC_OK && xtc_project_add_track(p,"Track",&t)==XTC_OK);
|
||||
assert(xtc_project_add_midi_clip(p,t,0,960,&c)==XTC_OK && xtc_project_add_note(p,c,0,960,60,100,0,&n)==XTC_OK);
|
||||
assert(xtc_project_chordify(p,&c,1,intervals,2)==XTC_OK);
|
||||
assert(xtc_project_clone(p,&q)==XTC_OK && xtc_project_arpeggiate(q,&c,1,240,50,1)==XTC_OK);
|
||||
assert(xtc_project_get_note(q,0,¬e)==XTC_OK && note.pitch==67);xtc_project_destroy(q);
|
||||
assert(xtc_project_arpeggiate(p,&c,1,240,50,0)==XTC_OK);
|
||||
assert(xtc_project_note_count(p,&count)==XTC_OK && count==4);
|
||||
assert(xtc_project_get_note(p,1,¬e)==XTC_OK && note.start_tick==240 && note.pitch==64 && note.length_tick==120);
|
||||
assert(xtc_project_get_note(p,3,¬e)==XTC_OK && note.start_tick==720 && note.pitch==60);
|
||||
assert(xtc_project_arpeggiate(p,&c,1,1,100,0)==XTC_OK);
|
||||
assert(xtc_project_note_count(p,&count)==XTC_OK && count==480);
|
||||
assert(xtc_project_arpeggiate(p,&c,1,0,100,0)==XTC_ERR_INVALID_ARGUMENT);
|
||||
xtc_project_destroy(p);p=NULL;
|
||||
assert(xtc_project_create(&p)==XTC_OK && xtc_project_add_track(p,"Track",&t)==XTC_OK);
|
||||
assert(xtc_project_add_midi_clip(p,t,0,XTC_PROJECT_MAX_TICK,&c)==XTC_OK && xtc_project_add_note(p,c,0,XTC_PROJECT_MAX_TICK,60,100,0,&n)==XTC_OK);
|
||||
assert(xtc_project_arpeggiate(p,&c,1,1,100,0)==XTC_ERR_CAPACITY);
|
||||
assert(xtc_project_note_count(p,&count)==XTC_OK && count==1);xtc_project_destroy(p);
|
||||
}
|
||||
int main(void){markers();sections();ripple();duplicate_track();split_midi();merge_midi();humanize();chords();arpeggio();puts("Next DAW workflow tests passed.");return 0;}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue