示例#1
0
        public void WriteYaml(string filename, IOProject ioProject)
        {
            var yaml = serializer.Serialize(ioProject);

            if (yaml.Length == 0)
            {
                throw new Exception("Failed to serialize project, project wasn't saved");
            }
            else
            {
                File.WriteAllText(filename, yaml, Encoding.UTF8);
            }
        }
示例#2
0
        private IOProject GetIOProject(Project project)
        {
            var ioProject = new IOProject();

            ioProject.WavOptions.WavPrefix       = project.WavPrefix;
            ioProject.WavOptions.WavSuffix       = project.WavSuffix;
            ioProject.WavOptions.UserScaleY      = project.UserScaleY;
            ioProject.WavOptions.UserScaleX      = project.UserScaleX;
            ioProject.OtoOptions.OtoPrefix       = project.Prefix;
            ioProject.OtoOptions.OtoSuffix       = project.Suffix;
            ioProject.OtoOptions.VowelDecay      = project.DecayV;
            ioProject.OtoOptions.ConsonantDecay  = project.DecayC;
            ioProject.OtoOptions.RestDecay       = project.DecayR;
            ioProject.OtoOptions.VowelAttack     = project.AttackV;
            ioProject.OtoOptions.ConsonantAttack = project.AttackC;
            ioProject.OtoOptions.RestAttack      = project.AttackR;
            ioProject.ProjectOptions             = new IOProjectOptions
            {
                LastPage           = project.ProjectOptions.LastPage,
                PageSize           = project.ProjectOptions.PageSize,
                OtoPageSize        = project.ProjectOptions.OtoPageSize,
                MustHideNotEnabled = project.ProjectOptions.MustHideNotEnabled,
                MustHideCompleted  = project.ProjectOptions.MustHideCompleted
            };
            ioProject.ViewOptions = new IOViewOptions
            {
                DoShowPitch      = project.ViewOptions.DoShowPitch,
                DoShowSpectrum   = project.ViewOptions.DoShowSpectrum,
                DoShowWaveform   = project.ViewOptions.DoShowWaveform,
                SpectrumScale    = project.ViewOptions.SpectrumScale,
                SpectrumShift    = project.ViewOptions.SpectrumShift,
                SpectrumQualityX = project.ViewOptions.SpectrumQualityX,
                SpectrumQualityY = project.ViewOptions.SpectrumQualityY
            };
            if (project.Voicebank != null)
            {
                ioProject.Voicebank = project.Voicebank.Location;
            }
            if (project.Reclist != null)
            {
                ioProject.Reclist = project.Reclist.Name;
            }

            var wavConfigsList = new List <IOWavConfig>();

            foreach (var projectLine in project.ProjectLines)
            {
                if (projectLine.IsEmpty())
                {
                    continue;
                }
                var ioWavConfig = new IOWavConfig
                {
                    Rests      = projectLine.RestPoints.ToArray(),
                    Vowels     = projectLine.VowelPoints.ToArray(),
                    Consonants = projectLine.ConsonantPoints.ToArray()
                };
                if (projectLine.Recline != null)
                {
                    ioWavConfig.File = projectLine.Recline.Name;
                }
                wavConfigsList.Add(ioWavConfig);
            }
            ioProject.WavConfigs = wavConfigsList.ToArray();

            return(ioProject);
        }
示例#3
0
        private Project GetProject(IOProject ioProject, string projectDir)
        {
            var project = new Project
            {
                WavPrefix      = ioProject.WavOptions.WavPrefix,
                WavSuffix      = ioProject.WavOptions.WavSuffix,
                UserScaleY     = ioProject.WavOptions.UserScaleY,
                UserScaleX     = ioProject.WavOptions.UserScaleX,
                Prefix         = ioProject.OtoOptions.OtoPrefix,
                Suffix         = ioProject.OtoOptions.OtoSuffix,
                DecayV         = ioProject.OtoOptions.VowelDecay,
                DecayC         = ioProject.OtoOptions.ConsonantDecay,
                DecayR         = ioProject.OtoOptions.RestDecay,
                AttackV        = ioProject.OtoOptions.VowelAttack,
                AttackC        = ioProject.OtoOptions.ConsonantAttack,
                AttackR        = ioProject.OtoOptions.RestAttack,
                ProjectOptions = new ProjectOptions(),
                ViewOptions    = new ViewOptions()
            };

            project.ProjectOptions.LastPage           = ioProject.ProjectOptions.LastPage;
            project.ProjectOptions.PageSize           = ioProject.ProjectOptions.PageSize;
            project.ProjectOptions.OtoPageSize        = ioProject.ProjectOptions.OtoPageSize;
            project.ProjectOptions.MustHideNotEnabled = ioProject.ProjectOptions.MustHideNotEnabled;
            project.ProjectOptions.MustHideCompleted  = ioProject.ProjectOptions.MustHideCompleted;
            project.ViewOptions.DoShowPitch           = ioProject.ViewOptions.DoShowPitch;
            project.ViewOptions.DoShowWaveform        = ioProject.ViewOptions.DoShowWaveform;
            project.ViewOptions.DoShowSpectrum        = ioProject.ViewOptions.DoShowSpectrum;
            project.ViewOptions.SpectrumQualityY      = ioProject.ViewOptions.SpectrumQualityY;
            project.ViewOptions.SpectrumQualityX      = ioProject.ViewOptions.SpectrumQualityX;
            project.ViewOptions.SpectrumScale         = ioProject.ViewOptions.SpectrumScale;
            project.ViewOptions.SpectrumShift         = ioProject.ViewOptions.SpectrumShift;

            project.SetVoicebank(new Voicebank(PathResolver.Current.TryGetDirectoryName(projectDir), ioProject.Voicebank));
            var reclist = ReclistReader.Current.Read(ioProject.Reclist);

            if (!reclist.IsLoaded)
            {
                var testReclist = ReclistReader.Current.ReadTest(ioProject.Reclist);
                if (testReclist.IsLoaded)
                {
                    reclist = testReclist;
                }
            }
            project.SetReclist(reclist);
            project.SetReplacer(ReplacerReader.Current.Read(ioProject.Replacer, project.Reclist));

            foreach (var ioWavConfig in ioProject.WavConfigs)
            {
                if (ioWavConfig.File == null)
                {
                    continue;
                }
                if (!project.ProjectLinesByFilename.ContainsKey(ioWavConfig.File))
                {
                    project.AddProjectLine(ioWavConfig.File, new ProjectLine());
                }
                var projectLine = project.ProjectLinesByFilename[ioWavConfig.File];
                projectLine.SetPoints(ioWavConfig.Vowels, ioWavConfig.Consonants, ioWavConfig.Rests);
                projectLine.UpdateZones();
            }

            return(project);
        }