Skip to content

Latest commit

 

History

History
87 lines (54 loc) · 2.38 KB

README.md

File metadata and controls

87 lines (54 loc) · 2.38 KB

GULL

Gull is a UDP sound machine designed to be controlled externally. It was created as a companion application to the livecoding environment 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, the scope of work would be quite different without it!