We have programmed a beat detector using "Pure Data," a dataflow development environment similar to "Max/MSP." A musical beat signal is filtered to drive a phase-locked loop, which signal triggers choreographed, articulated gestures in virtual, actual, and model windshield wipers. We use a cyclic buffer to implement a moving ("windowed") average, effectively a low-pass filter of inter-event intervals, a digital phase-locked loop used to propel the selected rhythm.
A choreography module maps the PLL beats into segmented gestures used to drive windshield wipers in three styles: virtual, through a driving simulator; real, pulsing a standard wiper motor; and miniaturized, through a stepping-motor actuated model wiper.
A driving simulator, implemented in Java3D, renders the virtual gestures. Mechatronic interfaces use signals generated by the DPLL to trigger the physical wiper cycles. Two USB ports synchronize custom circuits driving (flash memory) Peripheral Interface Controllers (PICs) to motivate the motors. For the full-sized version, a normal automobile wiper assembly transduces the drive energy; for the model, a stepper motor drives a miniature windshield wiper.
After selection of a song, the wipers automatically lock onto its beat. The choreography module deliberately articulates the wiper sweeping gesture to avoid the rigid cadence of even intermittent wipers, breaking the wiper stroke into quarters for the purposes of this proof-of-concept, to make the visual rhythm easy to see. An external audio port invites attendees to plug their own music players into the system to express their own music through the dancing wipers.
All this happens without user intervention, "under the hood," as it were. The user simply starts up the music on a music player, and when the wipers are launched they "find the beat," locking onto the rhythm detected by the software.
Techniques for synchronizing wipers with musical beats can be ordered in a hierarchy of sophistication:
Modern beat detection algorithms, while not perfect, do a fairly good job. We have programmed such a beat detector using "Pure Data" ("PD"), a dataflow development environment similar to "Max/MSP." We use an "aubiotempo" [sic] patch to extract the beat. (The name prefix is probably deliberately dyslexic to highlight its organic, biological inspiration.) There is some jitter, and occasional missing beats, but it is robust enough to track most popular songs.
A digital music player (such as an iPod or modern mobile phone) serves as a audio source. Such generalized stereo signals can be captured by our audio port, and used to drive articulated wiper gestures.
We use a cyclic buffer to implement a moving ("windowed") average, effectively a low-pass filter of inter-event intervals, a digital phase-locked loop used to propel the selected rhythm. This buffer is pre-seeded with default values (like 120 bpm), and the initial values are propagated to all the registers to minimize start-up synchronization. The system was tuned to make the circular buffer "sufficiently long" (ten taps, in the latest version). This filter automatically interpolates beats, even if they are missed by the beat detector.
(The same way recreational dancers enjoy the sensation of keeping the beat even when the music is silent, the wipers are perhaps especially satisfying when they swing to a silent rhythm.)
A choreography module maps the PLL beats into segmented gestures used to drive windshield wipers in three styles: virtual, through a driving simulator; real, pulsing a standard wiper motor; and miniaturized, through a stepping-motor actuated model wiper.
A driving simulator, implemented in Java3D, renders the virtual gestures. Mechatronic interfaces use signals generated by the DPLL to trigger the physical wiper cycles. Two USB ports synchronize custom circuits driving (flash memory) Peripheral Interface Controllers (PICs) to motivate the motors. For the full-sized version, a normal automobile wiper assembly transduces the drive energy; for the model, a a stepper motor drives a miniature windshield wiper.
If the system had significant mechanical inertia, the expressions would arrive behind, or after, the intended beat. The tempo would be correct, but the phase would be displaced. In such circumstances, audio rendering could be adjustably delayed to resynchronize the visual and auditory accents. However, the performance of our system is satisfactory, and such measures have not been necessary.
Rubato in musical interpretation refers to intentional variation in tempo, a kind of temporal jitter, but musically deliberate, according to the performer and performance. Our beat detection and DPLL are sensitive to such expressions, including accelerando, ritardo, cadence, and other variations, and they are reflected in the musically driven parts of the vehicle.
All this happens without user intervention, "under the hood," as it were. The user simply starts up the music on a music player, and when the wipers are launched they "find the beat," locking onto the rhythm detected by the software. If the tempo of a song is doesn't change too suddenly, phase drift is negligible. Like "Snowball," the phenomenal dancing cockatoo, our system occasionally falls out of beat, but then soon recovers.
The wipers have three manifestations: virtual, full-sized, and miniaturized. The virtual display allows switching between egocentric (1st-person) and exocentric (3rd-person) perspectives, as well well as effects like time-of-day and fog.
Regarding the full-sized wiper control, the challenges of deploying a real windshield and managing the water that would be needed to lubricate it are too intimidating, so we will just show the motion of the wiper in a stand-alone configuration, disembodied from any car. (Confirming how well such exotic gestures would actually sweep away rain has yet to be tested!)
Leveraging the self-containedness of the battery-powered R/C model car with sound display, laptop computer, stepping motor wiper, we are working on making the demonstration "free-ranging," navigable around the exhibit space. The laptop computer can be installed as payload in the model car, and the radio-controlled model can be driven around to entertain visitors and lure them to the booth for a fuller demonstration, its native circuitry, the custom hardware with PIC, and the music-synchronized wiper all powered by on-board batteries. An external audio port invites attendees to plug their own music players into the car to express their own music through the dancing wipers.
In the future, the winkers (a.k.a. blinkers or turn signals) might also be synchronized with such external signals. A turn signal can be directionalized according (intuitively, naturally), perhaps decoupling external lights, which are subject to legal considerations, from internal confirmation, which is more flexible. Since the period, tempo, cadence, phase, rhythm, accents, and even timbre of the turn signal indicator are somewhat flexible they can be reset to piggyback on the musical beat, forced to match the beat of the song, optionally slaved to the windshield wipers. To suggest such possibility, our virtual model includes such flashing.
We believe this research to be ripe with opportunities for future extensions. Shuffle beat, triplets, waltz time can all be expressed as rich wiper gestures, modulating stroke arc, timing, duty cycle. Pairs of wipers need not be synchronous, so there is a fertile design space to be explored.