Extending the OSC API?
Hello!
I had a try at adding some new commands to the OSC API and it turned out to be really simple, thank you for laying out all the code as neatly as it is!
New things are:
- change sequence length, beat per measure, beat length and measures
- add and remove notes, snapping at 64th notes
I'm opening a PR for anyone to test and as I wish to contribute but this is more of a discussion about how and why extending the API. What are your thoughts about that?
My initial idea was to make editing sequences while playing live using MIDI controllers or other interactions. I'm mostly working on making modules for VCV Rack although seq192 is exciting to use and experiment with as it is very lightweight.
Speaking of lightweight, as a bonus and a little Makefile exercise, I've made seq192 into a lib in a separate branch here. Would there be any interest in stripping it even more? I'm thinking even removing jack and gtk to have a very cool embeddable sequencer engine.
Hey, thanks a lot for your contribution ! Here are a few remarks:
- setting the sequence length using ticks looks a bit risky to me as there's no guarantee the ppqn won't change someday. Wouldn't it be better to allow specifying a length in decimal beat units (quarter notes or eighth notes) ?
- in the same spirit, the edit actions could use beat units instead of ticks
- constants such as
SEQ_MODE_BEATScould be namedSEQ_EDIT_MODE_BEATS, it looks more readable and consistent to me perform.hppat line 370 looks a bit out of place / doesn't do what its name suggests
Regarding the other question, I just pushed some changes to allow building without jack and gtk (see readme).