diff --git a/README.md b/README.md index c822c57..c928f77 100644 --- a/README.md +++ b/README.md @@ -17,15 +17,15 @@ Cavernize. ## Features * Unlimited objects and output channels without position restrictions * Audio transcoder library with a custom spatial format -* Supported codecs: - * E-AC-3 with Joint Object Coding (Dolby Digital Plus Atmos) - * Limitless Audio Format - * RIFF WAVE - * Audio Definition Model Broadcast Wave Format + * Supported codecs: + * E-AC-3 with Joint Object Coding (Dolby Digital Plus Atmos) + * Limitless Audio Format + * RIFF WAVE + * Audio Definition Model Broadcast Wave Format * Supported containers: .ac3, .eac3, .ec3, .laf, .m4a, .m4v, .mka, .mkv, .mov, .mp4, .qt, .wav, .weba, .webm * Advanced self-calibration with a microphone * Results in close to perfectly flat frequency response, <0.01 dB and <0.01 ms of uniformity - * Uniformity can be achieved without a calibration file + * Speaker character matching can be achieved without a calibration file * Supported software/hardware for EQ/filter set export: * PC: Equalizer APO, CamillaDSP * DSP: MiniDSP 2x4 Advanced, MiniDSP 2x4 HD, MiniDSP DDRC-88A @@ -78,7 +78,7 @@ Cavern is using audio clips to render the audio scene. A `Clip` is basically a single audio file, which can be an effect or music. The easiest method of loading from a file is through the `Cavern.Format` library, which will auto-detect the format: -``` +```cs Clip clip = AudioReader.ReadClip(pathToFile); ``` Refer to the [scripting API](http://cavern.sbence.hu/cavern/doc.php?if=api/Cavern/Clip/index) @@ -89,7 +89,7 @@ The `Listener` is the center of the sound stage, which will render the audio sources attached to it. The listener has a `Position` and `Rotation` (Euler angles, degrees) field for spatial placement. All sources will be rendered relative to it. Here's its creation: -``` +```cs Listener listener = new Listener() { SampleRate = 48000, // Match this with your output UpdateRate = 256 // Match this with your buffer size @@ -101,7 +101,7 @@ configuration. The used audio channels can be queried through count should be set to its length. If this is not possible, the layout could be set to a standard by the number of channels, for example, this line will set up all listeners to 5.1: -``` +```cs Listener.ReplaceChannels(6); ``` Refer to the [scripting API](http://cavern.sbence.hu/cavern/doc.php?if=api/Cavern/Listener/index) @@ -111,7 +111,7 @@ for the complete description of this object. This is an audio placed in the sound space, renders a `Clip` at where it's positioned relative to the `Listener`. Here's how to create a new source at a given position and attach it to the listener: -``` +```cs Source source = new Source() { Clip = clip, Position = new Vector3(10, 0, 0) @@ -125,7 +125,7 @@ for the complete description of this object. ### Rendering To generate the output of the audio space and get the audio samples which should be output to the system, use the following line: -``` +```cs float[] output = listener.Render(); ``` The length of this array is `listener.UpdateRate * Listener.Channels.Length`. @@ -137,7 +137,7 @@ rendering or transcoding, they can be handled on a lower level than loading a #### Reading To open any supported audio file for reading, use the following static function: -``` +```cs AudioReader reader = AudioReader.Open(string path); ``` There is an overload for `AudioReader.Open` to read audio files from an @@ -173,7 +173,7 @@ renderer works in this use case. #### Writing To create an audio file, use an `AudioWriter`: -``` +```cs AudioWriter writer = AudioWriter.Create(string path, int channelCount, long length, int sampleRate, BitDepth bits); ``` This will create the `AudioWriter` for the appropriate file extension if it's diff --git a/docs/NuGet Readme - Cavern.Format.md b/docs/NuGet Readme - Cavern.Format.md index 40ee6da..328df14 100644 --- a/docs/NuGet Readme - Cavern.Format.md +++ b/docs/NuGet Readme - Cavern.Format.md @@ -19,7 +19,7 @@ transcoding, they can be handled on a lower level than loading a `Clip`. ### Reading To open any supported audio file for reading, use the following static function: -``` +```cs AudioReader reader = AudioReader.Open(string path); ``` There is an overload for `AudioReader.Open` to read audio files from an @@ -55,7 +55,7 @@ renderer works in this use case. ### Writing To create an audio file, use an `AudioWriter`: -``` +```cs AudioWriter writer = AudioWriter.Create(string path, int channelCount, long length, int sampleRate, BitDepth bits); ``` This will create the `AudioWriter` for the appropriate file extension if it's diff --git a/docs/NuGet Readme.md b/docs/NuGet Readme.md index 0c96b5f..c3d1a68 100644 --- a/docs/NuGet Readme.md +++ b/docs/NuGet Readme.md @@ -16,10 +16,10 @@ self-calibration libraries built on the Cavern engine are also available. * Limitless Audio Format * RIFF WAVE * Audio Definition Model Broadcast Wave Format - * Supported containers: .ac3, .eac3, .ec3, .laf, .mka, .mkv, .mov, .mp4, .qt, .wav, .weba, .webm + * Supported containers: .ac3, .eac3, .ec3, .laf, .m4a, .m4v, .mka, .mkv, .mov, .mp4, .qt, .wav, .weba, .webm * Advanced self-calibration with a microphone * Results in close to perfectly flat frequency response, <0.01 dB and <0.01 ms of uniformity - * Uniformity can be achieved without a calibration file + * Speaker character matching can be achieved without a calibration file * Supported software/hardware for EQ/filter set export: * PC: Equalizer APO, CamillaDSP * DSP: MiniDSP 2x4 Advanced, MiniDSP 2x4 HD, MiniDSP DDRC-88A @@ -39,7 +39,7 @@ Cavern is using audio clips to render the audio scene. A `Clip` is basically a single audio file, which can be an effect or music. The easiest method of loading from a file is through the `Cavern.Format` library, which will auto-detect the format: -``` +```cs Clip clip = AudioReader.ReadClip(pathToFile); ``` Refer to the [scripting API](https://cavern.sbence.hu/cavern/doc.php?if=api/Cavern/Clip/index) @@ -50,7 +50,7 @@ The `Listener` is the center of the sound stage, which will render the audio sources attached to it. The listener has a `Position` and `Rotation` (Euler angles, degrees) field for spatial placement. All sources will be rendered relative to it. Here's its creation: -``` +```cs Listener listener = new Listener() { SampleRate = 48000, // Match this with your output UpdateRate = 256 // Match this with your buffer size @@ -62,7 +62,7 @@ configuration. The used audio channels can be queried through count should be set to its length. If this is not possible, the layout could be set to a standard by the number of channels, for example, this line will set up all listeners to 5.1: -``` +```cs Listener.ReplaceChannels(6); ``` Refer to the [scripting API](https://cavern.sbence.hu/cavern/doc.php?if=api/Cavern/Listener/index) @@ -72,7 +72,7 @@ for the complete description of this object. This is an audio placed in the sound space, renders a `Clip` at where it's positioned relative to the `Listener`. Here's how to create a new source at a given position and attach it to the listener: -``` +```cs Source source = new Source() { Clip = clip, Position = new Vector3(10, 0, 0) @@ -86,7 +86,7 @@ for the complete description of this object. ### Rendering To generate the output of the audio space and get the audio samples which should be output to the system, use the following line: -``` +```cs float[] output = listener.Render(); ``` The length of this array is `listener.UpdateRate * Listener.Channels.Length`.