Brainstorming server-based services

Missing machine manager

The most obvious service is the missing machine manager. Query a server with machine name, and the server returns possible downloads as xml. The host installs the machine, and resumes loading as if nothing happened.

The following URLs can be extracted from CyanPhases Overloader:

Machine punishment

Crash dumps can be useful for debugging. When many crash dumps are combined, patterns emerge. If a server collects crash dumps, these statistics can be used for both debugging and to provide warnings to end users about the stability of any particular machine.

In such a case, a crash dump must contain at least:

  • Program state, running threads, which thread crashed
  • Names of all machines in the song, and their states
  • Name and details of the machine that crashed
  • Date stamp of .exe, host version,
  • Which method crashed (Init, Work, WorkMonoToStereo, Tick, etc)
  • Machine commands and subcommands
  • The serialized output from Save() on all machines
  • Wavetable contents
  • Currently playing patterns, and dump of pattern data +-5 rows from the crash position
  • Audio driver info, sample rate
  • List of last user operations in the undo/redo-buffer

A monitor thread could be running and detect whether a thread is stale or not, and if so, allow the user to save and report a crash dump. A server application that collects and returns statistics is also needed for this purpose.

P2P sample sharing add-in

This is probably a bit off, but cool nevertheless. The idea is an integrated P2P-browser where one can share and download samples with other online Buzé users. This is probably more a reminder that the UI should have an add-in feature, where add-ins get their own tabs.

  • Check out xbnbt for an open source tracker (c++, works on both windows and linux)
  • Google torrentlib or libtorrent for open source torrent clients
  • Look at customizations of the .torrent format and network protocol to allow versioning of sample packs where .torrent-files can be re-published with appended files.