Releases: Axwabo/SecretLabNAudio
more helpers & fixes
First release candidate of the processors system.
beta2 to rc.1 changes
Breaking Changes
SpeakerPersonalizationno longer automatically synchronizes personalized settings after the speaker's
sync vars were modified (this change increases TPS)FFmpegSLno longer has aredirectStandardInputparameter, the stdin will now always be redirected1
Additions
AudioConstantsclass (AudioPlayerproperties and constants reference this)SpeakerToyGroup.AddPersonalizationToAllextension methodSpeakerPersonalizationextensions forIEnumerable<SpeakerPersonalization>SpeakerToyGroup.Ungroupmethod- More
AudioPlayerPoolrenting andAudioPlayercreating methods for convenience NextAvailableIdandTryGetNextAvailableIdinAudioPlayer(delegated toSpeakerToyPool)IsCachedCacheIfNotCachedAsyncCacheAllNotCachedAsyncextension methods forAudioCacheBase
Fixes
- Fixed some docs
- The Linux FFmpeg installer now uses the
envprocess SpeakerToyGroupExtensionsmethods now throw early if the group has been destroyedSimpleFileCache::GetKeynow converts the path to a full path- Added
ConfigureAwait(false)where applicable - Fixed indentation in the installation instructions
- .NET is now attributed
Non-breaking Changes
- Changed most
AudioPlayerreferences to referenceAudioConstants(where possible) FFmpegSL.Stdinis no longer nullable, null checks may be removed- Bumped LabAPI to
1.1.6.1
Full Changelog: v2.0.0-beta2...v2.0.0-rc.1
-
If the standard input isn't redirected, FFmpeg will read from the standard input of the SL process.
This caused LocalAdmin to hang if FFmpeg prompted for an overwrite confirmation. It even broke the terminal. ↩
FFmpeg caches
Second beta build of the audio processors system.
beta1 to beta2 changes
Fixes
- Fixed the FFmpeg installer
Additions
AudioCacheBase,SimpleFileCacheand extension membersFFmpegSL.WaitForExitAsyncextension methodAudioPlayerextensions to use cached files
Full Changelog: v2.0.0-beta1...v2.0.0-beta2
initial FFmpeg support
First beta build of the audio processors system, now with basic FFmpeg support (short clip reading, live playback).
alpha5 to beta1 changes
Additions
ClipName.FromPathmethodSecretLabNAudio.FFmpegmodule- Extensions for the
ShortClipCacheto read clips with FFmpeg - Extensions for the
AudioPlayerclass to use FFmpeg - FFmpeg-based audio processors
AsyncBufferedFFmpegAudioProcessorStreamBasedFFmpegAudioProcessorSynchronousFFmpegAudioProcessor
- FFmpeg installer
- The module is included in the full
SecretLabNAudioassembly
- Extensions for the
Fixes
- Fixed the embedded
System.ValueTuplereference - Fixed some docs
Changes (non-breaking)
- Updated
ATTRIBUTIONS.md - Moved some properties to
Directory.Build.props - Changed
AsSpan()slicing to use theAsSpan(int, int)method
Full Changelog: v2.0.0-alpha5...v2.0.0-beta1
AudioPlayer.Ended event
Fifth alpha build for the processors system. It's highly recommended to migrate to processors to avoid resource management issues.
alpha4 to alpha5 changes
Additions
- Added an
Endedevent toAudioPlayer
Changes (non-brekaing)
PoolOnEndandDestroyOnEndnow use theEndedevent instead ofNoSamplesReadAudioPlayerwill no longer fail to continue reading if an event handler throws an exception
Should you have any suggestions, feel free to comment on the pull request.
Changes: #1
Full Changelog: v1.0.2...v2.0.0-alpha5
StreamAudioProcessor.FilePath
Fourth alpha build for the processors system. It's highly recommended to migrate to processors to avoid resource management issues.
alpha3 to alpha4 changes
Fixes
- Fixed some docs
Additions
StreamAudioProcessornow has aFilePathproperty, which is automatically set by(Try)CreateAudioProcessor
Should you have any suggestions, feel free to comment on the pull request.
Changes: #1
Full Changelog: v1.0.2...v2.0.0-alpha4
mix hotfix
Third alpha build for the processors system. It's highly recommended to migrate to processors to avoid resource management issues.
Fixes
- Fixed an oversight in
UseMixerthat caused the current input to be disposed while it was being used
Should you have any suggestions, feel free to comment on the pull request.
Changes: #1
Full Changelog: v1.0.2...v2.0.0-alpha3
speaker groups
Second alpha build for the processors system. It's highly recommended to migrate to processors to avoid resource management issues.
alpha1 to alpha2 changes
Changes (breaking)
- Short clip mixing methods now accept a
ClipName
Fixes
- Owned providers will now be disposed immediately if they are not compatible when adding to a
MixerorAudioQueue - Fixed some docs
- Added Unity lifetime checks to some methods
- Removed all XML doc include tags with a path
Changes (non-breaking)
- Bumped LabAPI to 1.1.5
- Improved XML docs regarding exceptions
Additions
- Queueing methods for
AudioPlayers and theAudioQueue DestroySafeextension method forSpeakerToysClipNamestructClipNameoverloads inShortClipCacheSpeakerToyGroupand related extension membersIsPooledmethods in pool classes
Should you have any suggestions, feel free to comment on the pull request.
Changes: #1
Full Changelog: v1.0.2...v2.0.0-alpha2
v2 "processors" first alpha
First alpha build for the processors system. It's highly recommended to migrate to processors to avoid resource management issues.
Changes and a draft of the migration guide can be viewed here: #1
Should you have any suggestions, feel free to comment on the pull request.
Full Changelog: v1.0.2...v2.0.0-alpha1
14.1.4(.1?)
Changes (non-breaking):
- Exceptions thrown by the
SampleProviderare now logged to LocalAdmin logs and the state is treated as if no samples were read - Removed the 0-1 volume range notices in XML docs, as SpeakerToys' volume can now be set to any float value
- Changed the build process to use central package management
more send engines
Additions:
AudioPlayer.MasterAmplificationproperty (and corresponding extension method)VoiceMessageSendEngine
Changes (non-breaking):
- Extracted a superclass from
LivePersonalizedSendEngine- newPersonalizedSendEngineBaseabstract class that requires aPersonalizemethod - The new superclass now exposes the
BaseEngineandPersonalizationproperties - The
RemoveMixerInputsByNamemethod now also takesLoopingRawSampleProviders into account