CAS/README.md
2022-07-09 16:22:58 -04:00

2.2 KiB

CAS

Compressed Audio Signals (CAS) is a lossless compression codec that can compress full pcm audio into manageable file sizes or reasonable streaming bit rates with 0 loss in audio quality. This app was created to encode/decode cas formatted files just as a proof of concept.

Usage

With encoding selected, you can convert any audio file the Qt's gstreamer module supports into a cas formatted file by selecting it on the input file and choosing an output file to save (use .cas extension if you like). The other PCM settings like bitdepth, channels, sample rate and endianness are coded into the cas header and will be used when decoding.

When decoding, the file is converted into fully uncompressed PCM audio (use .wav as the appropriate extension).

Build Setup

For Linux you need the following packages to successfully build/install:

qtbase5-dev
libgl1-mesa-dev
libxcb1-dev
gcc
make
python3

For Windows support you need to have the following applications installed:

Qt5.12 or newer
Python3

Build

To build this project from source you just need to run the build.py and then the install.py python scripts. While running the build the script, it will try to find the Qt API installed in your machine according to the PATH env variable. If not found, it will ask you to input where it can find the Qt bin folder where the qmake executable exists or you can bypass all of this by passing the -qt_dir option on it's command line.

while running the install script, it will ask you to input 1 of 3 options:

local machine - This option will install the built application onto the local machine without creating an installer.

create installer - This option creates an installer that can be distributed to other machines for installation. The resulting installer is just a regular .py script file that the target machine can run if it has Python3 installed. Only Python3 needs to be installed, an internet connection is not required.

exit - Cancel the installation.

-local or -installer can be passed as command line options for install.py to explicitly select one of the above options without pausing for user input.