📺🔊 Synthesiser audio plugin for making music by drawing objects on an oscilloscope using audio.
 
 
 
 
 
 
Go to file
James H Ball 923af64c40 Merge pull request #30 from jameshball/java-audio-engine
Add JavaAudioEngine for greater compatibility
2021-07-04 18:46:15 +01:00
.github
src/main
.gitignore
LICENSE
README.md
gui.png
osci.png
pom.xml

README.md

Program for drawing objects, text, and images on an oscilloscope using audio output.

This allows for 3D rendering of .obj files, .svg images, and .txt files on Windows and Linux.

Read more about 'Rendering shapes through audio signals' in this article featuring osci-render!

Some of this was built as part of a 24hr hackathon: IC Hack 20. The original repository can be found here: https://github.com/wdhg/ICHack20 It won 'Best Newcomers Prize' at the event.

Send an email to james@ball.sh if you have any issues, feedback, feature requests, or anything else!

Video Demonstration

osci-render demonstration

Current Features

  • Render .obj files on an oscilloscope
  • Render .svg files
  • Render text
  • Rotation of objects
  • Scaling images
  • Translating images
  • Applying image effects
  • Save rendered audio to .wav file
  • Show current frequency of audio

Proposed Features

  • Mac OS support
  • Tune and transpose audio output
  • Support rendering of multiple objects
  • (long term) Keyframing/animating objects and camera

Usage

Using osci-render is very easy; run the program and choose the file you would like to render, and it will output as audio to visualise on your oscilloscope.

By default, the program loads the example cube object. If this is working, you're good to go and should be able to load your own objects, files, or images!

Control the output using the sliders and text boxes provided. Currently the following can be controlled:

  • Translation and speed of translation of the output
  • Weight of the lines drawn
  • Rotation speed
  • Scale of the image

There are some additional controls for .obj files:

  • Focal length of camera
  • Position of camera
  • Rotation speed
  • Rotation direction

Additional effects can be applied to the image such as:

  • Vector cancelling
  • Bit crush
  • Horizontal/Vertical distortion
  • Wobble (plays sin wave at same frequency as output)

Screenshots

Running

Head over to Releases and download the latest .exe, .deb, or .jar.

.exe or .deb is recommended, if possible, as it is simpler to get up and running.

Running using .exe

  • Download the latest osci-render-VERSION.exe from Releases
  • Open the .exe skipping any Windows security warnings
  • It should open briefly and then close without any user input
  • Check your start menu for osci-render or open osci-render.exe at C:\Program Files\osci-render
  • Start rendering!

Updating to later versions is as simple as running the latest osci-render-VERSION.exe again.

To uninstall, use Windows control panel, as you would expect.

Running using .deb

  • Download the latest osci-render_VERSION-1_amd64.deb from Releases
  • Install as usual, according to your distro
    • e.g. on Ubuntu, just double click to open and choose software installer
  • After installing, you can execute /opt/osci-render/bin/osci-render to run!
  • Start rendering!

Running using .jar

  • Download the latest osci-render-os-VERSION.jar from Releases
    • Download the version that is relevant to your OS, otherwise the program will not open
    • i.e. osci-render-win-VERSION.jar for Windows and osci-render-unix-VERSION.jar for Linux
  • Download and install Java 16 or later
  • Run the following command from your terminal to run the .jar, substituting the correct path to your .jar file
  • java "-Dfile.encoding=UTF8" -jar "PATH/TO/osci-render-os-VERSION.jar"
  • Start rendering!

Building

I am using Maven for dependency management and to package the program. Doing the following will setup the project. I highly recommend using IntelliJ.

  • Download and install Java 16 or later
  • Run git clone git@github.com:jameshball/osci-render.git
  • Open the project in IntelliJ
  • You're good to go!

You should now be able to run sh.ball.gui.Launcher and start the program 😊

Contact

James Ball, james@ball.sh

Special Thanks

IC Hack 20 Team Members: James Ball, William Grant, Jessica Lally, Noor Sawhney, and Andy Wang

'Rendering shapes through audio signals' article author: Sudarshan Sreeram