Post on 30-Jan-2018
Page 1
Convolution Reverb
Requirements Document
Colt Hartstein
Dain Marvel Taylor Morris
Page 2
CONTENTS
1 INTRODUCTION....................................................................................................... 3
1.1 Purpose..................................................................................................................... 3
1.2 Scope........................................................................................................................ 3
1.3 Background............................................................................................................... 3
1.4 References................................................................................................................ 4
1.5 Assumptions and Constraints.................................................................................... 4
2 METHODOLOGY...................................................................................................... 5
3 FUNCTIONAL REQUIREMENTS............................................................................. 5
3.1 Context..................................................................................................................... 5
3.2 User Requirements................................................................................................... 6
3.3 Data Flow Diagrams................................................................................................. 7
3.4 Functional Requirements......................................................................................... 7
4 OTHER REQUIREMENTS....................................................................................... 7
4.1 Interface Requirements............................................................................................ 8
4.2 Data Conversion Requirements............................................................................... 8
4.3 Hardware/Software Requirements........................................................................... 8
4.4 Operational Requirements....................................................................................... 9
APPENDIX A - GLOSSARY................................................................................................ 11
Page 3
1 INTRODUCTION
Consider a sound emitted from a point source speaker in a room of finite dimension. The air
pressure waves propagate throughout the space and interact with the room’s walls, floor and ceiling until
they lose sufficient energy to remain audible. These interactions- instances of reflection and absorption-
define the reverberance of said space. Two products are being designed to capture the reverberant
characteristics of any enclosed space and, by means of convolution, artificially apply such to any music
track, resulting in audio which has been affected to sound as if it has been emitted in the captured space.
Project V-IR-Bull’s Convolution Reverb (short for reverberation) systems utilize this process to simulate
the reverberation – or persistence of sound – within a physical or virtual space.
1.1 Purpose
Reverb systems have populated the professional and consumer audio markets for a substantial
length of time, but the existing system are limited in their scope; the existing designs can only offer pre-
determined ‘presets’. Project V-IR-Bull’s Convolution Reverb systems take the traditional one step
deeper- the ability to also capture any space and create a fully usable, high fidelity impulse response
representing said space via the utilization of digital convolution of these captured characteristics with an
audio file of the user’s choosing.
1.2 Scope
The scope of our project is to successfully implement a convolution algorithm with an audio
signal and, for that output to have zero distortion and/or zero clipping issues. Our goal is to have two fully
functional systems to perform Capture, Convolution and allow for Playback to a variety of outputs. One
system will target audio professionals, with a focus on recording applications, while the other targets the
consumer audiophile, with a focus on causal music playback.
Page 4
1.3 Background
The most common method in the audio industry by which to artificially apply reverb to audio is
via a delay-line tap configuration. But these systems are limited in their scope, due to the finite nature of
reverb characteristics made available by their designs. Our system offers the user not only the reverb
effect, but most importantly the freedom to use any real-world environment of their preference to
convolve with their dry music signals with a Capture feature. This will give an illusion that a
musician/performer will sound like they are actually in an acoustic space that is truly of the user’s
preference. Professionals can take their live rooms with them in remote recording and mixing sessions,
and consumers can take, say, their favorite music rooms with them when listening to their album
collections.
1.4 References “Audio Ease’s Altiverb 7.” Audio Ease. Web. Accessed 7 Oct 2013
http://www.audioease.com/Pages/Altiverb/
“The Audio Expert.” Ethan Winer. Focal Press. 2012. ISBN# 978-0-240-82100-9.
“Designing Audio Effect Plug-ins in C++.” Will Pirkle. Focal Press. 2012.
ISBN# 978-0-240-82515-1
“Intro to DAWs.” GA Tech. Web. Accessed 26 Nov 2013.
http://earsketch.gatech.edu?learning?intro-to-daw/introduction-to-daws-digital-audio-
workstations
“Quantum Leap Spaces.” East West. Web. Accessed 7 Oct 2013.
http://www.soundsonline.com/Spaces
“Waves IR-1.” Waves. Web. Accessed 10 Oct 2013.
http://www.waves.com/bundles/ir1-convolution-reverb
Page 5
1.5 Assumptions and Constraints
1.5.1 Assumptions ● Fully functioning convolution program to apply reverb effect.
● Capture system to import reverberant characteristics of spaces.
● Playback system in two configurations- professional for recording applications, consumer for
listening applications.
● Have an array of multiple preset impulse responses from around USF and Tampa Bay.
● Controls and interfaces: pushbuttons, LCD, HTML server, USB, HMDI, audio line in, line out
● Safe, in-box power distribution to each system component
1.5.2 Constraints All of the following constraints can be classified as considerations in gear selection and integration,
or as preferences as of yet unattainable due to complexity level of operation with our current knowledge
in coding and computer science.
● Full automation of capture, convolution and playback sequences.
● Full HTML browse and upload user interface (proof of concept, with text sends, is attainable).
● The frequency response of the equipment used for impulse response capture can affect the
accuracy or correctness of the impulse response.
● Getting a clean impulse; meaning little to no background noise in places captured.
2 METHODOLOGY
The hardware implemented in this is system can be divided into three categories: power, controls
and audio. All audio hardware interfaces with the connectors on the panel faces, and is processed on the
Wolfson Pi sub-system, performing ADAC on all I/Os. Such hardware includes: microphones,
microphone preamps, speakers, headphones, mixers, the Wolfson Audio Card and media players. All
Page 6
controls hardware consists of networks that serve to give the user control over the preset selection and
implementation; pushbutton networks and an LCD display and the Convolution Pi. All power hardware is
distributed internally from a rail system that draws power from an external wall wart, and employs a
switch system for ultimate user control over which elements are powered for which time (for instance, the
fan can be independently deactivated during the capture process). All hardware works to allow the user to
interface with the Raspian OS on each Raspberry Pi to run the appropriate software and affect their audio
with reverberant characteristics via convolution.
3 FUNCTIONAL REQUIREMENTS
3.1 Context We have split up our approach up into the separate stages. The impulse response capture stage
and the implementation of the convolution algorithm stage and the playback stage. Capturing the impulse
response of an acoustic space requires the use of a 10 ms pink noise chirp to “excite” the room and the
recording of the reverberation characteristics of that space simultaneously, incorporating analog to digital
conversion in I/Is, hi fidelity signal flow and a digital audio workstation. The second stage involves
taking that impulse response recorded and using it as a part of a convolution algorithm to convolve it with
the dry music input signal. The third stage exports the convolved .wav file through digital to analog
converters and out the I/Os to the target destination; mixing or listening.
3.2 User Requirements in System Sequence
U1. A 10s 1kHz test tone is used to establish 85-90dB at the microphone capsule, using an SPL meter to
measure.
U2. A 16 bit 10ms pink noise chirp track is played out of the LX Music player from the Wolfson
Raspberry Pi sub-system, and is emitted by the speaker.
U3. The microphone captures a 10ms chirp and the reverberated copies and reflections of the chirp from
the room, thus providing the frequency and timing information necessary to define the acoustic
Page 7
characteristics of the room.
U4. The captured audio signal is sent from the mic through a mic cable with an XLR connector, into a
microphone preamp, which amplifies the signal by about 40dB and into the analog line-in jack on the
Wolfson audio card.
U5. This sound-card uses its onboard ADAC to convert the analog electrical signal to digital data, ready
for manipulation by a digital audio workstation (DAW) installed on the RPi (Note: Audacity currently
acts as the DAW for the consumer system, for which step by step guide has been written and would be
included in the literature with the product).
U6. After proper editing is performed in the DAW on the capture, it is then exported as a .wav file.
U7. The Wolfson RPi system then sends this capture.wav file to the Convolution Raspberry Pi sub-
system, which performs FFT analysis to produce an impulse response map of the room.
U8. This is impulse response then convolved with a music track of the users choosing in the modified
SciPy program.
U9. When the convolution stage is completed, the convolution Pi network sends the convolved .wav file
back to the Wolfson Pi, which can then either be played back through the line-out or headphone out as-is
in .wav format using LX music, or can be run on through a conversion program to compress the file into
mp3, mp4, or AAC (& etc) file formats size-friendly to personal listening devices.
Note: Also an option, the Convolution Pi offers USB access to the SD memory, such that the user can
save their new music tracks onto their USB flash drive for use in other applications, such as mixing.
3.3 Data Flow Diagrams
Page 8
3.4 Functional Requirements The functional requirements of the system include being able to record, convert and edit upload
the selected room’s reverberant capture to the Wolfson Pi system. It must then perform Pi-Pi
communication via sending the captured reverb in a .wav file to the Convolution Pi, which must be partly
controllable through a series of pushbuttons and LCD display for importing music and calling on a preset
reverb recording. The Convolution Pi must then run a convolution program to apply the captured signal
to an uploaded music file. Finally, the resultant convolved .wav file must be sent back to the Wolfson Pi
to be outputted to the user
Page 9
3.4.1 Functional Requirements Group
Table 1 - Requirements Group
Section/ Requirement ID Requirement Definition
FR1.0. The system shall upload the user’s music file.
FR1.1 The system shall capture and upload the reverberance of a room.
FR2.0 The system shall convolve the above sources.
FR3.0 The system shall playback the resultant output.
4 OTHER REQUIREMENTS
This system must be able to perform at optimum fidelity, integrating and interfacing with the
highest quality audio capture deceives- microphones, speakers and microphone preamps. High slew rates
in op amps, high SNR values in all equipment, standard input and output impedances in all cabling and
appropriate signal flow must be established and maintained at all times.
4.1 Interface Requirements
Our user interface will include a network of pushbuttons and an LCD display, as well as options
to connect to the Raspberry Pi’s as one would with computer for the software functions (editing and
convolution). Once our project has accomplished the foundational goal of basic, segmented capture,
convolution and playback of reverb effects on an inputted music file, additional automation features and
wireless interface mechanisms will be developed. We will have to remain mindful of keeping the user’s
conversation with the system and their music as simple and elegant as possible.
Page 10
4.1.1 Software Interfaces
The Raspberry Pi systems will utilize C, C++, and Python coding, in the implementation of the
control systems, audio recording and convolution functions. The Wolfson Pi will run a digital audio
workstation program, such as Audacity, and file conversion programs. The Convolution Pi will run SciPy
convolution programs and C/C++ developed terminal functions for the control systems.
4.1.2 Communications Interfaces
The Raspberry Pis must be able to communicate with one another and send .wav files (large sized
audio files). The Convolution Pi must be able to communicate with local storage or access media from a
USB port, or from the HTML server. It must also communicate with the LCD display and the pushbutton
network. The Wolfson Pi must communicate with standard audio electronics such as microphones, mic
preamps, speakers, headphones and standard media devices.
4.2 Data Conversion Requirements
Conversion programs can be run to up/down convert the .wav files to or .mp3, .mp4 or .aac files
for import/export.
4.3 Hardware/Software Requirements
Both systems must provide the hardware connectors for user interface (line level 3 pole inputs
and outputs, USB and HDMI access) with the Raspberry Pi networks developed, control systems
(pushbuttons, LCD screens), I/Os with hi fidelity ADAC functions and a safe power distribution and
switch system.
4.4 Operational Requirements
The user must be able to upload and download music files from the Pi network from the USB
ports, and must have made headway in HTML server upload and download abilities. The presets must be
Page 11
callable from the pushbutton networks, and the LCD screen must display key data from the pushbuttons
pressed. The system must be fully powered by the plugging in of a single power system, with switches fro
control over key elements (such as the fan for deactivation during capture). The captured audio must be
easily input from a microphone into the system, and conversely, the system must also be able to stream
out audio directly from the box.
4.4.1 Security and Privacy
Possible security issues may arise during operation of the system. A loss or corruption of
data/files may occur due to some aforementioned circumstance. Introduction of malware, such as viruses
may enter the Raspberry Pi operating systems due to breach in the HTML server securities, or if a file is
uploaded as an input signal that hosts the virus. Factors ranging from computer spyware, malware, or
individual’s lack of software updates and/or instillation of antivirus programs has a potential to play a part
in security and privacy on any given computer. That is why we will only require personal information
when the consumer purchases our product. Once a consumer buys our convolution reverb systems, we
require personal information such as standard credit/debit card information to process the transaction.
Then, the consumer will receive a physical system that hosts all hardware and Raspberry Pi systems with
a unique serial number. We intend on keeping our consumer’s private information safe by keeping it
separate from the actual serial number.
4.4.2 Reliability
The convolution reverb systems should operate consistently and reliably in that executing the
capture, the convolution, and playback stages.
Page 12
4.4.3 Recoverability
In the event the system experiences failure, the systems will usually be able to be restored by
powering down the system and then powering up after a 12 second wait. All other corruption would have
to be sent in for repair and restoration.
4.4.4 System Availability
The application will be available to use 24/7 by the user. Peak times will usually occur from
12:00pm to 10:00pm EST.
4.4.5 General Performance
The response time for any updates or queries made by the user would be answered within 24
hours of any noticeable fault in the system. The expected rate of user activity would be on average of 50
times a day by a regular consumer during mixing or listening sessions.
4.4.6 Data Retention
The length of time that the convolved signal will be retained would be operable until the user
decides to discard the saved reverb effect. The Raspberry Pi networks function as computers, and so
retain data as long and efficiently their contemporary computing systems would.
4.4.7 Error Handling
If a catastrophic error occurs, then the system would have to be sent in for repair, as there are
many components that need electrical engineering knowledge to identify and repair.
4.4.8 Conventions/Standards
AES (Audio Engineering Society) Standards and interpretations: 44.1k sampling rate and 16 bit
resolution for CD production, loudness levels below -6dB while in a digital domain, 85-90dB present at
mic for capture, no clipping in recorded captures,
Page 13
APPENDIX A - GLOSSARY AND CONVENTIONS/STANDARDS
IR - Impulse Response: The acoustic fingerprint of a particular environment. Represents the frequency
content and magnitude in decibels of that acoustic space.
ADAC- Analog-digital-analog conversion
I/O- Input and Output configuration
EQ - Equalizer. Adjustable frequency gain filter with varying bandwidths.