Skip to content

jameshball/osci-render

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Open-source synthesizer for making music by drawing objects, text, and images on an oscilloscope using audio. Allows for 3D rendering of .obj files, .svg images, .txt files, and Blender scenes on Windows, macOS, and Linux.

Everything is controllable from a Digital Audio Workstation (DAW), allowing for parameter automation and MIDI control. If you prefer to use osci-render as a standalone application, you can do that too!

Osci-render is a fully programmable synthesiser, allowing for custom visuals, sounds, and audio effects to be scripted using Lua, and interacted with using your DAW.

Get the latest version here!

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

See it in action

Rendering an animated Blender scene

image

Applying audio effects to a Lua script

image

Project file used to create the above demo: square_spiral.osci

Automating parameters from a DAW

image

Reaper project used to create the above demo: square_spiral.rpp

Playing a MIDI keyboard and changing envelope parameters

image

Current Features

  • Render 3D objects
  • Render SVG vector images
  • Render text
  • Scriptable visuals and audio effects using Lua
  • Blender integration
  • Software oscilloscope
  • Applying image effects
    • Bit Crush
    • Vertical/Horizontal Distortion
    • Image Wobble
    • Image Smoothing
    • Image Tracing
    • ... and more!
  • MIDI control
  • Automate parameters from a DAW
  • Saving and loading projects

Screenshots

image

image

image

Download

Pay what you want from the official website: osci-render.com to get access to the latest version.

After you've purchased, you'll be sent an email with a download link. Here you can download the latest version for Windows or macOS, as a standalone application or as a VST or AU plugin.

Installation

Standalone Application

Run the osci-render.exe file on Windows, the osci-render.app file on macOS, or osci-render executable on Linux. You may need to allow the application to run if you get a warning.

Details on how to bypass security warnings or 'app is damaged' warnings on macOS can be found here.

VST Plugin

Copy the osci-render.vst3 file to your VST plugins folder, and restart your DAW. This is usually located at: C:\Program Files\Common Files\VST3 on Windows, or /Library/Audio/Plug-Ins/VST3 on macOS.

AudioUnit (AU) Plugin

Copy the osci-render.component file to your AU plugins folder, and restart your DAW. This is usually located at: /Library/Audio/Plug-Ins/Components on macOS.

Getting Started

Run the application, or add the plugin to your DAW. You should see the below interface, and hear a sine wave playing, and a circle being drawn on the software oscilloscope.

image

Now you can start opening .obj files, .svg files, or .txt files using the Choose File button, or creating your own files from a set of examples by specifying the file type, and using the Create File button.

To start editing the file you've opened, click the arrow button on the very right of the interface to open the code editor:

image

Here you can edit the file, and see the changes in real-time. You can also edit the code while the file is playing, and the changes will be applied immediately.

Now, you can start applying audio effects to the image by enabling the effects you want to use in the Audio Effects section of the interface. You can rearrange the order of the effects by dragging them up and down, and animate the parameters using the drop-down menus next to each effect.

image

You can change the allowed range of each effect by right-clicking on the effect name, and changing the minimum and maximum values. This will change the range the parameter is animated over, and the range of the parameter when being controlled from a DAW.

Rendering a Blender scene

This video explains how to install and use osci-render with Blender. Please note that the video is made for osci-render 1.0, so the interface will look slightly different, but the process is the same.

  • Download the Blender add-on from Releases named osci-render-blender-addon.zip
  • Install and enable the add-on in Blender
  • 'osci-render settings' menu will now appear under 'Render Properties'
  • Open osci-render
  • Click 'Connect to osci-render'
    • If the filename in osci-render changes to 'Rendering from Blender' you have successfully connected
  • Add a camera to the scene (if not already present)
  • Add a Scene Line Art object to the scene
    • Press Shift+A and navigate to Grease Pencil > Scene Line Art
  • Go to 'Modifier Properties' of the newly created Line Art object
  • Click 'Bake Line Art' under the the 'Bake' settings to generate line art for the current animation/scene/camera
  • You should now see the scene on the oscilloscope!

MIDI

To enable MIDI control, open the MIDI settings at the bottom of the interface, and click 'Enable MIDI'.

Make sure your MIDI device is enabled by clicking Audio > Settings from the top menu, and enabling your MIDI device under Active MIDI inputs:

Building

Windows

TODO

macOS

TODO

Linux

  • Clone osci-render
  • Install required packages
    • sudo apt update
    • sudo apt install libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev mesa-common-dev g++ make
  • Download JUCE from here https://juce.com/download/
  • Unzip the file
  • Run Projucer from where you unzipped: ./JUCE/Projucer
  • Open osci-render.jucer in Projucer
  • Go to File > Save Project to create a Makefile
  • Go to the LinuxMakefile folder: cd osci-render/Builds/LinuxMakefile
  • Build the project: make CONFIG=Release for release, or make CONFIG=Debug for testing
  • Go to the build folder: cd build
  • Run osci-render executable, or use the VST3 file

Contact

James H Ball, james@ball.sh