Project
# | Title | Team Members | TA | Documents | Sponsor |
---|---|---|---|---|---|
26 | Software Controlled physical sound sources (SCPSS) Sponsored Project |
Ben Sisserman Micki Rentauskas Won Woo Lyu |
AJ Schroeder | design_document1.pdf design_document2.pdf final_paper1.pdf other1.pdf presentation1.pptx proposal1.pdf |
|
**Title: Software Controlled physical sound sources (SCPSS) *Sponsored Project* -- Ryan Corey (Post Doc), under Professor Andy Singer at CSL** **TeamMates:** -Won Woo Lyu - Online (wlyu2), Ben Sisserman - Online (bens3), Micki Rentauskas - On Campus (mar3) **Problem:** -Ryan’s lab does research on audio-processing, and they typically use speakers placed throughout a room to emulate various sound sources. However, speakers output audio that loses some specific features of actual sound sources due to sampling and compression, and physical sources also do not output the same exact sound each time it is struck or powered on. **Solution Overview:** -To solve this problem, we intend to design a wrapper/API that can interface with the lab’s test setup on the PC, which specifically triggers the sound devices from Python scripts or Matlab -The interface would communicate by outputting a trigger signal to two different types of sound sources: one that physically strikes an object, such as a drum, using a servo motor and one that turns on a device, such as a blender using a relay. This modular approach allows for easy integration of different objects in the future. - The two boards would communicate directly with the testing PC via UDP **Solution Components:** -Hardware -Two separate PCB’s for each type of device. The striking device would use a servo motor attached to an arm to strike an object. This device could take into account strike velocity, and the servo sequence would have to be tuned before the device could be added to the network. -The second PCB would be made for a device that can turn electronics on and off, and take into account duration of turning on of the device. This would be accomplished using a relay. - 2 exp32 microcontroller for Wifi capability of the PCB's -Software - A Python module to detect and initialize the devices for use. The module then allows the user to give commands directly to the boards -Firmware for embedded devices that broadcast their MAC and type for initialization and take commands over UDP **Subsystems:** -Striking-type board: this system utilizes a tuned servo to emulate striking an object when a HIGH signal is received. This can be duplicated to strike a multitude of objects and should only require specifying the servo pattern. Sound producing objects that would be used here would be a drum hit by a mallet or a bell struck by a small piece of metal. -Relay-type board: this system utilizes a relay to turn on an electrical device when a HIGH signal is received. This system can also have a “duration” setting, since a relay must remain open for a certain amount of time. Examples for objects here would be a blender, where we would switch line power in and out for a specific amount of time, or a battery-powered toy, where we would switch the battery connections in and out. - Python module on the test PC to establish communication with the boards and send commands. **Criterion for Success:** -The project would be successful if the SCPSS wrapper can take an input from the PC using our Python or Matlab interface, and produce sounds at the specified times in the script with a simple call such as “scpss.blender(HIGH, 10)”, which would trigger the blender to run for ten seconds once called. The solution should support moving the objects around a room as well for different test trials. -Another criterion would be making adding new devices fairly easy to do without much system knowledge, specifically for the relay-type device, and would entail editing a config file and initializing the system again. - Also key is to ensure consistent latency in the devices. They can have latency, but it needs to be known. Contingency Plan for Covid-19: In the case where we can no longer make use of the labs, we can use simulation software to ensure that the board design is sound and create the Python module and protocols entirely in software for testing. If the boards are already fabricated we could test the devices at home on our own routers. |