Skip to content

IODA – interexchange format of wavetables between oscilloscope tools #5

@ffd8

Description

@ffd8

Hey oscilloscope (+ lasers + vectrex) community!

Next update to XYscope will include an OSC demo for making it possible to export/share the wavetables created via XYscope to other software/tools since maybe it's only one part of a workflow etc etc... But it could/should also have an import!? There have been amazing tools created for a multitude of languages and environments – sooo I thought it would be great to have a small discussion in a space where markdown code-snippets can be included, to pan out what might be a format most (hopefully) can agree upon for shipping these wavetable values (array of numbers for x, y, [z] axis) that could be imported and exported from each toolkit. = IODA (International Oscilloscope Display Association!)

XYscope is made for Processing (Java), and my initial ideas were –

sending a 2D array, ie:
[[x, y], [x, y], [x, y].....]
which can then be looped through once (by default ~ 512 values), then grabbing the x and y out from that inner array of values.
this is a very compact message to send via OSC (avoiding JSON due to extra chars needed).

Or again, having a 2D array that's joining the 2 wavetable arrays in this form:
[[x, x, x, x, x.....], [y, y, y, y, y, y...]
this would allow one to first split the message into the 2 separate arrays, then loop/pass separately to wavetable inputs.

Or would it be better to be sending 2x 1D arrays, one per channel ie:
[x, x, x, x, x, x, x, x...] + [y, y, y, y, y, y, y, y....]
My concern here is if the syncing might be messed up in transmission if not part of the same message...
all depends on if all environments can handle a 2D array?

Perhaps a dash of JSON isn't so bad, ie if going with the 3rd option, something like:

{
    'freq': 50,
    'x' : [x, x, x, x, x, x...],
    'y' : [y, y, y, y, y, y, ...]
}

Rough goals are:

  • send as few chars as possible for the OSC message overhead..
  • be parsable (import) and packable (export) in all languages being used in the community

I'm sure there's many other techniques, ideas out there – what are they??
@kritzikratzi @macumbista @jameshball @jestern77 + please tag folks that should join this conversation

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions