Пример #1
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();
            }
        }
Пример #2
0
    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();
    }