public static void Execute(Arguments arguments)
        {
            if (arguments == null)
            {
                arguments = Dev();
            }

            string   opFName       = ANALYSIS_NAME + ".txt";
            FileInfo opPath        = arguments.Output.CombineFile(opFName);
            string   audioFileName = arguments.Source.Name;

            Log.Verbosity = 1;

            string title = "# FOR DETECTION OF ACOUSTIC EVENTS HAVING A GRID OR GRATING STRUCTURE";
            string date  = "# DATE AND TIME: " + DateTime.Now;

            LoggedConsole.WriteLine(title);
            LoggedConsole.WriteLine(date);
            LoggedConsole.WriteLine("# Output folder:  " + arguments.Output);
            LoggedConsole.WriteLine("# Recording file: " + arguments.Source.Name);
            FileTools.WriteTextFile(opPath.FullName, date + "\n# Recording file: " + audioFileName);

            //READ PARAMETER VALUES FROM INI FILE
            var configuration = new ConfigDictionary(arguments.Config);
            Dictionary <string, string> configDict = configuration.GetTable();

            Dictionary <string, string> .KeyCollection keys = configDict.Keys;

            int startMinute           = 5; //dummy value
            var fiSegmentOfSourceFile = arguments.Source;
            var diOutputDir           = arguments.Output;

            //#############################################################################################################################################
            DataTable dt = AnalysisReturnsDataTable(startMinute, fiSegmentOfSourceFile, configDict, diOutputDir);

            //#############################################################################################################################################
            if (dt == null)
            {
                Log.WriteLine("\n\n\n##############################\n WARNING! No events returned.");
            }
            else
            {
                //LoggedConsole.WriteLine("\tRecording Duration: {0:f2}seconds", recordingTimeSpan.TotalSeconds);
                LoggedConsole.WriteLine("# Event count for minute {0} = {1}", startMinute, dt.Rows.Count);
                DataTableTools.WriteTable2Console(dt);
            }

            LoggedConsole.WriteLine("# Finished recording:- " + arguments.Source.FullName);
        }