diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a95a00..c89ce0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,32 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.2.0] - 2023/08/20 + +### Added + +- **PipeWire is officially supported!** + - Utilizes `pactl`. + - On Ubuntu / Debian / Mint / Pop!_OS you'll need `pulseaudio-utils` and `pipewire-pulse` (`.deb` will auto install). + - On most other distros `pipewire-pulse` provides `pactl` (check your distro documentation before installing). +- The active preset is now clearly selected in the UI. +- Lyrebird dependencies (Python modules and shell commands) are now checked at application launch resulting in a warning alert when something is missing instead of a crash later down the line. + +### Changed + +- Custom presets have been overhauled: + - Default presets now live in Lyrebird instead of `presets.toml` meaning that they can be more easily kept up to date. + - Launching Lyrebird v1.2.0 will now automatically migrate your `presets.toml` by removing all the old defaults while retaining your custom presets. A backup (`presets.toml.old`) is made in the unlikely case of any presets being lost during the migration. + - Preset options have been changed while remaining fully backwards compatible: + - `pitch_value`, `downsample_amount`, and `volume_boost` can now be omitted instead of providing `none` or `scale`. + - `override_pitch_scale` is now deprecated and no longer has an effect, to achieve the same effect omit `pitch_value`. + - Custom presets are now validated at launch and will be disabled if they are malformed along with a warning alert. +- Only Lyrebird controlled PulseAudio sinks are now unloaded instead of all sinks on the system. This fixes a crash on some distros. +- The pitch slider is no longer disabled when a preset is active. +- Default buffer size for SoX is now 128, recommended that you change in `~/.config/lyrebird/config.toml` for improved latency. +- Codebase has been refactored into `core` and `ui`. Audio related methods now live in `core/audio.py` instead of the UI code. +- `AudioVideo` category added to `.desktop`. + ## [v1.1.0] - 2020/08/30 ### Added @@ -44,4 +70,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Initial version of Lyrebird with options to change pitch of voice and downsample audio -- Presets and config are at `/etc/lyrebird` \ No newline at end of file +- Presets and config are at `/etc/lyrebird` diff --git a/README.md b/README.md index f16efc7..f6b621a 100644 --- a/README.md +++ b/README.md @@ -18,27 +18,45 @@ Simple and powerful voice changer for Linux, written with Python & GTK. ## Install -### Distro Packages +Once installed, Lyrebird can be launched from your launcher (GNOME, Xfce, Rofi) or by running `lyrebird` in the command line. -Check the [releases page](https://github.com/lyrebird-voice-changer/lyrebird/releases) to find a package for your distro. +### Ubuntu / Debian / Mint / Pop!_OS -- [x] Ubuntu/Debian (download `.deb` from [releases page](https://github.com/lyrebird-voice-changer/lyrebird/releases)) -- [x] Arch (AUR package `lyrebird`) +```sh +wget "https://github.com/lyrebird-voice-changer/lyrebird/releases/download/v1.2.0/lyrebird_1.2.0-1.deb" && sudo apt install ./lyrebird_1.2.0-1.deb +``` -#### Community +You can find more [releases here](https://github.com/lyrebird-voice-changer/lyrebird/releases). -These packages are provided by the community and are not maintained by Lyrebird developers. +### Arch Linux -- [x] Gentoo (ebuild in the [edgets overlay](https://github.com/BlueManCZ/edgets/tree/master/media-sound/lyrebird)) +Use an AUR package manager? + +```sh +yay -S lyrebird +``` + +Otherwise: + +```sh +wget "https://github.com/lyrebird-voice-changer/lyrebird/releases/download/v1.2.0/lyrebird-1.2.0-1-any-archlinux.pkg.tar.zst" && sudo pacman -U lyrebird-1.2.0-1-any-archlinux.pkg.tar.zst +``` + +You can find more [releases here](https://github.com/lyrebird-voice-changer/lyrebird/releases). ### Manually If a package for your distro isn't provided above then you can install the requirements below and use the provided installer script: -1. Download the latest `tar.gz` from the [releases page](https://github.com/lyrebird-voice-changer/lyrebird/releases) and extract it -2. Make sure you satisfy all requirements listed below (e.g. Python 3.7, using PulseAudio, sox) -3. Run `install.sh` to install dependencies and Lyrebird itself -4. Launch Lyrebird from your preferred application launcher (e.g. GNOME, Rofi) +```sh +wget "https://github.com/lyrebird-voice-changer/lyrebird/releases/download/v1.2.0/lyrebird_1.2.0-1.tar.gz" && tar xf lyrebird_1.2.0-1.tar.gz && cd lyrebird_1.2.0-1 && sudo ./install.sh +``` + +### Community Packages + +These packages are provided by the community and are not maintained by Lyrebird developers. + +- [x] Gentoo (ebuild in the [edgets overlay](https://github.com/BlueManCZ/edgets/tree/master/media-sound/lyrebird)) ## Requirements @@ -49,11 +67,12 @@ Installing via package manager will automatically install these packages, only c - **python-gobject** - Ubuntu/Debian `python3-gi` / Arch `python-gobject` - **pavucontrol** - Ubuntu/Debian `pavucontrol` / Arch `pavucontrol` - **SoX** - Ubuntu/Debian `sox libsox-fmt-pulse` / Arch `sox` -- PulseAudio utilities (compatible with PipeWire) - Ubuntu/Debian `pipewire-pulse pulseaudio-utilities` +- **PipeWire** +- **PulseAudio utilities** (compatible with PipeWire) - Ubuntu/Debian `pipewire-pulse pulseaudio-utils` / Arch `pipewire-pulse` -One-liners for install: +One-liners to install requirements: - * Ubuntu/Debian - `sudo apt install python3 python3-toml python3-gi pavucontrol sox libsox-fmt-pulse pulseaudio-utilities` + * Ubuntu/Debian - `sudo apt install python3 python3-toml python3-gi pavucontrol sox libsox-fmt-pulse pulseaudio-utils` * Arch - `sudo pacman -S python3 python-toml python-gobject pavucontrol sox` *(If you wish to see your distro here please submit an issue/pull request for this section.)* @@ -89,31 +108,29 @@ If the issue still sticks around then please open a GitHub issue and include the ## Editing Presets -Presets and config is initally stored in `/etc/lyrebird/` however it can be overriden by copying the files to `~/.config/lyrebird/`. - -To edit and add your own presets edit the file `presets.toml`, this file is in the TOML format and the syntax is described below. +Custom presets are stored in `~/.config/lyrebird/presets.toml`. To edit and add your own presets edit the file `presets.toml`, this file is in the TOML format and the syntax is described below. ```toml -# name = Preset name, will be displayed in the GUI -# pitch_value = The pitch value of the preset, if you want to be able to adjust this use "scale" -# downsample_amount = The amount of downsampling to do, set as "none" if you don't want any -# override_pitch_slider = Whether the preset overrides the pitch slider or not -# volume_boost = The amount of decibels to boost by - -# Example preset, the [[presets]] is required for each preset -[[presets]] -name = "Woman" -pitch_value = "2.5" -downsample_amount = "none" -override_pitch_slider = true - -# Boost by 2 dB to make the voice louder -volume_boost = "2" +# Effect presets are defined in presets.toml +# The following parameters are available for presets + +# name: Preset name, will be displayed in the GUI +# pitch_value: The pitch value of the preset, float value between -10.0 to 10.0. Omit if pitch value should not be affected from slider value. +# downsample_amount Downsample by an integer factor. +# volume_boost: Amount in dB to boost the audio. Can be negative to make the audio quieter. + +# e.g. +# [[presets]] +# name = "Bad Mic" +# pitch_scale = -1.5 +# downsample_amount = 8 +# volume_boost = 8 ``` ## Packaging - * Packaging for Debian is handled in a (separate repo)[https://github.com/lyrebird-voice-changer/lyrebird-deb]. + * Packaging for Debian is handled in a [separate repo](https://github.com/lyrebird-voice-changer/lyrebird-deb). + * Packaging for Arch (AUR) is handled in a [separate repo](https://github.com/lyrebird-voice-changer/lyrebird-arch). ## Developers diff --git a/app.py b/app.py index ca70b9b..5a0bcef 100755 --- a/app.py +++ b/app.py @@ -51,7 +51,7 @@ if not Launch.check_pactl(): console_msg = '''[error] PulseAudio utilities are missing from your system. - * On Ubuntu, Debian, pop_OS, or Mint, try running: sudo apt install pulseaudio-utilities + * On Ubuntu, Debian, pop_OS, or Mint, try running: sudo apt install pulseaudio-utils * On Arch, this comes with the package "pipewire-pulse", please refer to the Arch Wiki page (below). * On all other distros, this package may have a different name, try searching for "pactl" or "pulseaudio utilities". @@ -64,7 +64,7 @@ msg = '''Error: PulseAudio utilities are missing from your system. On Ubuntu, Debian, pop_OS, or Mint, try running: - sudo apt install pulseaudio-utilities + sudo apt install pulseaudio-utils On Arch, this comes with the package pipewire-pulse, please refer to the Arch Wiki page. diff --git a/install.sh b/install.sh index 801bd8c..65c606c 100755 --- a/install.sh +++ b/install.sh @@ -2,7 +2,7 @@ # Lyrebird installer script. If running as root then will install at /usr/local/{bin,share}, # otherwise will install at ~/.local/{bin,share}. -VERSION="1.1" +VERSION="1.2.0" VERBOSE=${VERBOSE:-1} DRYRUN=${DRYRUN:-0}