Пример #1
0
        protected override void Execute()
        {
            _file      = App.CurrentFile;
            _fileTasks = new FileTasks(_file);
            _fileTasks.EnforceStereoFileOpen();
            _fileTasks.ZoomOutFull();

            FileMarkersWrapper     markers = new FileMarkersWrapper(_file);
            TrackMarkerNameBuilder trackMarkerNameBuilder = new TrackMarkerNameBuilder();
            TrackMarkerFactory     markerAndRegionFactory = new TrackMarkerFactory(markers, Output, trackMarkerNameBuilder);

            _splitTrackList = new SplitTrackList(markerAndRegionFactory, markerAndRegionFactory, trackMarkerNameBuilder, markers, new TrackMarkerSpecifications(), Output);

            _vinylRipOptions     = new VinylRipOptions();
            _noiseprintSelection = _fileTasks.EnforceNoisePrintSelection(App, _vinylRipOptions.NoiseprintLengthSeconds);

            // TODO: aiming to get this to re-use the initialisation from VinylRip2, then once valid/initialized, throw up the confirm tracks form and do the existing processing/splitting
            // TODO: validate tracks

            DialogResult result = ConfirmTrackSplitsForm(Script.Application.Win32Window);

            if (result == DialogResult.Cancel)
            {
                return;
            }

            DoFinalAudioClean();
            Directory.CreateDirectory(_outputDirectory);

            _splitTrackList.InitTracks(_vinylRipOptions);
            _splitTrackList.DumpToScriptWindow();

            DoTrackSplitting(_splitTrackList, trackMarkerNameBuilder);
        }
Пример #2
0
        protected override void Execute()
        {
            _file      = App.CurrentFile;
            _fileTasks = new FileTasks(_file);
            _fileTasks.EnforceStereoFileOpen();
            _fileTasks.ZoomOutFull();

            FileMarkersWrapper     markers = new FileMarkersWrapper(_file);
            TrackMarkerNameBuilder trackMarkerNameBuilder = new TrackMarkerNameBuilder();
            TrackMarkerFactory     markerAndRegionFactory = new TrackMarkerFactory(markers, Output, trackMarkerNameBuilder);

            _splitTrackList = new SplitTrackList(markerAndRegionFactory, markerAndRegionFactory, trackMarkerNameBuilder, markers, new TrackMarkerSpecifications(), Output);

            _vinylRipOptions = new VinylRipOptions();

            // TODO: validate tracks

            _splitTrackList.InitTracks(_vinylRipOptions);
            _splitTrackList.DumpToScriptWindow();

            EditTracksViewModel viewModel = new EditTracksViewModel(_fileTasks);

            EditTracksController controller = new EditTracksController(App, new EditTracksFormFactory(), this, Output, _fileTasks);

            controller.Edit(viewModel, _splitTrackList, _vinylRipOptions);
        }
Пример #3
0
 public void Edit(EditTracksViewModel viewModel, SplitTrackList tracks, VinylRipOptions options)
 {
     _options = options;
     _tracks  = tracks;
     _vm      = viewModel;
     viewModel.Build(tracks, _entryPoint.ScriptTitle);
     _form = _formFactory.Create(viewModel, this, _output);
     BindFormActions();
     if (_vm.HasTracks)
     {
         _vm.CurrentTrack = tracks.GetTrack(1);
     }
     _form.ShowDialog(_app.Win32Window);
 }
Пример #4
0
        private void DoTrackSplitting(SplitTrackList tracks, ICreateTrackMarkerNames trackMarkerNameBuilder)
        {
            //App.FindRenderer("FLAC Audio", "flac");
            //foreach (ISfRenderer r in App.Renderers)
            //{
            //    Output.LineBreakToScriptWindow();
            //    Output.ToScriptWindow(r.Name);
            //    Output.ToScriptWindow(r.Extension);
            //    Output.ToScriptWindow(r.Guid);
            //    foreach (ISfGenericPreset preset in r.Templates)
            //    {
            //        Output.ToScriptWindow(preset.Name);
            //    }
            //}
            //tracks.Clear();
            foreach (SplitTrackDefinition track in tracks)
            {
                ISfFileHost trackFile = _file.NewFile(track.GetSelectionWithFades());
                trackFile.Markers.Clear();
                trackFile.Summary.Album   = _tbxAlbum.Text;
                trackFile.Summary.Artist  = _tbxArtist.Text;
                trackFile.Summary.TrackNo = string.Concat(track.Number, "/", tracks.Count);

                FileTasks trackTasks = new FileTasks(trackFile);
                if (track.AddFadeIn)
                {
                    Output.ToScriptWindow("Track {0}: Fade In {1} Samples", track.Number, track.FadeInLength);
                    trackFile.Window.SetSelectionAndScroll(0, track.FadeInLength, DataWndScrollTo.NoMove);
                    App.DoMenuAndWait("Process.FadeIn", false);
                }
                if (track.AddFadeOut)
                {
                    Output.ToScriptWindow("Track {0}: Fade Out {1} Samples", track.Number, track.FadeOutLength);
                    trackFile.Window.SetSelectionAndScroll(track.FadeOutStartPosition, trackFile.Length, DataWndScrollTo.NoMove);
                    App.DoMenuAndWait("Process.FadeOut", false);
                }
                trackTasks.ApplyEffectPreset(App, trackTasks.SelectAll(), "iZotope MBIT+ Dither", "Convert to 16 bit (advanced light dither)", EffectOptions.EffectOnly, Output.ToScriptWindow);

                string savePath = string.Concat(_outputDirectory, Path.DirectorySeparatorChar, trackMarkerNameBuilder.GetRegionMarkerName(track.Number) + ".flac");
                trackFile.SaveAs(savePath, "FLAC Audio", "44,100 Hz, 16 Bit, Stereo", RenderOptions.SaveMetadata);
                trackFile.Close(CloseOptions.QuerySaveIfChanged);

                Output.ToScriptWindow("Saved '{0}'", savePath);
                Output.LineBreakToScriptWindow();
            }
        }
Пример #5
0
 public void Build(SplitTrackList tracks, string scriptTitle)
 {
     _formTitle = scriptTitle;
     _tracks    = tracks;
 }