SysEx editor for Roland SC-55 (GS), Roland SC-7, and eventually maybe Yamaha XG

Overview

SoundPalette: MIDI SysEx Generator

This is the source code for SoundPalette, a tool for editing MIDI System Exclusive (SysEx) messages for the Roland SC-55 (Roland GS) and Roland SC-7 tone generators. SysExes can be used to customise effects and alter sounds.

※ SoundPalette is not a product of, affiliated with or endorsed by Roland Corporation.

Currently supports (as of v1.0.0):

  • All Roland SC-7 exclusive messages.
  • Most Roland GS messages supported by Roland SC-55 and Roland SC-55mkII. (Notable absences: drum map editing and voice/partial reserves.)

Future plans:

  • More standard MIDI/General MIDI support.
  • More Roland GS device support.
  • Yamaha XG support.

Here are some things SoundPalette can do:

Use it directly in your browser. No download or install necessary. Try it out at https://hikari.noyu.me/etc/SoundPalette/! You can also download a release if you want, but it's a bit tricky to use as you may have to run a local web server.

Screenshot of the “SysEx sketchpad” area of SoundPalette

Inspect a SysEx. Paste or type in a SysEx message to find out what it does.

Create a SysEx. Use drop-down menus to select which parameter you want to set, and what value to set it to. SoundPalette will generate a SysEx.

Copy a SysEx. Copy a SysEx to clipboard for pasting into a MIDI application.

Send SysEx over MIDI. Click a button to send a SysEx directly to a connected MIDI device. (Requires Chrome or Firefox.)

Screenshot of the “Sound test” area of SoundPalette

Test effects. SoundPalette can send simple note and control change data directly to a connected MIDI device, so you can easily test how a SysEx affects the sound. (Requires Chrome or Firefox.)

Screenshot of the “SysEx collection” area of SoundPalette

Collect SysExes. Build up a collection of different SysEx messages.

Export a MIDI file. Export the collection to a MIDI file, for importing into a MIDI application.

Screenshot of the “Inspect Standard MIDI File” area of SoundPalette

Inspect a MIDI file. Load a MIDI file to find out what SysEx messages it contains, and what they do.

Developer stuff

Standard Rust/Cargo project, no dependencies. cargo doc, cargo fmt, cargo test and cargo clippy are all tools you should use.

If you want to reuse the tables of SysEx data under a different licence for your own MIDI-related OSS project, or would like help adapting or testing this, please get in contact with me at my git email address.

Building the CLI tool

This tool exists just for testing right now and doesn't have most of the functionality of the web app.

cargo run will build and run it. You can pass arguments after a --, e.g. cargo run -- in.mid -o out.mid.

Building the web app

cargo build --target wasm32-unknown-unknown --lib

Then run a local web server by your favourite method, e.g.:

cd htdocs && php -S localhost:8000

Note that this relies on symlinks for the .wasm and .d files. You can use directly copy those files from target/wasm32-unknown-unknown/debug/ to htdocs/ instead, if needed.

Testing

cargo test

The tests are run as native code, not as WebAssembly.

You might also like...
Ox is a code editor that runs in your terminal
Ox is a code editor that runs in your terminal

Ox editor Ox is a code editor that runs in your terminal. About The Project Ox is a code editor. It was written in Rust using ANSI escape sequences. I

Move multiple files, with the power of your editor

NOTE FOR USERS THAT WANT TO TRY THIS OUT! The current code on the master branch doesn’t work as documented, as a newer more powerful interface is bein

mn is my project to learn rust, I will try to build a markdown editor

med is a markdown editor This is my project to learn rust programming language, I will try to build a powerful markdown editor. Highlight: Support Vim

Simple code editor made with Freya 🦀
Simple code editor made with Freya 🦀

Simple code editor made with Freya 🦀 This is a work in progress simple code editor that showcases how to use tree-sitter and freya together. WARNIN

Julia plugin for the Lapce Editor (using LanguageServer.jl)

Lapce Julia (LanguageServer) Lapce plugin for the Julia language powered by LanguageServer.jl Pre-requisites Make sure you have the julia binary on PA

A basic text editor, written in Rust (hence the name).

rut A basic text editor, written in Rust (hence the name). Why, though? I just wanted a basic TUI text editor (like Nano) that could: Be used with all

Learn the helix editor keymap on the web!
Learn the helix editor keymap on the web!

Helix Shortcut Quiz A web quiz built with yew for testing your knowledge of helix editor shortcuts. Development Installation Frontend If you don't alr

A simple hinting Rust binary to be used in the Kakoune editor
A simple hinting Rust binary to be used in the Kakoune editor

Hop: hinting brought to Kakoune selections Table of content: Install Configuration Kakoune options hop-kak options Usage Workflow examples Default key

A performant terminal-based project editor with extensive shortcuts
A performant terminal-based project editor with extensive shortcuts

omega A performant and extensive terminal-based project editor with a wide variety of modern shortcuts. How to use omega [path] This section will guid

Comments
  • Add a rust-toolchain.toml

    Add a rust-toolchain.toml

    I normally have rustup set to use the latest stable release, so having this was helpful for me to give rustup a hint that it should switch to nightly for this project.

    opened by mistydemeo 3
call-me-maybe is a small CLI tool to notify you of the completion of a command

call-me-maybe call-me-maybe is a small CLI tool to notify you of the completion of a command By default, the tools consumes stdin for a message's cont

Samuel Yvon 4 Sep 16, 2022
Simple, lightweight, markdown-based notes app I might actually finish eventually

Jupiter A simple markdown & git-based notes app for Linux. Features Lightweight with minimal dependencies Git integration for syncing & versioning Sea

Maxim 6 Jan 31, 2023
TI-89-style calculator, maybe turing complete

I will make a fully capable graphing calculator in Rust and you can't stop me. As always, I'm not using libraries or any of that. Everything here is h

Neptunal 4 Jun 2, 2023
A standalone code editor with syntax highlighting and themes.

CodeEditor A standalone code (and text) editor for people like me who write their own user interfaces utilizing crates like pixels. CodeEditor renders

Markus Moenig 8 Nov 25, 2022
A structure editor for a simple functional programming language, with Vim-like shortcuts and commands.

dilim A structure editor for a simple functional programming language, with Vim-like shortcuts and commands. Written in Rust, using the Yew framework,

Joomy Korkut 6 Nov 18, 2022
Simple yet powerful multi-line text editor widget for tui-rs and ratatui

tui-textarea tui-textarea is a simple yet powerful text editor widget like <textarea> in HTML for tui-rs and ratatui. Multi-line text editor can be ea

Linda_pp 126 Jul 12, 2023
nvim-oxi provides safe and idiomatic Rust bindings to the rich API exposed by the Neovim text editor.

?? nvim-oxi nvim-oxi provides safe and idiomatic Rust bindings to the rich API exposed by the Neovim text editor. The project is mostly intended for p

Riccardo Mazzarini 655 Jul 13, 2023
Amp: A text editor for your terminal.

Amp: A text editor for your terminal. Heavily inspired by Vi/Vim. Amp aims to take the core interaction model of Vim, simplify it, and bundle in the e

Jordan MacDonald 3.3k Jan 3, 2023
Basic vim-like editor for Redox-OS

red red is an editor based on vim written in Rust. Goal of this project is to provide a basic command-line editor, much like nano. Targeted for Redox.

null 1 Mar 5, 2022
Native cross-platform full feature terminal-based sequence editor for git interactive rebase.

Native cross-platform full feature terminal-based sequence editor for git interactive rebase.

Tim Oram 1.2k Jan 2, 2023