Giter Site home page Giter Site logo

oscd's Introduction

oscd

Build Release crates.io

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 cargo install oscd
  • alternative way is downloading 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: <address> <argument>
  • <address> is osc path to communicate with.
  • <argument> 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<u8>) %[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. @<seconds>:<fractional>
Color(OscColor) #2F14DF2A prefix with # followed by base16 #<red><green><blue><alpha>
Midi(OscMidiMessage) ~01F14FA4 prefix with ~ followed by base16 ~<port><status><data1><data2>
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) (optional, in case of manual install binary file instead of cargo install oscd)

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

oscd's People

Contributors

karnpapon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

dmgolembiowski

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.