Skip to content

Open source project aims to make fast cross-platform non-real-time DSP library, that supports multi-threading.

License

Notifications You must be signed in to change notification settings

emildalalyan/libquant

Repository files navigation

The Quant Library (libquant)

Open source project, that aims to make fast cross-platform non-real-time DSP library, that supports multi-threading.

Current library development period is Alpha.

What can libquant do?

  • Reading and writing following formats:
    • Microsoft WAV files
      • PCM format (16, 24, 32 bits)
      • IEEE-754 (floating-point) PCM format (32, 64 bits)
  • It can apply following effects to samples:
    • Distortion (clipping)
    • Amplifying (and auto-amplifying to maximum)
    • Reverse
    • Chorus (experimental)
    • Flow effect
    • Quantization (supports dithering)
    • Inverting
    • Fade effect (linear or sine)
    • Mean filter (supports median, arithmetic mean and random)
    • Echo (without equalization)
    • Delay (single echo effect)
    • Muting
    • Sound speed-up effect
    • Mixing with noise (pseudo-noise, uses rand())
    • Channels mixing
    • Channels difference effect
  • It can synthesize some waveforms:
    • Sinusoid
    • Square
    • Noise (pseudo-noise, uses rand())
    • Sawtooth
    • Silence

Limitations

  • Maximum number of channels is (2^32)-1
  • Maximum sample rate is (2^32)-1 Hz
  • Number of samples is storing as size_t, its width depends on platform.
  • Each channel must have the same number of samples.

Remark: If you use OpenMP 2.0 (or older version), then samples iterator will be long long.

Requirements

  • C99 (C17 is recommended) or C++11 compliant compiler.
  • Target architecture must:
    • Have 8-bit bytes (CHAR_BIT must be 8).
    • Meet IEEE-754 standard.
    • Be either one's complement or two's complement.
    • Be either Big-Endian or Little-Endian.
  • for multithreading support | Compiler with OpenMP 2.0 support (OpenMP 3.0 is recommended).

Remark: Some compilers, that support C++11 partially also can compile libquant.

Documentation

See main page of the documentation

Donate

💳 If someone wants to support me or my project, then the link to DonationAlerts is here

About

Open source project aims to make fast cross-platform non-real-time DSP library, that supports multi-threading.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published