the main change would be in the tracker UI: https://github.com/monome/teletype/blob/master/module/pattern_mode.c
it’s an easy change for any base > 7. but for anything below it’s a major UI change as it would require scrolling. i think the UI for this should be given careful consideration - how do you display tracker in this case? would some banks be displayed partially, or do you just display the ones that fit? it would be also good to show the bases somehow, especially if you can set it per bank, but i’m not sure there is enough space. then for base 2 you probably want it to display the actual binary representation, not the positive portion with a minus sign - i don’t really see the benefits of the latter.
(as a side note i think only 10, 16, 12 and 2 are really useful, so not sure supporting any arbitrary base is necessary).
then you would need to implement the op, check the readme on the tt repository, it has some documentation there and i can help with specific questions.
finally, the choice should be persisted in flash, for that you would need to:
- modify module/flash.c to store it
- modify module/main.c to read the setting from flash upon bootup
- add a function to update the setting to src/teletype_io.h - this is what the op will call
- implement that function in module/main.c and make sure it updates flash. edit: also need to implement it in tests and simulator
and as @jlmitch5 mentions, the grid control mode will need to be updated - i can handle that part.
for base conversion patter.c uses itoa function, don’t remember for sure but i think it might have a hack that only makes it work with base 10, you want to double check that as well