Could you do this through reassigning what parameter the arc is mapped to via params:set(“arc_encoder_x_mapping”) (alsoat the point at which the user hits the button? I think that takes a number, so I need to expose a public method that gives the library user a table of param names and ids (right now it gets built by a private method called params_as_options)
So you leave the arc with a max of four assignments, but arbitrarily change what it is those assignments are set to on the fly? By a combination of changing the assignment as above and calling arcify:clear_encoder_mapping(x) you could set an encoder to map to a param, and then clear that param when you were done.
Right now the way to arbitrarily remap encoders as I describe above is a mess, it seems like you would be better served with a method like arcify:map(encoder_num, “param_id”)
You also end up with an unnecessary set of params tacked on to your params screen. To get rid of those params I’ll need to expose methods that let you change encoder mappings dynamically through changing the encoder mapping table, rather than the params system. I would need a flag in arcify like expose_mappings_as_params and in your case, that would be false.
Where we’re heading with this is pretty far away from my original “drop in easy arc support” concept for the lib. But as long as we can come up with an expert API that beginners don’t have to worry about, that’s fine.
All that said, this seems possible and I’m happy to help move the library in a more flexible direction. I built it for solving an immediate problem (easy controls for my thesis symposium talk/demonstration this week) but as I begin to imagine more complex scripts I’ll want more power.
(I added a few issues on GitHub to reflect the roadmap: https://github.com/mimetaur/arcify/issues)