goosegrid

goosegrid is a MIDI sequencer that allows you to build looping parts quickly using a grid system.

Interface

The interface consists of a grid and a number of toolbars. The grid can be interacted with using a mouse, keyboard, or MIDI controller. Grids contain nodes (and other grids), allowing for deeply nested patterns.

Grids

Grids are collections of notes and they can be nested inside of other grids. Grids can be nested anywhere. Type '#' in a cell to place a grid, and then double click or press enter on that cell to begin editing the sequences within. These grids will always contain an 'input', which is the start of the main sequence. When this grid cell is hit, it will play through this main sequence, and will return to it's parent sequence when it is finished.

Notes

Notes can be placed by selecting a cell and typing a note name. By holding the shift key while typing, a note can be made sharp (c = C, C = C#). Rest notes can be placed using the 'r' key.

Notes can be 'held' by using the right arrow key while holding down a note key. You can also select a MIDI input from the settings to input these notes from a controller.

Looping

Loops are formed when a root node is placed next to a connected set of notes. The notes are surrounded in an outline as soon as they are included in a loop. Root nodes are placed using number keys, with the number corresponding with the MIDI channel (or instrument number).

Loops can be played and stopped independently. To start a loop, select a red sequence root node and press shift-enter

Fill Tool

Goosegrid includes tools for filling the selection with notes automatically. The dice icon on the left toolbar opens up the fill tool settings. The keyboard shortcut shift-r will fill your selection with notes from that key and scale.

Parameter Modes

Each note has a number of parameters that can be tweaked. Certain keys change the parameter mode, which allows you to change the value of things like octave, velocity, and timing.

  • 'o' key - Octave
  • 'v' key - Velocity
  • 't' key - Transpose
  • 'n' key - Nudge

When performing this function on a grid node, it will apply to all subsequences, making it possible for you to easily change the octave of a full section of a song, or copy and transpose parts.

Sound

This tool does make sound by itself but it's primarily meant to be a MIDI sequencer, connecting to something like Ableton. Future versions of this will involve more robust output. Audio can be muted by pressing the icon in the top right. The volume can be adjusted in the settings.

Saving and Loading

Projects can be saved using the 'floppy disc' icon in the toolbar, or by using ctrl-s. Projects can be opened using the icon to the right of the floppy, or ctrl-o.

MIDI

To use WebMIDI you will likely want to be on Chrome, and you will need to have some sort of virtual MIDI loopback. On Windows check out Tobias Erichsen's loopMIDI On MacOS you can use the built in IAC bus, which has to be enabled in Audio MIDI Setup. Check out this article if you have issues.

Keyboard Shortcuts

Action
shift-r fill selection with random
ctrl-s save
ctrl-o open
ctrl-z undo
ctrl-shift-z redo
keys 0-9 place sequence root with given midi channel
lower case (c,d,e,f,g,a,b) inserts a natural note
r inserts a rest
upper case (C,D,E,F,G,A,B) inserts a sharp note
shift + upper or lower case (c,d,e,f,g,a,b,r) inserts a sharp note
arrow keys select single cell
shift + arrow key select multiple cells
ctrl-c copy selection
ctrl-x cut selection
ctrl-v paste selection
ctrl-shift-v paste selection as a single grid node
shift-enter toggle playback on selected sequence root nodes
enter (on grid node) go into subgrid
ctrl-enter (on sequence input node) go to parent grid

About

This tool was made by Austin Slominski (@aceslowman) in 2023.
Let me know if you have any issues or suggestions! Goosegrid is an ongoing project and I will be making updates with bug fixes, new features, etc.

Bugs

If you come across any bugs, please let me know by creating a thread on the itch.io community page.

Development log