initialise the readme
This commit is contained in:
75
README.md
Normal file
75
README.md
Normal file
@ -0,0 +1,75 @@
|
||||
# BuboQuark: Simple, hassle-free live coding
|
||||
|
||||
|
||||
This repository is a collection of tools and methods that I use to make live coding easier on **SuperCollider**. My aim is to make that setup easy to install on my other computers. This repository is not bringing anything new or interesting. This is merely a default configuration for my **SuperCollider** install. It's just a bunch of scripts that I use to make my life easier and I am no expert. I rely heavily on **JITLib** and other Quarks that I find useful.
|
||||
|
||||
## Installation
|
||||
|
||||
To install the **BuboQuark**, simply run the following command in your favorite **SC** editor:
|
||||
```bash
|
||||
Quarks.install("https://github.com/Bubobubobubobubo/BuboQuark")
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
This quark brings syntax shortcuts and minor improvements (_highly personal matter_) to make **SuperCollider** easier to handle on stage.
|
||||
|
||||
### Boot method
|
||||
|
||||
There is a `Boot()` class that acts as a configuration file for my setup. This configuration file is rather classic:
|
||||
|
||||
- raises the conservative options of `Server.default`
|
||||
- pushes everything into a `ProxySpace`
|
||||
- set paths for samples and synthdefs
|
||||
- install a `StageLimiter` not to blow up my speakers
|
||||
|
||||
**Note:** I put my configuration into `./config/livecoding/` and there should be a folder named `samples/` and a file called `Synthdefs.scd`.
|
||||
|
||||
### Simplified useful commands
|
||||
|
||||
- `Panic()`: shortcut for `CmdPeriod.run`.
|
||||
- `Boot(path)`: boot my config (**hardcoded** path or user specified path)
|
||||
- `Scope()`: a scope that always stays on top!
|
||||
- `FScope()`: a frequency scope that always stay on top!
|
||||
- `Gui()`: a server GUI window that always stay on top!
|
||||
|
||||
### Patterns
|
||||
|
||||
Patterns are powerful but writing them is long and can lead to a lot of typing errors. Moreover, they are often centered around list manipulation. **BuboQuark** defines a few helpers to transform a regular `Array` into various patterns:
|
||||
|
||||
```supercollider
|
||||
[1, 2, 3, 4].pseq
|
||||
```
|
||||
Consider the source as a documentation.
|
||||
|
||||
### Patterns
|
||||
|
||||
I don't like using keys because of the backslash (`\`), a symbol that is really hard to type on AZERTY keyboards. For that reason, I much prefer the `[instrument: 'plaits', dur: 2]` syntax. I added a `.pat` method to convert an array into a `Pbind`. There are optional arguments to specify the `fadeTime` and `quant` for that pattern. Demo:
|
||||
|
||||
```supercollider
|
||||
(
|
||||
[
|
||||
instrument: 'sinfb',
|
||||
rel: Pbrown(0.1, 0.5, 0.125, inf),
|
||||
note: Place([Pxrand([0, 3, 7, 10], 12), 0, 3, 5, 0, 12, 0, 7, 5, [5, 10, 7].pwhite(1)], inf),
|
||||
octave: [Pxrand([5, 6, 4], 4)].pxrand(inf), dur: Pbjorklund2(6, 8, inf) / 2,
|
||||
legato: 0.1
|
||||
].pat(~test).play;
|
||||
)
|
||||
```
|
||||
|
||||
### NodeProxy
|
||||
|
||||
The `NodeProxy` roles are somewhat verbose. I have tried to make the syntax easier on the eye by creating the `fx`, `wet` and `infx` methods. Here is a demo of how I use it:
|
||||
|
||||
|
||||
```supercollider
|
||||
(
|
||||
// Adding a tiny bit of reverb on slot 10 with a wet of 0.2
|
||||
~test.fx(10, 0.2, {
|
||||
arg in; GVerb.ar(in)
|
||||
});
|
||||
)
|
||||
|
||||
~test.wet(10, 0.5) // bring the reverb up with the wet method
|
||||
```
|
||||
Reference in New Issue
Block a user