seq192 icon indicating copy to clipboard operation
seq192 copied to clipboard

Extending the OSC API?

Open Simon-L opened this issue 3 years ago • 2 comments

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.

Simon-L avatar Nov 08 '22 02:11 Simon-L

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_BEATS could be named SEQ_EDIT_MODE_BEATS, it looks more readable and consistent to me
  • perform.hpp at line 370 looks a bit out of place / doesn't do what its name suggests

jean-emmanuel avatar Nov 08 '22 19:11 jean-emmanuel

Regarding the other question, I just pushed some changes to allow building without jack and gtk (see readme).

jean-emmanuel avatar Nov 10 '22 10:11 jean-emmanuel