{"id":13667119,"url":"https://github.com/Audio4Linux/JDSP4Linux","last_synced_at":"2025-04-26T15:32:21.202Z","repository":{"id":37695653,"uuid":"205041305","full_name":"Audio4Linux/JDSP4Linux","owner":"Audio4Linux","description":"An audio effect processor for PipeWire and PulseAudio clients","archived":false,"fork":false,"pushed_at":"2025-04-17T14:53:08.000Z","size":57607,"stargazers_count":1092,"open_issues_count":52,"forks_count":39,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-18T05:30:26.378Z","etag":null,"topics":["audio","dsp","effects","equalizer","gst","gst-plugin","gstreamer","jamesdsp","jdsp","linux","pipewire","wrapper"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Audio4Linux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"ko_fi":"thepbone","github":"thepbone","custom":"https://paypal.me/timschneeberger"}},"created_at":"2019-08-28T23:32:49.000Z","updated_at":"2025-04-17T23:13:48.000Z","dependencies_parsed_at":"2023-12-24T11:21:04.244Z","dependency_job_id":"ad4ed056-313b-432d-a147-4f04cc222029","html_url":"https://github.com/Audio4Linux/JDSP4Linux","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Audio4Linux%2FJDSP4Linux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Audio4Linux%2FJDSP4Linux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Audio4Linux%2FJDSP4Linux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Audio4Linux%2FJDSP4Linux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Audio4Linux","download_url":"https://codeload.github.com/Audio4Linux/JDSP4Linux/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251008767,"owners_count":21522174,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","dsp","effects","equalizer","gst","gst-plugin","gstreamer","jamesdsp","jdsp","linux","pipewire","wrapper"],"created_at":"2024-08-02T07:00:32.073Z","updated_at":"2025-04-26T15:32:21.194Z","avatar_url":"https://github.com/Audio4Linux.png","language":"C","funding_links":["https://ko-fi.com/thepbone","https://github.com/sponsors/thepbone","https://paypal.me/timschneeberger"],"categories":["C","Effects","Uncategorized","Linux"],"sub_categories":["Uncategorized","Other"],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg alt=\"Icon\" width=\"75\" src=\"https://github.com/Audio4Linux/JDSP4Linux/blob/master/resources/icons/icon.png?raw=true\"\u003e\n  \u003cbr\u003e\n  JamesDSP for Linux\n  \u003cbr\u003e\n\u003c/h1\u003e\n\u003ch4 align=\"center\"\u003eOpen-source sound effects for PipeWire and PulseAudio\u003c/h4\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Audio4Linux/JDSP4Linux/releases\"\u003e\n  \t\u003cimg alt=\"GitHub release (latest by date)\" src=\"https://img.shields.io/github/v/release/Audio4Linux/JDSP4Linux\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Audio4Linux/JDSP4Linux/blob/master/LICENSE\"\u003e\n      \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/Audio4Linux/JDSP4Linux\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Audio4Linux/JDSP4Linux/\"\u003e\n    \u003cimg alt=\"Windows build\" src=\"https://img.shields.io/github/repo-size/Audio4Linux/JDSP4Linux\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e •\n  \u003ca href=\"#scripting--ipc-apis\"\u003eScripting/API\u003c/a\u003e •\n  \u003ca href=\"#contributors\"\u003eContributors\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e \n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n   \u003cimg alt=\"Screenshot\" width=\"702\" src=\"https://github.com/Audio4Linux/JDSP4Linux/blob/master/meta/screenshot.png?raw=true\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\nLinux port developed by \u003ca href=\"https://github.com/thepbone\"\u003eTim Schneeberger (@thepbone)\u003c/a\u003e\n\u003cp/\u003e\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/james34602/JamesDSPManager\"\u003eJamesDSP\u003c/a\u003e was initially published as an audio effects processor\u003cbr\u003efor Android devices and is written by \u003ca href=\"https://github.com/james34602\"\u003eJames Fung (@james34602)\u003c/a\u003e.\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    Feel free to join our \u003ca href=\"https://t.me/joinchat/FTKC2A2bolHkFAyO-fuPjw\"\u003eTelegram group\u003c/a\u003e for support and updates\n\u003c/p\u003e\n\n____________\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://crowdin.com/project/jdsp4linux\" rel=\"nofollow\"\u003e\u003cimg style=\"width:140;height:40px\" src=\"https://badges.crowdin.net/badge/light/crowdin-on-dark.png\" srcset=\"https://badges.crowdin.net/badge/light/crowdin-on-dark.png 1x,https://badges.crowdin.net/badge/light/crowdin-on-dark@2x.png 2x\" alt=\"Crowdin\" /\u003e\u003c/a\u003e\n    \u003cbr/\u003e\n    Please help us to \u003ca href=\"https://crowdin.com/project/jdsp4linux\"\u003etranslate this app\u003c/a\u003e on \u003ca href=\"https://crowdin.com/project/jdsp4linux\"\u003eCrowdin\u003c/a\u003e!\n\u003c/p\u003e\n\n## Features\n\n* Automatic bass boost\n  * Frequency-detecting bass-boost. Automatically sets its own parameters, such as gain, bandwidth, and cut-off frequency, by analyzing the incoming audio stream\n* Automatic dynamic range compressor\n  * A highly automated multiband dynamic range adjusting effect\n* Complex reverberation IIR network (Progenitor 2)\n* Interpolated FIR equalizer with flexible bands\n* Arbitrary response equalizer (also known as GraphicEQ from EqualizerAPO)\n  * AutoEQ database integration (requires network connection)\n* Partitioned convolver (Auto segmenting convolution)\n  * Supports mono, stereo, full/true stereo (LL, LR, RL, RR) impulse response\n* Crossfeed\n  * Realistic surround effects\n* Soundstage wideness\n  * A multiband stereo wideness controller\n* ViPER-DDC\n  * Perform parametric equalization on audio\n  * Create VDC input files using [thepbone/DDCToolbox](https://github.com/thepbone/DDCToolbox)\n* Analog modeling\n  * An aliasing-free even harmonic generator\n* Output limiter\n* **Scripting engine: Live programmable DSP**\n  * Write your own audio effects using the [EEL2 scripting language](https://github.com/james34602/EEL_CLI)\n  * Auto-generate a basic user interface for your script to modify specific parameters/constants without editing the actual code\n  * The scripting language has been extended using many DSP-related functions for easy access, for example, spectral processing, constant Q transform, multi-purpose FIR filter designer IIR sub-bands transformation, etc...\n  * **This app also includes a custom minimal scripting IDE**:\n    * Syntax highlighting\n    * Basic code completion\n    * Dynamic code outline window\n    * Console output support\n    * Detailed error messages with inline code highlighting\n\n\n## PipeWire vs PulseAudio\n\n**Designed for use with PipeWire. PulseAudio is only supported for backward compatibility.**\n\nPipeWire has a much lower latency compared to PulseAudio when injecting audio effects processors into the audio pipeline. \nI'm currently not planning to add more advanced support for PulseAudio clients. Features such as selective app exclusion, changing the target audio device, and similar features will only be available to PipeWire clients.\n\n### Which one am I using?\n\nFollow the instructions below if you don't know which one your Linux distribution is using. If you already know, skip to the 'Install dependencies' section.\n\nRun `LC_ALL=C pactl info | grep \"Server Name:\"` in your terminal. \n\nIf you are using **Pipewire** the output should look similar to this:\n```\nServer Name: PulseAudio (on PipeWire 0.3.35)\n```\n\nIf you are using **Pulseaudio** the output should look exactly like this:\n```\nServer Name: pulseaudio\n```\n\n## Installation\n\n**Decide whether you need to install the PipeWire or PulseAudio version of this app!**\n\nIf you don't know which version fits your Linux setup, go to the [PipeWire vs PulseAudio section](#which-one-am-i-using) above.\n\nIt is recommended to switch to PipeWire, if possible. JamesDSP's audio backend for PulseAudio is in maintenance-mode; however, it will continue to receive UI-related feature updates.\n\nThe installation instructions for the PulseAudio version have been moved to a separate file: [INSTALL_PULSE.md](INSTALL_PULSE.md).\n\n## Installation for PipeWire\nThis section is dedicated to systems using PipeWire as the audio server. If you are still using PulseAudio, please go [here](INSTALL_PULSE.md).\n\n* [Flatpak](#flatpak)\n* [Arch Linux (AUR)](#arch)\n* [Fedora/openSUSE](#fedoraopensuse)\n* [Build from sources](#build-from-sources)\n\n### Flatpak\n\nUniversal binary packages for all distros.\n\nThe recommended **Pipewire version** is available for download on FlatHub: https://flathub.org/apps/me.timschneeberger.jdsp4linux\n```\nflatpak install me.timschneeberger.jdsp4linux\n```\n\n\u003ca href='https://flathub.org/apps/me.timschneeberger.jdsp4linux'\u003e\u003cimg width='240' alt='Download on Flathub' src='https://dl.flathub.org/assets/badges/flathub-badge-en.png'/\u003e\u003c/a\u003e\n\n\nIf you are still using **PulseAudio**, you need to download the legacy package from my personal repository:\n```\nsudo flatpak remote-add --if-not-exists thepbones-repo https://raw.githubusercontent.com/ThePBone/flatpak-repo/main/thepbone.flatpakrepo\nflatpak install me.timschneeberger.jdsp4linux.pulse\n```\n\n\u003e [!IMPORTANT]\n\u003e Flatpaks are sandboxed. This application can only access `~/.var/app/me.timschneeberger.jdsp4linux/` by default.\n\n### Arch\n[AUR packages](https://aur.archlinux.org/packages/?O=0\u0026K=jamesdsp) are available:\n\n* Stable version\n\n   ![AUR version](https://img.shields.io/aur/version/jamesdsp) ![AUR version](https://img.shields.io/aur/votes/jamesdsp) ![AUR version](https://img.shields.io/aur/maintainer/jamesdsp) ![AUR version](https://img.shields.io/aur/last-modified/jamesdsp)\n   ```\n   yay -S jamesdsp\n   ```\n\n* Development version\n\n   ![AUR version](https://img.shields.io/aur/version/jamesdsp-git) ![AUR version](https://img.shields.io/aur/votes/jamesdsp-git) ![AUR version](https://img.shields.io/aur/maintainer/jamesdsp-git) ![AUR version](https://img.shields.io/aur/last-modified/jamesdsp-git)\n   ```\n   yay -S jamesdsp-git\n   ```\n\n### Fedora/openSUSE\n\nPackage maintained by [@theAeon](https://github.com/theAeon) on [Fedora COPR](https://copr.fedorainfracloud.org/coprs/arrobbins/JDSP4Linux/).\nBuilt for Fedora 34/35/Rawhide and OpenSUSE Tumbleweed.\n\n```\nyum copr enable arrobbins/JDSP4Linux \u0026\u0026 yum update \u0026\u0026 yum install JamesDSP\n```\n\nIf you are still using PulseAudio with your Fedora/openSUSE installation, refer to the '[Build from sources](#build-from-sources)' section below instead.\n\n### Build from sources\n\nBuild instructions are available in the [BUILD.md](BUILD.md) file.\n\n## Scripting \u0026 IPC APIs\n\nSince version 2.5.0, this app supports IPC via D-Bus and is also configurable via a CLI.\n\n### Remote control via CLI\nYou can list all supported commands using `jamesdsp --help`. \nCurrently, these commands for remote-controlling JamesDSP's audio engine are available:\n```\n  --is-connected                           Check if JamesDSP service is active. Returns exit code 1 if not. (Remote)\n  --list-keys                              List available audio configuration keys (Remote)\n  --get \u003ckey\u003e                              Get audio configuration value (Remote)\n  --set \u003ckey=value\u003e                        Set audio configuration value (format: key=value) (Remote)\n  --load-preset \u003cname\u003e                     Load preset by name (Remote)\n  --save-preset \u003cname\u003e                     Save current settings as preset (Remote)\n  --delete-preset \u003cname\u003e                   Delete preset by name (Remote)\n  --list-presets                           List presets (Remote)\n  --status                                 Show status (Remote)\n  --list-devices                           List audio devices (Remote)\n  --list-preset-rules                      List preset rules (Remote)\n  --set-preset-rule \u003cdeviceId=presetName\u003e  Add/modify preset rule (Remote)\n  --delete-preset-rule \u003cdeviceId\u003e          Delete preset rule (Remote)\n```\nThe options should be fairly self-explanatory. For example, `jamesdsp --set reverb_enable=true` would enable the reverberation setting. Have a look at the audio configuration file at `~/.config/jamesdsp/audio.conf` to learn more about possible setting keys and their syntax.\n\n\u003e [!NOTE]\n\u003e These commands try to connect to an active JamesDSP instance. If no instance is currently online, they will fall back to modifying the audio configuration file directly on disk. The `--is-connected` option can be used to check whether one is currently online.\n\n### D-Bus IPC\n\nThis app also exposes a D-Bus service on the session bus, which can be used by other developers or users:\n\nService name: `me.timschneeberger.jdsp4linux`\n* GUI-related interface:\n  * Path name: `/jdsp4linux/gui`\n  * Interface name: `me.timschneeberger.jdsp4linux.Gui`\n* Audio service-related interface:\n  * Path name: `/jdsp4linux/service`\n  * Interface name: `me.timschneeberger.jdsp4linux.Service`\n\nIf you want to test it out, you can use an app like [D-Feet](https://wiki.gnome.org/Apps/DFeet) to interact with the D-Bus services.\n\nThe D-Bus introspection XML is available here: https://github.com/Audio4Linux/JDSP4Linux/blob/master/src/utils/dbus/manifest.xml.\n\n## Troubleshooting\n* JamesDSP is randomly killed by the kernel or closes by itself\n  * The processing thread of the app may have exceeded the maximum amount of CPU time allowed for a real-time thread on your system.\n  * To fix: install the `realtime-priorities` package, add your user to the `realtime` group, and re-login. (see [issue #155](https://github.com/Audio4Linux/JDSP4Linux/issues/155#issuecomment-1835866017))\n\n* My volume control is not working anymore\n  * Don't set the virtual JamesDSP device as the default audio output device. The virtual device has no audio volume controls and should never be used directly. Please set your actual speakers/headphones as the default output device instead.\n\n* Crackling audio\n  * Your CPU may be too slow to process the audio sample in time; try to disable some effects (especially resource-hungry ones like the convolver)\n  * Set JamesDSP's process to real-time or high priority using a task manager of your choice\n  * [Pipewire] Try out the workaround mentioned in [issue #47](https://github.com/Audio4Linux/JDSP4Linux/issues/47)\n\n## Screenshots\n\n\u003cp align=\"center\"\u003e\n   \u003cimg alt=\"Screenshot\" width=\"702\" src=\"https://github.com/Audio4Linux/JDSP4Linux/blob/master/meta/screenshot_presets.png?raw=true\"\u003e  \n   \u003cimg alt=\"Screenshot\" width=\"702\" src=\"https://github.com/Audio4Linux/JDSP4Linux/blob/master/meta/screenshot_eel.png?raw=true\"\u003e \n   \u003cimg alt=\"Screenshot\" width=\"702\" src=\"https://github.com/Audio4Linux/JDSP4Linux/blob/master/meta/screenshot_graphiceq.png?raw=true\"\u003e \n   \u003cimg alt=\"Screenshot\" width=\"702\" src=\"https://github.com/Audio4Linux/JDSP4Linux/blob/master/meta/screenshot_ide.png?raw=true\"\u003e\n\u003c/p\u003e\n\n## Contributors\n\n* [James Fung](https://github.com/james34602) - Developer of the core library ['libjamesdsp'](https://github.com/james34602/JamesDSPManager/tree/master/Main)\n* [yochananmarqos](https://github.com/yochananmarqos) - AUR packages\n* [theAeon](https://github.com/theAeon) - RPM packages\n* PipeWire/Pulse implementation based on [EasyEffects](https://github.com/wwmm/EasyEffects) by [Wellington Wallace](https://github.com/wwmm)\n\n### Translators\n\n\u003c!-- CROWDIN-CONTRIBUTORS-START --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/ThePBone\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15683553/medium/d13428d1e0922bc2069500aef57d1459.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eTim Schneeberger (ThePBone)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e7404 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/Kazevic\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15680393/medium/fd2c52453ee1d86f41406cff9346d74d.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eKauã Azevedo da Silva Vicente (Kazevic)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e3174 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/Camellan\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/13410766/medium/b4019516b3323e817b7e77712961de69_default.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eCamellan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e3152 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/KatieFrogs\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/14450708/medium/bb568293d8b26daa3f7f323dbc9d69d0.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eKatie Frogs (KatieFrogs)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e2955 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/catvinyl\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15923209/medium/87c1ec8379dee277ba0bd42e1d8206f2.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003ecatvinyl\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e2352 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/Gokwu\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15975377/medium/7be6218dc0f81f4f2dc8418ea983bd9e.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eChoi Jun Hyeong (Gokwu)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e2321 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/bl4rnk\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/16644221/medium/f77268f6e88c039a3f8d15b3eb472565.jpeg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003ebl4rnk\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e1713 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/HoleHolo\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/14737398/medium/7d120eb168560837ca53bd0f189be716.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eHoleHolo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e814 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/tfkzptzt\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/16861075/medium/80c6de4c9945226dd698f55e846842e7.jpeg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003e同福客栈跑堂蘸糖 (tfkzptzt)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e775 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/mefsaal\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/13221907/medium/c0b751a37f076028f7271b00392736aa.jpg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eGabriel Cabrera Davila (mefsaal)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e652 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/seqfault\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15878639/medium/bf4af8eeefcd4c065fd867a7ad16994b.jpeg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eNullPointerException (seqfault)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e1151 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/mariachini\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/13113640/medium/99ff648dd8f28efebdce9713cee1b9c3.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003emariachini\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e373 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/tachyglossues\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/16138360/medium/4d6a2b47f6bc03515132a7310e27d4d6_default.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003etachyglossues\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e358 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/gkpiccoli\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15512952/medium/57e54eba4de46714593f1d0dcbcdfa3a.jpeg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eGustavo Kureck Piccoli (gkpiccoli)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e280 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/zhanghua000\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15906451/medium/db06f53e9b83801ec99389ab759b1e48.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eNoob Zhang (zhanghua000)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e240 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/kzsuser\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/16189758/medium/b0b9640e2be596e641f458345859f5dd_default.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003ekzsuser\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e221 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/kanium\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/16501577/medium/c73db838b312ee88a0f455b96be1301c.jpeg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003ekanium\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e200 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/AnClark\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15932859/medium/621b49aa22122e6ca25fc819eac5e96f.jpeg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eAnClark Liu (AnClark)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e173 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/deproocho\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/14966313/medium/71b861af9d1e455f743c1002b4d24622.jpeg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eBruh (deproocho)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e171 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/so1ar\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://i2.wp.com/crowdin.com/images/user-picture.png?ssl=1\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eso1ar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e126 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/coldified_\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/16382586/medium/27690602b0b2014444ad1346007a6734.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eInche Hwang (coldified_)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e117 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/etiennec78\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15912311/medium/49bacd7fcfc807ea0c5f97127af5bb26.jpeg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eetiennec79 (etiennec78)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e114 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/james34602\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15764811/medium/9c166ce647706bbfc568c13763b8a50d.jpeg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eJames Fung (james34602)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e72 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/theczechczech\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15271802/medium/850b88d0368fad2a99ee217e658235a1.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003etheczechczech\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e42 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/alex-pex\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://i2.wp.com/crowdin.com/images/user-picture.png?ssl=1\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eAlexandre PAIXAO (alex-pex)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e30 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/jaytau\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15142098/medium/010a2b64c5b06dd38710cf0c99776867.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eJoel Tony (jaytau)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e28 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/crisap94\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/14296216/medium/40edd01d8eb60877be593e043d2561e8_default.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003ecrisap94\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e27 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/arifesat\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15670651/medium/46177c3d13c90ed767700bb49413107f.jpeg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eArif Esat Yılmaz (arifesat)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e24 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/kingconcentrer\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/16469555/medium/54ededcf7750147a59dd441e50fd4afb.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003ethành thành (kingconcentrer)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e18 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/andmydignity\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/15821563/medium/cce9327c6cd8879f307495fab2077633.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eSemih Aslan (andmydignity)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e15 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/deathrobert2010\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/13559998/medium/429e149d92ed6c461f601e7d30d280df.jpg\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eRobert Abreu (deathrobert2010)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e13 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"top\"\u003e\n      \u003ca href=\"https://crowdin.com/profile/ldepaulaf\"\u003e\u003cimg alt=\"logo\" style=\"width: 64px\" src=\"https://crowdin-static.cf-downloads.crowdin.com/avatar/16134798/medium/15b5baf47f32c5accb64ab632c4f8f98.png\" /\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\u003cb\u003eLucas De Paula (ldepaulaf)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n      \u003cbr /\u003e\n      \u003csub\u003e\u003cb\u003e11 words\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\u003ca href=\"https://crowdin.com/project/jdsp4linux\" target=\"_blank\"\u003eTranslate in Crowdin 🚀\u003c/a\u003e\n\u003c!-- CROWDIN-CONTRIBUTORS-END --\u003e\n\n## License\n\nThis project is licensed under [GPLv3](LICENSE).\n\n```\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, \nINCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. \nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, \nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR \nTHE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAudio4Linux%2FJDSP4Linux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAudio4Linux%2FJDSP4Linux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAudio4Linux%2FJDSP4Linux/lists"}