Documentation menu
On this page

This guide takes a blank Bitwig project to a first playable version of a minimal raw-techno track. It deliberately stops at a first version: a recognizable 64-bar arrangement with a kick, bass, sparse percussion, one texture, and a safe mix. Further character belongs in focused refinement passes.

The example brief is:

142 BPM minimal raw techno: a rigid four-on-the-floor kick, a mono bass phrase that leaves the kick transient clear, sparse syncopated percussion, one dark metallic texture, and restrained change every eight bars.

The key and notes below are teaching material. Replace them with the user's chosen key, scale, and existing musical material when those are already known.

What you will build

Kick: quarter-noteanchor Bass: short monophrase Percussion: sparseoffbeats Texture: rare metallicreply Bus / master low-level and monochecks

The first version uses four roles, not four layers of decoration:

Track Job First-version constraint
Kick establish time and low-end impact four-on-the-floor, consistent level
Bass / Poly Grid supply tonal weight and syncopation centered low end, short envelope
Percussion create motion around the kick sparse hats and one accent
Texture make the loop memorable rare, filtered, phrase-bound event

0. Prepare the blank project

Install and enable the bridge

If the extension is not installed yet, follow the installation guide. The short version:

  1. install BitwigGridBridge.bwextension into Bitwig's Extensions directory;
  2. restart Bitwig;
  3. open Settings → Controllers;
  4. add and enable Bitwig Grid Bridge;
  5. start the optional MCP adapter if an agent will operate the bridge:
uv sync --frozen
BITWIG_MCP_GRID_BRIDGE_ENABLED=true uv run bitwig-mcp

The bridge is loopback-only. The host remains the authority for the project, transport, clips, and audible result.

Create the project

  1. Create a new empty Bitwig project.
  2. Set the transport to 142 BPM.
  3. Use 4/4 time.
  4. Create an eight-bar loop or arranger region.
  5. Create four instrument/audio tracks named KICK, BASS, PERC, and TEXTURE.
  6. Keep the master level conservative while designing.

This walkthrough deliberately authors its short clips in Bitwig's UI. For a deterministic full-length arrangement, use the song composition and reviewed delivery workflow instead. grid_song_transport can explicitly set tempo/meter with a fresh project token; native import removes tempo/meter metadata and does not set them implicitly. This is not a general raw-MIDI sanitizer or arbitrary in-place clip-note editor. Inspect each imported role with grid_inspect_arranger; for linear scores use guarded grid_set_clip_loop to disable loops, then re-inspect flags, source counts/spans and geometry. Source summaries do not expand loops or prove audio. Inspect role devices and replace unintended import-created Organ instruments with a fresh expected_selection_token and authorization rather than stacking voices. Arranger/device verification and listening remain separate.

1. Establish the rhythm spine

Create an eight-bar kick clip. On a 16-step bar, place the kick on steps 1, 5, 9, and 13:

steps:  1  2  3  4 | 5  6  7  8 | 9 10 11 12 | 13 14 15 16
kick :  X  .  .  . | X  .  .  . | X  .  .  . | X  .  .  .

Duplicate it for eight bars without adding fills yet. The first version needs a stable reference before variation is introduced.

Add one closed-hat voice on offbeats. A common starting map is steps 3, 7, 11, and 15, with slightly varied velocity. Remove a hit if the top end becomes a continuous wall.

142 BPM / 4-4 quarter-note kick offbeat hat one sparse accent eight-bar phrase

Listen now: the kick and hat should already suggest forward motion without a bass line. If they do not, fix timing, velocity, or sound choice before adding more tracks.

2. Create the bass phrase

Add Poly Grid or another intended Grid instrument to BASS. Create a separate eight-bar MIDI clip. Start with a root such as D and a D-minor pitch vocabulary:

D natural minor: D  E  F  G  A  Bb  C

Use a two-bar phrase and repeat it four times. A sparse teaching pattern:

Bar Step 1 Step 7 Step 11 Step 15
A D (hold 2) D F C
B D (hold 2) D A C

Repeat the A/B pair four times to fill the eight bars. On the last pass, omit the final C so the loop asks for the kick to come back around.

Adjust the octave to the actual kick and playback system. The exact note names are less important than these relationships:

  • the bass does not fill every kick gap;
  • note lengths end before the next important transient;
  • the final bar contains a small expectation change;
  • the phrase remains recognizable after the variation.

Shape the bass through the bridge

Observe before choosing a path:

get_grid_capabilities
→ get_selected_device_state
→ get_grid_graph only if the selected state says graph_available=true

If graph access is available, ask the non-mutating planner for a role-based recipe:

{
  "brief": "142 BPM minimal raw techno bass: mono low-end weight, saw-led bite, short envelope, dark grit, sparse eight-bar movement, preserve kick transient",
  "style": "industrial",
  "density": 0.20,
  "motion": 0.36,
  "contrast": 0.80,
  "temperature": 0.12
}

The planner may suggest a source/control/safety structure such as:

Sine or simple tonalsource Chance / sparse events AM/RM or Wavefolder Dry anchor S/H LFO or Segments Low-pass Blend Gain / VU safety

Resolve each suggested module with search_grid_modules, then use fresh graph state for every insertion, parameter change, and connection. Never copy ports, coordinates, or native values from this diagram.

If graph access is unavailable, use exposed controls only. A preview-first shaping call has this form:

{
  "brief": "Dark gritty techno bass: mono weight, saw-led bite, restrained pulse layer, narrow eight-bar movement",
  "style": "night-motion",
  "intensity": 0.45,
  "controls": {
    "Saw %": 0.62,
    "Pulse %": 0.18,
    "PW": 0.28,
    "Tri %": 0.06
  }
}

Pass that object to grid_shape_start through the connected MCP client. Review its returned before → after preview. It uses normalized 0..1 controls.

Do not apply until the preview expresses the right role. When it is accepted, apply only the exact returned session_id and revision, then read state again:

{
  "session_id": "<returned-session-id>",
  "revision": "<latest-returned-revision>",
  "confirm": true
}

Direct exposed parameter writes use the bridge's 0..128 range instead; these domains are not interchangeable. A live graph's native range or discrete option always wins over a remembered value.

Listen now: with only kick and bass active, decide whether the bass is too long, too bright, too wide, too loud, or simply in the wrong register. Make one focused correction rather than adding another oscillator.

3. Add sparse percussion

Create a one- or two-bar percussion clip and repeat it. Start with one extra voice, not a full drum kit:

percussion: . . . X | . . . . | . X . . | . . . .

Use a short envelope and a higher spectral center than the bass. If building the voice in Grid, the planner's generative-percussion vocabulary is:

  • Noise, Pulse, Pluck, AD for contrasting short voices;
  • Triggers, Chance, Steps, Sample / Hold for variation;
  • High-pass, Blend, All-pass Delay, Mixer for glue.

For the first version, keep probability and diffusion modest. A sparse accent should make the repeated phrase more interesting, not make every pass different.

4. Add one texture

On TEXTURE, add one of:

  • a short noise/pluck hit;
  • a filtered metallic sample;
  • a quiet resonant pulse;
  • a brief delay reply to an existing percussion hit.

Place it once or twice per eight-bar phrase, preferably near a transition or at the end of a two-bar answer. High-pass it so it does not compete with the kick or bass.

The texture is finished when muting it makes the track less memorable but does not make the groove collapse. If muting it destroys the groove, it is a structural voice and belongs in the composition plan, not the ear-candy layer.

5. Make the first 64-bar arrangement

Duplicate the eight-bar materials and arrange six simple blocks:

Bars Active roles One change
1–8 kick + filtered hat establish the pulse
9–16 kick + bass + hat introduce the tonal anchor
17–24 add sparse percussion first contrast
25–32 add texture once per phrase establish the material world
33–40 remove bass for part of the block create tension through absence
41–56 restore bass + one new accent highest density, still minimal
57–64 remove texture, then bass leave the groove clean

A compact view:

bars:    01────08 09────16 17────24 25────32 33────40 41────────56 57────64
kick:       █████   ███████   ███████   ███████   ███████   ███████████   █████
bass:       ·····   ███████   ███████   ███████   ░░░░░░░   ███████████   ░░···
hat:        ░░░░░   ░░░░░░░   ░░░░░░░   ░░░░░░░   ░░░░░░░   ░░░░░░░░░░░   ░░░░
texture:    ·····   ·······   ··░····   ░░░░░░░   ·······   ░░░░░░░░░░░   ····

means established, means selective or reduced, and · means absent. The map is intentionally simple. The track can acquire more detail after its central relationship works.

6. First-version mix pass

Do this in context, not with every track soloed:

  1. keep kick and bass centered or mono-compatible;
  2. lower the bass until the kick transient remains clear;
  3. high-pass percussion and texture as needed;
  4. keep effect returns quieter than the dry anchors;
  5. use short space before long tails;
  6. check the loudest return and any resonance at low monitoring level;
  7. listen in mono once;
  8. compare the first block, fullest block, and outro at matched loudness.

Do not master the first version while the arrangement is still undecided.

7. First listening review

Run a focused review rather than asking whether the track is “good”:

  • Does the kick remain the clock after the bass enters?
  • Does the bass phrase have a memorable contour after four repetitions?
  • Is the texture dark because of spectral choice, rather than simply quiet?
  • Is the grit audible without removing the fundamental?
  • Does the 33–40 subtraction create anticipation?
  • Does the 41–56 return feel larger without becoming crowded?
  • Does the outro leave a deliberate landing?

Use the skill commands according to the actual finding:

Finding Next command
no clear musical thesis shape
bass timbre is generic sound or bolder
groove is weak rhythm
loop works but track does not develop arrange
too many layers compete distill or quieter
modulation is static modulate
sound is compelling but unsafe audit or harden
balance and transitions need final work polish

Definition of first version

Stop the quickstart when all of these are true:

  • the project is at the intended tempo and meter;
  • the kick, bass, percussion, and texture have distinct roles;
  • an eight-bar phrase repeats with one controlled variation;
  • the 64-bar arrangement contains entry, development, subtraction, return, and exit;
  • the low end survives a mono check;
  • no feedback, resonance, or return level is obviously unsafe;
  • you have one focused listening note for the next pass;
  • the current state has a snapshot or the appropriate undo path.

This is a usable first version, not a claim that the track is finished. Continue with one command and one audible question at a time.

If something fails

  • No selected Grid: select the intended device in Bitwig, then re-read state.
  • graph_available: false: use exposed controls only; do not infer topology.
  • Unknown module or port: search the live catalog and re-read the graph; do not substitute a similarly named module.
  • Stale revision: discard the old apply request, observe, and compose a new revision.
  • Ambiguous timeout: do not retry; inspect whether the operation landed.
  • Bad audible result: use grid_shape_undo, a parameter snapshot, or host undo according to the operation, then re-read state.

For the general bridge installation path, see the project quickstart. For full mutation ordering, see producer workflows and the agent workflow playbook.

Search docs

All words must match. Enter opens the first result.

Type a tool, argument, or guard to begin.