Menu

Tree [9e56c4] master /
 History

HTTPS access


File Date Author Commit
 Audio_Engine 2017-06-04 James Fung James Fung [e51a20] Remove unused files
 DSPManager_Lollipop_Marshmallow_Nougat 2017-06-13 James Fung James Fung [9e56c4] Improve UI performance
 Misc 2017-05-30 James Fung James Fung [035a31] Recovery log
 DSPFilter.xlsx 2016-02-26 James Fung James Fung [487fe2] Upgrade Filter designer
 LICENSE 2017-05-12 James Fung James Fung [b166ad] Big update
 RBJ_Eq.xls 2017-05-15 James Fung James Fung [10400b] Introduce convolver
 README.md 2017-05-21 James Fung James Fung [d85d90] Screenshot added
 ScreenshotMainApp1.png 2017-05-21 James Fung James Fung [d85d90] Screenshot added
 ScreenshotMainApp2.png 2017-05-21 James Fung James Fung [d85d90] Screenshot added
 Screenshot_20170530-082307.png 2017-05-30 James Fung James Fung [dcacd4] Add files via upload
 _config.yml 2017-05-21 James Fung James Fung [f97a39] Set theme jekyll-theme-slate
 libjamesdsp_StructureMap.svg 2017-05-12 James Fung James Fung [cd62f7] Structure map update

Read Me

JamesDSPManager (Audio Effect Digital Signal Processing library for Android)

GUI is based on Omnirom DSP Manager and able to run in all recent Android rom include Samsung, AOSP, Cyanogenmod.
This app in order to improve your music experience especially you want realistic bass and more natural clarity.
We don't work too much around with modifying Android framework.

Basic:
  1. Compression
  2. Bass Boost

--> 4 order IIR and 1023/4095 order FIR linear phase low pass bass boost
3. Reverberation

--> GVerb and Progenitor 2
4. 10 Band Hybrid Equalizer (1 low shelf, 8 bands shelves, 1 high shelves)(Different bands designed with different filter order)
5. Stereo Widen
6. Convolver

--> Only support mono / stereo

--> Samples per channels should less than 500000

Important

FAQ

1. Computation datatype?

A: Float32

2. What is Clip control?

A: When effect strength going extreme, value will go beyond -1.0 / +1.0 range, this will cause clipping.

Effect provide you more option, that is Hyperbolic tangent function/tanh() that will clip the value more natural.

But using tanh() will change the waveform even signal haven't clipped.

3. Bass boost filter type?

A: Effect have 3 algorithms to boost low frequency, the first one is the traditional one from previous release, based on IIR Filter.

Linear phase filter type is work on convolution basis. When user change the bass boost parameter, driver will compute new low pass filter impulse response.

4095 order FIR filter should work on all frequency listed on options, 1023 order should work well above 80Hz.

4. What is convolver?

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

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

For more info: Convolution and Convolution reverb

5. What is Misc folder does?

File reverbHeap is modified Progenitor 2 reverb, memory allocation is using heap not stack, it will be useful when you play around with Visual Studio, because VS have 1Mb stack allocation limit...

6. Why you change the Effect structure?

A: This is the only way to full control all DSP effects...

7. Why libjamesdsp.so so big?

A: Because of fftw3 library linked.

8. Why open source? Any license?

A: Audio effects actually is not hard to implement, I don't think close source is a good idea. Many audio effects is exist in the form of libraries, or even in thesis, everyone can implement it...
This is published under GPLv2.

9. Why no effect after installed?

A: Check step in release build ReadMe.txt.
audio_effects.conf is file for system to load effect using known UUID, you can just 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 {

On development:
  1. Parameterized Room Convolution

    -->May be I will implement this in my other repository: [Complete C implementation of Room Impulse Response Generator]
    (https://github.com/james34602/RIR-Generator)

TODO:
  1. More optimization on all component (JAVA, Native)

Now work on AOSP, Cyanogenmod, Samsung on Android 5.0, 6.0 and 7.0/7.1(TESTED)

  1. See my project release page

Screenshot

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

Important

We won't modify SELinux, let your device become more safe.
Also, it is good for you to customize your own rom or even port rom.

How to install?

See readme in download link.

Contact

Better contact me by email. Send to james34602@gmail.com

Terms and Conditions / License

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

All compatibility supporting by James Fung

Android framework components by Google

Advanced IIR filters library by Vinnie Falco, modify by Bernd Porr

Source code is provided under the GPL V2

More Credit

DSPFilter.xlsx is a tool for you to desgin IIR Biquad Filter, it is a component from miniDSP.

RBJ_Eq.xls is a RBJ Biquad Equalizer designer. Not very useful and I will not implement it, but could be a reference to designing equalizer.

Structure map generated by Understand (Hosted on rawgit)

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.