All Projects → bluekeyes → SketchSynth

bluekeyes / SketchSynth

Licence: other
A drawable OSC control panel

Programming Languages

C++
36643 projects - #6 most used programming language
Pure Data
34 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to SketchSynth

Ofxremoteui
OpenFrameworks addon serves any number of variables (bool, float, int, enum, string, ofColor) on the network, so that you can modify from outside the OF app. Includes a native OSX Client. OSC based.
Stars: ✭ 132 (+186.96%)
Mutual labels:  osc, openframeworks
Zynaddsubfx
ZynAddSubFX open source synthesizer
Stars: ✭ 554 (+1104.35%)
Mutual labels:  osc, synthesizer
Lick
LiCK, Library for ChucK
Stars: ✭ 118 (+156.52%)
Mutual labels:  osc, synthesizer
Fsynth
Web-based and pixels-based collaborative synthesizer
Stars: ✭ 146 (+217.39%)
Mutual labels:  osc, synthesizer
tinyspec-cling
tiny spectral synthesizer with livecoding support
Stars: ✭ 31 (-32.61%)
Mutual labels:  osc, synthesizer
ofxOscMidi
Midi in, OSC out with Midi thru. Based on openFrameworks
Stars: ✭ 66 (+43.48%)
Mutual labels:  osc, openframeworks
loaf
loaf: lua, osc, and openFrameworks
Stars: ✭ 37 (-19.57%)
Mutual labels:  osc, openframeworks
ofxPubSubOsc
bind OSC messages and values with only writing tiny codes on setup once.
Stars: ✭ 72 (+56.52%)
Mutual labels:  osc, openframeworks
ofxSpaceColonization
Space Colonization algorithm implementation in openFrameworks
Stars: ✭ 62 (+34.78%)
Mutual labels:  openframeworks
raspivj
Turn the Raspberry Pi into a portable lightweight VJ plateform
Stars: ✭ 27 (-41.3%)
Mutual labels:  openframeworks
aiosc
Lightweight Open Sound Control implementation for Python using asyncio
Stars: ✭ 26 (-43.48%)
Mutual labels:  osc
KnobKraft-orm
The KnobKraft Orm - The free modern cross-platform MIDI Sysex Librarian
Stars: ✭ 100 (+117.39%)
Mutual labels:  synthesizer
CCIDiploma-AutumnWinter2019
Lecture slides, wiki, notes and examples from units 1 and 3 of the Creative Coding Institute's Diploma in Creative Computing.
Stars: ✭ 15 (-67.39%)
Mutual labels:  openframeworks
ofxVui
✨ Such Wow! View + GUI System for openFrameworks ✨
Stars: ✭ 48 (+4.35%)
Mutual labels:  openframeworks
string-machine
Digital model of electronic string ensemble instrument
Stars: ✭ 38 (-17.39%)
Mutual labels:  synthesizer
TSynth-Teensy4.1
TSynth for Teensy 4.1
Stars: ✭ 101 (+119.57%)
Mutual labels:  synthesizer
mt32-pi-control
MT32-PI.EXE/MT32-PI.TTP/mt32-pi-ctl is a control program for the mt32-pi MIDI synthesizer available for DOS PCs, Atari ST and Amiga computers as well as modern systems running Linux and Windows.
Stars: ✭ 22 (-52.17%)
Mutual labels:  synthesizer
recoded
Re-coded by the School for Poetic Computation—crowdsourced recreations of early digital works using new tools
Stars: ✭ 57 (+23.91%)
Mutual labels:  openframeworks
BluePillSound
using a STM32F103 ( Blue Pill ) as synthesizer
Stars: ✭ 54 (+17.39%)
Mutual labels:  synthesizer
arm synth
Wavetable Synth Running on an STM32F 32-bit ARM Cortex M3 microprocessor
Stars: ✭ 23 (-50%)
Mutual labels:  synthesizer

SketchSynth: A drawable OSC control surface

SketchSynth lets anyone create their own control panels with just a marker and a piece of paper. Once drawn, the controller sends OpenSoundControl (OSC) messages to anything that can receive them; in this case, a simple synthesizer running in Pure Data. It’s a fun toy that also demonstrates the possibilities of adding digital interaction to sketched or otherwise non-digital interfaces.

See this video for more information.

My apologies for the name collision with Shape of Sound's iPad app, Sketch Synth 3D.

Hardware Requirements

To run the application, you need a webcam, a pico projector, and some kind of arm or stand to mount them above a table. The software runs fine on my four-year old ThinkPad, so it should work on any computer made in past few years.

Software Requirements

I have made no attempts to run this on anything other than Debian 6 (squeeze), but I don't expect problems running on other distributions. There are no project files for XCode or CodeBlocks, but I don't these will be hard to create if you need them.

You need the release version of openFrameworks 0.7 and Kyle McDonald's ofxCv addon.

If using the newest ofxCv, the project exists in the weird space between openFrameworks 0.7 and the next version (0.71?). My system already had OpenCV 2.3.1 on it, so I used this library instead of the version bundled with ofxOpenCv. If you use the development branches of everything (oF and ofxCv), I think you'll be fine, but I haven't tested it.

Projector Setup

The application assumes that the projector and desktop appear as one large screen to the window manager, with the projector on the right of the main screen. This required some hacking to my xorg.conf file to get windows to maximize across both the projector and the laptop screen.

The size of this virtual screen should be set in main.cpp and you should change the value of screenSeparation in SketchSynth.h to the width of the primary display.

How to Use SketchSynth

SketchSynth starts in "setup" mode. The projector should show an alignment rectangle. Click each corner of the rectangle, starting from the upper left and moving clockwise. A shape resembling a plus sign should appear in the center of the rectangle when alignment is complete.

Press p to enter "play" mode or e to enter "edit" mode. Press s to return to the setup screen, if you need to update the alignment.

Nothing happens in "edit" mode, but it allows you to draw new controls or move the paper around. Make sure nothing is excpet the paper is in the frame when you switch to "play" mode: the first half-second or so is used to set the background and detect the controls.

Once in "play" mode, just touch the controls. There are some tricks to getting a good response, but they're pretty obvious after playing with it for a few minutes.

OSC Format

All OSC messages have the ID of the source control and a value. Addresses are based on control type, for lack of a better scheme. IDs start from 0 for each control type.

  • /paper/momentary <int> ["on"|"off"]
  • /paper/toggle <int> ["on"|"off"]
  • /paper/continuous <int> <float>
  • /paper/count ["continuous"|"momentary"|"toggle"] <int>
  • /paper/start
  • /paper/stop

Known Issues

  • Unwarping assumes that paper has dimensions proportional to standard letter paper (8.5" x 11"). Other size paper works, but controls are sometimes missed or detected incorrectly.
  • There's no disticiton between a hand touching the paper and a hand over the paper. This can make things confusing.
  • The paper, control, and hand detection is all very sensitive to illumination. If something doesn't work, try changing the lighting in the area, if you can.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].