2020-01-02 20:00:17 +01:00
|
|
|
exhale
|
|
|
|
======
|
2020-01-02 01:30:15 +01:00
|
|
|
|
2020-01-02 20:00:17 +01:00
|
|
|
exhale, which is an acronym for "Ecodis eXtended High-efficiency And
|
|
|
|
Low-complexity Encoder", is a lightweight library and application to
|
2020-01-03 00:00:28 +01:00
|
|
|
encode uncompressed WAVE-format audio files into MPEG-4-format files
|
2020-01-02 20:00:17 +01:00
|
|
|
complying with the ISO/IEC 23003-3 (MPEG-D) Unified Speech and Audio
|
|
|
|
Coding (USAC, also known as Extended High-Efficiency AAC) standard.
|
|
|
|
|
|
|
|
exhale currently makes use of all frequency-domain (FD) coding tools
|
|
|
|
in the scalefactor based MDCT processing path, except for predictive
|
2020-01-03 00:00:28 +01:00
|
|
|
joint stereo, which is still being integrated. Its objective is high
|
2020-01-02 20:00:17 +01:00
|
|
|
quality mono, stereo, and multichannel coding at medium and high bit
|
|
|
|
rates, so the parametric USAC coding tools (ACELP, TCX, Enhanced SBR
|
|
|
|
and MPEG Surround with Unified Stereo coding) won't be integrated.
|
|
|
|
|
|
|
|
____________________________________________________________________
|
|
|
|
|
|
|
|
|
|
|
|
Copyright
|
|
|
|
---------
|
|
|
|
|
|
|
|
(c) 2020 Christian R. Helmrich, project ecodis. All rights reserved.
|
|
|
|
|
|
|
|
|
|
|
|
License
|
|
|
|
-------
|
|
|
|
|
|
|
|
exhale is being made available under an open-source license which is
|
|
|
|
similar to the 3-clause BSD license but modified to address specific
|
2020-01-03 00:00:28 +01:00
|
|
|
aspects dictated by the nature and the output of this application.
|
2020-01-02 20:00:17 +01:00
|
|
|
|
|
|
|
The license text and release notes for the current version 1.0.0 can
|
2020-01-03 00:00:28 +01:00
|
|
|
be found in the `include` subdirectory of the exhale distribution.
|
2020-01-02 20:00:17 +01:00
|
|
|
|
|
|
|
|
|
|
|
Compilation
|
|
|
|
-----------
|
|
|
|
|
|
|
|
This section describes how to compile the exhale source code into an
|
|
|
|
executable application under Linux and Microsoft Windows. The binary
|
|
|
|
application files will show up in a newly created `bin` subdirectory
|
|
|
|
of the exhale distribution directory and/or a subdirectory thereof.
|
|
|
|
|
|
|
|
### Linux and MacOS (GNU Compiler Collection, gcc):
|
|
|
|
|
|
|
|
In a terminal, change to the exhale distribution directory and enter
|
|
|
|
|
|
|
|
`
|
|
|
|
make release
|
|
|
|
`
|
|
|
|
|
|
|
|
to build a release-mode executable with the default (usually 64-bit)
|
|
|
|
configuration. A 32-bit debug-mode executable can be built by typing
|
|
|
|
|
|
|
|
`
|
2020-01-03 00:00:28 +01:00
|
|
|
make BUILD32=1 debug
|
2020-01-02 20:00:17 +01:00
|
|
|
`
|
|
|
|
|
|
|
|
### Microsoft Windows (Visual Studio 2012 and later):
|
|
|
|
|
|
|
|
Doubleclick the exhale_vs2012.sln file to open the project in Visual
|
|
|
|
Studio. Once it's loaded, rightclick on `exhaleApp` in the "Solution
|
|
|
|
Explorer" window on the right-hand side, then select `Set as StartUp
|
|
|
|
Project`. Now simply press `F7` to build the solution in debug mode.
|
|
|
|
|
2020-01-03 00:00:28 +01:00
|
|
|
To change the debugging command, rightclick again on `exhaleApp` and
|
|
|
|
select `Properties`. In the newly opened window click on `Debugging`
|
|
|
|
under "Configuration Properties" on the left-hand side. Then you can
|
|
|
|
edit the "Command Arguments" entry on the right-hand side as needed.
|
|
|
|
|
2020-01-02 20:00:17 +01:00
|
|
|
For fastest encoding speed, please select `Release` and `x64` before
|
|
|
|
building the solution. This will create a release-mode 64-bit binary.
|
|
|
|
|
|
|
|
|
|
|
|
Usage
|
|
|
|
-----
|
|
|
|
|
|
|
|
This section describes how to run the exhale application either from
|
|
|
|
the command-line or using a third-party software providing WAVE data
|
|
|
|
to exhale's standard input pipe (stdin), such as foobar2000.
|
|
|
|
|
|
|
|
### Standalone (command-line):
|
|
|
|
|
|
|
|
In a terminal, change to exhale's `bin` subdirectory and then enter
|
|
|
|
|
|
|
|
`./exhale` (on Linux and MacOS) or `exhaleApp.exe` (on Windows)
|
|
|
|
|
|
|
|
to print out usage information. As an example, the following command
|
|
|
|
|
|
|
|
`exhaleApp.exe 5 C:\Music\Input.wav C:\Music\Output.m4a`
|
|
|
|
|
|
|
|
converts file Input.wav to file Output.m4a at roughly 128 kbit/s (if
|
|
|
|
the input file is two-channel stereo) and in xHE-AAC audio format.
|
|
|
|
|
|
|
|
### Third-party stdin (foobar2000):
|
|
|
|
|
2020-01-03 00:00:28 +01:00
|
|
|
After downloading from www.foobar2000.org and starting the software,
|
|
|
|
load your desired input WAVE files into the playlist. Mark all files
|
|
|
|
to be converted, rightclick on one of them and select `Convert` ->
|
|
|
|
`Quick convert`. In the newly opened window click on `Add New`, then
|
|
|
|
select `Custom` under "Encoder" and enter the following information:
|
|
|
|
|
|
|
|
- *Encoder file:* exhaleApp.exe (possibly including path to it)
|
|
|
|
- *Extension:* m4a
|
|
|
|
- *Parameters:* # %d (where number is the bit-rate mode, 1...9)
|
|
|
|
- *Format is:* lossy
|
|
|
|
- *Highest BPS mode supported:* 24 (or 32, doesn't matter much)
|
|
|
|
- *Encoder name:* exhale
|
|
|
|
- *Bitrate (kbps):* (depends on bit-rate mode, see Usage above)
|
|
|
|
- *Settings:* default CVBR
|
|
|
|
|
|
|
|
|
|
|
|
Development
|
|
|
|
-----------
|
|
|
|
|
|
|
|
If you're interested in contributing to exhale, please contact one of
|
|
|
|
the developers. Merge requests with fixes and/or speedups are highly
|
|
|
|
appreciated.
|