• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

include/H27-Oct-2021-359296

src/H27-Oct-2021-13,47611,068

README.mdH A D27-Oct-20216 KiB154109

exhale_vs2012.slnH A D27-Oct-20212.8 KiB4948

makefileH A D27-Oct-20211.4 KiB3616

README.md

1exhale
2======
3
4exhale, which is an acronym for "Ecodis eXtended High-efficiency And
5Low-complexity Encoder", is a lightweight library and application to
6encode uncompressed WAVE-format audio files into MPEG-4-format files
7complying with the ISO/IEC 23003-3 (MPEG-D) Unified Speech and Audio
8Coding (USAC, also known as Extended High-Efficiency AAC) standard.
9
10In addition, exhale writes program peak-level and loudness data into
11the generated MPEG-4 files according to the ISO/IEC 23003-4, Dynamic
12Range Control (DRC) specification for use by decoders providing DRC.
13
14exhale currently makes use of all frequency-domain (FD) coding tools
15in the scalefactor based MDCT processing path. Its objective is high
16quality mono, stereo, and multichannel coding at medium and high bit
17rates, so the lower-rate USAC coding tools (ACELP, TCX, Enhanced SBR
18and MPEG Surround with Unified Stereo coding) won't be integrated.
19
20**Important:** Due to the missing lower-rate coding tools, the audio
21quality at the lowest of exhale's bit-rate modes (18 kbit/s mono, 36
22kbit/s stereo) doesn't reflect the full capabilities of the Extended
23HE-AAC standard. Therefore, use the lowest bit-rate modes *only when
24required*. Also, please don't attempt to modify exhale's source code
25or to configure the command-line encoder to produce lower bit-rates.
26Use only existing presets and input sampling rates of 32...48 kHz.
27
28____________________________________________________________________
29
30
31Copyright
32---------
33
34(c) 2021 Christian R. Helmrich, project ecodis. All rights reserved.
35
36
37License
38-------
39
40exhale is being made available under an open-source license which is
41based on the 3-clause BSD license but modified to address particular
42aspects dictated by the nature and the output of this application.
43
44The license text and release notes for the current version 1.1.8 can
45be found in the `include` subdirectory of the exhale distribution.
46
47
48Compilation
49-----------
50
51This section describes how to compile the exhale source code into an
52executable application under Linux and Microsoft Windows. The binary
53application files will show up in a newly created `bin` subdirectory
54of the exhale distribution directory and/or a subdirectory thereof.
55
56Note that, for advanced use cases, cmake files are provided as well.
57See https://gitlab.com/ecodis/exhale/-/merge_requests/2 for details.
58
59### Linux and MacOS (GNU Compiler Collection, gcc):
60
61In a terminal, change to the exhale distribution directory and enter
62
63`
64make release
65`
66
67to build a release-mode executable with the default (usually 64-bit)
68configuration. A 32-bit debug-mode executable can be built by typing
69
70`
71make BUILD32=1 debug
72`
73
74### Microsoft Windows (Visual Studio 2012 and later):
75
76Doubleclick the exhale_vs2012.sln file to open the project in Visual
77Studio. Once it's loaded, rightclick on `exhaleApp` in the "Solution
78Explorer" window on the right-hand side, then select `Set as StartUp
79Project`. Now simply press `F7` to build the solution in debug mode.
80
81To change the debugging command, rightclick again on `exhaleApp` and
82select `Properties`. In the newly opened window click on `Debugging`
83under "Configuration Properties" on the left-hand side. Then you can
84edit the "Command Arguments" entry on the right-hand side as needed.
85
86For fastest encoding speed, please select `Release` and `x64` before
87building the solution. This will create a release-mode 64-bit binary.
88If you would like to build a dynamically linked library (DLL) of the
89exhale source instead of an application binary, select `Release DLL`
90instead of `Release`, rightclick on `exhaleLib`, and select `Build`.
91
92
93Usage
94-----
95
96This section describes how to run the exhale application either from
97the command-line or using a third-party software providing WAVE data
98to exhale's standard input pipe (stdin), such as foobar2000. See the
99Wiki at https://gitlab.com/ecodis/exhale/-/wikis/home for more info.
100
101### Standalone (command-line):
102
103In a terminal, change to exhale's `bin` subdirectory and then enter
104
105`./exhale` (on Linux and MacOS) or `exhale.exe` (on Windows)
106
107to print out usage information. As an example, the following command
108
109`exhale.exe 5 C:\Music\Input.wav C:\Music\Output.m4a`
110
111converts file Input.wav to file Output.m4a at roughly 128 kbit/s (if
112the input signal is 2-channel stereo) and in Extended HE-AAC format.
113
114There is also an **expert mode** providing two additional arguments:
115
116`exhale.exe b s 42 C:\Music\Input.wav C:\Music\Output.m4a`
117
118e.g. encodes Input.wav to Output.m4a at roughly 48 kbit/s stereo and
119with SBR enabled, seamless operation (`s` forces media time 0 in the
120edit list), and an independent frame interval of 42 (range 10...99).
121
122### Third-party stdin (foobar2000):
123
124After downloading from www.foobar2000.org and starting the software,
125load the desired input audio files into the playlist. Mark all files
126to be converted, rightclick on one of them, and select `Convert` ->
127`...`. In the newly opened window click on `Output format`. Once the
128window content changed, double-click on entry `AAC (exhale)` and set
129up the conversion. If that entry does not exist, click on `Add New`,
130select `Custom` under "Encoder" and enter the following information:
131
132- *Encoder file:* exhale.exe (including path to the executable)
133- *Extension:* m4a
134- *Parameters:* # %d (where # is the bit-rate mode, i.e., 0...9 when
135                      SBR is disabled, or a...g when SBR is enabled)
136- *Format is:* lossy
137- *Highest BPS mode supported:* 24 (or 32, doesn't matter much)
138- *Encoder name:* Extended HE-AAC (exhale)
139- *Bitrate (kbps):* (depends on bit-rate mode, see Usage above)
140- *Settings:* CVBR mode # (where # equals that in *Parameters*)
141
142Then click on `OK` and on `Back` and, in the first "Converter Setup"
143window, on `Other` and ensure the "Transfer..." box for the class of
144input metadata that you wish to copy to the output files is checked.
145Now set the destination settings as desired and click on `Convert`.
146
147
148Development
149-----------
150
151If you are interested in contributing to exhale, please email one of
152the developers. Merge requests with fixes and/or speedups are highly
153appreciated.
154