Creation of audio processing modules in C/C++ for DAW package

Geschlossen Veröffentlicht Apr 2, 2008 Bezahlt bei Lieferung
Geschlossen Bezahlt bei Lieferung

This project entails coding three modules for a python based DAW program. The coding must be done in C/C++. Previous experience with DSP or audio processing of some type is not strictly necessary, but is highly recommended. The modules must each have a python module wrapper (so they can be called by python code) and must be able to accept parameters, and return data? in the form of python objects (such as lists, tuples, strings, etc). The python manual has extensive documentation on the subject of creating modules in C/C++, so it should not be too much of a challenge.

The focus in each of the modules is speed and transparency. They should be optimized to run as fast as possible, and should introduce no noise or artifacts in the audio signal.

## Deliverables

Deliverables:

The coder must deliver the source code for, and working python? modules for the? following three audio processing? modules. All? code? must be written? in C/C++.? The modules must accept the given input parameters and return the given outputs as python objects (if applicable). All of the modules must be tested for performance, speed, transparency (addition of distortion, noise, or any other artifacts into processed audio file is unacceptable), and compatibility with Python 2.5

**Sustained Transient? Peak Location Detector**

*Description*: Analyzes an audio file in the standard? 1411 kbps, 16 bit, stereo, [url removed, login to view], PCM? WAV format, and returns the locations (as sample numbers) of? sustained transient amplitude peaks (excluding sudden transients). This program does not have to catch every single transient; this is an extremely difficult task. The program simply needs to be accurate with the transients it finds, and repeatable: whether the target file is in an uncompressed format, or the same audio as a noisy 16kbit/s mp3, the transient peaks found should be in identical locations. This algorithm must be tested for repeatability and optimized to have almost identical returns on an uncompressed (WAV) and compressed (compressed, and then up-converted to WAV) waveform with noise added.***? ***

*Input parameters*: Must take the following parameters - location of? input audio file (in WAV format), floating point number? n, integer t, integer y,? floating point number? x, floating point number z

*Processing*:? Finds a maximum of n (this should not be the first? n,? but? rather should be evenly? distributed? throughout the file in a stochastic, but repeatable? manner)? number of? transients? in file where, over a period of x milliseconds,? the amplitude increases by more? than? t %? at any point, but? does not drop to less than? y% of the peak level within z milliseconds. The algorithm should return the? sample number of the location of the? peak amplitude? value of these transients. (the attached picture "transient example" provides a visual representation of this)

*Output*: Must return - the sample number of each? of the n? transient peaks as a python list

***Important: The goal of this algorithm is to find locations in a file that will be identical no matter what is done (to a reasonable extent) to that file. I am open to suggestions on better ways to do this. I will reward any coder who can come up with a more accurate and/or faster way to accomplish this task with a bonus equal to 15% of the total cost of the project.***

**Noise Profiler****

***Description*: This is a fairly standard noise profiling algorithm, and should take the first few milliseconds of the target audio file in the standard? WAV format as specified above, and after verifying that this selection is not part of the original audio (to whatever degree possible) perform a linear frequency analysis using a rectangular window (any other variables affecting frequency analysis I leave up to the coder) and return the specific power in db at each of the sampled frequencies.

*Input parameters*: Must take the following parameters - location of input audio file (in WAV format), floating point number n, python list object li

*Processing*: performs? linear frequency analysis using a rectangular window upon first n? milliseconds of? target audio file, returning the specific power in decibels at each of the frequencies specified in list li

*Output*: Must return -? the specific power in db at each of the sampled frequencies as a python dictionary object using the frequencies as the keys and the amplitude in decibels as the values for those keys

**Volume Envelope Creation****

***Description*: This algorithm should create a volume envelope at the specified point in the target file

*Input parameters*:? Must take the following parameters - location of input audio file (in WAV format),? python? list object? li,? python tuple object? (a, b, b1, c) (a, b, and c are floating point numbers,? b1 is an integer)

*Processing*:? Beginning at sample number n in list li, the algorithm encodes volume envelope of form (a, b, b1, c), where a is the duration of the first leg of the envelope (attack), b is the duration of the second (plateau), b1 is the percentage amplitude increase/decrease of the second leg, and c is the duration of the third leg (release); legs a and c must fade in an even linear fashion from plateau b, down to the original amplitude value of the segment. Envelope must affect only amplitude of samples and introduce no distortion, noise, or artifacts of any kind into audio

*Output*: Must return ??"? the processed audio file in the same standard WAV format as the input file

Audiodienste Ingenieurwesen Musik MySQL PHP Projektmanagement Softwarearchitektur Testen von Software

Projekt-ID: #3839138

Über das Projekt

1 Vorschlag Remote Projekt Aktiv Apr 28, 2008

1 Freelancer bietet durchschnittlich $1275 für diesen Job

repmovsd

See private message.

$1275 USD in 14 Tagen
(143 Bewertungen)
7.0