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); }
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); }
//TODO: clear console //TODO: come up with a way of saving settings between script runs, and between the 2 scripts (save options to json?) protected override void Execute() { _file = App.CurrentFile; _fileTasks = new FileTasks(_file); _fileTasks.EnforceStereoFileOpen(); _fileTasks.ZoomOutFull(); //TODO: retain marker positions in script and undo NOT working! //_file.UndosAreEnabled = true; //int undoId = _file.BeginUndo("PrepareAudio"); //_file.EndUndo(undoId, true); _vinylRipOptions = new VinylRipOptions(); _noiseprintSelection = _fileTasks.EnforceNoisePrintSelection(App, _vinylRipOptions.NoiseprintLengthSeconds); _file.Markers.Add(new SfAudioMarker(_noiseprintSelection)); CleanVinylRecording(AggressiveCleaningPreset, 3, _noiseprintSelection); //TODO: configure number of noise reduction passes? _vinylRipOptions.StartScanFilePositionInSamples = _file.SecondsToPosition(_vinylRipOptions.NoiseprintLengthSeconds); _trackList = FindTracks(App, _file); App.DoMenuAndWait("Edit.UndoAll", false); FileMarkersWrapper markers = new FileMarkersWrapper(_file); TrackMarkerFactory regionFactory = new TrackMarkerFactory(markers, Output, new TrackMarkerNameBuilder()); foreach (TrackDefinition track in _trackList) { regionFactory.CreateRegion(track.Number, track.StartPosition, track.Length); } }
public EditTracksController(IScriptableApp app, EditTracksFormFactory formFactory, EntryPointBase entryPoint, OutputHelper output, FileTasks fileTasks) { _app = app; _formFactory = formFactory; _entryPoint = entryPoint; _output = output; _fileTasks = fileTasks; }
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(); } }
public EditTracksViewModel(FileTasks fileTasks) { _fileTasks = fileTasks; }