*About the Minimal Float Buffer Player*
What it can do?
Opening and reading arbitrary binary floating-point raw data files into a playback buffer (File > Open...).
Interpreting and playing back as audio data.
Playing data back at different speed and pitch (File > Process > Resample...).
Amplitude-modulating the data: Ring-, SSB-LSB and SSB-USB (File > Process > AM...).
Frequency-modulating the data, with amplitude envelope follower.
Generating harmonic distortion (File > Process > HD...).
Saving as 32-bit floating point CoreAudio or AIF mono sound files (File > Save As Audio...).
Also importing a limited number of float-32-bit audio formats (.caf, .aif)
It can therefore be helpful in sonification of non-audio data.
The app is based on the Float Buffer Player
UNIX utility, but equipped with a convenient Objective-C GUI
consisting of menu-based file opening, saving, simple processing, metering and playback interface.
On reading raw files, data bytes can be made force-swapped in case there is an endianness issue.
On import, all excessive values are being normalized to fit the legitimate range for
audio levels, so no clipping distortion can occur. Possible NaN-values are zeroed.
Few simple time-domain DSP operations such as resampling, FM, AM and harmonic distortion (waveshaping) can be performed on the buffer data.
Once exported as 32-bit float CAF-format or AIF-format audio files,
they can be re-opened, also opened and processed by any audio editor or computer music workstation.
- <command>-O : File > Open...
- <command>-S : File > Save As Audio...
- <control>-R : File > Process > Resample...
- <control>-A : File > Process > AM...
- <control>-F : File > Process > FM...
- <control>-H : File > Process > HD...
- <control>-Z : File > Process > Revert (= a simple one-step undo/redo)
- Test button tests the meter range. Keyboard shortcut: <Shift-T>
- Play button either starts or stops playback. Keyboard shortcut: <Shift-P>
- Peak/RMS display toggle does what it says.
- Option-clicking the test button resets the meter.
- Opening a new file clears the playback buffer and refills it with new file's content.
- Swap Bytes checkbox in the "File Open" dialog fixes possible endianness issues in some data files.
- Normalize checkbox in the "File Open" dialog force-normalizes those data streams whose range of values are too soft.
- For convenience , the app can also read Float32 audio files of CAF, AIF and WAVE format, but it is not meant to be used as audio player.
- Process menu dialog sheets are self-explanatory.
- A minimalistic MIDI support emulates the Play button (note-on, any channel).
- In FM modulation amplitude of the buffer modulates the frequency of the carrier. If buffer loudness is too low, hardly
any change will be heard. It's good to force-normalize the data on reading.
- Harmonic distortion is "tuned" in such a way that pure 2nd and pure 4th harmonic are generated for pure sine waves.
Complex signals causes intermodulation distortion, the dialog-sheet parameters have to be tweaked to get a desired result.
Here's the dialog sheet:
- as time-domain generation of even harmonics involves adding a DC component, the DC filter blocks it. Higher values give better tracking.
- high-pass filter determines the lowest source frequency to become harmonically distorted.
- "Scale" is a peak matching multiplier.
- Knee is the compression threshold (between 0.0 and 1.0).
- Compression in output-to-input ratio for values above knee (0.5 = 1:2).
1.0.2 - built and tested in OSX 10.7.5, 64-bit mode, and in OSX 10.10.2.
The zipped file consists of the application and a sample test data file:
here's the link