A simple interactive OSC (Open Sound Control) debugger for terminal

Overview

oscd

Build Release

oscd, a simple interactive OSC debugger for the terminal by using nom as a lexer/parser, oscd offers auto type casting and support sending multiple osc arguments.

It has two simple features:

  • Monitor OSC messages (over UDP) sent to a port
  • Send OSC messages (over UDP) to a port
    • default port = 57110
    • default address = 127.0.0.1

Install / Run

  • easiest way is to download latest released binary files, unzip and put it where executable file lives based on your Operating System eg. usr/local/bin (for OSX)
  • type oscd to run program

Usage

  • Use the following format to send messages:
  • is osc path to communicate with.
  • is a number or a string (double quotes can be omitted) and can have multiple arguments.
  • eg. /s_new "default" -1 0 0 "freq" 850, will be parsed as ("s_new", [String("default"), Int(-1), Int(0), Int(0), String("freq"), Int(850)]))
  • by default oscd automatically casting type for you, and it also support numeric literals type conversion
    • eg. 65.4321_f64 is equivalent to 65.4321 as f64 (Explicit conversion)
    • it will be parsed osc as Double(65.4321), otherwise osc will parsed it based on the input (eg. 65.4321 = f32).
  • see supported types below.
  • complete osc example /s_new "default with whitespace" 1002 'A' 12_i32 12_i64 -12 -12_i32 -12_i64 12.4533 1.234_f64 #2f14DF12 ~00110011 @12345:23 [12,20,true] %[10,20,30]

Types

oscd follows OscType from rosc library

status types example notes
Int(i32) 1234 or 1234_i32
Long(i64) 1234_i64
Float(f32) 1234.32 or 1234.32_f32
Double(f64) 1234.25434_f64
String(String) "str goes here" wrapped in doulble quotes is needed
Bool(bool) true or false
Char(char) 'S' wrapped in single quote is needed
Blob(Vec) %[10,20,30] prefix with % separated by , number which is not u8 will be discarded
Time(OscTime) @123456789:20 prefix with @ separate fractional by : eg. @:
Color(OscColor) #2F14DF2A prefix with # followed by base16 #
Midi(OscMidiMessage) ~01F14FA4 prefix with ~ followed by base16 ~
Array(OscArray) [10,20,true]
Nil Nil
Inf Inf

Development

  • cargo run

Building / Release

  • binary building with Github Action and supported following architectures
    • aarch64-linux
    • x86_64-linux
    • x86_64-macos
    • x86_64-windows

⚠️ Bypass security settings. (OSX)

With each iteration of OS X from Mountain Lion onwards, Apple have made it progressively harder for users to access un-certificated downloaded applications/binary, such as those coming from the Open Source/Free Software community.

The problem typically manifests when trying to launch a newly downloaded application/binary whether directly or via the Dock. At the point of downloading a new app, the OS places it on a “quarantine list”. An alarming error message is displayed indicating the application is “damaged”, or from an unidentified developer, and has been prevented from running.

A standard workaround for a single application/binary is to launch using “Open” from the menu that pops up using Right-Click (or Ctrl-Click) on the application’s/binary's icon.

Resources

Credit

You might also like...
A simple tui to view & control docker containers
A simple tui to view & control docker containers

oxker A simple tui to view & control docker containers Built in Rust, making heavy use of tui-rs & Bollard Download & install See releases download &

H2O Open Source Kubernetes operator and a command-line tool to ease deployment (and undeployment) of H2O open-source machine learning platform H2O-3 to Kubernetes.
H2O Open Source Kubernetes operator and a command-line tool to ease deployment (and undeployment) of H2O open-source machine learning platform H2O-3 to Kubernetes.

H2O Kubernetes Repository with official tools to aid the deployment of H2O Machine Learning platform to Kubernetes. There are two essential tools to b

Configurable, extensible, interactive line reader

linefeed linefeed is a configurable, concurrent, extensible, interactive input reader for Unix terminals and Windows console. API Documentation linefe

An interactive cheatsheet tool for the command-line
An interactive cheatsheet tool for the command-line

navi An interactive cheatsheet tool for the command-line. navi allows you to browse through cheatsheets (that you may write yourself or download from

Coinlive is an interactive command line tool that displays live cryptocurrency prices.
Coinlive is an interactive command line tool that displays live cryptocurrency prices.

Coinlive is an interactive command line tool that displays live cryptocurrency prices. It can also display simple historical price charts.

A Rust library for building interactive prompts
A Rust library for building interactive prompts

inquire is a library for building interactive prompts on terminals. Demo Source Usage Put this line in your Cargo.toml, under [dependencies]. inquire

ruborute is an interactive command-line tool to get asphyxia@sdvx gaming data.

ruborute Are you 暴龍天 ?. The ruborute is an interactive command-line tool to get asphyxia@sdvx gaming data. asphyxia-core/plugins: https://github.com/a

An interactive shell environment for exploring the p2panda protocol
An interactive shell environment for exploring the p2panda protocol

An interactive shell environment for exploring the p2panda protocol. Uses a mock node and clients to simulate network logic.

Requestty - An easy-to-use collection of interactive cli prompts inspired by Inquirer.js.
Requestty - An easy-to-use collection of interactive cli prompts inspired by Inquirer.js.

Requestty requestty (request-tty) is an easy-to-use collection of interactive cli prompts inspired by Inquirer.js. Easy-to-use - The builder API and m

Owner
Karnpapon Boonput
🤓
Karnpapon Boonput
Simple Interactive Terminal Todo App in Rust

todo-rs Simple Interactive Terminal Todo App in Rust Quick Start $ cargo run TODO Controls Keys Description k, j Move cursor up and down Shift+K, Shif

Tsoding 56 Dec 8, 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
Terminal based, feature rich, interactive SQL tool

datafusion-tui (dft) DataFusion-tui provides a feature rich terminal application, built with tui-rs, for using DataFusion (and eventually Ballista). I

null 49 Dec 24, 2022
📜🔁🎶 A CLI which converts morse code into sound

morse2sound ?? A CLI which converts morse code to sound Big shoutout to Br1ght0ne for guiding me how to use Rust on stream

Ilya Revenko 15 Dec 4, 2022
A Rust CLI that makes mechanical keyboard sound effects on every key press

Rustyvibes A Rust CLI that makes mechanical keyboard sound effects on every key press Rustyvibes.mp4 Installation macOS: brew install kb24x7/rustyvibe

Kunal Bagaria 95 Dec 14, 2022
Detects Linux input, notifies with bell sound

Keypress Notifier keypress-notifier는 리눅스에서 동작하는 입력 이벤트 감지 및 벨 소리 알림 프로젝트입니다. 소개 keypress-notifier는 Rust 언어로 개발되었으며, 키패드, 마우스 등의 입력 이벤트를 감지하고, 벨 소리로 사용

인준 4 Feb 15, 2024
A command line tool that resembles a debugger as well as Cheat Engine, to search for values in memory

Summary This is a small command-line tool designed to peek around memory of a running Linux process. It also provides filtering mechanisms similar to

null 213 Jul 4, 2023
A simple and efficient terminal UI implementation with ratatui.rs for getting quick insights from csv files right on the terminal

CSV-GREP csv-grep is an intuitive TUI application writting with ratatui.rs for reading, viewing and quickly analysing csv files right on the terminal.

Anthony Ezeabasili 16 Mar 10, 2024
A simple program that provides DBus interface to control display temperature and brightness under wayland without flickering

wl-gammarelay-rs Like wl-gammarelay, but written in rust, runs on a single thread, has three times less SLOC and uses DBus (for simplicity). Dbus inte

Max Verevkin 33 Nov 23, 2022