supriya-project/supriya

Unify Server / Session / Provider via Context base class

josiah-wolf-oberholtzer opened this issue · 2 comments

Rather than wrapping Servers and Sessions with Providers to get work done, what if we unified all three classes via a common base with the provider interface, including harmonizing nonrealtime / realtime / provider implementations of nodes / buffers / buses?

Upsides:

  • We get to remove a layer of indirection (Provider)
  • We get to firm up the similarities across RT and NRT

Downsides:

  • We'll probably dispense with / downplay introspection abilities on the proxy classes
  • We'll probably dispense with the fancy list interfaces for nodes (or reimplement them completely - not a bad idea, given their age)

Additionally:

  • To permit Server usage without a Moment context, we can allow an on_completion: Optional[Callable[Context, None]]] argument to those methods that would normally return a Completion object.

In progress via #307