Code Monkey home page Code Monkey logo

picture's Introduction

Picture oscillator

You can download binaries from release page.

top-page

About

Picture is an oscillator module that can draw pictures on an XY-mode oscilloscope using lissa delay. It is a kind of wavetable synthesizer and the picture to be drawn is encoded in a wavetable.

Editing figure.h enables you to make your own oscillator which shows your own pictures on an oscilloscope. Since the module can hold multipe waveforms, it is possible to include a set of pictures in a single oscillator module.

You can select waveform with the Shift-shape knob. The shape knob squashes the picture. It affects the sound in a way similar to PWM.

Picture works on any logue-sdk compatible hardware.

Drawing pictures

It is known that the pair of two synchronized waveforms can draw a picture on an XY-mode oscilloscope screen. However, the logue-sdk oscillator is single-channel and is not able to generate two waveforms at once.

I use Lissa delay, a 90 degrees delay, to generate two signals from a single signal.

top-page

The main idea of Picture OSC is to place the X signal and the Y signal in a different phase of a single waveform. The Y signal is placed at the first quarter of waveform. The X signal is placed at the fourth quarter. Then Lissa delay aligns them to the same phase by delaying the signal for a quarter of the wavelength.

top-page

The first quarter of the Y signal is copied to the X signal of the second quarter. The Y signal of the second quarter (which is also the X signal of the third quarter) could be -X of the first quarter to draw the same picture of the first quarter with 90 degrees rotation.

top-page

The result would be four same pictures rotated by 90 degrees.

Synchronizing the tone pitch and the delay time

Although playing music with the sound of Picture OSC is possible, there is an issue for drawing pictures while playing music.

To draw a stable figure, the delay time must always be precisely a quarter of the wavelength. However, there is no way for the delay module to get the current pitch value of the oscillator module.

To solve this, I used a MIDI signal processor plugin software on PC, which converts MIDI note number to MIDI control change for delay time (CC#30). The MIDI filter I used is midiNotesToCC in Piz MIDI Plugins. top-page

Defining your own picture

The actual wavetable is stored in the file figure.h. There are two arrays of float, figure_x, and figure_y. They hold x-coordinates and y-coordinates of vertices of a polygon that is drawn on the screen.

The coordinates must be between 0.0 and 1.0. If you want to draw a closed polygon, you have to place the same coordinates at the beginning of the array and the end of the arrays.

Others

My other user oscillators / modules are here.

picture's People

Contributors

boochow avatar

Stargazers

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

Watchers

 avatar  avatar

Forkers

kdc-community

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.