bitfocus/companion-module-behringer-x32

Feature Request: Add all OSC features @ Tape Operation

dogefreak opened this issue · 1 comments

I'm missing quite a few features from the tape operation menu, and I would like them all to be added. Would that be possible or is there a reason why a few were left out? It would be nice to skip ahead to the next track. It would also be nice to fetch the name of the current track that's playing.

Maybe it would also be handy to add the /‐stat/tape/ variables.

OSC Tape Operation (highlighted is missing):
0: Stop
1: Play
2: Record
3: Pause
4: Play/Stop
5: Play/Pause
6: Rec/Stop
7: Rec/Pause
8: Prev. Track
9: Next Track

hi @dogefreak
Reading through this ticket and I'm not fully understanding. If I look at the code the following are in the code base

0: Stop
1: Pause
2: Play
3: Pause Record
4: Record
5: FF
6: REW

as per the mapping of /‐stat/tape/state in OSC doc

I'm not too sure where you got the above list which seems to be an extended version of the one in the OSC doc but also the mappings don't match?

You also say that 4: Play/Stop, 5: Play/Pause, 6: Rec/Stop, 8: Prev. Track and 9: Next Track are missing but these aren't in OSC command.
Also I don't think 3: Pause Record does what you think it does.1: Pause pauses playback and 3: Pause Record pauses recording. It doesn't toggle it

I could probably create "Play/Stop", "Play/Pause" and "Rec/Stop" and "Rec/Pause Rec" but behaviors aren't necessary clear:
When you press "Play/Stop", what happens when the state is 1: Pause, 3: Pause Record, or 4: Record?
When you press "Play/Pause", what happens when the state is 0: Stop,3: Pause Record, or 4: Record?
When you press "Rec/Stop", what happens when the state is 1: Pause, 2: Play, or 3: Pause Record?
When you press "Rec/Pause", what happens when the state is 0: Stop, 1: Pause, or 2: Play?

In terms of
8: Prev. Track and 9: Next Track
not really sure how to implement this, I see there is /‐stat/tape/file which is the file path perhaps that could be set?
I also see we can read contents of usb with /-usb commands. But not really sure how we will know if the file is playable (maybe it only lists playable files and directories?) and how we would handle directories (maybe we can ignore directories and only say next and prev on the actual audio?) this would need some serious experimenting and testing though

finally what variables do you want? The name of the state, file name and remaining time? We already have elapsed time ($(x32:tape_time_hms) and $(x32:tape_time_ms))