complexlogic / EasyAudioSync

Audio library syncing and conversion utility

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Easy Audio Sync

  1. About
  2. Screenshots
  3. Installation
  4. Usage
  5. Support

About

Easy Audio Sync is an audio library syncing and conversion utility. The intended use is syncing an audio library with many lossless files to a mobile device with limited storage.

The program's design is inspired by the rsync utility. It supports folder-based source to destination syncing, with added audio transcoding capability, and is GUI-based instead of CLI-based.

Features

  • Custom FFmpeg-based audio transcoding engine
    • Multithreaded operation for fast conversions
    • 4 lossy output codecs supported: MP3, AAC, Ogg Vorbis, and Opus
  • Robust metadata parser ensures tags and cover art are correctly transferred when converting between different formats
  • ReplayGain volume adjustments
  • Destination folder cleaning (deleting files that no longer exist in the source)
  • Cross-platform Windows/macOS/Linux

Screenshots

Main Window

Settings

Installation

Windows

Easy Audio Sync is compatible with Windows 10 and later. Download the installer executable from the link below, run it, and follow the guided setup process:

If Windows raises a SmartScreen warning when you try to run the executable, select More Info->Run Anyway.

macOS

Note: I haven't tested these builds because I have no access to macOS hardware. Consider macOS support experimental, and open an issue on the Issue Tracker if you encounter any bugs.

Separate builds are available for Intel and Apple Silicon based Macs (both require macOS 12 or later):

Linux

APT-based (Debian, Ubuntu)

A .deb package is available on the release page. It was built on Ubuntu 22.04 and is compatible with the most recent release of most apt-based distros (anything that ships GCC 11 or later). Execute the following commands to install:

wget https://github.com/complexlogic/EasyAudioSync/releases/download/v1.0/easyaudiosync_1.0_amd64.deb
sudo apt install ./easyaudiosync_1.0_amd64.deb

Fedora

A .rpm package is available on the release page that is compatible with Fedora 38 and later. Execute the following commands to install:

sudo dnf install https://github.com/complexlogic/EasyAudioSync/releases/download/v1.0/easyaudiosync-1.0-1.x86_64.rpm

Arch/Majarjo

A PKGBUILD script is available in the config directory to automate building and installation. Run the following commands from a clean directory:

wget https://raw.githubusercontent.com/complexlogic/EasyAudioSync/master/config/PKGBUILD
makepkg -sic

Usage

Easy Audio Sync operates based on a source folder and a destination folder, where the source folder contains the primary music library, and the destination folder is the desired output location. After selecting the source and destination folders, click the "Sync" button to start the sync. The program will recreate the source's entire subfolder structure in the destination, copying or transcoding files as specified in the settings. See the settings documentation for help on configuring the program's settings.

The stop button next to the progress bar can be used stop the sync at any time. The worker threads are allowed to finish their current file operation before quitting to avoid leaving corrupted files in the destination. Consequently, it may take several seconds after the stop button is clicked for the sync to stop.

Supported File Formats

The following file format are supported, per-mode:

Codec Copy Transcode Input Transcode Output
FLAC ✔️ ✔️
ALAC ✔️ ✔️
Wavpack ✔️ ✔️
Monkey's Audio ✔️ ✔️
WAV ✔️ ✔️
MP3 ✔️ ✔️ ✔️
AAC ✔️ ✔️ ✔️
Ogg Vorbis ✔️ ✔️ ✔️
Opus ✔️ ✔️ ✔️
Musepack ✔️ ✔️
WMA ✔️

Supported Encoders

The following encoders are supported for transcoding:

Codec Encoder(s)
MP3 LAME
AAC Fraunhofer FDK AAC, libavcodec
Ogg Vorbis libvorbis
Opus libopus

General Tips

This section gives usage tips for Easy Audio Sync

Filesystem Differences

If you run the program on Linux or Mac, have a destination folder that's on a removeable storage drive, and are getting transcoding errors, it may be because of filesystem incompatibilities. Most removable storage drives have Microsoft filesystems. In such filesystems, there are several illegal characters for paths that are allowable in Unix filesystems.

The program will not remove the illegal characters for you, because there needs to be a one-to-one correspondence between source and destination file paths to support the "Clean Destination" feature. It is the user's responsibility to be aware of filesytem differences between the source and destination folders, and prepare accordingly. There are several tools that can rename files in your source directory such that they will be compatible with all major filesystems.

Syncing to an Android Device

The best way of syncing an Anroid device is to use a removable SD card. Physically remove the SD card from the device, connect it to your PC, perform the sync, then replace it in the device. This may be somewhat inconvenient, but it is the best possible option. Unfortunately, not all Android devices support removable SD cards, so this option may not be available to you.

Most modern Android devies no longer support USB mass storage. The replacement is called Media Transfer Protocol (MTP). Easy Audio Sync does not include built-in support for MTP; it can only write to regular files. If you want to use the program with MTP, you will need to use it in combination with software that abstracts MTP and presents the device to the system as an ordinary storage drive, such as go-mtpfs for Linux.

In my experience, MTP is both slow and unreliable, and not worth using. If you can't use the SD card method, another option is to use a local directory on your PC as the destination, and then use a third party sync program to transfer the files to your device. A good option is Syncthing. It supports network-based syncing, so you don't need to directly connect your device to your PC. The disadvantage of this method is that you will need to keep multiple versions of your music library on your PC, which uses more storage space.

Support

If you encounter any bugs, please open an issue on the issue tracker. For general help, use the Discussions page instead.

Contributing

Pull Requests will be reviewed for bug fixes and new features.

The program is currently available in English only. See the translation README if you would like to translate the program into your language.

About

Audio library syncing and conversion utility

License:The Unlicense


Languages

Language:C++ 91.1%Language:CMake 8.5%Language:Shell 0.4%