Audio Editor, Project

Project Description
Motivation
At the time of the creation of this tool, professional audio editors had trouble editing large audio files (greater than an hour in duration); taking over 10 minutes to open a large audio file and taking simular amounts of time for various other operations. Weekly audio-review tasks involved editing six of these 1-hour files (2 shows * 3 sets). Existing audio editors were simply taking too much time.
Implementation
A custom "power user" audio editor was created with a minimal user interface and with editing features focused on extracting and splitting large audio files.
Instead of relying on visual features and mouse interaction, a general navigation system was developed using only two buttons/keys. Additionally, other useful navigation options were implemented (variable speed/direction, markers, and references).
The tool was made for production use and was developed to the point of being useful and functional.
This small project presented some technical challenges:
- Develop an intuitive two-key navigation scheme.
- Implement a quick statistical scan of the energy of the source audio.
- Interpolate the source audio wave form for audio scrubbing (variable-speed and reversable playback).
Coding was done with C++ Builder.
Screen Shot

The look and feel of the tool features custom transparent buttons and a custom minimal time-line display. A full visual user interface was unnessary and not implemented. The background is a panoramic taken in Cancun, Mexico and is displayed at the top of this page.
Features
- Modal Editing/Navigation
- "Power User" single key-stroke commands (think VI code editor, yet for audio)
- Modes
- Audio Scrubbing (variable speed/direction playback)
- Volume (amplitude selection)
- Text Input: (file names and some specific parameters)
-
Main Mode:
- "Two-Key" Audio Navigation: see: Linear Position Selection State Diagram
-
Markers (nameless ordered positions):
- set, auto mark, auto reduce, previous, next, first, last, save, load
- References (binding keystroke to position): set, recall, use (for following operation)
- Loop playback (repeat between markers): on, off
-
Audio Extraction (from regions; using markers or references)
- Single region extraction
- Contiguous/Batch region extraction
-
Command Line Arguments:
- Named Parameters: fileName, fileNames, markerFileName, baseFileName
- Key-Stroke Commands (a series of ascii characters interpreted as key-strokes)