public CachedAudioEffect(AudioEffectTypes audioEffect)
        {
            AudioEffectType = audioEffect;

            var file = GetFile();

            AudioEffectBytes = new byte[0];

            if (file != null)
            {
                using (var reader = new WaveFileReader(file))
                {
                    //    Assert.AreEqual(16, reader.WaveFormat.BitsPerSample, "Only works with 16 bit audio");
                    if (reader.WaveFormat.BitsPerSample == 16 && reader.WaveFormat.Channels == 1)
                    {
                        AudioEffectBytes = new byte[reader.Length];
                        var read = reader.Read(AudioEffectBytes, 0, AudioEffectBytes.Length);
                        Logger.Info($"Read Effect {audioEffect} from {file} Successfully");
                    }
                    else
                    {
                        Logger.Info($"Unable to read Effect {audioEffect} from {file} Successfully - not 16 bits!");
                    }
                }
            }
            else
            {
                Logger.Info($"Unable to find file for effect {audioEffect} in AudioEffects\\{FileNameLookup[(int) audioEffect]} ");
            }
        }
        public CachedAudioEffect(AudioEffectTypes audioEffect, string fileName, string path)
        {
            FileName        = fileName;
            AudioEffectType = audioEffect;

            var file = path;

            AudioEffectBytes = new byte[0];

            if (File.Exists(file))
            {
                using (var reader = new WaveFileReader(file))
                {
                    //    Assert.AreEqual(16, reader.WaveFormat.BitsPerSample, "Only works with 16 bit audio");
                    if (reader.WaveFormat.BitsPerSample == RequiredFormat.BitsPerSample && reader.WaveFormat.SampleRate == reader.WaveFormat.SampleRate && reader.WaveFormat.Channels == 1)
                    {
                        AudioEffectBytes = new byte[reader.Length];
                        var read = reader.Read(AudioEffectBytes, 0, AudioEffectBytes.Length);
                        Logger.Info($"Read Effect {audioEffect} from {file} Successfully - Format {reader.WaveFormat}");

                        Loaded = true;
                    }
                    else
                    {
                        Logger.Info($"Unable to read Effect {audioEffect} from {file} Successfully - {reader.WaveFormat} is not {RequiredFormat} !");
                    }
                }
            }
            else
            {
                Logger.Info($"Unable to find file for effect {audioEffect} in AudioEffects\\{FileName} ");
            }
        }
        public CachedAudioEffect(AudioEffectTypes audioEffect)
        {
            AudioEffectType = audioEffect;

            var file = GetFile();

            using (var reader = new WaveFileReader(file))
            {
                //    Assert.AreEqual(16, reader.WaveFormat.BitsPerSample, "Only works with 16 bit audio");
                AudioEffectBytes = new byte[reader.Length];
                var read = reader.Read(AudioEffectBytes, 0, AudioEffectBytes.Length);
            }
        }
 public CachedAudioEffect(AudioEffectTypes audioEffect) : this(audioEffect, audioEffect.ToString() + ".wav", AppDomain.CurrentDomain.BaseDirectory + "\\AudioEffects\\" + audioEffect.ToString() + ".wav")
 {
 }