Sitelet https://github.com/denzlobin/S1Utility
Skip to content

Repository files navigation

S-1 Utility

A desktop companion app for the Roland AIRA Compact S-1 Tweak Synthesizer.

S-1 Utility connects to a S-1 over MIDI and provides a visual parameter editor, a read-only Patch Inspector for browsing .PRM patch backups, and hardware-calibrated heuristic visualizations of the synth's ADSR envelope, filter response and oscillator waveform.

The design principle: While using heuristics, the app tries to stay honest about what it knows. When the app can reflect the synth's exact state, it does. When it can't, it surfaces uncertainty rather than displaying wrong or misleading values.

Video walkthrough: https://youtu.be/QvIQj3y7kds?si=FHXMjAINzbMv2fmb


Disclaimer

This is an unofficial third-party tool. This project is not affiliated with, endorsed by, or sponsored by Roland Corporation. Major part of the code is generated with Claude Code, but the app is a product of continuous iteration and refinement.

S-1 Utility is provided "as is", without warranty of any kind. The author is not responsible for any malfunction, data loss, or damage to your hardware that may result from using this software. That said, the app only sends and receives standard MIDI Control Change (CC) messages, the same messages the S-1 already accepts from any MIDI controller or DAW, and does not write .PRM files or use sysex. Practically, the risk of the app harming the device is very low, but you use it at your own risk.


Features

  • Visual parameter editor. Knobs, LEDs, sliders, and waveform displays that mirror the S-1's current state over MIDI CC.
  • Patch Mirror. When a .PRM folder is configured, the editor stays in sync with the S-1 in real time: it loads the corresponding patch when patterns change on the device and preserves unsaved edits per slot.
  • Sync-state tracking. Every parameter shows whether the editor has confirmed its value from the synth (via incoming CC, Send All, or PRM load). Unsynced controls go grey with a ? label.
  • Parameter visualization. Filter frequency-response curve, animated ADSR envelope visualizer, draw-wave bars with signed value labels, chop pattern grid.
  • Patch Inspector. Read-only view of all .PRM file data, including parameters that have no MIDI CC equivalent and can be only set from the hardware (sequencer data, draw and chop patterns, etc.).
  • Undo / Redo for parameter edits, with per-CC coalescing for knob drags.
  • Hardware-verified encodings. CC mappings, ADSR timing constants, oscillator waveforms, and other measured values were established by testing against real hardware.
  • MIDI Export. One-click export of the pattern sequencer data into a MIDI file.
  • Keyboard shortcuts. Ctrl+M toggle Connect/Disconnect, Ctrl+I Init Patch, Ctrl+R Restore Patch, Ctrl+S Save Preset, Ctrl+Z/Ctrl+Y Undo/Redo, Tab cycle tabs, arrow keys for patch grid navigation.

Screenshots

Realtime Editor

Realtime Editor tab

Patch Inspector

Patch Inspector tab


Requirements

The release builds are self-contained, so no .NET runtime is needed to run them.

  • Windows 10 or 11, or
  • Linux with ALSA (standard on desktop distributions). The AppImage additionally needs FUSE (libfuse2, or libfuse2t64 on newer Ubuntu); the .tar.gz build has no such dependency.
  • A Roland S-1 connected over USB MIDI.

Building from source additionally requires the .NET 10 SDK (pinned via global.json). For macOS, see Platform support.


Build and run

git clone https://github.com/denzlobin/S1Utility.git
cd S1Utility
dotnet build
dotnet run --project S1Utility/S1Utility.csproj

Run the tests:

dotnet test

Project status

Feature-complete for its intended scope: everything the S-1 exposes over MIDI CC is implemented, and the encodings and visualizations are calibrated against real hardware. Active development is winding down; further work will be occasional.


Platform support

S-1 Utility runs on Windows and Linux, both exercised against real hardware. Prebuilt, self-contained downloads for each are on the Releases page (Windows .zip, Linux .AppImage and .tar.gz).

macOS is unsupported but reported working from source. A community tester built and ran it on an Intel Mac (.NET 10 SDK), with MIDI to a real S-1 over USB working via CoreMIDI/DryWetMidi (#2). Apple Silicon is untested. The window aspect-ratio policy stays inactive there, and shortcuts use Ctrl rather than Cmd. There are no prebuilt macOS downloads; build with dotnet publish S1Utility/S1Utility.csproj -c Release -r osx-x64 --self-contained true (or osx-arm64). The author does not own a Mac and does not plan to maintain a macOS build.


Possible future work

The draw and chop waveform visualizers could be made more faithful by drawing on the full PRM data they currently summarize. This is a maybe rather than a plan, with no timeline.


What will not happen

  • VST, AU, CLAP and other plugin versions. S-1 Utility is designed as a standalone app, and many of its features will be difficult or confusing in a plugin version. You are free to reuse any code or design decisions if you want to build a plugin version yourself.
  • iOS, iPadOS, Android versions. For the same reasons.
  • .PRM data editing. The actual usecase is very questionable, and you probably don't want to test what happens with the device if you feed it with corrupted data.
  • More realtime controls. Everything controllable by CC is already available on the Realtime Editor tab. Unless the device receives a firmware update with more Control Change parameters, the editor expansion is out of the question.

Known limitations

  • macOS is unsupported. Windows and Linux are supported and tested; macOS has only a community report of building and running on Intel. See Platform support.
  • Tab 2 (Patch Inspector) is read-only. The app does not write .PRM files; most PRM-only parameters have no MIDI CC path, and writing risks corrupting your patch backups.
  • No sysex. The S-1 does not use sysex for parameter control.
  • Reliance on up-to-date manual backup. The app cannot detect if the .PRM data on the synth diverged from what is stored on the user's machine. Every time you write into a patch/pattern slot on the hardware, you need to manually copy modified files to the .PRM folder on your machine.

How .PRM backup works

The S-1 can export its 64-pattern bank as a folder of .PRM files via its USB Disk Mode. To activate it power on the device while holding down the Play button. The drive will take 1-2 minutes to get ready. The keyboard pads indicate the loading progress. Once loaded, copy the contents of the BACKUP folder to your computer and configure the path to it in Settings.


Acknowledgments


License

This project is licensed under the GNU General Public License v3.0 or later. See LICENSE for the full text.


Contributing

See CONTRIBUTING.md. Hardware-verified values must not be changed without re-verifying against a real S-1; that section is mandatory reading before touching parameter mappings.

ko-fi

About

A desktop editor and patch inspector for Roland AIRA Compact S-1 Tweak Synthesizer

Topics

Resources

Contributing

Stars

17 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages