private void ParseFromV1(XAudio2 xaudio, WaveFormat waveFormat, IVoicePool voicePool, string jsonData) { var project = (ProjectDtoV1)JsonConvert.DeserializeObject(jsonData, typeof(ProjectDtoV1)); Tracks = project.SampleTracks.ToList() .Select(v1 => { var samplePlayer = new SamplePlayer(); var buildSamplePlayer = Task.Run(async() => await samplePlayer.WithInput(StorageFileLocator.FromDto(v1.File)) .WithXAudio(xaudio) .WithWaveFormat(waveFormat) .WithVoicePool(voicePool) .WithPitch(v1.Pitch) .WithChannelPan(v1.Pan) .WithChannelVolume(v1.Volume) .BuildAsync()).Result; var newTrack = new Track(buildSamplePlayer); newTrack.PlayWithTicks(v1.PlayAt); return(newTrack); }) .ToList(); MasterTrackPan = project.MasterTrack.Pan; MasterTrackPitch = project.MasterTrack.Pitch; MasterTrackVolume = project.MasterTrack.Volume; MasterTrackTransportPosition = project.MasterTrack.TransportPosition; MasterTrackPlaying = project.MasterTrack.Playing; MasterTrackBpm = project.MasterTrack.BPM; }
static AudioDefines() { WaveFormat = new WaveFormat(); XAudio = new XAudio2(); MasteringVoice = new MasteringVoice(XAudio); SubmixVoice = new SubmixVoice(XAudio); SubmixVoice.SetOutputVoices(new[] { new VoiceSendDescriptor(MasteringVoice) }); VoicePool = new VoicePool(XAudio, SubmixVoice); }
public void CreateDataFromJsonProject(XAudio2 xaudio, WaveFormat waveFormat, IVoicePool voicePool, string jsonData) { var version = (ProjectVersionDto)JsonConvert.DeserializeObject(jsonData, typeof(ProjectVersionDto)); switch (version.Version) { case 1: ParseFromV1(xaudio, waveFormat, voicePool, jsonData); break; default: throw new InvalidOperationException(); } }
public ISoundPlayerBuilder <T> WithVoicePool(IVoicePool voicePool) { VoicePool = voicePool; return(this); }