Files
BuboQuark/docs/boot.md
2024-01-07 21:58:34 +01:00

2.1 KiB

Boot the server

There is a Boot() pseudo-class acting as a configuration file. Its behavior is pretty classic if you are already accustomed to SuperCollider:

  • it raises the conservative options of Server.default to allow more connexions, more buffers, etc. Will prevent you from running out of memory while improvising.

  • turns the the default environment into a JITLib ProxySpace, replacing all global variables with NodeProxy instances. This is one of the classic ways to live code using SuperCollider.

  • set the ProxySpace to use LinkClock for syncing with other. LinkClock is using the Ableton Link protocol, supported by most other apps.

  • Set custom paths for loading audio sample banks and synth definitions. Write your definitions once, reuse them all the time (if you want to!).

  • Set up a sound limit to prevent you from blowing up your speakers/ears. This is an often overlooked step that can save you from a lot of trouble. BuboQuark will also automatically load the SafetyNet Quark to protect you from loud / incorrect audio signals.

The Boot() constructor takes three arguments:

  • configPath: path to a .scd configuration file that will be automatically loaded
  • samplePath: path to a folder containing your audio samples (in sub-folders)
  • serverOptions: a set of ServerOptions to fine tune the server configuration

All of these arguments are optional. However, they will default to my configuration if not set. If you want to set one option but not the others, use keywords arguments or nil values. Here is an example of how you could boot the server:

Boot(serverOptions: nil, // use default options
     configPath: "/some/config/path",
     samplePath: "/home/me/my_samples")

To make sure that you have booted correctly, you can go through the following check list:

  • do I see my samples when I write Bank.list?
  • do I see my synth definitions when I write d.list?
  • is this snippet producing sound: {SinOsc.ar(200) ! 2 * 0.5}.play?