lichen-community-systems / phet-osc-bridge Goto Github PK
View Code? Open in Web Editor NEWA bridge between PhET and sound synthesis applications using Open Sound Control
A bridge between PhET and sound synthesis applications using Open Sound Control
The core of this bridge is a converter that can take PhET event objects as input and convert them into osc.js bundle objects. This will involve creating a new OSC bundle for each event and its children
events, and new OSC message for each property within each event. The mapping scheme is documented in more detail in the project README.
At the moment, only the core phetosc.converter
component is unit tested. Coverage should be increased to include the servers and relaying functionality.
Currently, the name
of this package in package.json
is listed as phetosc
, while the instructions (and command line name) say that it should be phet-osc-bridge
.
I think the latter is a better name, so we should update package.json
prior to publishing it on npm.
We need some means to test this system as it is being developed. This should include:
Currently, phet-osc-bridge uses console.log()
directly to output information messages. This should be replaced with use of fluid.log()
and the degree of output verbosity should increased (at different log levels) so that users can usefully increase or decrease the amount of information they receive from the server.
New versions of osc.js and other third party libraries have been released. We should update our dependencies accordingly.
Currently, this library uses a somewhat brittle and not easily testable adhoc collection of Fluid components that use Express 4 and thews
Web Socket library directly. All of this functionality should be available in Kettle, and using it will reduce the amount of code and increase testability significantly.
We need some mechanism by which PhET events, after they've been converted to bundles of OSC messages, can be relayed to an Open Sound Control server such as SuperCollider. This will require the use of osc.js' transport layer and perhaps its relay functionality.
In addition, this server should be able to host static resources such as an HTML page that contains a PhET.io sim in it, so that it will be easy for a sound designer to run a command to start the server and enable the relay.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.