Audio Loop Station

Write an audio looping application. In this project, you will be writing an application to record, select, and playback audio clips in real-time. For more context, you might read up on some existing well-developed audio Looping devices, or view demos of them. Loop Stations to review: Electrix Repeater (defunct) Electro-Harmonix 95000 Performance Loop Laboratory Boss RC-505 Loop Station Definitions: Loop: a repeating musical figure. When we hit the end of a loop, it immediately starts playing again from the beginning Track: a unique place to record audio within a loop with independent level, pan controls

Objectives


Objectives Create an application that satisfies the following requirements:

  • Store and access an arbitrarily large number of loops
  • Can play at least one loop at a time
  • A loop can consist of at least 4 mono or two stereo tracks. (The maximum number of concurrent tracks in a loop may be limited by your choice of platform, language, and design)
  • Capable of playback and recording at the same time.
  • Immediately upon moving from a recording state to a playing state, the recorded track plays back in time, along with the previously-playing tracks.

Includes at least three of the following features:

  • Time Stretching: change tempo without affecting pitch of loop
  • Pitch Shifting: change pitch or key of a track without affecting time
  • Loop trimming: Auto-trim a track to match start and end points of a loop, tracking and matching the BPM in use
  • Reverse Play: set a track to play backward within a loop
  • Slip: offset the start point of a given track or combination of selected tracks.
  • Pan: control relative signal left and right

Important considerations:

User Interaction: An audio looper is a performance device. As such, it needs to be easy and intuitive for use by a musician. Features for recording, selecting tracks, and playback need to be immediately accessible—not nested in menus. As an example, here is how the Electrix Repeater manages concurrent playback and recording: Record – Press RECORD to enter and leave recording. Pressing RECORD on Repeater also engages PLAY for you. With an empty loop, pressing RECORD also defines the downbeat. Recording can be undone with the UNDO feature. 

Consider how your design might port to different systems. For example, if you’re writing this for PC, what considerations can you make now that would allow for an easy port to Android or iOS. What features might you want to take advantage of if you continue development beyond the course scope? A little planning now can avoid a lot of refactoring later.

Design Patterns: It’s important to think about how you organize the device to ensure that triggering an event works reliably and gracefully manages resources moving from one feature to another.

Motivations


Motivations Expect to learn about Audio Stream I/O, buffered File reading and writing, threading for non-blocking processes, design patterns, DSP, UI design. Additionally, some optional potential features encourage an understanding and use of Fast Fourier Transform (Time Stretch, Pitch Shift). For additional motivation, here is Reggie Watts demonstrating the EHX 95000 audio loop station: https://www.youtube.com/watch?v=2gK9dAu8o4s&list=LLnrTx3azu09X4r-bcjLfjOQ&index=182

Qualifications


Minimum Qualifications:
None Listed

Preferred Qualifications:
None Listed


Details


Project Partner:

William Pfeil

NDA/IPA:

No Agreement Required

Number Groups:

1

Project Status:

Accepting Applicants

Keywords:
Operating SystemsAudiothreadingUI designhigh performance
Card Image Capstone