2020.10.26.1103 - Making audio clips loopable in-game, tweaks & fixes for AudioX
New additions, tweaks and bugfixes for the new audio system! You can now easily make audio clips loopable fully in-game! Lots of fixes for stutters, freezes, ends of clips getting cut after encoding, corrupted encoding, messed up playback state and more were fixed too!
Security was improved for the Microphone Tip, so it can't be abused to record people in whisper bubbles (you can still record yoruself though). There are a few new LogiX nodes as well and other general bugfixes and tweaks.
[h2]New Features:[/h2]
- Added "Make Loopable (using crossfade)" processing option to StaticAudioClip, which allows easily making clips loop well by crossfading the end to the beginning (based on request by @Aegis_Wolf | Art Director)
-- This uses the position/duration field to determine the length of the crossfade
-- The resulting clip is shortened by the crossfade duration. Using longer clips can produce better results.
- Inspector now also shows number of samples in the audio clip
- Added support for Quad channel configuration to the new AudioX system
-- This fixes certain microphones not working due to only having 4 channel configuration available (e.g. Kinect microphone as reported by @art0007i)
- Added nodes to reinterpret floating point values as integers and vice versa (requested by @Coffee | Programmer and @Ukilop)
-- This can be used to extract/compose them as bits
-- They can be found in Math/Binary
-- HalfAsUShort, FloatAsUInt, DoubleAsULong, UShortAsHalf, UIntAsFloat and ULongAsDouble
[h2]Neos Classroom changes:[/h2]
- Added a board, which will automatically load any pictures selected from the database, without having to unload the 3D model (on desktop the images can also be navigated using the arrows on keyboard) (requested by @Karel | CEO on behalf of VR Lab)
[h2]Tweaks:[/h2]
- Security improvements for the Microphone Tip
-- When triggered with Tooltip Simulator, it will only record the user if their voice is set to Normal and above
--- This fixes being able to record users in whisper bubbles (reported by @Zyzyl and @Elektrospy)
--- If you start recording yourself, the tool will record you even in whisper bubble
--- However note that with whisper bubbles your voice data is still streamed over network, use private sessions for sensitive conversations!
--- When muted, the voice data is blocked at Neos input driver level and cannot be recorded in any way (this protection was already in place, just reiterating for clarification)
- Limited IcosphereSubdivisions to 8, to prevent generating excessive amounts of geometry (suggested by @Epsilion)
- Merged Polish locale additions by @art0007i
- Merged Russian locale additions and fixes by @Shadow Panther
[h2]Bugfixes:[/h2]
- SyncPlayback now filters invalid values (NaN and Infinity) being assigned to Speed or Position, preventing the internal state of things getting corrupted (discovered by @Kal)
- Fixed DrivePlaybackNode not respecting the looping parameter when computing playback position error, causing time jumps around the looping point
- Fixed opened inspector for playback constantly overriding the playback speed, preventing it from being set using other means (e.g. Set Speed node) while the inspector window is open (based on report by @Dante and @Aegis_Wolf | Art Director)
- Added validation to Vorbis encoder settings, preventing things from breaking when invalid Quality setting is used (e.g. negative quality on MicrophoneTip as discovered by @Ryuvi and @SmolCookie, reported by @Shifty | Quality Control Lead)
- Fixed "Position/Duration" field in the inspector being clamped to 1
- Fixed in-memory encoding cutting of last chunk of bytes for some formats (particularly OGG Vorbis), resulting in incomplete or corrupted file
- When processing OGG Vorbis audio clips that are shorter than 2 seconds or use samplerate lower than 32 kHz, Neos will encode them as WAV now to work around bugs in the Vorbis encoder producing corrupt files and sample length imprecision
- Fixed AudioBufferPool recycle queue growing to enormous sizes in some cases, causing stutters, long freezes and out of memory errrors (reported by @Shifty | Quality Control Lead on behalf of @Rukio)
- Fixed plugin postprocessing failing when ReleaseNotes.txt file is missing (reported by @Epsilion)

Security was improved for the Microphone Tip, so it can't be abused to record people in whisper bubbles (you can still record yoruself though). There are a few new LogiX nodes as well and other general bugfixes and tweaks.
[h2]New Features:[/h2]
- Added "Make Loopable (using crossfade)" processing option to StaticAudioClip, which allows easily making clips loop well by crossfading the end to the beginning (based on request by @Aegis_Wolf | Art Director)
-- This uses the position/duration field to determine the length of the crossfade
-- The resulting clip is shortened by the crossfade duration. Using longer clips can produce better results.
- Inspector now also shows number of samples in the audio clip
- Added support for Quad channel configuration to the new AudioX system
-- This fixes certain microphones not working due to only having 4 channel configuration available (e.g. Kinect microphone as reported by @art0007i)
- Added nodes to reinterpret floating point values as integers and vice versa (requested by @Coffee | Programmer and @Ukilop)
-- This can be used to extract/compose them as bits
-- They can be found in Math/Binary
-- HalfAsUShort, FloatAsUInt, DoubleAsULong, UShortAsHalf, UIntAsFloat and ULongAsDouble
[h2]Neos Classroom changes:[/h2]
- Added a board, which will automatically load any pictures selected from the database, without having to unload the 3D model (on desktop the images can also be navigated using the arrows on keyboard) (requested by @Karel | CEO on behalf of VR Lab)
[h2]Tweaks:[/h2]
- Security improvements for the Microphone Tip
-- When triggered with Tooltip Simulator, it will only record the user if their voice is set to Normal and above
--- This fixes being able to record users in whisper bubbles (reported by @Zyzyl and @Elektrospy)
--- If you start recording yourself, the tool will record you even in whisper bubble
--- However note that with whisper bubbles your voice data is still streamed over network, use private sessions for sensitive conversations!
--- When muted, the voice data is blocked at Neos input driver level and cannot be recorded in any way (this protection was already in place, just reiterating for clarification)
- Limited IcosphereSubdivisions to 8, to prevent generating excessive amounts of geometry (suggested by @Epsilion)
- Merged Polish locale additions by @art0007i
- Merged Russian locale additions and fixes by @Shadow Panther
[h2]Bugfixes:[/h2]
- SyncPlayback now filters invalid values (NaN and Infinity) being assigned to Speed or Position, preventing the internal state of things getting corrupted (discovered by @Kal)
- Fixed DrivePlaybackNode not respecting the looping parameter when computing playback position error, causing time jumps around the looping point
- Fixed opened inspector for playback constantly overriding the playback speed, preventing it from being set using other means (e.g. Set Speed node) while the inspector window is open (based on report by @Dante and @Aegis_Wolf | Art Director)
- Added validation to Vorbis encoder settings, preventing things from breaking when invalid Quality setting is used (e.g. negative quality on MicrophoneTip as discovered by @Ryuvi and @SmolCookie, reported by @Shifty | Quality Control Lead)
- Fixed "Position/Duration" field in the inspector being clamped to 1
- Fixed in-memory encoding cutting of last chunk of bytes for some formats (particularly OGG Vorbis), resulting in incomplete or corrupted file
- When processing OGG Vorbis audio clips that are shorter than 2 seconds or use samplerate lower than 32 kHz, Neos will encode them as WAV now to work around bugs in the Vorbis encoder producing corrupt files and sample length imprecision
- Fixed AudioBufferPool recycle queue growing to enormous sizes in some cases, causing stutters, long freezes and out of memory errrors (reported by @Shifty | Quality Control Lead on behalf of @Rukio)
- Fixed plugin postprocessing failing when ReleaseNotes.txt file is missing (reported by @Epsilion)


