update readme
This commit is contained in:
48
README.md
48
README.md
@ -1,50 +1,8 @@
|
|||||||
# BuboQuark: Simple, hassle-free live coding
|
# BuboQuark: Simple, hassle-free live coding
|
||||||
|
|
||||||
This repository is a collection of methods and hacks that I found to make live
|
This repository is a collection of methods and hacks that I found to make live
|
||||||
coding easier on **SuperCollider**. A secondary goal is to make that setup easy
|
coding easier on **SuperCollider**. There is a [small companion website](https://bubobubobubobubo.github.io/BuboQuark/#/) that will tell you more about it.
|
||||||
to install on other computers. This Quark is not bringing a lot of new features
|
|
||||||
and it twists the language in a way that is highly personal. Internally, it
|
|
||||||
relies a lot on **JITLib**, **Patterns** and **NodeProxies**. It truly feels
|
|
||||||
like a collection of tips and hacks found on the internet.
|
|
||||||
|
|
||||||
### Gated control-rate modulations
|
## Contributions
|
||||||
|
|
||||||
Ever wished to use a control-rate modulation for any of your `Pbind` parameters?
|
Contributions are welcome! If you have a technique/method that you think is worth sharing, please open a pull request. If you have any questions, feel free to open an issue. There might be some things that I missed, or that could be improved. Please, let me know!
|
||||||
I have added a `Pdyn` pseudo-class that allows you to do that fairly easily.
|
|
||||||
Take a look at the following example :
|
|
||||||
|
|
||||||
```supercollider
|
|
||||||
(
|
|
||||||
[
|
|
||||||
"test2", i: "modulo",
|
|
||||||
scale: Scale.minor,
|
|
||||||
octave:3,
|
|
||||||
// This is the line you need to look at
|
|
||||||
ffreq: Pdyn({XLine.ar(5000, 200, c.beatDur * 2)}),
|
|
||||||
deg: "[0 7 0 5]^2.0 [0 3 0 5]^2.0 [~ ~ ~ ~]".p,
|
|
||||||
].pat.play;
|
|
||||||
~test2.fx(100, 0.35, {arg in; JPverb.ar(in, size: 10)});
|
|
||||||
)
|
|
||||||
```
|
|
||||||
|
|
||||||
`Pdyn` will wrap a `Ndef` and repeat it _every time_ for every event. This is
|
|
||||||
fairly hacky but it works rather well!
|
|
||||||
|
|
||||||
### NodeProxy
|
|
||||||
|
|
||||||
The `NodeProxy` roles are sometimes a bit verbose to my taste. 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
|
|
||||||
```
|
|
||||||
|
|
||||||
There is also `.fxin` and `.wet` functions, shortcuts for the `\filter` and
|
|
||||||
`\filterIn` NodeProxy mechanisms. I have also added some rather shady functions
|
|
||||||
that automatically pick up a slot for a specific fx: `fx1`, `fx2`, up to `fx9`.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user