Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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();
            }
        }
Esempio n. 4
0
        public ISoundPlayerBuilder <T> WithVoicePool(IVoicePool voicePool)
        {
            VoicePool = voicePool;

            return(this);
        }