• Stars
    star
    558
  • Rank 79,819 (Top 2 %)
  • Language
    C
  • Created over 9 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Audio DSP effects build on Android system framework layer. This is a repository contains a pack of high quality DSP algorithms specialized for audio processing.

JamesDSP (Cross-platform Audio Effect / Digital Signal Processing library)

GUI is based on Omnirom DSP Manager and able to run on most Android devices from 5 to 10 include AOSP, Cyanogenmod, Huawei(arm64), LineageOS, Samsung and recent HTC. This app include many cool features.

This repo is a Android variant of JamesDSP, JDSP4Linux uses core library from current repo.

Features:
  1. Multiband, multiresolution dynamic range compander --> A highly tunable multiband dynamic range booster/reducer

  2. Auto Bass Boost --> Frequency detecting bass boost. Effect detect interesting frequency, and adjust gain, bandwidth and cut-off frequency arccordingly

  3. Reverb --> Progenitor 2 (Complicated IIR network)

  4. Interpolating FIR Equalizer and IIR Equalizer -->Both FIR and IIR equalizer yield flat response when the gain is uniform, unlike some competitors

  5. Partitioned Convolver (Auto segmenting convolution) --> Support mono, stereo, full/true stereo(LL, LR, RL, RR) IR

  6. Live programmable DSP --> A effect that can compile EEL code into opcode, and do processing base on the compiled code. The EEL virtual machine had pre-built tons of advanced math routines and DSP function. Including: Basic C String manipulation functions, Linear algebra solver(Least square, inv(), pinv()), Mathematical optimization(linprog(), quadprog(), lsqlin()), polynomial roots solver(roots()), spectral processing(Short-time Fourier Transform), Polyphase filterbank(Constant Q Transform), multi-purpose IIR / FIR filter designer(eqnerror() / firls()), IIR Subbands transform, Direct form FIR filter, Fractional delay line, Polyphase resampler, real time 1D convolution, Autoregressive Burg estimator, simple peak finding algorithm.

More details:EEL2 open source variant

  1. Stereo Widen --> Algorithm detect stereo phase relation in a few spectral region, and enhance the stereo soundstage without affect vocal integrity

  2. Crossfeed --> Include traditional BS2B mode and convolution-based HRTF

  3. Vacuum tube modelling --> Second harmonic generator

  4. Viper DDC (Cascaded Second-Order Sections Form II IIR filterbank)

Supported bit depth:
# bits Status
8 Unsupported
16 Supported
24(3bInt) Supported
24(4bInt) Supported
32(Int) Supported
32(Float) Supported

Important

FAQ

1. Computation datatype?

A: Float32.

2. What is convolver?

A: Convolver is a effect apply convolution(a mathematical operation) on input signal, that perfectly apply user desired response on music, it could simulate physical space.

Effect itself require audio file(.wav/.irs/.flac) to become impulse response source.

For more info: Convolution and Convolution reverb

3. Installation method

A: Advanced method(Manual installation)

Effect may get unloaded by Android system if no audio stream for while.

audio_effects.conf is a file specified for system to load effect using known UUID.

  1. you need to add
jdsp {
 path /system/lib/soundfx/libjamesdsp.so
}

under

bundle {
 path /system/lib/soundfx/libbundlewrapper.so
}

AND

jamesdsp {
 library jdsp
 uuid f27317f4-c984-4de6-9a90-545759495bf2
}

under

effects {
  1. copy libjamesdsp.so to /system/lib/soundfx
  2. Reboot
  3. Install APK

B: Automatic installation(Supported up to Android Pie)

Join Telegram group JDSP and V4A group to receive latest update. Methods:

  1. Copy zip package to your phone, reboot to custom recovery, install package, reboot, done.
  2. Get Magisk manager to install JDSP. Now work on most Android device from Lollipop to Pie

Download Link

  1. See my project release page

Screenshot

  1. Equalizer screenshot(Dark theme)
  2. Convolver screenshot(Idea theme)

Important

Modify SELinux is not required(in most case), let your device become safer. Also, it's good to customizing your own ROM or even port ROM with JamesDSP. Some device does require SELinux workaround to work correctly

Contact

Better contact me by email. Send to [email protected]

Terms and Conditions / License

The engine frame is based on Antti S. Lankila's DSPManager.

Credit

  1. Joseph Young (Provider of dynamic range compander logic and varies impulse responses)
  2. Christopher Blomeyer (Very patient app tester and inspiring me bit depth issue)
  3. ahrion (Making installation tools)
  4. Zackptg5 (Making installation tools)

More Credit

  1. Matlab, a great tool that do all sort of modelling

More Repositories

1

SpleeterRT

Real time monaural source separation base on fully convolutional neural network operates on Time-frequency domain.
C
156
star
2

UPX-Visual-Studio

Compile UPX 3.96 and belong librarys on Visual Studio! Source also include LZMA, UCL and zlib βœ’οΈ
C
128
star
3

EEL_VM

EEL2 compiler and execution VM with enhanced routines for real-time signal processing
C
68
star
4

update-binary

Improved Android recovery zip package installer executable
C
27
star
5

Open-DSP-Toolbox

A special purpose signal processing toolbox for special IIR filter design and transfer function form conversion, written in C.
C
19
star
6

LUTSurround

Lookup table based surround channel generation from stereo material
C
17
star
7

Neural-Network-Quadraphonic-Upmix

The simplest way to demix stereo content with decent quality and low latency.
C
15
star
8

SuperSpectrogram

Super spectrogram Qt cross platform!
C++
11
star
9

Android-Linear-Algebra-manipulation-using-Eigen

Using JNI to call Eigen 3.2.10 Linear Algebra library to do basic matrix operations.
C++
9
star
10

libMultivariateOpt

My optimization(With and Without gradient) library
C
7
star
11

xmlstarlet_Android_build

For guys who need it.
C
6
star
12

panzerGL22

CS1.6 opengl32 hack
C++
5
star
13

CSURF

Speeded up robust features in C, partially multithreaded
C
3
star
14

FRMPG

MATLAB
3
star
15

Fast-fractional-1-N-octave-smoothing

Fast fractional 1/N octave smoothing for Matlab
C
2
star
16

Stationary-Wavelet-Packet-transform-based-oversampled-warped-filterbank-design

One of my obsolete filterbank design method
MATLAB
2
star
17

chinese_ocr

Qt demo with end to end DenseNet
C
1
star
18

quadprog

Solving quadratic programming problem using subgradient optimizer
C
1
star