|
| 1 | +ExhaleGUI |
| 2 | +A modern macOS application that provides an intuitive graphical interface for the Exhale high-quality XE AAC audio encoder. |
| 3 | + |
| 4 | +XE AAC is a format that can create fm / cd quality at extremely low bitrates 36-48kb stereo with esbr. |
| 5 | + |
| 6 | +I created this after finding the fre ac mac gui did not support newer exhale versions. |
| 7 | + |
| 8 | +Overview |
| 9 | +ExhaleGUI simplifies the process of converting audio files to high-quality AAC format using the Exhale encoder. With support for batch processing, parallel conversions, and multiple input formats, it's designed to make professional audio encoding accessible through a clean, native macOS interface. |
| 10 | +Features |
| 11 | +🎵 Multi-Format Support |
| 12 | + |
| 13 | +Input formats: WAV, MP3, FLAC, M4A, AAC |
| 14 | +Output format: M4A (AAC) using Exhale encoder |
| 15 | +Smart conversion: Automatically handles format conversion via bundled FFmpeg |
| 16 | + |
| 17 | +⚡ Batch Processing |
| 18 | + |
| 19 | +Drag-and-drop multiple files at once |
| 20 | +Parallel conversion (1-8 concurrent processes) |
| 21 | +Real-time progress tracking for each file |
| 22 | +Queue management with add/remove capabilities |
| 23 | + |
| 24 | +🎛️ Quality Presets |
| 25 | +Choose from Exhale's comprehensive quality options: |
| 26 | + |
| 27 | +Standard HE-AAC (0-9): 48 kbps to 192+ kbps |
| 28 | +eSBR Low-Bitrate (a-g): 36-108 kbps for efficient encoding |
| 29 | +Preset 5 (128 kbps) set as default for optimal quality/size balance |
| 30 | + |
| 31 | +🔧 Advanced Options |
| 32 | + |
| 33 | +Metadata preservation: Maintain ID tags from source files (note most players do not support tags for xe aac) |
| 34 | +Source file management: Optional deletion after successful conversion |
| 35 | +Custom temp directories: Configure temporary file locations |
| 36 | +Exhale binary configuration: Point to your Exhale installation (suggest using exhale and gui in downloads folder) |
| 37 | + |
| 38 | +💻 Native macOS Experience |
| 39 | + |
| 40 | +Clean, modern SwiftUI interface |
| 41 | +Drag-and-drop file handling |
| 42 | +Settings tabs for easy configuration |
| 43 | +Real-time conversion status updates |
| 44 | + |
| 45 | +Requirements |
| 46 | + |
| 47 | +macOS 11.0+ (Big Sur or later) |
| 48 | +Exhale encoder binary - Download from GitLab |
| 49 | +Intel or Apple Silicon Mac (Universal support) |
| 50 | + |
| 51 | +Installation |
| 52 | + |
| 53 | +Download ExhaleGUI from the releases page and exhale from releases page |
| 54 | + |
| 55 | +To build download ffmpeg from releases page |
| 56 | + |
| 57 | +Configure Exhale path in ExhaleGUI Settings → General → Executable Path |
| 58 | + |
| 59 | +Usage |
| 60 | +Basic Conversion |
| 61 | + |
| 62 | +Launch ExhaleGUI |
| 63 | +Drag audio files onto the drop zone or click "Add Files" |
| 64 | +Select desired quality preset (default: 5 - ~128 kbps) |
| 65 | +Click "Start Conversion" |
| 66 | + |
| 67 | +Quality Settings |
| 68 | + |
| 69 | +Preset 0: ~48 kbps (lowest, ≤32kHz sample rate only) |
| 70 | +Preset 5: ~128 kbps (recommended default) |
| 71 | +Preset 9: ~192+ kbps (highest quality) |
| 72 | +Presets a-g: eSBR encoding for lower bitrates (36-108 kbps) |
| 73 | + |
| 74 | +Advanced Features |
| 75 | + |
| 76 | +Parallel conversions: Adjust in Settings → Advanced (default: 2) |
| 77 | +Metadata preservation: Enable in Settings → General |
| 78 | +Source file deletion: Enable with caution in Settings → General |
| 79 | + |
| 80 | +Technical Details |
| 81 | +Conversion Process |
| 82 | + |
| 83 | +WAV files: Direct conversion using Exhale |
| 84 | +Other formats: Two-step process: |
| 85 | + |
| 86 | +Step 1: Convert to WAV using bundled FFmpeg |
| 87 | +Step 2: Encode to M4A using Exhale |
| 88 | + |
| 89 | + |
| 90 | + |
| 91 | +Performance |
| 92 | + |
| 93 | +Utilizes multiple CPU cores for parallel processing |
| 94 | +Efficient memory usage during batch conversions |
| 95 | +Progress tracking with estimated completion times |
| 96 | + |
| 97 | +Troubleshooting |
| 98 | +Common Issues |
| 99 | +"Exhale executable not found" |
| 100 | + |
| 101 | +Ensure Exhale is installed and path is correctly set in Settings |
| 102 | +Verify the binary has execute permissions: chmod +x /path/to/exhale |
| 103 | + |
| 104 | +"Sample rate too high for Preset 0" |
| 105 | + |
| 106 | +Use presets 1-9 or a-g for files with >32kHz sample rate |
| 107 | +Preset 0 only supports ≤32kHz audio |
| 108 | + |
| 109 | +Conversion fails |
| 110 | + |
| 111 | +Check input file integrity |
| 112 | +Verify sufficient disk space |
| 113 | +Try a different quality preset |
| 114 | +Check console output for detailed error messages |
| 115 | + |
| 116 | +Debug Tools |
| 117 | + |
| 118 | +Test Exhale Binary: Settings → Advanced → Debug section |
| 119 | +Test Bundled FFmpeg: Verify internal FFmpeg functionality |
| 120 | +Console output: Detailed logging for troubleshooting |
| 121 | + |
| 122 | +About Exhale |
| 123 | +Exhale is a state-of-the-art AAC encoder that provides: |
| 124 | + |
| 125 | +High-quality audio encoding |
| 126 | +Efficient compression ratios |
| 127 | +Support for various AAC profiles |
| 128 | +Optimized for both quality and file size |
| 129 | + |
| 130 | +Development |
| 131 | +Built with Xcode |
| 132 | + |
| 133 | +SwiftUI for modern macOS interface |
| 134 | +AVFoundation for audio metadata handling |
| 135 | +Combine for reactive programming |
| 136 | +Process for external tool integration |
| 137 | +Third-Party Components |
| 138 | +FFmpeg |
| 139 | +This application includes FFmpeg, which is licensed under the LGPL v2.1 or later. |
| 140 | + |
| 141 | +FFmpeg website: https://ffmpeg.org/ |
| 142 | +Source code: https://github.com/FFmpeg/FFmpeg |
| 143 | +License: LGPL v2.1+ (https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html) |
| 144 | + |
| 145 | +FFmpeg is used for audio format conversion (MP3, FLAC → WAV) and is included as a bundled binary. The FFmpeg source code and build instructions are available at the links above. |
| 146 | +Exhale Encoder |
| 147 | +ExhaleGUI serves as a graphical interface for the Exhale AAC encoder: |
| 148 | + |
| 149 | +Exhale project: https://gitlab.com/ecodis/exhale |
| 150 | +License: Please refer to the Exhale project for current licensing terms |
| 151 | +Note: Exhale is a separate download and not included with ExhaleGUI |
| 152 | + |
| 153 | +License & Disclaimer |
| 154 | +ExhaleGUI is released under [your chosen license]. |
| 155 | +FFmpeg Disclaimer: This software uses libraries from the FFmpeg project under the LGPL v2.1. FFmpeg source code is available at https://ffmpeg.org/download.html. ExhaleGUI does not claim any rights to FFmpeg and complies with LGPL redistribution requirements. |
| 156 | +Exhale Disclaimer: ExhaleGUI is an independent third-party interface and is not affiliated with or endorsed by the Exhale encoder development team. Users must obtain Exhale separately and comply with its licensing terms. |
| 157 | +Contributing |
| 158 | +Issues and feature requests are welcome! Please check the existing issues before creating new ones. |
| 159 | + |
| 160 | +Note: ExhaleGUI is a third-party interface for the Exhale encoder and is not affiliated with the Exhale development team. |
0 commit comments