Skip to content

Commit

Permalink
updated README and some docs
Browse files Browse the repository at this point in the history
  • Loading branch information
leomccormack committed Feb 2, 2024
1 parent 4ec89e6 commit 018e06e
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
2 changes: 1 addition & 1 deletion ChangeLog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Major and/or breaking changes to the Spatial_Audio_Framework are listed here.
For descriptions of minor changes and bug fixes, please refer to the git log.

====================================================================================================
v1.3.2
v1.3.2 (2nd February 2024)
- Reverted a change made to the getBinDecoder_MAGLS() function in the previous release

====================================================================================================
Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@

# About

The Spatial_Audio_Framework (SAF) is an open-source and cross-platform framework for developing spatial audio related algorithms and software in C/C++. Originally intended as a resource for researchers in the field, the framework has gradually grown into a rather large and well-documented codebase comprising a number of distinct [**modules**](framework/modules); with each module targeting a specific sub-field of spatial audio (e.g. Ambisonics encoding/decoding, spherical array processing, amplitude-panning, HRIR processing, room simulation, etc.). The framework also makes use of highly optimised linear algebra libraries (such as Intel MKL, Apple Accelerate, OpenBLAS) as well as SIMD intrinsics (SSE, AVX, AVX-512). Several [**examples**](examples/include) are also included in the repository, which serve to demonstrate the functionality of the framework and may also act as a starting point for new projects. These examples have also been integrated into VST audio plug-ins under the [**SPARTA**](https://github.com/leomccormack/SPARTA) banner, which demonstrate how the framework may be used for practical real-time applications.
The Spatial_Audio_Framework (SAF) is an open-source and cross-platform framework for developing spatial audio related algorithms and software in C/C++. Originally intended as a resource for researchers in the field, the framework has gradually grown into a large codebase comprising a number of distinct [**modules**](framework/modules); with each module targeting a specific sub-field of spatial audio, such as: Ambisonics encoding/decoding, spherical array processing, amplitude-panning, HRIR processing, room simulation, etc.. The framework also makes use of highly optimised linear algebra libraries (such as: Intel MKL, Apple Accelerate, OpenBLAS) as well as x86 SIMD intrinsics (SSE, AVX, AVX-512).

Owing to its modular design, expanding the framework is relatively straightforward, and contributions from researchers and developers of spatial audio technologies is actively encouraged! :-)
Several [**examples**](examples/include) are also included in the repository, which serve to demonstrate the functionality of the framework and may also act as a starting point for new projects. These examples have also been realised as VST/LV2 audio plug-ins under the [**SPARTA**](https://github.com/leomccormack/SPARTA) banner.

Owing to its modular design, expanding the framework is relatively straightforward, and contributions from researchers and developers of spatial audio technologies is encouraged! :-)

# Prerequisites

Expand Down Expand Up @@ -211,4 +213,4 @@ This software is dual-licensed. By default, this software is provided permissive

For full licensing terms see [LICENSE.md](LICENSE.md).

Note that while we do not impose any copyleft licensing philosophies for the ISC licensed modules, we still appreciate it when improvements and/or bug fixes are also merged into this public repository where possible :-)
Note that, while we do not force any copyleft philosophies onto the permissively licensed modules, we would still appreciate it if improvements and/or bug fixes are also merged into this public repository where possible :-)
6 changes: 5 additions & 1 deletion docs/FRAMEWORK_STRUCTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,13 @@ The framework comprises the following core modules (**ISC**):
The framework also includes the following optional modules:
* **saf_sofa_reader** - a simple SOFA file reader (**ISC**).
* **saf_tracker** - a particle-filtering based tracker (**GPLv2**).
* **saf_hades** - for binaural rendering of Hearing-Assistive/Augmented-reality Devices (HADES) (**GPLv2** License).

To enable optional framework modules, simply add the relevant pre-processor definition:
```
SAF_ENABLE_SOFA_READER_MODULE # to enable saf_sofa_reader
SAF_ENABLE_TRACKER_MODULE # to enable saf_tracker
SAF_ENABLE_HADES_MODULE # to enable saf_hades
```

## Resources
Expand All @@ -43,6 +45,8 @@ The **saf_utilities** module also inherits and offers use of the following third
* [**md_malloc**](https://github.com/leomccormack/md_malloc) - a utility for allocating contiguous multi-dimensional arrays (**MIT**).
* [**convhull_3d**](https://github.com/leomccormack/convhull_3d) - for building 3-D convex hulls (**MIT**).
* [**kissFFT**](https://github.com/mborgerding/kissfft) - the default FFT implementation for when no optimised alternative is linked (**BSD-3-Clause**).
* [**speex_resampler**](https://github.com/xiph/speex) - a popular and efficient resampler taken from the Speex project (**BSD-3-Clause**).
* [**zlib**](https://github.com/madler/zlib) - a massively spiffy yet delicately unobtrusive compression library ([**custom permissive license**](https://en.wikipedia.org/wiki/Zlib_License))

## Dependencies

Expand Down Expand Up @@ -136,7 +140,7 @@ Optional modules are also included by **framework/include/saf.h** in a similar m

### Coding style

All code should be written in C and compile under C99 compliant compilers and the ancient MSVC compiler. Note that complex number wrappers (**saf_utilities/saf_utility_complex.h**) have been provided to make this latter requirement a bit easier, but we can also help port C99-only code to be MSVC compliant if needed.
All code should be written in C89.

As for coding-style, there are no strict requirements, only suggestions. In general, taking an existing SAF module and using it as a basis for developing a new module is probably the easiest way to go. However, suggested coding styles are also listed below:
* Indentations should be 4 spaces in length - no tabs please!
Expand Down

0 comments on commit 018e06e

Please sign in to comment.