Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: VoidXH/Cavern
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1.0.3
Choose a base ref
...
head repository: VoidXH/Cavern
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing 801 changed files with 67,224 additions and 3,449 deletions.
75 changes: 75 additions & 0 deletions .github/workflows/Build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Build

on:
- push
- workflow_dispatch

env:
BUILD_CONFIGURATION: Release

jobs:
Windows:
runs-on: windows-2022

steps:
- uses: actions/checkout@v3

- name: Get current date
id: date
run: echo "::set-output name=CurrentDate::$(date +'%Y-%m-%d')"

- name: Get commit hash
id: vars
run: echo "::set-output name=ShortHash::$(git rev-parse --short=7 HEAD)"

- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v1.1.3

- name: Restore NuGet packages
working-directory: ${{env.GITHUB_WORKSPACE}}
run: |
nuget restore "Cavern.sln"
nuget restore "Cavern.Format/Cavern.Format.csproj"
- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
run: |
msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} "Cavern.sln"
msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} "Cavern.Format/Cavern.Format.csproj"
- name: Download base build
shell: powershell
run: |
Invoke-WebRequest -Method Get -Uri "https://cavern.sbence.hu/content/downloads/cavern64.zip" -OutFile cavern64.zip -UseBasicParsing
mkdir build/Release
7z x -obuild/Release cavern64.zip
Remove-Item -Path "cavern64.zip"
- name: Collect artifacts
working-directory: ${{env.GITHUB_WORKSPACE}}
run: |
copy "Cavern.QuickEQ/bin/Release/netstandard2.1/Cavern.dll" "build/Release/Cavern_Data/Managed/Cavern.dll"
copy "Cavern.QuickEQ/bin/Release/netstandard2.1/Cavern.QuickEQ.dll" "build/Release/Cavern_Data/Managed/Cavern.QuickEQ.dll"
copy "Cavern.Format/bin/Release/netstandard2.1/Cavern.Format.dll" "build/Release/Cavern_Data/Managed/Cavern.Format.dll"
copy "Cavern.QuickEQ/bin/Release/CavernAmp.dll" "build/Release/Cavern_Data/Plugins/x86_64/CavernAmp.dll"
- name: Upload a Build Artifact
uses: actions/upload-artifact@v3.1.0
with:
name: "Cavern-Win64_${{steps.date.outputs.CurrentDate}}@${{steps.vars.outputs.ShortHash}}"
path: "build/Release/"

- name: Compress artifacts
uses: vimtor/action-zip@v1
with:
files: "build/Release/"
dest: "build/Cavern-Win64.zip"

- name: GitHub pre-release
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{secrets.GITHUB_TOKEN}}"
automatic_release_tag: "latest"
prerelease: true
title: "Cavern @${{steps.vars.outputs.ShortHash}}[${{steps.date.outputs.CurrentDate}}]"
files: "build/*.zip"
67 changes: 66 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,68 @@
*.depend
*.layout
.vs/
CavernUnity DLL/obj/
Cavern.Filters/bin/
Cavern.Filters/obj/
Cavern.Format/bin/
Cavern.Format/obj/
Cavern.QuickEQ.Format/bin/
Cavern.QuickEQ.Format/obj/
Cavern.QuickEQ/bin/
Cavern.QuickEQ/obj/
Cavern.WPF/bin/
Cavern.WPF/obj/
Cavern/bin/
Cavern/obj/
CavernAmp/bin/Release/libCavernAmp.a
CavernAmp/bin/Release/libCavernAmp.def
CavernAmp/CavernAmp.cscope_file_list
CavernAmp/obj/
Cavernize Lite/bin/
Cavernize Lite/obj/
Cavernize Lite/samples/
CavernSamples/ADMValidator/bin/
CavernSamples/ADMValidator/obj/
CavernSamples/Benchmark/bin/
CavernSamples/Benchmark/obj/
CavernSamples/CavernizeGUI/bin/
CavernSamples/CavernizeGUI/obj/
CavernSamples/CavernizeLive/bin/
CavernSamples/CavernizeLive/obj/
CavernSamples/CavernPipeClient/bin/
CavernSamples/CavernPipeClient/obj/
CavernSamples/CavernPipeServer/bin/
CavernSamples/CavernPipeServer/obj/
CavernSamples/Deconvolver/bin/
CavernSamples/Deconvolver/obj/
CavernSamples/EnhancedAC3Merger/bin/
CavernSamples/EnhancedAC3Merger/obj/
CavernSamples/EQAPOtoFIR/bin/
CavernSamples/EQAPOtoFIR/obj/
CavernSamples/FilterStudio/bin/
CavernSamples/FilterStudio/obj/
CavernSamples/HRTFSetImporter/bin/
CavernSamples/HRTFSetImporter/obj/
CavernSamples/HRTFSetStatista/bin/
CavernSamples/HRTFSetStatista/obj/
CavernSamples/ImpulseFlattener/bin/
CavernSamples/ImpulseFlattener/obj/
CavernSamples/QuickEQResultMerger/bin/
CavernSamples/QuickEQResultMerger/obj/
CavernSamples/WAVChannelReorderer/bin/
CavernSamples/WAVChannelReorderer/obj/
CavernSamples/WavefrontSimulator/bin/
CavernSamples/WavefrontSimulator/obj/
CavernUnity DLL/bin/
CavernUnity DLL/obj/
CavernUnity.WebGL/bin/
CavernUnity.WebGL/obj/
packages/
Pro/
Tests/Test.Cavern.Format/bin/
Tests/Test.Cavern.Format/obj/
Tests/Test.Cavern.QuickEQ/bin/
Tests/Test.Cavern.QuickEQ/obj/
Tests/Test.Cavern/bin/
Tests/Test.Cavern/obj/
Tests/Test.CavernUnity/bin/
Tests/Test.CavernUnity/obj/
3 changes: 3 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
language: csharp
os: linux
solution: Cavern.sln
147 changes: 147 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
# Cavern version history
## Cavern 2.0 - Long-term Support update
**2023. April 25th**

#### Library additions
* Added MKV container writing
* Added MP4 container reading
* Added LAF environment export
* Added crossover export for Equalizer APO, supporting all of Cavern's basic crossovers
* Added FIR/IIR filter set export for supported software/hardware, including CamillaDSP
* Merging of multiple E-AC-3 files for channel-based spatial mix storage
* Microphone support for WebGL

#### Cavernize additions
* Added a metadata viewer
* Added 4.1.1 channel layout
* Content grading
* New render target selector
* Option to swap side/rear channels
* Support opening webm/weba files

## Cavern 1.6 - Happiest Halloween update
**2022. October 31st**

#### Additions
* Decoding of Matroska (.mkv/.mka) streams
* Decoding of E-AC-3 (.ac3/.ec3) streams, including JOC (Dolby Digital+ Atmos) into objects
* Decoding of ADM BWF (.wav) streams into objects
* CavernAmp accelerates some features with native code on 64-bit Windows for an average of 2x speedup
* Ear canal simulations by angle and distance with the Distancer filter
* Optimized convolution for basic impulse responses called Spike convolver
* Screen-locked source flag
* Many new waveform and audio file handling functions

#### Changes
* File reading is separated to reading, decoding, and rendering
* Linearized virtualizer frequency responses
* Moved API to .NET 6 and made NuGet-ready

## Cavern 1.5 - Nearly 5 years update
**2021. January 5th**

#### Additions
* Valley correction in QuickEQ
* Gain and Cavernize filters
* Phase, RT60, and imulse likelyness for impulse responses
* 24-bit support for known formats, WAV reader
* FRD calibration support

#### Changes
* Impulse responses have way less noise
* Versatile convolution generation
* Headphone virtualization is available outside Unity
* Many refactors

## Cavern 1.4 - Standalone update
**2020. May 23rd**

#### Additions
* Cavern is no longer bound to Unity, separated to module DLLs, CavernUnity.dll is only an adapter
* Completely separated rendering to Unity's audio thread
* New, abstract, and complex filters
* Sources can be filtered individually
* EQ curves
* Zero delay (minimum phase) or linear phase convolution EQ generation

#### Changes
* The center channel now has an echo in virtualization

## Cavern 1.3 - HRIR and Cavernize Lite update
**2019. March 16th**

#### Additions
* HRIR-based headphone virtualizer
* Cavernize Lite is now open source and included in this repo
* Variable band smoothing
* Implemented more Unity functions
* Support for virtual, even streaming audio sources with forced playback
* Noise generator audio source

#### Changes
* Greatly optimized code
* Virtualization does not override echo settings for audio sources
* The default sample rate is now 48 kHz (which is the sample rate of the HRIR)
* New set of supported DCPs

## Cavern 1.2 - QuickEQ update
**2018. September 30th**

#### Additions
* QuickEQ: advanced room correction toolkit with extremely quick and accurate measurements
* Audio spoofer: converts Unity's listeners and sources to Cavern components
* Log display debug window

#### Changes
* Rewoked resampling
* All C# code is now managed

## Cavern 1.1 - DCP update
**2018. May 10th**

* Multi-threaded and more optimized renderer
* Auto 7.1 upmix in Cavernize if rear channels are present
* Support for Cavern DCPs, Barco Auro, and 12-Track

## Cavern 1.0
### v1.0.3
**2018. February 5th**

#### Additions
* Size property for audio sources
* Audio file writers for RIFF Wave and Limitless Audio Format
* Documentation files
* Audio input handling
* Unity Editor scripts
* Various small features

#### Changes
* Panning is now constant power above high quality or in real time
* Utilities moved to their own namespace
* Various optimizations

### v1.0.2
**2017. September 27th**

* Added Debug Monitor, which displays all the objects and room bounds around an object
* Added Array Levels window, the standard volume display for object-based audio mixing
* Atmospheres are now visualizable
* Various fixes and optimizations

### v1.0.1
**2017. September 9th**

* Added cinema processor fader matching for CavernizeRealtime, which is an important setting in cinema environments, simplifying the control process
* Improved Levels debug window with automatic channel grouping and coloring (as seen in the Cavern driver)
* Various cleanups and optimizations

### v1.0
**2017. August 7th**

Initial release.

### Beta
**2016. February 19th**

### Alpha
**2016. January 17th**
44 changes: 44 additions & 0 deletions Cavern.Format/Cavern.Format.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<OutputType>Library</OutputType>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<Version>2.0.2</Version>
<Authors>VoidX</Authors>
<Description>Audio format support of the Cavern spatial audio engine.</Description>
<Copyright>Copyright © Bence Sgánetz 2016-2024</Copyright>
<PackageProjectUrl>https://cavern.sbence.hu/</PackageProjectUrl>
<RepositoryUrl>https://github.com/VoidXH/Cavern</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>audio;sound;rendering;spatial audio;surround sound</PackageTags>
<NeutralLanguage>en</NeutralLanguage>
<Nullable>disable</Nullable>
<PackageReadmeFile>NuGet Readme - Cavern.Format.md</PackageReadmeFile>
<PackageLicenseFile>LICENCE.md</PackageLicenseFile>
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
<PackageIcon>CavernLogo.png</PackageIcon>
<PackageReleaseNotes>https://github.com/VoidXH/Cavern/releases</PackageReleaseNotes>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
<DocumentationFile>bin\Release\Cavern.Format.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<None Include="..\docs\NuGet Readme - Cavern.Format.md" Pack="true" PackagePath="\" Link="Resources\NuGet Readme - Cavern.Format.md" />
<None Include="..\docs\NuGet Licence.md" Pack="true" PackagePath="LICENCE.md" Link="Resources\NuGet Licence.md" />
<None Include="..\Cavern\Resources\CavernLogo.png" Pack="true" PackagePath="CavernLogo.png" Link="Resources\CavernLogo.png" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Cavern\Cavern.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="CavernLogo.png">
<Pack>True</Pack>
<PackagePath>\</PackagePath>
</None>
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="copy ..\CavernAmp\bin\Release\CavernAmp.dll bin\Release\CavernAmp.dll" IgnoreExitCode="true" />
</Target>
</Project>
Loading