An advanced audio player API for SCP: Secret Laboratory using NAudio
This library has a number of open-source dependencies. See Attributions
Note
SecretLabNAudio is not sponsored nor endorsed by NAudio.
Important
If you're still using v1, migrate to v2
- Fully customizable audio provider interfaces
- Real-time audio processing
- Streaming files from disk
- Resampling and downmixing
- Ogg Vorbis support using NVorbis
- MP3 support using NLayer
- Speaker personalization
- SpeakerToy pooling
- Automatic reader resolution by file type
- Cache for short audio clips
- FFmpeg-based audio processing for (almost) all formats, even over the network
- Windows-only Media Foundation support for a wider range of formats, and decoding over the network
- Download the
SecretLabNAudio.zipfile from the releases page - Extract
bin/SecretLabNAudio.dllfrom the archive into the global plugins directory- Linux:
~/.config/SCP Secret Laboratory/LabAPI/plugins/global/ - Windows:
%appdata%/SCP Secret Laboratory/LabAPI/plugins/global/
- Linux:
- Restart the server
Important
The plugin must be placed in the global plugins directory to ensure that embedded dependencies are loaded. If you have a global plugin depending on SecretLabNAudio, rename it so it loads after SecretLabNAudio.
- Download the
SecretLabNAudio.Core.dllfile from the releases page - Download the
SecretLabNAudio.zipfile from the releases page - Extract the necessary DLLs from the
bin/directory- See the table below for what you need
- Place dependencies into the dependencies directory
- Linux:
~/.config/SCP Secret Laboratory/LabAPI/dependencies/<port>/ - Windows:
%appdata%/SCP Secret Laboratory/LabAPI/dependencies/<port>/
- Linux:
- Place plugins into the plugins directory
- Linux:
~/.config/SCP Secret Laboratory/LabAPI/plugins/<port>/ - Windows:
%appdata%/SCP Secret Laboratory/LabAPI/plugins/<port>/
- Linux:
- Restart the server
To support reading from some file formats, install the modules you need.
FFmpeg supports effectively all formats at the cost of running as a separate process. The FFmpeg module's APIs must be invoked separately.
| Usage | Plugin | Dependencies |
|---|---|---|
| required | (none) | SecretLabNAudio.Core NAudio.Core |
| mp3 | SecretLabNAudio.NLayer |
NLayer NLayer.NAudioSupport |
| ogg | SecretLabNAudio.NVorbis |
NVorbis NAudio.Vorbis System.ValueTuple |
| most formats | SecretLabNAudio.MediaFoundation* |
NAudio.Wasapi* |
| FFmpeg | SecretLabNAudio.FFmpeg** |
(none) |
Note
*MediaFoundation is only available on Windows.
**FFmpeg itself is not shipped with SecretLabNAudio. See the wiki on how to install it.
Simply install the SecretLabNAudio.Core package from NuGet.
You can also add the SecretLabNAudio.FFmpeg package, which references the former one.
Manual installation:
- Reference the
SecretLabNAudio.Core.dllfile from the releases page - Install the
NAudio.Corepackage from NuGet
Caution
Most official NAudio packages are Windows-specific. Use the NAudio.Core package for cross-platform support.
Important
If you reference other NAudio packages, make sure you copy those dependencies to the LabAPI dependencies directory.