https://github.com/lctrt/gull
UDP controlled sound machine for ORCA
https://github.com/lctrt/gull
livecoding orca upd
Last synced: 2 months ago
JSON representation
UDP controlled sound machine for ORCA
- Host: GitHub
- URL: https://github.com/lctrt/gull
- Owner: lctrt
- Created: 2019-05-30T16:33:44.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T17:47:43.000Z (almost 3 years ago)
- Last Synced: 2025-04-05T11:34:24.464Z (6 months ago)
- Topics: livecoding, orca, upd
- Language: JavaScript
- Homepage:
- Size: 268 KB
- Stars: 68
- Watchers: 6
- Forks: 2
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GULL
Gull is a *UDP sound machine* designed to be controlled externally. It was created as a companion application to the livecoding environment [ORCA](https://hundredrabbits.itch.io/orca).
## Install & Run
TODO / add details / package into electron app
If you want to build Gull yourself, follow these steps:
```
git clone https://github.com/lctrt/gull.git
cd gull
npm install
npm start
```## File management
Samples should be in `wav` format.
If you build yourself you can put your samples into `/samples`.### Project mode
You can select a folder with `File > Select Sample Folder`. This will load the samples in that folder, as well as the `default.gull` file if present.
~~The server will hot reload when new samples are added.~~ This got broken with the dynamic folder selection, will fix.
## editor commands:
* `meta` + arrow: fast cursor move (6 chars)## Creating channels
A channel is written on one line of the editor. Channels can share the same id to be triggered together.
Channels are composed by blocks, each block start with a capital letter, with associated base36 parameters under it.
A channel start with a `C` block.
It's then followed by a generator:
* P(sample, start, duration): sample player block
* S(waveform): synth block (waveform not supported yet)After that you can follow up with effect blocks:
* R(room, wet): reverb
* D(intensity, wet): distortion
* F(type, frequency, Q): filter```
CPR
10I
.45
.2.
```## External channel
A special external channel is possible by starting with `E` instead of `C`. This will use external audio input, useful to chain to effects.
## Remote Control
Gull has up to 36 channels. Commands can be sent through UDP via the port `49161`.
### Play
The play command allows you to trigger samples.
| Command | Channel | Octave | Fine | Velocity |
| :- | :-: | :-: | :-: | :-: |
| `0` | 0 | 0 | 0 | |
| `04c` | 0 | 4 | C | _64_ |
| `04cf` | 0 | 4 | C | 127 |For the sample player, the fine setting is in 35ths of an octave.
For the synth, the fine is notes (C,D,E etc)### Remote editing
You can edit the current code character by character remotely.
`ED004` <- Will replace the character on line 0, row 0 with the character `4`.
---
Special thanks to [Tone.js](https://tonejs.github.io), the scope of work would be quite different without it!