~~NOTOC~~ ====== FaceQuencer ====== {{template>summary |title=FaceQuencer| |participants=[[people:Bruno Angeles]] |funding=None |license=LGPL version 2.1 or later. |period=Sept. 2011 |status=completed |image=software:facequencer:facequencer.png |caption=FaceQuencer logo }} ===== Project Description ===== FaceQuencer is a camera-based sequencer and looper. It is written in C++ using [[http://www.openframeworks.cc | OpenFrameworks]], and uses [[http://puredata.info | Pure Data]] for sound processing. The main idea was developed and presented at [[http://montreal.musichackday.org/2011/ | Music Hack Day Montreal]] on September 24-25. Over the following few days, the software was improved and installers were created to facilitate installation. {{software:facequencer:mhdmtl_1.jpg|The author presenting FaceQuencer at Music Hack Day Montreal}} {{software:facequencer:mhdmtl_2.jpg|The author presenting FaceQuencer at Music Hack Day Montreal}} {{vimeo>29854652?500x281}} ---- ===== How to use it ===== In order to use FaceQuencer, you will need a few things: - A webcam - [[http://download.puredata.info/pd-extended | Pure Data (PD) extended]] - Some fiducials Print the two images above, and create a cube by cutting along the dotted lines. You might want to print the documents on white cardboard or add cardboard behind the paper to strengthen the cubes. Once the software is installed, open FaceQuencer.pd. Pure Data extended should have been previously installed. Open FaceQuencer, and show the cubes to your webcam! Make sure the lighting is good so that the webcam identifies easily the fiducials on your cubes. {{software:facequencer:facequencer_screenshot.png?600x375|}} ---- ===== How it works ===== FaceQuencer does face tracking and gives you visual feedback about the loop being played. When the camera sees a fiducial (the amoeba-like images on your cubes), it identifies it and performs specific actions. The fiducials are part of the [[http://reactivision.sourceforge.net | reacTIVision ]] project, and are also used on the [[http://www.youtube.com/watch?v=0h-RhyopUmc | reacTable]]. The fiducials with white backgrounds trigger loops. There are **6 loops**, each of a different musical genre but with the same time and key signature. They were created in GarageBand. The fiducials with black backgrounds are used for control signals of the audio playback. The controls are: **play**, **stop**, **loop** {1,2,4,8}, **volume** [0;1], **lowpass** [100Hz;1500Hz], and **bandpass** [500Hz;3000Hz]. Rotate the loop, volume, lowpass, and bandpass fiducials to change the value of the control signal. ---- ===== How to hack it ===== There are two ways to change the software: changing the PD patch or changing the source code. By changing the PD patch, you can load other sound files or apply other effects to the sound. Pure Data is a visual programming environment. All you need is some understanding of computer logic and sound signals to get some quick results. If you want to change other aspects of the software, you will need to get the source code. Download [[http://www.openframeworks.cc/download | OpenFrameworks v0.07]], and the source code below. Additionally, you will need [[http://code.google.com/p/ofxding/downloads/list | ofxFiducialFinder]] in the \addons folder of OpenFrameworks. ---- ===== Downloads ===== ^ File ^ Description ^^ | [[http://www.idmil.org/_media/software/facequencer/facequencer_v0.0.1_macos.zip | FaceQuencer_v0.0.1_MacOS.zip]] | Mac OSX installer || | [[http://www.idmil.org/_media/software/facequencer/facequencer_v0.0.1_win32.zip | FaceQuencer_v0.0.1_Win32.zip]] | Windows installer || | [[http://www.idmil.org/_media/software/facequencer/facequencer_v0.0.1_src.zip | FaceQuencer_v0.0.1_src.zip]] | Source code (requires OpenFrameworks v0.007) || ---- ===== Troubleshooting ===== * I know the framerate is low ... If you can help me I'll be very grateful :) * The software opens the camera with ID=0. If you do not see the right webcam, try disabling other webcam and imaging devices like TV tuner cards. ---- ===== Further ideas ===== Some things I would like to do when I have some more time: * Allow the user to change the camera * Improve the frame rate / optimize the code * Allow my dog to trigger sounds by creating toys with fiducials * Use the face tracking feature to apply effects on the sound * Use [[projects:software:libmapper]]! * Get on chatroulette with my app * Port to smartphones (shouldn't be too hard with OpenFrameworks) {{tag>Software Sequencer Video_Tracking FaceQuencer}}