Open b2renger opened 9 years ago
This still an open topic. So, here is my opinion for each features :
Local and Master modes are nearly the same. In an automatic discovery context (zero conf), master don't know he's a "master" while slaves register to him. Local mode is just Master mode without slaves. So the only 2 modes to be technically distinguished are Master mode and Slave mode.
This control may be interserting even in local/master mode. Some use cases :
This control can be considered as "live" control, so it need to be directly accessible.
This control only have sense in Master mode since slaves can't change it. In slave mode, this control could be replaced by a tempo feedback sensor calculated in real-time by ticks reception.
Play/stop/pause/resume controls follows the same rules. In slave mode, all these controls could be in unmutable state, reflecting Master's state (pause button when master pause, ...etc).
Any mode need latency settings. For instance, beat visualization (via bang or any blink, animation) need to be delayed to have perfect audio/display sync.
Latency is per device, set once and will be the same for all PdPublisher apps. Shared preferences (http://developer.android.com/guide/topics/data/data-storage.html#pref) is well suited for that.
Since latency is in general set once, this setting don't need to be directly accessible. Settings window may host this slider.
For now only midi clock is implemented but latter, midi controls / notes and maybe SysEx could be implemented. Maybe dialog settings is a Midi dialog (even if Midi communication is made by network, it could be made via USB). So an accurate icon could be a Midi icon (din ? original MIDI icon ?)
What do you think ?
ERRATUM for latency settings :
i made a confusion between audio latency and network latency. This subject is maybe out of this topic scope.
Major part of GUI rework has been made. It still some enhancement to have a better GUI but it's work has it is. So changes are scheduled to a futur version.