Plastic Factory

Back to Grainsmith Field

Hardware controllers

Three controllers, working out of the box.

Grainsmith Field listens for standard MIDI CC messages. The OXI E16, MIDI Fighter Twister, and Roto-Control each have a ready-to-load preset file. All three require one-time configuration in each controller’s desktop editor, then work immediately with no in-app mapping step.

All three controllers use 7-bit absolute CC mode (values 0 to 127). Encoder pushes reset the mapped parameter to its default where noted.

  • Supported: OXI E16 · MIDI Fighter Twister · Roto-Control
  • CC type: 7-bit absolute (0–127) on all three
  • Preset files: OXI E16 (.oxie16) · MIDI Fighter Twister (.mfs) · Roto-Control (.json)

OXI E16: 16 encoders, two pages

The E16 covers all 19 mappable parameters across two pages. Load the preset file into the OXI app, copy the device profile, and the E16 works immediately as the default controller profile in Grainsmith Field.

Install:

  1. Copy Grainsmith Field.oxie16 into ~/Documents/ox/Scenes/
  2. Copy device_grainsmith.json into ~/Documents/Devices/
  3. Relaunch the OXI app. “Grainsmith Field” appears under Scenes.
  4. In Grainsmith Field, the OXI E16 controller profile is selected by default; no change needed.
  • CC mode: Absolute CC, 7-bit
  • Value range: Min 0 · Max 127
  • Turn channel: Channel 5
  • Push channel: Channel 6 · same CC# → reset to default

Download Grainsmith Field.oxie16 · Download device_grainsmith.json

Page 1: Perform (Channel 5 · CC 0–15 · 7-bit absolute)

EncoderCCParameter
Enc 10Position
Enc 21Grain Size
Enc 32Density
Enc 43Spread
Enc 54Speed
Enc 65Jitter
Enc 76Pitch
Enc 87Morph
Enc 98Pitch Random
Enc 109Reverse
Enc 1110Wet Mix
Enc 1211Scan Depth
Enc 1312Reverb Mix
Enc 1413Reverb Space
Enc 1514Filter Cutoff
Enc 1615Resonance

Page 2: Sound / FX (Channel 5 · CC 16–18 · 7-bit absolute)

EncoderCCParameter
Enc 116Grain Shape
Enc 217Freeze
Enc 318Level

MIDI Fighter Twister: 16 encoders, full parameter set

Import the preset into MIDI Fighter Utility, send it to the device, and leave the in-app controller profile on its default (OXI E16); no profile change needed. The MFT works immediately.

Install:

  1. Open MIDI Fighter Utility with the Twister connected.
  2. File → Import Grainsmith Field.mfs, then send to MIDI Fighter.
  3. Launch Grainsmith Field. Leave the controller profile on OXI E16 (the default); do not select an MFT profile. The encoders work immediately.
  • Turn channel: Channel 5 · CC 0–15 · 7-bit absolute
  • Push channel: Channel 6 · same CC# → reset to default
  • Banks 2–4: Unused (available for your own mappings)

The preset makes the MFT impersonate the OXI E16: encoders send CC 0 to 15 on channel 5, pushes on channel 6. The app’s default profile already listens on ch 5/6, so the MFT works without selecting a separate MFT profile (whose ch-1 CCs conflict with the Roto-Control map).

Download Grainsmith Field.mfs

Bank 1 (Channel 5 · CC 0–15 · 7-bit absolute · Push = reset)

EncoderCCParameter
Enc 10Position
Enc 21Size
Enc 32Density
Enc 43Spread
Enc 54Speed
Enc 65Jitter
Enc 76Pitch
Enc 87Morph
Enc 98Pitch Random
Enc 109Reverse
Enc 1110Wet Mix
Enc 1211Scan Depth
Enc 1312Reverb Mix
Enc 1413Reverb Space
Enc 1514Cutoff
Enc 1615Resonance

Roto-Control: 18 knobs, four buttons

Import the preset in the Melbourne Roto Control app on Mac or PC and all 18 knobs lay out across three pages. Map the four buttons by hand for transport and performance. Works against the default profile with no in-app selection required.

One-time setup in the Roto Control app:

  1. Import Grainsmith.json into the Roto Control app; it sets up all 18 knobs across pages 1 to 3 in one shot.
  2. Map the four Page-1 buttons by hand from the Buttons table below (the file has no buttons yet): momentary, CC 40 to 43, channel 1.
  3. Confirm every encoder is absolute CC, 7-bit. In Grainsmith Field, the Roto works against the default profile; no change needed.
  • CC mode: Absolute CC, 7-bit (0–127)
  • Channel: Channel 1 · knobs and buttons
  • Buttons: Momentary · CC 40–43 · mapped by hand
  • Push / reset: None (knob click has no in-app effect)

Critical: set encoders to absolute CC, 7-bit (not relative, not 14-bit). Relative or hi-res mode will cause the parameter to jump or wrap unpredictably.

The app echoes parameter changes back on the mapped CCs, so the Roto’s motorized knobs may track in-app edits automatically.

Page 1 comes from a known-good export shared by mistercharlie on the Loopy Pro forum. Pages 2 and 3 and the buttons extend it in the same format, straight from the app’s shipping mapping table, so the assignments are correct by construction; the extended pages and button feel are still gathering hardware confirms.

Download Grainsmith.json

Page 1 (Channel 1 · CC 1–8 · 7-bit absolute)

KnobCCParameter
Knob 11Size
Knob 22Density
Knob 33Jitter
Knob 44Position
Knob 55Reverb Mix
Knob 66Reverb Space
Knob 77Cutoff
Knob 88Pitch Random

Page 2 (Channel 1 · CC 9–16 · 7-bit absolute)

KnobCCParameter
Knob 19Spread
Knob 210Speed
Knob 311Pitch
Knob 412Morph
Knob 513Reverse
Knob 614Wet Mix
Knob 715Scan Depth
Knob 816Resonance

Page 3 (Channel 1 · CC 17–18 · 7-bit absolute)

KnobCCParameter
Knob 117Grain Shape
Knob 218Level

Buttons (Channel 1 · CC 40–43 · momentary)

ButtonCCAction
Button 140Play / Stop
Button 241Freeze (toggle)
Button 342Grain Shape (cycle Soft → Round → Sharp)
Button 443Record (toggle)

Not on the list?

How it works. Grainsmith Field responds to any MIDI CC on any channel. The tables above are pre-built mappings; you can use them as a reference for any encoder surface that lets you set CC numbers.

Channel. The app listens on channels 1, 5, and 6 by default. Match whatever channel your controller sends on, or use MIDI-learn to remap in-app.

CC type. Use 7-bit absolute mode (values 0 to 127) for predictable behavior. Relative and 14-bit hi-res modes are not currently supported.

Back to Grainsmith Field