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 void Begin(IScriptableApp app) { string strFile1 = GETARG("file1", ""); string strFile2 = GETARG("file2", ""); string strOutFile = GETARG("outfile", ""); if ("" == strFile1 || "" == strFile2 || "" == strOutFile) { MessageBox.Show("useage\nfile1=path\\filename&file2=path\\filename&outfile=path\\filename", "invald arguments"); return; } ISfFileHost fhOne = app.OpenFile(strFile1, true, true); if (null == fhOne) { return; } ISfFileHost fhTwo = app.OpenFile(strFile2, true, true); if (null == fhTwo) { fhOne.Close(CloseOptions.DiscardChanges); return; } ISfFileHost fhOut = app.NewFile(fhOne.DataFormat, false); fhOut.ReplaceAudio(new SfAudioSelection(0, 0), fhOne, new SfAudioSelection(fhOne)); fhOut.DoEffect("Invert/Flip", 0, new SfAudioSelection(fhOut), EffectOptions.EffectOnly); fhOut.WaitForDoneOrCancel(); fhOut.MixAudio(new SfAudioSelection(fhOut), 1.0, 1.0, fhTwo, new SfAudioSelection(fhTwo)); fhOut.WaitForDoneOrCancel(); fhOut.SaveAs(strOutFile, fhOne.SaveFormat.Guid, "Default Template", RenderOptions.RenderOnly); fhOut.WaitForDoneOrCancel(); fhOne.Close(CloseOptions.DiscardChanges); fhTwo.Close(CloseOptions.DiscardChanges); fhOut.Close(CloseOptions.DiscardChanges); // Close Sound Forge. System.Diagnostics.Process curr = System.Diagnostics.Process.GetCurrentProcess(); curr.CloseMainWindow(); }
public void Begin(IScriptableApp app) { string strOutFile = GETARG("outfile", "path to save file at"); if ("" == strOutFile) { MessageBox.Show("invald output path"); return; } OpenFileDialog openFile = new OpenFileDialog(); openFile.Title = "Open the input file."; ////string to hold the path of input file. String strFile1 = String.Empty; if (openFile.ShowDialog() == DialogResult.OK) { strFile1 = openFile.FileName.ToString(); } OpenFileDialog openOutputFile = new OpenFileDialog(); openOutputFile.Title = "Open the output file."; ////string to hold the path of output file. String strFile2 = String.Empty; if (openOutputFile.ShowDialog() == DialogResult.OK) { strFile2 = openOutputFile.FileName.ToString(); } ISfFileHost fhOne = app.OpenFile(strFile1, true, true); if (null == fhOne) { return; } ISfFileHost fhTwo = app.OpenFile(strFile2, true, true); if (null == fhTwo) { fhOne.Close(CloseOptions.DiscardChanges); return; } ISfFileHost fhOut = app.NewFile(fhOne.DataFormat, false); fhOut.ReplaceAudio(new SfAudioSelection(0, 0), fhOne, new SfAudioSelection(fhOne)); fhOut.DoEffect("Invert/Flip", 0, new SfAudioSelection(fhOut), EffectOptions.EffectOnly); fhOut.WaitForDoneOrCancel(); fhOut.MixAudio(new SfAudioSelection(fhOut), 1.0, 1.0, fhTwo, new SfAudioSelection(fhTwo)); fhOut.WaitForDoneOrCancel(); fhOut.SaveAs(strOutFile, fhOne.SaveFormat.Guid, "Default Template", RenderOptions.RenderOnly); fhOut.WaitForDoneOrCancel(); fhOne.Close(CloseOptions.DiscardChanges); fhTwo.Close(CloseOptions.DiscardChanges); SfAudioStatistics[] stat = new SfAudioStatistics[fhOut.Channels]; fhOut.UpdateStatistics(SfAudioSelection.All); stat[0] = fhOut.GetStatistics(0); stat[1] = fhOut.GetStatistics(1); stat[2] = fhOut.GetStatistics(2); stat[3] = fhOut.GetStatistics(3); stat[4] = fhOut.GetStatistics(4); stat[5] = fhOut.GetStatistics(5); stat[6] = fhOut.GetStatistics(6); stat[7] = fhOut.GetStatistics(7); MessageBox.Show(String.Format("Max Sample Value Channel 1 - {0},Channel 2 - {1},Channel 3 - {2},Channel 4 - {3},Channel 5 - {4},Channel 6 - {5},Channel 7 - {6},Channel 8 - {7}", stat[0].MaxValue, stat[1].MaxValue, stat[2].MaxValue, stat[3].MaxValue, stat[4].MaxValue, stat[5].MaxValue, stat[6].MaxValue, stat[7].MaxValue)); MessageBox.Show(String.Format("Min Sample Value Channel 1 - {0},Channel 2 - {1},Channel 3 - {2},Channel 4 - {3},Channel 5 - {4},Channel 6 - {5}, Channel 7 - {6}, Channel 8 - {7}", stat[0].MinValue, stat[1].MinValue, stat[2].MinValue, stat[3].MinValue, stat[4].MaxValue, stat[5].MinValue, stat[6].MinValue, stat[7].MinValue)); System.Diagnostics.Process curr = System.Diagnostics.Process.GetCurrentProcess(); }