Skip to content

A Managed Cross-Platform .NET Standard Codec Development Library written in C#

License

Notifications You must be signed in to change notification settings

MineCake147E/CSCodec

Repository files navigation

CSCodec Logo

CSCodec - .NET Standard Audio Codec Development Library

CSCodec is an open-source Audio Codec development library that has many features supporting development of your decoder and/or encoder for both your original or well-known formats.

Currently Implemented Features:

  • Core Project is LICENSED UNDER Apache-2.0
  • A lot of Span<T> Based APIs
  • 24Bit Signed Integer Structure Int24
  • An original Fast Fourier Transform (FFT) IMPLEMENTATION for System.Numerics.Complex arrays.
  • A Discrete Cosine Transform (DCT) Type-IV for double and float based on FFT
  • Wavelet Transform(Haar and CDF 5/3 Wavelets for now) for some types(double, float, int, Int24, short, sbyte)
  • A Time-Domain Aliasing Cancellation (like in MDCT) support for some types(double, float)
  • Hardware-Accelerated Add, Subtract, and Scalar Multiply for Arrays using System.Numerics.Vector<T>
  • Bit Encoded Binary Data I/O
    • BitReader and BitWriter supports I/O of bit encoded binary data
  • Cyclic Redundancy Check(CRC) of 8bits, 16bits, 32bits Support(Tested with some polynomials)
  • Linear Prediction support for double and float using FFT when possible and appropriate

Features Under Development:

  • Unit Tests for existing APIs
  • Better Documentations for existing APIs

Planned Features:

  • Linear Prediction support for int and long in order to implement FLAC Encoder and Decoder
  • Binary Compression
    • Rice Coding
    • Huffman Coding
    • Arithmetic Coding without patents
      • Range Coder
  • New type SingleComplex that supports float based Complex calculation
    • FFT for SingleComplex
  • Parallelization for existing apis where possible and appropriate
  • Unrounded Irreversible CDF 9/7 wavelet transform for double, float
  • Rounded CDF 9/7 wavelet transform for int, Int24, short, and sbyte if possible and needed
  • ID3 Tags Support

Project Goals:

  • .NET Standard/Core/Frameworks, Mono, and Xamarin Support
  • Inter-operation with MonoAudio(this part will be licensed under Ms-PL)
  • Inter-operation with CSCore, NAudio, MonoGame, etc...(these parts will be licensed under Ms-PL)
  • Reference Implementations of cross-platform FLAC Decoder and Encoder for both Samples and Uses.

Releases

No releases published

Packages

No packages published

Languages