Personal tools
You are here: Home development Google Summer of Code GEMVeeJay

Possible Mentors

  • Derek Holzer

  • Chris Clepper

  • Ben Bogart


Unlike other patch-programming languages for video such as Max/MSP/Jitter, VVVV or Modul8, Pd's user-contributed library of performance-ready patches is quite small. While this generally reflects the way Pd is used by it's community (highly specialized tasks vs generalized performance tools), it does leave newcomers to Pd wondering where they can start. The "GEMVeeJay" project proposes to write a live instrument for the looping of videofiles or buffers captured by an external camera, with the option manipulating the playback speed or location as well as the addition of pix-object filters. GEMVeeJay should include a presets and videofile management system, a Graphical User Interface which is intuitive enough for new users to perform with, and Open Sound Control and MIDI implementation to help this instrument be used in a "screen-free" performance environment. This instrument should be ready-to-use and kept current with the latest Pd-Extended so that new users won't have any configuration issues getting it to run.

Resources to start:

  • PureDataVideoMixer a tutorial that shows how to make a software video mixer in GEM by Cypod.

  • MAPI a (now discontinued) VJ tool built with Pure Data and GEM by Thoralf Schulze.

  • tvjt the successor of MAPI, which features 4 independent render chains with chooseable inputs than can be blended over each other, has state-saving, can be controlled with a MIDI controller. There has been no published development by the author Thoralf Schulze since 2005, however.

  • pixelTANGO began as part of the TOT Heritage Canada project. It was meant as set of GOP abstractions used to make using Gem objects easier and more accessible. Interesting features: build in state-saving for all GUI objects, built in interpolation between states of all GUIs, a plug-in system based around user contributed pix_ abstractions. PixelTANGO is no longer being developed but some ideas would be useful for this project.

Required Skills

  • Solid knowledge of Pure Data syntax

  • Solid knowledge of GEM

  • Intermediate ideas of GUI construction and interface design

  • Understanding of MIDI + Open Sound Control


Basic implementation of the basic video playback and manipulation should be fairly simple for any student who understands the required skills listed above. Similarly, a videofile-management and state-saving system to save and reload stored videofiles and presets at startup should be fairly simple for an experienced Pd programmer. More difficult is to package these video abstractions into a streamlined, stable and USABLE performance tool.

Possible Breakdown of Steps

  • Development of video looping abstractions

  • Videofile management + state-saving functions

  • Open Sound Control + MIDI connections

  • Implementation of abstractions in performance interface

  • Testing "in the wild" (new Pd users)

  • Using testing feedback to improve instrument

Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser