// SPDX-License-Identifier: AGPL-3.0-only /** * Digital Voice Modem - Audio Bridge * AGPLv3 Open Source. Use is subject to license terms. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * @package DVM / Audio Bridge * @license AGPLv3 License (https://opensource.org/licenses/AGPL-3.0) * * Copyright (C) 2023 Bryan Biedenkapp, N2PLL * */ using System; using NAudio.Wave; namespace WhackerLinkConsoleV2 { /// /// /// public class SampleTimeConvert { /* ** Methods */ /// /// (ms) to sample count conversion /// /// Wave format /// Number of milliseconds /// Number of samples public static int ToSamples(WaveFormat format, int ms) { return (int)(((long)ms) * format.SampleRate * format.Channels / 1000); } /// /// Sample count to (ms) conversion /// /// Wave format /// Number of samples /// Number of milliseconds public static int ToMS(WaveFormat format, int samples) { return (int)(((float)samples / (float)format.SampleRate / (float)format.Channels) * 1000); } /// /// samples to bytes conversion /// /// Wave format /// Number of samples /// Number of bytes for the number of samples public static int ToBytes(WaveFormat format, int samples) { return samples * (format.BitsPerSample / 8); } /// /// (ms) to bytes conversion /// /// Wave format /// Number of milliseconds /// Number of bytes for the amount of audio in (ms) public static int MSToSampleBytes(WaveFormat format, int ms) { return ToBytes(format, ToSamples(format, ms)); } } // public class SamplesToMS } // namespace dvmbridge