Sigmund, Fiddle, or Helmholtz faster than realtime?
Should I be using block~ or switch~? I tried block~ first and increased the oversampling to up to 16 ( just to test). It seems to work in processing faster. The downside is the pitch increases by the block multiple so the pitch detection ends up trying to detect pitches too high to detect.
Scalar overlapping behaviour when [set]
In Vanilla (Pure Data 0.48.1) when a scalar gets any of it's values [set] (even the ones that don't impact how it's drawn) it seems to get redrawn resulting it to move on top of any overlapping scalars. This behaviour seems to be platform independent (tested on Windows 10 and OS X Yosemite). This is a problem since GUIs and such often rely on overlapping elements and working around it makes a patch a lot more complex.
Here is a simple test patch, it sets the (unused) float "test" on a scalar then it overlaps the other scalar:
My questions are, is there a way to prevent this from happening without clearing and redrawing the whole thing, and is this worth reporting as a bug or a suggestion to fix?
Purr Data 2.5.0
ok dependencies seems to be ok...this is my log
fremen@fremenCPU MINGW64 ~
$ pacman -S autoconf automake git libtool \
make mingw-w64-x86_64-dlfcn mingw-w64-x86_64-fftw
mingw-w64-x86_64-fluidsynth
mingw-w64-x86_64-ftgl mingw-w64-x86_64-fribidi
mingw-w64-x86_64-ladspa-sdk mingw-w64-x86_64-lame
mingw-w64-x86_64-libsndfile mingw-w64-x86_64-libvorbis
mingw-w64-x86_64-lua mingw-w64-x86_64-toolchain
mingw-w64-x86_64-libjpeg-turbo
rsync unzip wget
warning: autoconf-2.69-3 is up to date -- reinstalling
warning: automake-wrapper-10-1 is up to date -- reinstalling
warning: git-2.10.1-1 is up to date -- reinstalling
warning: libtool-2.4.6-2 is up to date -- reinstalling
warning: make-4.2.1-1 is up to date -- reinstalling
:: There are 16 members in group mingw-w64-x86_64-toolchain:
:: Repository mingw64
- mingw-w64-x86_64-binutils 2) mingw-w64-x86_64-crt-git
- mingw-w64-x86_64-gcc 4) mingw-w64-x86_64-gcc-ada
- mingw-w64-x86_64-gcc-fortran 6) mingw-w64-x86_64-gcc-libgfortran
- mingw-w64-x86_64-gcc-libs
mingw-w64-x86_64-gcc-objc
- mingw-w64-x86_64-gdb 10) mingw-w64-x86_64-headers-git
- mingw-w64-x86_64-libmangle-git 12) mingw-w64-x86_64-libwinpthread-git
- mingw-w64-x86_64-make 14) mingw-w64-x86_64-pkg-config
- mingw-w64-x86_64-tools-git 16) mingw-w64-x86_64-winpthreads-git
Enter a selection (default=all):
warning: mingw-w64-x86_64-binutils-2.27-2 is up to date -- reinstalling
warning: mingw-w64-x86_64-crt-git-5.0.0.4745.d2384c2-1 is up to date -- reinstal ling
warning: mingw-w64-x86_64-gcc-6.2.0-2 is up to date -- reinstalling
warning: mingw-w64-x86_64-gcc-libgfortran-6.2.0-2 is up to date -- reinstalling
warning: mingw-w64-x86_64-gcc-libs-6.2.0-2 is up to date -- reinstalling
warning: mingw-w64-x86_64-headers-git-5.0.0.4747.0f8f626-1 is up to date -- rein stalling
warning: mingw-w64-x86_64-libwinpthread-git-5.0.0.4741.2c8939a-1 is up to date - - reinstalling
warning: mingw-w64-x86_64-winpthreads-git-5.0.0.4741.2c8939a-1 is up to date -- reinstalling
warning: unzip-6.0-2 is up to date -- reinstalling
warning: wget-1.18-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...
warning: dependency cycle detected:
warning: mingw-w64-x86_64-gcc-libgfortran will be installed before its mingw-w64 -x86_64-gcc-libs dependency
warning: dependency cycle detected:
warning: mingw-w64-x86_64-harfbuzz will be installed before its mingw-w64-x86_64 -freetype dependency
warning: dependency cycle detected:
warning: mingw-w64-x86_64-cairo will be installed before its mingw-w64-x86_64-fr eetype dependency
warning: dependency cycle detected:
warning: mingw-w64-x86_64-fontconfig will be installed before its mingw-w64-x86_ 64-freetype dependency
Packages (58) mingw-w64-x86_64-cairo-1.15.2-4 mingw-w64-x86_64-flac-1.3.1-2
mingw-w64-x86_64-fontconfig-2.12.0-2
mingw-w64-x86_64-freetype-2.7-1 mingw-w64-x86_64-gdbm-1.12-1
mingw-w64-x86_64-glib2-2.50.1-2
mingw-w64-x86_64-graphite2-1.3.8-5
mingw-w64-x86_64-harfbuzz-1.3.2-1
mingw-w64-x86_64-libogg-1.3.2-2 mingw-w64-x86_64-libpng-1.6.26-1
mingw-w64-x86_64-ncurses-6.0.20161001-1
mingw-w64-x86_64-pcre-8.38-1 mingw-w64-x86_64-pixman-0.34.0-3
mingw-w64-x86_64-portaudio-19_20140130-2
mingw-w64-x86_64-python2-2.7.12-1
mingw-w64-x86_64-readline-6.3.008-1
mingw-w64-x86_64-speex-1.2rc2-2
mingw-w64-x86_64-speexdsp-1.2rc3-2 mingw-w64-x86_64-tcl-8.6.6-1
mingw-w64-x86_64-termcap-1.3.1-2 mingw-w64-x86_64-tk-8.6.6-1
mingw-w64-x86_64-wineditline-2.101-4 winpty-0.4.0-2
autoconf-2.69-3 automake-wrapper-10-1 git-2.10.1-1
libtool-2.4.6-2 make-4.2.1-1 mingw-w64-x86_64-binutils-2.27-2
mingw-w64-x86_64-crt-git-5.0.0.4745.d2384c2-1
mingw-w64-x86_64-dlfcn-1.0.0-2 mingw-w64-x86_64-fftw-3.3.5-1
mingw-w64-x86_64-fluidsynth-1.1.6-3
mingw-w64-x86_64-fribidi-0.19.7-1
mingw-w64-x86_64-ftgl-2.1.3rc5-2 mingw-w64-x86_64-gcc-6.2.0-2
mingw-w64-x86_64-gcc-ada-6.2.0-2
mingw-w64-x86_64-gcc-fortran-6.2.0-2
mingw-w64-x86_64-gcc-libgfortran-6.2.0-2
mingw-w64-x86_64-gcc-libs-6.2.0-2
mingw-w64-x86_64-gcc-objc-6.2.0-2 mingw-w64-x86_64-gdb-7.12-1
mingw-w64-x86_64-headers-git-5.0.0.4747.0f8f626-1
mingw-w64-x86_64-ladspa-sdk-1.13-2
mingw-w64-x86_64-lame-3.99.5-4
mingw-w64-x86_64-libjpeg-turbo-1.5.1-1
mingw-w64-x86_64-libmangle-git-5.0.0.4669.7de6266-1
mingw-w64-x86_64-libsndfile-1.0.26-1
mingw-w64-x86_64-libvorbis-1.3.5-1
mingw-w64-x86_64-libwinpthread-git-5.0.0.4741.2c8939a-1
mingw-w64-x86_64-lua-5.3.3-1
mingw-w64-x86_64-make-4.1.2351.a80a8b8-1
mingw-w64-x86_64-pkg-config-0.29.1-2
mingw-w64-x86_64-tools-git-5.0.0.4669.7de6266-1
mingw-w64-x86_64-winpthreads-git-5.0.0.4741.2c8939a-1
rsync-3.1.2-2 unzip-6.0-2 wget-1.18-1
Total Download Size: 76.81 MiB
Total Installed Size: 749.00 MiB
Net Upgrade Size: 369.69 MiB
:: Proceed with installation? [Y/n] Y
:: Retrieving packages...
mingw-w64-x86_64-dl... 9.6 KiB 9.41M/s 00:00 [#####################] 100%
mingw-w64-x86_64-ff... 4.0 MiB 1146K/s 00:04 [#####################] 100%
mingw-w64-x86_64-wi... 32.7 KiB 6.39M/s 00:00 [#####################] 100%
mingw-w64-x86_64-pc... 859.1 KiB 1252K/s 00:01 [#####################] 100%
mingw-w64-x86_64-gl... 2.9 MiB 1247K/s 00:02 [#####################] 100%
mingw-w64-x86_64-li... 191.2 KiB 7.18M/s 00:00 [#####################] 100%
mingw-w64-x86_64-fl... 582.7 KiB 1588K/s 00:00 [#####################] 100%
mingw-w64-x86_64-li... 331.2 KiB 1761K/s 00:00 [#####################] 100%
mingw-w64-x86_64-sp... 472.2 KiB 1349K/s 00:00 [#####################] 100%
mingw-w64-x86_64-sp... 519.0 KiB 1458K/s 00:00 [#####################] 100%
mingw-w64-x86_64-li... 359.9 KiB 1874K/s 00:00 [#####################] 100%
mingw-w64-x86_64-po... 143.6 KiB 7.01M/s 00:00 [#####################] 100%
mingw-w64-x86_64-fl... 252.2 KiB 1425K/s 00:00 [#####################] 100%
mingw-w64-x86_64-fo... 220.8 KiB 1284K/s 00:00 [#####################] 100%
mingw-w64-x86_64-pi... 289.5 KiB 1591K/s 00:00 [#####################] 100%
mingw-w64-x86_64-ca... 755.8 KiB 1423K/s 00:01 [#####################] 100%
mingw-w64-x86_64-gr... 167.0 KiB 7.09M/s 00:00 [#####################] 100%
mingw-w64-x86_64-ha... 314.4 KiB 1700K/s 00:00 [#####################] 100%
mingw-w64-x86_64-li... 285.9 KiB 1571K/s 00:00 [#####################] 100%
mingw-w64-x86_64-fr... 503.3 KiB 1422K/s 00:00 [#####################] 100%
mingw-w64-x86_64-ft... 118.8 KiB 7.25M/s 00:00 [#####################] 100%
mingw-w64-x86_64-fr... 93.4 KiB 7.02M/s 00:00 [#####################] 100%
mingw-w64-x86_64-la... 8.3 KiB 8.13M/s 00:00 [#####################] 100%
mingw-w64-x86_64-la... 373.9 KiB 1928K/s 00:00 [#####################] 100%
mingw-w64-x86_64-lu... 269.6 KiB 1506K/s 00:00 [#####################] 100%
mingw-w64-x86_64-gc... 18.0 MiB 1203K/s 00:15 [#####################] 100%
mingw-w64-x86_64-gc... 8.1 MiB 1209K/s 00:07 [#####################] 100%
mingw-w64-x86_64-gc... 13.6 MiB 1202K/s 00:12 [#####################] 100%
mingw-w64-x86_64-gd... 164.1 KiB 6.97M/s 00:00 [#####################] 100%
mingw-w64-x86_64-nc... 1697.2 KiB 1237K/s 00:01 [#####################] 100%
mingw-w64-x86_64-te... 12.6 KiB 12.3M/s 00:00 [#####################] 100%
mingw-w64-x86_64-re... 327.4 KiB 1732K/s 00:00 [#####################] 100%
mingw-w64-x86_64-tc... 2.9 MiB 1242K/s 00:02 [#####################] 100%
mingw-w64-x86_64-tk... 1873.6 KiB 1218K/s 00:02 [#####################] 100%
mingw-w64-x86_64-py... 11.2 MiB 1216K/s 00:09 [#####################] 100%
mingw-w64-x86_64-gd... 2.9 MiB 1234K/s 00:02 [#####################] 100%
mingw-w64-x86_64-li... 26.7 KiB 6.51M/s 00:00 [#####################] 100%
mingw-w64-x86_64-ma... 103.2 KiB 7.20M/s 00:00 [#####################] 100%
mingw-w64-x86_64-pk... 237.5 KiB 1357K/s 00:00 [#####################] 100%
mingw-w64-x86_64-to... 257.4 KiB 1446K/s 00:00 [#####################] 100%
mingw-w64-x86_64-li... 379.7 KiB 1957K/s 00:00 [#####################] 100%
winpty-0.4.0-2-x86_64 495.6 KiB 1404K/s 00:00 [#####################] 100%
rsync-3.1.2-2-x86_64 259.9 KiB 1460K/s 00:00 [#####################] 100%
wget-1.18-1-x86_64 582.1 KiB 1595K/s 00:00 [#####################] 100%
(58/58) checking keys in keyring [#####################] 100%
(58/58) checking package integrity [#####################] 100%
(58/58) loading package files [#####################] 100%
(58/58) checking for file conflicts [#####################] 100%
(58/58) checking available disk space [#####################] 100%
warning: could not get file information for usr/share/man/man3/Git::I18N.3pm.gz
warning: could not get file information for usr/share/man/man3/Git::SVN::Editor. 3pm.gz
warning: could not get file information for usr/share/man/man3/Git::SVN::Fetcher .3pm.gz
warning: could not get file information for usr/share/man/man3/Git::SVN::Memoize ::YAML.3pm.gz
warning: could not get file information for usr/share/man/man3/Git::SVN::Prompt. 3pm.gz
warning: could not get file information for usr/share/man/man3/Git::SVN::Ra.3pm. gz
warning: could not get file information for usr/share/man/man3/Git::SVN::Utils.3 pm.gz
:: Processing package changes...
( 1/58) reinstalling autoconf [#####################] 100%
( 2/58) reinstalling automake-wrapper [#####################] 100%
( 3/58) reinstalling git [#####################] 100%
( 4/58) reinstalling libtool [#####################] 100%
( 5/58) reinstalling make [#####################] 100%
( 6/58) reinstalling mingw-w64-x86_64-libwinpt... [#####################] 100%
( 7/58) reinstalling mingw-w64-x86_64-gcc-libg... [#####################] 100%
( 8/58) reinstalling mingw-w64-x86_64-gcc-libs [#####################] 100%
( 9/58) installing mingw-w64-x86_64-dlfcn [#####################] 100%
(10/58) installing mingw-w64-x86_64-fftw [#####################] 100%
(11/58) installing mingw-w64-x86_64-wineditline [#####################] 100%
(12/58) installing mingw-w64-x86_64-pcre [#####################] 100%
(13/58) installing mingw-w64-x86_64-glib2 [#####################] 100%
No schema files found: doing nothing.
(14/58) installing mingw-w64-x86_64-libogg [#####################] 100%
(15/58) installing mingw-w64-x86_64-flac [#####################] 100%
(16/58) installing mingw-w64-x86_64-libvorbis [#####################] 100%
(17/58) installing mingw-w64-x86_64-speexdsp [#####################] 100%
(18/58) installing mingw-w64-x86_64-speex [#####################] 100%
(19/58) installing mingw-w64-x86_64-libsndfile [#####################] 100%
(20/58) installing mingw-w64-x86_64-portaudio [#####################] 100%
(21/58) installing mingw-w64-x86_64-fluidsynth [#####################] 100%
(22/58) installing mingw-w64-x86_64-fontconfig [#####################] 100%
Fontconfig configuration is done via /mingw64/etc/fonts/conf.avail and conf.d.
Read /mingw64/etc/fonts/conf.d/README for more information.
updating font cache... C:/msys64/mingw64/bin/fc-cache.exe: error while loading s hared libraries: ?: cannot open shared object file: No such file or directory
done.
(23/58) installing mingw-w64-x86_64-pixman [#####################] 100%
(24/58) installing mingw-w64-x86_64-cairo [#####################] 100%
Optional dependencies for mingw-w64-x86_64-cairo
mingw-w64-x86_64-glib2: libcairo-gobject [installed]
(25/58) installing mingw-w64-x86_64-graphite2 [#####################] 100%
(26/58) installing mingw-w64-x86_64-harfbuzz [#####################] 100%
Optional dependencies for mingw-w64-x86_64-harfbuzz
mingw-w64-x86_64-icu: harfbuzz-icu support
(27/58) installing mingw-w64-x86_64-libpng [#####################] 100%
(28/58) installing mingw-w64-x86_64-freetype [#####################] 100%
(29/58) installing mingw-w64-x86_64-ftgl [#####################] 100%
(30/58) installing mingw-w64-x86_64-fribidi [#####################] 100%
(31/58) installing mingw-w64-x86_64-ladspa-sdk [#####################] 100%
(32/58) installing mingw-w64-x86_64-lame [#####################] 100%
(33/58) installing winpty [#####################] 100%
(34/58) installing mingw-w64-x86_64-lua [#####################] 100%
(35/58) reinstalling mingw-w64-x86_64-binutils [#####################] 100%
(36/58) reinstalling mingw-w64-x86_64-headers-git [#####################] 100%
(37/58) reinstalling mingw-w64-x86_64-crt-git [#####################] 100%
(38/58) reinstalling mingw-w64-x86_64-winpthre... [#####################] 100%
(39/58) reinstalling mingw-w64-x86_64-gcc [#####################] 100%
(40/58) installing mingw-w64-x86_64-gcc-ada [#####################] 100%
(41/58) installing mingw-w64-x86_64-gcc-fortran [#####################] 100%
(42/58) installing mingw-w64-x86_64-gcc-objc [#####################] 100%
(43/58) installing mingw-w64-x86_64-gdbm [#####################] 100%
(44/58) installing mingw-w64-x86_64-ncurses [#####################] 100%
(45/58) installing mingw-w64-x86_64-termcap [#####################] 100%
(46/58) installing mingw-w64-x86_64-readline [#####################] 100%
(47/58) installing mingw-w64-x86_64-tcl [#####################] 100%
(48/58) installing mingw-w64-x86_64-tk [#####################] 100%
(49/58) installing mingw-w64-x86_64-python2 [#####################] 100%
(50/58) installing mingw-w64-x86_64-gdb [#####################] 100%
(51/58) installing mingw-w64-x86_64-libmangle-git [#####################] 100%
(52/58) installing mingw-w64-x86_64-make [#####################] 100%
(53/58) installing mingw-w64-x86_64-pkg-config [#####################] 100%
(54/58) installing mingw-w64-x86_64-tools-git [#####################] 100%
(55/58) installing mingw-w64-x86_64-libjpeg-turbo [#####################] 100%
(56/58) installing rsync [#####################] 100%
(57/58) reinstalling unzip [#####################] 100%
(58/58) reinstalling wget [#####################] 100%
Best way to detect individual attacks from continuous stream of notes?
Hi everyone,
I'm faced with a challenging problem involving rhythm detection for brass and wind instruments.
If a saxophone (or similar instrument) plays four quarter notes continuously of the same pitch (let's say C), what do you think would be the best way to detect the start of each note— specifically if these notes are played smoothly with no clear separation between them?
When the notes are clearly articulated (with a silence between them) I have been using sigmund~'s notes parameter to detect the attacks, but when the note is a continuous stream with a very subtle attack this does not work so well.
I have also experimented with bonk~ but I can't seem to have any luck setting the parameters to ensure that it doesn't give "too much" output and detect attacks that aren't there or are coming from different sound sources.
Any tips would be greatly appreciated, thanks!
Pitch Detection using Sigmund~
I'm dealing with detecting monophonic signals, in this case a voice. I also want to capture the natural rhythm of human speech, record that information, and therefore have access to variable incoming speed of notes and so on. It needs to be able to detect natural speech patterns as much as possible and be able to replicate it (play it back through a speaker).
Ideally, this would be set up in a place where there might be background noise, but the patch should be able to distinguish the main melodic content from just background static.
Thanks for the recommendation regarding the window size! That is good information to know.
Pitch Detection using Sigmund~
Hello everybody!
I wanted to get some advice in regards to using pitch detection using the "sigmund~" object.
Essentially, I am trying to create a system that:
- Detects incoming pitch
- Records said pitch information
- Plays back its own tune based on received pitch data (variable)
I'd like to emphasize that I am not talking about audio recording, but specific pitch in the form of midi data.
I've done some tests by playing samples into the object, and I have to say that it's pretty decent at being able to pick up the main melodies, but it is hard to have it working reliably.
Any further information or advice on pitch detection or any Pd objects/libraries I should check out would be tremendously appreciated.
Thanks everyone!
Timer delay ?
Hello,
I am trying to detect a specific range of midi note and send them using OSC.
The thing is, my range is big and therefore I am receiving a lot of OSC message.
I am using a snare drum, using PureData I saw that the drum midi note is usually between 48 and 49, I am looking for a solution to detect when the drum has been hit or not.
When I am hitting the drum, sometimes, PureData detect and send 48.2 / 48.4 / 48.5 (for example) so I receive three "hit" instead of only one.... I searched for a timer in order to send only one OSC message in an interval but can't find anything .. A timer or any other idea coming in your mind..
I hope I was clear enough...
Here is my patch :
Fiddle_OSC.pd
Thank you for your help and advices,
Greg
Fft-overlap and the normalization-factor...
Yes I'm very shure it works like I described, but it is important to apply this normalisation factor within the FFT subpatch, so it works on each overlapping frame. Then check the result outside the FFT patch. Attached is a patch demonstrating the normalisation with different overlap.
For double windowing you need overlap 4 indeed, this is because the Hann window squared becomes to small to overlap with a constant output and you get amplitude modulations. But if you do extreme filtering in frequency domain, double windowing helps a lot in reducing the resulting artifacts. You can even do brickwall filtering then. I have sorted this out in detail a while ago, and documented my observations on a few webpages:
http://www.katjaas.nl/FFTwindow/FFTwindow.html
http://www.katjaas.nl/FFTwindow/FFTwindow&filtering.html
Katja
http://www.pdpatchrepo.info/hurleur/fft-normalisation.pd.zip
Interaction Design Student Patches Available
Greetings all,
I have just posted a collection of student patches for an interaction design course I was teaching at Emily Carr University of Art and Design. I hope that the patches will be useful to people playing around with Pure Data in a learning environment, installation artwork and other uses.
The link is: http://bit.ly/8OtDAq
or: http://www.sfu.ca/~leonardp/VideoGameAudio/main.htm#patches
The patches include multi-area motion detection, colour tracking, live audio looping, live video looping, collision detection, real-time video effects, real-time audio effects, 3D object manipulation and more...
Cheers,
Leonard
Pure Data Interaction Design Patches
These are projects from the Emily Carr University of Art and Design DIVA 202 Interaction Design course for Spring 2010 term. All projects use Pure Data Extended and run on Mac OS X. They could likely be modified with small changes to run on other platforms as well. The focus was on education so the patches are sometimes "works in progress" technically but should be quite useful for others learning about PD and interaction design.
NOTE: This page may move, please link from: http://www.VideoGameAudio.com for correct location.
Instructor: Leonard J. Paul
Students: Ben, Christine, Collin, Euginia, Gabriel K, Gabriel P, Gokce, Huan, Jing, Katy, Nasrin, Quinton, Tony and Sandy
GabrielK-AsteroidTracker - An entire game based on motion tracking. This is a simple arcade-style game in which the user must navigate the spaceship through a field of oncoming asteroids. The user controls the spaceship by moving a specifically coloured object in front of the camera.
Features: Motion tracking, collision detection, texture mapping, real-time music synthesis, game logic
GabrielP-DogHead - Maps your face from the webcam onto different dog's bodies in real-time with an interactive audio loop jammer. Fun!
Features: Colour tracking, audio loop jammer, real-time webcam texture mapping
Euginia-DanceMix - Live audio loop playback of four separate channels. Loop selection is random for first two channels and sequenced for last two channels. Slow volume muting of channels allows for crossfading. Tempo-based video crossfading.
Features: Four channel live loop jammer (extended from Hardoff's ma4u patch), beat-based video cross-cutting
Huan-CarDance - Rotates 3D object based on the audio output level so that it looks like it's dancing to the music.
Features: 3D object display, 3d line synthesis, live audio looper
Ben-VideoGameWiiMix - Randomly remixes classic video game footage and music together. Uses the wiimote to trigger new video by DarwiinRemote and OSC messages.
Features: Wiimote control, OSC, tempo-based video crossmixing, music loop remixing and effects
Christine-eMotionAudio - Mixes together video with recorded sounds and music depending on the amount of motion in the webcam. Intensity level of music increases and speed of video playback increases with more motion.
Features: Adaptive music branching, motion blur, blob size motion detection, video mixing
Collin-LouderCars - Videos of cars respond to audio input level.
Features: Video switching, audio input level detection.
Gokce-AVmixer - Live remixing of video and audio loops.
Features: video remixing, live audio looper
Jing-LadyGaga-ing - Remixes video from Lady Gaga's videos with video effects and music effects.
Features: Video warping, video stuttering, live audio looper, audio effects
KatyC_Bunnies - Triggers video and audio using multi-area motion detection. There are three areas on each side to control the video and audio loop selections. Video and audio loops are loaded from directories.
Features: Multi-area motion detection, audio loop directory loader, video loop directory loader
Nasrin-AnimationMixer - Hand animation videos are superimposed over the webcam image and chosen by multi-area motion sensing. Audio loop playback is randomly chosen with each new video.
Features: Multi-area motion sensing, audio loop directory loader
Quintons-AmericaRedux - Videos are remixed in response to live audio loop playback. Some audio effects are mirrored with corresponding video effects.
Features: Real-time video effects, live audio looper
Tony-MusicGame - A music game where the player needs to find how to piece together the music segments triggered by multi-area motion detection on a webcam.
Features: Multi-area motion detection, audio loop directory loader
Sandy-Exerciser - An exercise game where you move to the motions of the video above the webcam video. Stutter effects on video and live audio looper.
Features: Video stutter effect, real-time webcam video effects
Bonked beat slicer
Since the detection is a one time deal it's just a matter of putting it in its own subpatch and using switch~ to turn it off after mapping the hits.
An even more sophisticated way of doing it would be to then to save the hits map to the disc using the sample's MD5 hash as a reference. That way if that file exists just load it instead of detecting the hits, if not detect the hits and save it.
By using the MD5 rather than the filename you guarantee that any changes done to the original file force re-detection by the patch. Another side effect is that you might have the same file copied with different names and they will still have the same MD5.
Don't think there is an md5 object in pd. I'll whip one up later.