Store Everything in Plain Text Files

What is the problem?

As a user I’d like all artifacts I create on my Synth to be in a format that is readable by humans and machines, so that I can inspect them, compare them, change them in a text editor, and easily write software that automates changes that are tedious to make on the device itself.

Closed and proprietary file formats inevitably prevents artists accessing their own work in the long run. There’s no need to do that, so we shouldn’t.

What should this feature achieve?

JSON is probably the simplest format, most modern languages have a JSON library for serializing and deserializing objects, because JSON is the standard for REST APIs.

Other plain text formats for structured data exist, but are less common (e.g. YAML), or even a general pain in the ass (XML).

All files on the SD card should be stored as plain text, e.g. chords, presets, scenes (including sequences), and also grid layouts. Here’s some examples what is possible then:

  • converting sequences from MIDI files, or converting sequences to MIDI files,
  • various cleanup and housekeeping tasks, e.g. renaming scenes according to their configuration of engines and polyphony
  • using a diff tool to see differences between a preset saved inside a scene, and an engine preset
  • assigning the same effects settings to multiple scenes (for live setups)
  • identify certain issues (e.g. totally messed up gain staging), and potentially fix them automatically
  • convert sounds for use with other synthesizers
  • create new grids

And most of that is even possible when one’s Synth is broken, or has been sold long ago.

Are there any workarounds?

Maybe: Reverse engineering the file format after each new firmware release. Ain’t nobody got time for that, tho.

Any links to related discussions?

This article makes a good case for "“if you can’t open it, it’s not yours.”. Mostly related to DRM, but a closed format has the same effect.

Any references to other products?

The list of synthesizers that have a well documented sysex format is substantial. Sysex is not plain text, but when it is documented it is an “open” format that allows for a multitude of editors and librarians to exist.

Just two examples spanning more than 3 decades

Here is a small selection of devices and applications that use plain text for storage (various formats, not just JSON, and not always for all things they store):

7 Likes