using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Text;
using System.Windows.Forms;
using System.Linq; //OTHERWISE LIST PROCESSING IS NOT WORKING
using ExcelFormulaParser_GT_PARSER;
using ExcelFormulaParser_GT_PARSER.GT_PARSERS;
using SAAN_GIF_COMPONENTS;
using ASAANSOL_AnimatedGif;
using System.Globalization;
using SAANPDF;
using SAANSDXF;
// after barajethu 03022023
using SIMPLE_MathParserTK;
using SAANSDXF.Objects;
using SAANSDXF.Blocks;
using SAANAUDS.Wave.SampleProviders;
using System.Threading.Tasks;
using SAANAUDS.Wave;
using System.IO;
using SAANAUDSDemo;
using SAANAUDS;
using SAANAUDSDemo.Generator;
using SAANAUDSDemo.AudioPlaybackDemo;
using SAANAUDS.Midi;
using System.Text.RegularExpressions;
/////////////////will disturb with Forms Timer using System.Threading;
//https://youtu.be/zlm1aajH6gY the riemann hypothesis video link
namespace ExcelFormulaParser_GT_PARSERSample
{
//anonymous answer to What is Trigonometry
//https://www.quora.com/anonymous/f86618533f4d4380a424bd1da829e1a7
//what is the daily use of trigonometry Anonymous answer
//https://www.quora.com/anonymous/ba583175ef97434c94d1cdc6df48497a
public partial class SampleForm : Form
{
/// <summary>
/// i have tested that this part is working in the composer tab
/// now i need to populate the data properly and to play the lyrics planners
/// to arrange the whole lyrics loaders and to compose the things with handy styles
/// </summary>
///
public string ___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";//inputdataGridView___COMPOSER
public string ___selected_filesnames_for_INDINOTATIONS_OR_INDITALAS = "";//inputdataGridView___COMPOSER
public string ___selected_filesnames_for_SAAN_LYRIKS_FILES = "";
private SAANAUDS.Midi.MidiOut SAANS_TEMP_SAANAUDS_Midi_MidiOut;
private Timer SAANS_TEMP_playTimer;
private int SAANS_TEMP_currentNoteIndex = 0;
private int[] SAAN_TEMPS_midiNotes = { };// { 60, 62, 64, 65, 68, 69, 71, 72 }; // MIDI notes for C major scale // i will populate these from the data grids
private double[] SAAN_TEMPS_midiNotes_durations = { };// { 600, 620, 640, 650, 680, 690, 710, 720 };
int[] temp_notesarray = { };// new int[___temp_array_of___.Length];
double[] temp_durationsarray = { };// new double[___temp_array_of___.Length];
int[] temp_velocity_array = { };// new int[___temp_array_of___.Length];
int[] temp_patch_array = { };// new int[___temp_array_of___.Length];
int[] temp_channelsarray = { };// new int[___temp_array_of___.Length];
string[] ___TEMP___PITCHBEND_PERCENT_DURATIONS_ARRAY_OF_NOTES = { };
string[] ___TEMP___PITCHBEND_DATAVALUES_8192_TO_16383_ARRAY_OF_NOTES = { };
private int SAANS_TEMP_duration = 500; // Duration for each note in milliseconds ///i will bring this from the array
//////THIS ABOVE PARTS ARE WITH SAANAUDS AND THE TESTED STREAMING ARE WORKING PLAYING THE NOTES REAL TIMES AND WE CAN HANDLE THE CALIBRATIONS OF THE DURATIONS TO PLAY PROPERLY
///
/// <summary>
/// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// </summary>
SAAN_FRESH_MIDSLCSMIDI.MidiStream _play___able_SAAN_FRESH_MIDSLCSMIDI_MidiStream;
SAAN_FRESH_MIDSLCSMIDI.MidiFile _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile;
SAAN_FRESH_MIDSLCSMIDI.MidiFile _processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile;
SAAN_FRESH_MIDSLCSMIDI.MidiDevice SAAN_FRESH_MIDSLCSMIDI_mididevices_0_devs;
bool hasTrack0 = false;
private SAAN_CustomAudioPlayer saan_Customs_Audio_player;
/// private Timer updateTimer___FOR_GENERATORPANELPLAYWAVS_TO_WAVVIEWER;
public SampleForm()
{
InitializeComponent();
}
/// <summary>
/// call this from the loader button with the filenames
/// </summary>
/// <param name="path_to_audio_files"></param>
/// <param name="volumeTrackBar"></param>
/// <param name="sampleRateTrackBar"></param>
public void InitializeAudio(string path_to_audio_files, TrackBar volumeTrackBar, TrackBar sampleRateTrackBar)
{
saan_Customs_Audio_player = new SAAN_CustomAudioPlayer(path_to_audio_files, volumeTrackBar, sampleRateTrackBar);
saan_Customs_Audio_player.VolumeChanged += (sender, e) =>
{
// Handle volume changed event
}; ////// audioPlayer.VolumeChanged += (sender, e) =>
saan_Customs_Audio_player.SampleRateChanged += (sender, e) =>
{
// Handle sample rate changed event
}; //audioPlayer.SampleRateChanged += (sender, e) =>
}// public void InitializeAudio(string path_to_audio_files, TrackBar volumeTrackBar, TrackBar sampleRateTrackBar)
public List<SAAN_LINES_FOR_NOTES> ___saan_list_of______SAAN_LINES_FOR_NOTES
= new List<SAAN_LINES_FOR_NOTES>();
/// ///////////////////////////////////////// THESE ARE NECESSARY TO MAKE THE NOTES GOOD /////////////////
public double public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE = 0;
public double public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE = 0;
public double public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MILLISECONDS = 0;
public double public_double___label_CALCULATED_DURATION_OF_MIDI_MEASURE_BAR_SIZE_IN_TICKS_OF_MIDI = 0;
public double public_double___label_CALCULATED_TOTAL_NUMBER_OF_MEASURES_FOUND_TOTAL_NUMBERS_OF_BARS_FOUND_IN_TOTAL_DURATION = 0;
public double public_double___label_CALCULATED_TOTAL_NUMBER_OF_MIDI_NOTES_IN_TOTAL_DURATION_OF_MIDI_TICKS = 0;
public double public_double___label_TOTAL_NUMBER_OF_BEATS_FOUND_IN_TOTAL_DURATION_OF_TICKS_OF_MIDI = 0;
public double public_double___label_CALCULATED_NOTES_PER_BEAT = 0;
public double public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE = 0;
/// <summary>
/// ///////////////////////////////////////// THESE ARE NECESSARY TO MAKE THE NOTES GOOD /////////////////
/// </summary>
public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
public double public_double_milliseconds_per_centi_degrees = 0;
public double public_double_milliseconds_per_UNIT_SINGLE_degrees = 0;
public double public_double_centi_degrees_per_milliseconds___for_reverse_calculations_of_lengths_on_dxf = 0;
public double public_double_degrees_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf = 0;
/// not done for radians public double public_double_centi_radians_per_milliseconds___for_reverse_calculations_of_lengths_on_dxf = 0;
public double public_double_radians_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf = 0;
public double PUBLIC_DOUBLE___ESTIMATED_DRUMS_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES = 0;
public double PUBLIC_DOUBLE___ESTIMATED_STRING_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES = 0;
public double PUBLIC_DOUBLE___ESTIMATED_WIND_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES = 0;
public double PUBLIC_DOUBLE_GIVEN_RADIUS_AS_FREQUENCY_TO_CHECK_SIZED_OF_DIFFERENT_NOTES_ON_TANGENT_OF_CIRCUMFERENCES_FOR_GIVEN_FREQUENCY___textBox_PRECALC_NOTES_LENGTHS_FITS_FOR_FREQ_AS_RADIUS = 0;
public double PUBLIC_DOUBLE___ESTIMATED_DRUMS_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES = 0;
public double PUBLIC_DOUBLE___ESTIMATED_STRING_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES = 0;
public double PUBLIC_DOUBLE___ESTIMATED_WIND_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES = 0;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary>
/// FOR DIFFERENT CONTEXTS WE HAVE DIFFERENT COMPACTNESS DURATION FOR THE WHOLE THINGS AND SO WE DO THE REVERSE CALCULATIONS FOR THE SINGLE NOTES
/// AND TO PLAN FOR THAT WE NEED THE CLARITY OF DISTRIBUTIONS FOR EVERY KINDS OF INSTRUMENTS SUCH THAT WE CAN UNDERSTAND WHAT ARE THE NATURES OF OVERLAPPING
/// IN THE SYSTEMS OF THE NOTES PLACEMENTS THE CLARITY OF NOTES PLACEMENTS ARE IMPORTANT OTHERWISE SEVERAL OVERLAPS OF DIFFERENT NOTES CAN OCCUR WHICH LOOKS CLUMSY OR NOT RENDERED PROPERLY
/// </summary>
public double PUBLIC_DOUBLE___MIDITKS_TO_MILLISECOND_CONVERTER_FOR_THIS_CONTEXT___MILLISECONDS_PER_MIDITKS = 1;
public double PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS = 1;
public double PUBLIC_DOUBLE___t_Drums_max_MIDITKS_is_min_for_t_Strings_transitions = 0;
public double PUBLIC_DOUBLE___t_Strings_max_MIDITKS_is_t_winds_min_data_transitions = 0;
public double PUBLIC_DOUBLE___t_Winds_min_MIDITKS_is_same_as_t_Strings_max_data_supplied = 0;
public double PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS = 1100;
//textBox_PITCH_BENDS_SLABS_MILLIS
double DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT = 30;
public double PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS = 30;
public double PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS = 30;
public double PUBLIC_DOUBLE_WINDS_TO_HIGHEST_SLABS_DURATIONS_MILLISECS = 30;
public double PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___PUBLIC_DOUBLE_WINDS_TO_HIGHEST_SLABS_DURATIONS_MILLISECS = 30;
/// <summary>
/// //////////////////////FOR REFERENCES
/// </summary>
////////////public static void ToDoReverseCalculate___FROM_MILLISECONDS_TOTAL___TO_FIND_THE_BPM_WITH_DRUMNS_NOTES_COUNT___STRINGS_NOTES_COUNT___WINDS_NOTES_COUNT(double TOT_MILLISECONDS, double t_Drums_min_milliseconds, double t_Strings_min_milliseconds, double t_Winds_min_milliseconds, int TOTAL_NOTES_IN_THE_SONG, int TPQN___TICKS_PER_QUARTERNOTES_480_K)
////////////{
//////////// // Solve for D, S, W
//////////// double totalWeight = (t_Drums_min_milliseconds + t_Strings_min_milliseconds + t_Winds_min_milliseconds);
//////////// double weightFactor = TOTAL_NOTES_IN_THE_SONG / totalWeight;
//////////// double D = TOT_MILLISECONDS / (weightFactor * t_Drums_min_milliseconds + t_Strings_min_milliseconds + t_Winds_min_milliseconds);
//////////// double S = D * (t_Drums_min_milliseconds / t_Strings_min_milliseconds);
//////////// double W = D * (t_Drums_min_milliseconds / t_Winds_min_milliseconds);
//////////// Console.WriteLine($"D (Percussive Notes): {D}");
//////////// Console.WriteLine($"S (String Notes): {S}");
//////////// Console.WriteLine($"W (Wind Notes): {W}");
//////////// // Calculate TOT_MINUTES
//////////// double TOT_MINUTES = TOT_MILLISECONDS / 60000.0;
//////////// // Calculate BPM
//////////// double BPM = TOTAL_NOTES_IN_THE_SONG / TOT_MINUTES;
//////////// Console.WriteLine($"BPM: {BPM}");
//////////// // MIDI Ticks Calculation
//////////// double Note_duration_ticks = (BPM * TOT_MILLISECONDS) / (60000.0 * TPQN___TICKS_PER_QUARTERNOTES_480_K);
//////////// Console.WriteLine($"Note duration in ticks: {Note_duration_ticks}");
////////////}// public static void ToDoReverseCalculate___FROM_MILLISECONDS_TOTAL___TO_FIND_THE_BPM_WITH_DRUMNS_NOTES_COUNT___STRINGS_NOTES_COUNT___WINDS_NOTES_COUNT(double TOT_MILLISECONDS, double t_Drums_min_milliseconds, double t_Strings_min_milliseconds, double t_Winds_min_milliseconds, int TOTAL_NOTES_IN_THE_SONG, int TPQN___TICKS_PER_QUARTERNOTES_480_K)
public double PUBLIC_DOUBLE___TOTAL_WEIGHT_IS_SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES = 0.000000000000001;
public double PUBLIC_DOUBLE___TOTAL_WEIGHTFACTOR_IS_TOTAL_NOTES_IN_THE_SONG_DIVIDED_WITH___SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES = 0;
public double PUBLIC_DOUBLE___TOT_MILLISECONDS = 0;
public double PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions = 0;
public double PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions = 0;
public double PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied = 0;
public double PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG = 0;
public int PUBLIC_INT___TPQN___TICKS_PER_QUARTERNOTES_480_K = 0;
public double PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG___TO___PLAN___FROM___TEXTBOX_DATA_TO_ACHIEVES = 0;
public double PUBLIC_DOUBLE___TO_REITERATE_TO_FIND___FOR_textBox___TOTAL_NOTES_TO_PLAN_ITERATES = 0;
public double PUBLIC_DOUBLE___COUNT_ESTIMATED_Drums_NOTES_COUNTS = 0;
public double PUBLIC_DOUBLE___COUNT_ESTIMATED_Strings_NOTES_COUNTS = 0;
public double PUBLIC_DOUBLE___COUNT_ESTIMATED_Winds_NOTES_COUNTS = 0;
public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
public double public_double_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT = 1;
public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
public double public_double___reverse_calculated_data_for___MELODY_BPM_ESTIMATED = 0;
public double public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480 = 0;
public List<double> public_list_of_6_digit_double_precission_unique_slopes_found = null;
public List<long> public_list_of_long_type_note_durations = null;
////////////ALL DATA IN STRINGS ROW NUMBER, PATCH_INSTRUMENTS_NUMBER, MIDI_PATCH_INSTRUMENTS_NAMES
////////////0,,
////////////1,1, Acoustic Grand Piano
////////////2,2, Bright Acoustic Piano
////////////3,3, Electric Grand Piano
////////////4,4, Honky-tonk Piano
////////////5,5, Electric Piano 1 (Rhodes Piano)
////////////6,6,Electric Piano 2 (Chorused Piano)
////////////7,7,Harpsichord
////////////8,8,Clavinet
////////////9,9,Celesta
////////////10,10,Glockenspiel
////////////11,11,Music Box
////////////12,12, Vibraphone
////////////13,13, Marimba
////////////14,14, Xylophone
////////////15,15, Tubular Bells
////////////16,16,Dulcimer(Santur)
////////////17,17,Drawbar Organ(Hammond)
////////////18,18,Percussive Organ
////////////19,19, Rock Organ
////////////20,20,Church Organ
////////////21,21, Reed Organ
////////////22,22,Accordion(French)
////////////23,23,Harmonica
////////////24,24,Tango Accordion(Band neon)
////////////25,25,Acoustic Guitar(nylon)
////////////26,26,Acoustic Guitar(steel)
////////////27,27,Electric Guitar(jazz)
////////////28,28,Electric Guitar(clean)
////////////29,29,Electric Guitar(muted)
////////////30,30,Overdriven Guitar
////////////31,31, Distortion Guitar
////////////32,32,Guitar harmonics
////////////33,33, Acoustic Bass
////////////34,34,Electric Bass(fingered)
////////////35,35,Electric Bass(picked)
////////////36,36,Fretless Bass
////////////37,37, Slap Bass 1
////////////38,38,Slap Bass 2
////////////39,39, Synth Bass 1
////////////40,40,Synth Bass 2
////////////41,41, Violin
////////////42,42, Viola
////////////43,43, Cello
////////////44,44, Contrabass
////////////45,45, Tremolo Strings
////////////46,46,Pizzicato Strings
////////////47,47, Orchestral Harp
////////////48,48,Timpani
////////////49,49,String Ensemble 1 (strings)
////////////50,50,String Ensemble 2 (slow strings)
////////////51,51,SynthStrings 1
////////////52,52,SynthStrings 2
////////////53,53,Choir Aahs
////////////54,54, Voice Oohs
////////////55,55,Synth Voice
////////////56,56, Orchestra Hit
////////////57,57,Trumpet
////////////58,58,Trombone
////////////59,59,Tuba
////////////60,60,Muted Trumpet
////////////61,61, French Horn
////////////62,62,Brass Section
////////////63,63, SynthBrass 1
////////////64,64, SynthBrass 2
////////////65,65, Soprano Sax
////////////66,66,Alto Sax
////////////67,67, Tenor Sax
////////////68,68,Baritone Sax
////////////69,69, Oboe
////////////70,70, English Horn
////////////71,71,Bassoon
////////////72,72,Clarinet
////////////73,73,Piccolo
////////////74,74,Flute
////////////75,75,Recorder
////////////76,76,Pan Flute
////////////77,77, Blown Bottle
////////////78,78,Shakuhachi
////////////79,79,Whistle
////////////80,80,Ocarina
////////////81,81,Lead 1 (square wave)
////////////82,82,Lead 2 (sawtooth wave)
////////////83,83,Lead 3 (calliope)
////////////84,84,Lead 4 (chiffer)
////////////85,85,Lead 5 (charang)
////////////86,86,Lead 6 (voice solo)
////////////87,87,Lead 7 (fifths)
////////////88,88,Lead 8 (bass + lead)
////////////89,89,Pad 1 (new age Fantasia)
////////////90,90, Pad 2 (warm)
////////////91,91,Pad 3 (polysynth)
////////////92,92,Pad 4 (choir space voice)
////////////93,93, Pad 5 (bowed glass)
////////////94,94,Pad 6 (metallic pro)
////////////95,95,Pad 7 (halo)
////////////96,96,Pad 8 (sweep)
////////////97,97,FX 1 (rain)
////////////98,98,FX 2 (soundtrack)
////////////99,99,FX 3 (crystal)
////////////100,100,FX 4 (atmosphere)
////////////101,101,FX 5 (brightness)
////////////102,102,FX 6 (goblins)
////////////103,103,FX 7 (echoes, drops)
////////////104,104,FX 8 (sci-fi, star theme)
////////////105,105, Sitar
////////////106,106, Banjo
////////////107,107, Shamisen
////////////108,108, Koto
////////////109,109, Kalimba
////////////110,110, Bag pipe
////////////111,111,Fiddle
////////////112,112,Shanai
////////////113,113,Tinkle Bell
////////////114,114, Agogo
////////////115,115, Steel Drums
////////////116,116,Woodblock
////////////117,117,Taiko Drum
////////////118,118, Melodic Tom
////////////119,119,Synth Drum
////////////120,120, Reverse Cymbal
////////////121,121,Guitar Fret Noise
////////////122,122,Breath Noise
////////////123,123, Seashore
////////////124,124, Bird Tweet
////////////125,125,Telephone Ring
////////////126,126, Helicopter
////////////127,127, Applause
////////////128,128, Gunshot
/// public int[] SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT = { 14, 25, 105, 26, 27, 28, 29, 30, 31, 32, 41, 42, 43 };
///
public int[] SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT = { 14, 25, 105, 26, 11, 28, 33, 34, 34+1, 32, 37, 38, 43 };
// public int[] SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT = { 74, 1, 2, 3, 112 };
public int[] SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT = { 75, 1, 2, 3, 111 };/// <summary>
/// 75 is pan flute and 111 is shanai starts with 0
/// </summary>
public int PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT = 0;
public int PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT = 0;
private void ParseButton_Click(object sender, EventArgs e)
{
if (this.ExcelFormulaTextBox.Text.TrimEnd().TrimStart().Trim().Length == 0)
{
System.Windows.Forms.MessageBox.Show("ExcelFormulaTextBox is blank");
return;
}//if(this.ExcelFormulaTextBox.Text.TrimEnd().TrimStart().Trim().Length==0)
//////try
////// {
///////// ExcelFormulaParser_GT_PARSER.MandelbrotMovie.SAAN_TO_GENERATE_THE__MandelbrotMovie___Main(filenames)
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.MandelbrotMovie.SAAN_TO_GENERATE_THE__MandelbrotMovie___Main
////// (ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder + "saan_checking.avi");
////// }
//////catch (Exception _excp_for_avi_files)
////// {
////// System.Windows.Forms.MessageBox.Show(_excp_for_avi_files.Message + "\r\n" + _excp_for_avi_files.StackTrace.ToString());
////// }//catch(Exception _excp_for_avi_files)
bool _temp_checking_wellformed_or_not = false;
_temp_checking_wellformed_or_not =
GPT_well_formed_formula_analysis_of_syntax_Program
.IsWellFormed(this.ExcelFormulaTextBox.Text.ToString().ToUpper());
if (!_temp_checking_wellformed_or_not)
{
this.ExcelFormulaTextBox.BackColor = Color.PaleVioletRed;
this.ExcelFormulaTextBox.ForeColor = Color.White;
this.ExcelFormulaTextBox.Invalidate();
this.ExcelFormulaTextBox.Refresh();
}// if(!_temp_checking_wellformed_or_not)
else
{
this.ExcelFormulaTextBox.BackColor = Color.LightBlue;
this.ExcelFormulaTextBox.ForeColor = Color.Black;
this.ExcelFormulaTextBox.Invalidate();
this.ExcelFormulaTextBox.Refresh();
} // end of else case // if(!_temp_checking_wellformed_or_not)
/// i have to check this
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.PUBLIC_STATIC_CLASS_FOR_MY_OWN_FORMULA_PARSER_FOR_GT
.PUBLIC_STATIC_LIST_OF___SAAN_NUMBER_TYPE_OBJECTS_IN_EXPRESSION
.Clear();
///////////////////////////////////////////////////////////////////////////////////////
////// we will do all these calculations only after the cleaning and corrections are done
/// i think it is disturbing still we have kept this to avoid null objects errors
ExcelFormula excelFormula = new ExcelFormula("");
string ___temp_string_for_the_formula = "";
___temp_string_for_the_formula = ExcelFormulaTextBox.Text.ToString();
/// enforcing the =( everytime for all kinds of formula)
if (___temp_string_for_the_formula.StartsWith("="))
{
___temp_string_for_the_formula = ___temp_string_for_the_formula + ")";
___temp_string_for_the_formula
=
___temp_string_for_the_formula.Replace("=", "=(");
excelFormula = new ExcelFormula(___temp_string_for_the_formula);//ExcelFormulaTextBox.Text.ToLower()
}
else
{
___temp_string_for_the_formula = ("=(" + ___temp_string_for_the_formula + ")").ToString();
excelFormula = new ExcelFormula(___temp_string_for_the_formula);//ExcelFormulaTextBox.Text.ToLower()
}//else of case of if(ExcelFormulaTextBox.Text.ToString().StartsWith("="))
////// excelFormula is the IList type object and it has inbuilt List
///so we can do the binding of this with the Datagrid objects
///until the ExcelFormula class is the implementer of IList<ExcelFormulaToken> we cannot call this formula like this
///
ExcelFormulaTokensGridView.DataSource = new BindingList<ExcelFormulaToken>(excelFormula);
/// if we dont call above lines then it will not generate the listing on the DATAGRIDSVIEWS
///
System.Windows.Forms.MessageBox.Show("Conditioned excelFormula = " + excelFormula.ToString());
string ___temp_saan_string___SAAN_GENERATE_STRING_ABSTRACT_SYNTAX_TREE_TOKENS_FROM___GIVEN_TRIGONOMETRY_EXPRESSIONS
= "";
////// i have to recheck this functions calls
___temp_saan_string___SAAN_GENERATE_STRING_ABSTRACT_SYNTAX_TREE_TOKENS_FROM___GIVEN_TRIGONOMETRY_EXPRESSIONS
=
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.PUBLIC_STATIC_CLASS_FOR_MY_OWN_FORMULA_PARSER_FOR_GT
.SAAN_GENERATE_STRING_ABSTRACT_SYNTAX_TREE_TOKENS_FROM___GIVEN_TRIGONOMETRY_EXPRESSIONS
(___temp_string_for_the_formula);
//(ExcelFormulaTextBox.Text
// .ToString());
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+
"\\SAAN_GENERATE_STRING_ABSTRACT_SYNTAX_TREE_TOKENS_FROM___GIVEN_TRIGONOMETRY_EXPRESSIONS.txt"
,
___temp_saan_string___SAAN_GENERATE_STRING_ABSTRACT_SYNTAX_TREE_TOKENS_FROM___GIVEN_TRIGONOMETRY_EXPRESSIONS
.ToString()
);
System.Windows.Forms.MessageBox.Show
(
"___temp_saan_string___SAAN_GENERATE_STRING_ABSTRACT_SYNTAX_TREE_TOKENS_FROM___GIVEN_TRIGONOMETRY_EXPRESSIONS\r\n\r\n\r\n"
+
___temp_saan_string___SAAN_GENERATE_STRING_ABSTRACT_SYNTAX_TREE_TOKENS_FROM___GIVEN_TRIGONOMETRY_EXPRESSIONS
);
int indentCount = 0;
StringBuilder ___TEMP_SAAN_INDENT_STRINGBUILDER = new StringBuilder();
___TEMP_SAAN_INDENT_STRINGBUILDER.Clear();
///////////////// it is too good ///////////////////////////////////
///
//////for references public System.Windows.Forms.DataGridViewTextBoxColumn index;/// <summary>
////// /// ///////////this is important
////// /// </summary>
//////for references public System.Windows.Forms.DataGridViewTextBoxColumn type;
//////for references public System.Windows.Forms.DataGridViewTextBoxColumn subtype;
//////for references public System.Windows.Forms.DataGridViewTextBoxColumn token;
//////for references public System.Windows.Forms.DataGridViewTextBoxColumn tokentree;
//////this.ExcelFormulaTokensGridView.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.ExcelFormulaTokensGridView_CellContentClick);
////////
//////// index
////////
//////resources.ApplyResources(this.index, "index");
//////this.index.Name = "index";
////////
//////// type
////////
//////this.type.DataPropertyName = "Type";
//////resources.ApplyResources(this.type, "type");
//////this.type.Name = "type";
////////
//////// subtype
////////
//////this.subtype.DataPropertyName = "Subtype";
//////resources.ApplyResources(this.subtype, "subtype");
//////this.subtype.Name = "subtype";
////////
//////// token
////////
//////this.token.DataPropertyName = "Value";
//////resources.ApplyResources(this.token, "token");
//////this.token.Name = "token";
////////
//////// tokentree
////////
//////resources.ApplyResources(this.tokentree, "tokentree");
//////this.tokentree.Name = "tokentree";
/// too important
//////System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SampleForm));
//////System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
//////System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
//////System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
for (int i = 0; i < excelFormula.Count; i++)
{
ExcelFormulaTokensGridView.Rows[i].Cells["index"].Value = i + 1;
ExcelFormulaToken token = excelFormula[i];
if (token.Subtype == ExcelFormulaTokenSubtype.Stop)
{
indentCount -= ((indentCount > 0) ? 1 : 0);
}
StringBuilder indent = new StringBuilder();
indent.Append("|");
for (int ind = 0; ind < indentCount; ind++)
{
indent.Append(" |");
}//for (int ind = 0; ind < indentCount; ind++)
indent.Append(token.Value);
ExcelFormulaTokensGridView.Rows[i].Cells["tokentree"].Value = indent.ToString();
if (token.Subtype == ExcelFormulaTokenSubtype.Start)
{
indentCount += 1;
} //if (token.Subtype == ExcelFormulaTokenSubtype.Start)
___TEMP_SAAN_INDENT_STRINGBUILDER.AppendLine
(
indentCount.ToString() + " " + indent.ToString()
);
}//for (int i = 0; i < excelFormula.Count; i++)
//////////////////////////////// it is too good ///////////////////////////////////
System.Windows.Forms.MessageBox.Show("___TEMP_SAAN_INDENT_STRINGBUILDER\r\n\r\n\r\n" + ___TEMP_SAAN_INDENT_STRINGBUILDER.ToString());
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+
"\\___TEMP_SAAN_INDENT_STRINGBUILDER.txt"
,
___TEMP_SAAN_INDENT_STRINGBUILDER
.ToString()
);
////// AFTER BARAJETHU 03022023
///ExcelFormulaTextBox.Text
//////SIMPLE_MathParserTK.SIMPLE_SAAN_GT_MathParser ___temp___SIMPLE_MathParserTK___SIMPLE_SAAN_GT_MathParser
////// =new SIMPLE_MathParserTK.SIMPLE_SAAN_GT_MathParser();
//////___temp___SIMPLE_MathParserTK___SIMPLE_SAAN_GT_MathParser.Parse(ExcelFormulaTextBox.Text.ToLower());
/// tested that it is working
ORG.DETASYS.math.SanjoyNathGeometrifyingTrigonometryPARSER.Expression ___string_expression
= new ORG.DETASYS.math.SanjoyNathGeometrifyingTrigonometryPARSER.Expression(ExcelFormulaTextBox.Text.ToLower());
System.Windows.Forms.MessageBox.Show("Expressions calculated as ORG.DETASYS.math.SanjoyNathGeometrifyingTrigonometryPARSER.Expression non static Calculate function called = =" + ___string_expression.calculate().ToString());
////////////////////// this is new thing done with code dom parsing
///
SAAN_Plot3D.Program_for_3d_plotting.public_static_string_formula_to_show
= "";
SAAN_Plot3D.Program_for_3d_plotting.public_static_string_formula_to_show
=
this.ExcelFormulaTextBox.Text.ToString().ToUpper();
SAAN_Plot3D.Program_for_3d_plotting.Program_for_3d_plotting_Main(this.ExcelFormulaTextBox.Text.ToString().ToLower());
}//private void ParseButton_Click(object sender, EventArgs e)
private void ExcelFormulaTextBox_Enter(object sender, EventArgs e)
{
ExcelFormulaTextBox.SelectAll();
}//private void ExcelFormulaTextBox_Enter(object sender, EventArgs e)
public void SaveControlImage___FUNCTION_DEFINED_IN_FORM_OBJECTS(Control ctr, string filename)
{
try
{
var imagePath = filename;// @"D:\ABSOLUTE_TestingImage.png";
//////
//////Image bmp = new Bitmap(ctr.Width, ctr.Height);//working but we need the monochromes
/// Image bmp = new Bitmap(ctr.Width, ctr.Height,PixelFormat.Format1bppIndexed); //to call potrace \\prt4a\smg\MLG\TOO_IMPORTANT_CONFIGS_ABSOLUTE \ABSOLUTES_IMPORTANT.EXE
//Image was working fine but i wanted to set DPI resolutions to high values
Bitmap bmp = new Bitmap(ctr.Width, ctr.Height);//working but we need the monochromes
bmp.SetResolution(13000, 13000);
var gg = Graphics.FromImage(bmp);
var rect = ctr.RectangleToScreen(ctr.ClientRectangle);
gg.CopyFromScreen(rect.Location, Point.Empty, ctr.Size);
//
bmp.SetResolution(13000, 13000);
//too heavy files bmp.Save(imagePath, ImageFormat.Bmp);
try
{
if (System.IO.File.Exists(imagePath))
{
System.IO.File.Delete(imagePath);
}
if (System.IO.File.Exists(imagePath))
{
System.IO.File.Delete(imagePath);
}
if (System.IO.File.Exists(imagePath))
{
System.IO.File.Delete(imagePath);
bmp.Save(imagePath);
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Add(bmp);
}
else
{
bmp.Save(imagePath);
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Add(bmp);
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_45_cutoff_0_7_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_45_cutoff_0_7_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_45_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_45_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_45_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_0_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_0_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_33_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_33_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_67_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_67_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_101_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_101_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_134_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_134_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_168_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_168_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_202_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_202_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_235_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_235_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_269_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_269_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_303_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_303_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_337_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_337_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_337_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_337_cutoff_0_31_OVERLAP_1.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_337_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_0_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_0_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000001.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_33_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_33_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000001.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_67_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_67_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000001.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_101_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_101_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000001.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_134_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_134_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000001.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_168_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_168_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000001.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_202_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_202_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000001.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_235_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_235_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000001.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_269_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_269_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000001.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_303_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_303_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000001.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_337_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000000.bmp
////////////////D:\SanjoyNathGeometrifyingTrigonometry\LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ_337_cutoff_0_31_OVERLAP_1.bmp
////////////////d:\0000000000001.bmp
//ONLY THIS PART ENTERS WHILE SIMULATING THE 0 TO 360 TO STORE GIF FILES
//SO OTHER PARTS OF DATA FILLING DONT WORK TO STORE DATA THERE IN THE GIF FILES ANIMATIONS
//i have added this again when we have seen that gif files are not coming 23032020plusplus
//we have seen that this _temp_fresh_names works so we are storing this data to this list
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names.Add(filename);
//SPECIALLY DONE FOR SPECIAL GIF FILES GENERATIONS
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_ONLY_INFOLDERS_file_names_to_store_frames_bitmaps_files_names.Add(filename);
//i have seen that filenames are not changing and that is the problems here
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+
"checking_filenames_for_gif_gt.txt", "\r\n" + filename);
} //else cases if (System.IO.File.Exists(imagePath))
}
catch (Exception excpggg)
{
}// catch (Exception excpggg)
// bmp.Save(imagePath + "_monochromes.bmp", ImageFormat.Bmp);
//yes working opens the microsoft photos Process.Start(imagePath);
//no call separately after this is complete save_Given_Picture_in_the_MONOCHROME_FORMATS(ctr, filename);
}
catch (Exception excp)
{
//
}
}// public void SaveControlImage___FUNCTION_DEFINED_IN_FORM_OBJECTS(Control ctr, string filename)
public void process___TOO_LARGE_MODEL_DUMP_FILE_AND_PROCESS_THAT_AS_ROW_RECORDS(string filename_of_dmp_files)
{
int filenumber = 0;
int TABLE_count = 0;
/// string __temp_str= System.IO.File.ReadAllText(filename_of_dmp_files);
string ___temp_current_line = "";
using (System.IO.StreamReader sr = new System.IO.StreamReader(filename_of_dmp_files))
{
while (!sr.EndOfStream)
{
going_to_here_after_each_file_saving:;
//////if (___temp_current_line.TrimEnd().TrimStart().Trim().ToUpper().StartsWith("TABLE"))
////// {
////// TABLE_count++;
////// };
//////if (___temp_current_line.TrimEnd().TrimStart().Trim().ToUpper().StartsWith("ROW"))
////// {
////// filenumber++;
////// };
//////___temp_current_line = "";
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(filename_of_dmp_files + "_TABLE_count=" + TABLE_count + "_row_nums=" + filenumber + ".txt"))
{
sw.AutoFlush = true;
while (!sr.EndOfStream)
{
//////___temp_current_line += sr.ReadLine();
___temp_current_line += "\r\n" + sr.ReadLine(); ///////////////////// yes this is giving good data
// System.Windows.Forms.MessageBox.Show(___temp_current_line);
if (___temp_current_line != "")
{
string[] _splitted______temp_current_line = ___temp_current_line.Split(new string[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
string ___line_to_write = "";
___line_to_write = _splitted______temp_current_line[_splitted______temp_current_line.Length - 1];
if (_splitted______temp_current_line.Length > 0)
{
sw.WriteLine(___line_to_write);
___line_to_write = "";
}// if(_splitted______temp_current_line.Length>0)
/// sw.WriteLine(___temp_current_line);
}// if (___temp_current_line != "")
if (___temp_current_line.TrimEnd().TrimStart().Trim().ToUpper().Contains("TABLE"))
{
TABLE_count++;
___temp_current_line = "";
goto going_to_here_after_each_file_saving;
};
//////if (___temp_current_line.TrimEnd().TrimStart().Trim().ToUpper().Contains("ROW"))
////// {
////// filenumber++;
////// ___temp_current_line = "";
////// goto going_to_here_after_each_file_saving;
////// };
///
if (___temp_current_line.TrimEnd().TrimStart().Trim().ToUpper().Contains("}"))
{
filenumber++;
___temp_current_line = "";
goto going_to_here_after_each_file_saving;
};
//////___temp_current_line += sr.ReadLine();
//////// System.Windows.Forms.MessageBox.Show(___temp_current_line);
//////sw.WriteLine(___temp_current_line);
/// ___temp_current_line = "";
}// while (!sr.EndOfStream )
////if (___temp_current_line.TrimEnd().TrimStart().Trim().ToUpper().StartsWith("TABLE"))
//// {
//// TABLE_count++;
//// };
////if (___temp_current_line.TrimEnd().TrimStart().Trim().ToUpper().StartsWith("ROW"))
//// {
//// filenumber++;
//// };
}// using (System.IO.StreamWriter sw = new System.IO.StreamWriter(filename_of_dmp_files+"_" + filenumber+".txt"))
}// while (!sr.EndOfStream)
}// using (System.IO.StreamReader sr = new System.IO.StreamReader(filename_of_dmp_files))
System.Windows.Forms.MessageBox.Show("DONE process___TOO_LARGE_MODEL_DUMP_FILE_AND_PROCESS_THAT_AS_ROW_RECORDS");
}// public void process___TOO_LARGE_MODEL_DUMP_FILE_AND_PROCESS_THAT_AS_ROW_RECORDS(string filename_of_dmp_files)
public void process___TOO_LARGE_TEXT_FILE_TO_SPLIT_AND_GET_PIECES_RECORDS_FOR_MODEL_DUMPS(string filename_of_dmp_files)
{
/// string __temp_str= System.IO.File.ReadAllText(filename_of_dmp_files);
using (System.IO.StreamReader sr = new System.IO.StreamReader(filename_of_dmp_files))
{
int filenumber = 0;
while (!sr.EndOfStream)
{
int count = 0;
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(filename_of_dmp_files + ++filenumber))
{
sw.AutoFlush = true;
while (!sr.EndOfStream && ++count < 300000)
{
sw.WriteLine(sr.ReadLine());
}// while (!sr.EndOfStream && ++count < 300000)
}// using (System.IO.StreamWriter sw = new System.IO.StreamWriter(filename_of_dmp_files + ++filenumber))
}// while (!sr.EndOfStream)
}// using (System.IO.StreamReader sr = new System.IO.StreamReader(filename_of_dmp_files))
System.Windows.Forms.MessageBox.Show("DONE process___TOO_lARGE_TEXT_FILE_TO_SPLIT_AND_GET_PIECES_RECORDS_FOR_MODEL_DUMPS");
}// public void process___TOO_LARGE_TEXT_FILE_TO_SPLIT_AND_GET_PIECES_RECORDS_FOR_MODEL_DUMPS(string filename_of_dmp_files)
private void SampleForm_Load(object sender, EventArgs e)
{
//chaurasia
//https://www.youtube.com/watch?v=soEvUHEgExM
//C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8.1\System.IO.Compression.dll
//THIS IS NECESSARY FOR THE EXCEL READER
string for_html_reports___fontFace = "Arial";
int for_html_reports___fontHeight = 11;
string for_html_reports___fontColor = "blue";
//////this.textBox___INPUT_GT_TEXT.Text =
////// "= SanjoyNath_Geometrify[\r\n\r\n\r\ncos(x+3 * theta)\r\n + Sin(tan(cos(alpha+Cos(x+y))))\r\ncsc(atan(z+6))\r\n\r\n\r\n]";
//////this.textBox___INPUT_GT_TEXT.Text =
////// "= SanjoyNath_Geometrify[\r\n\r\n\r\ncos(x+3 * z)\r\n + Sin(tan(cos(z+Cos(x+y))))\r\ncsc(atan(z+6))\r\n\r\n\r\n]";
this.textBox___INPUT_GT_TEXT.Text =
"= SanjoyNath_Geometrify[" +
"\r\n\r\n\r\ncos(x+3 * z)\r\n + Sin(tan(cos(z+Cos(x+y))))\r\ncsc(6*(z+6))\r\n\r\n\r\n" +
"((cos(sin(tan(sec(cosec(cot(x)))))) + sin(sin(tan(sec(cosec(cot(3 + 6 * cot(x))))) + sin(theta + z)))) / (cos(sin(tan(sec(cosec(cot(x)))))) + sin(sin(tan(sec(cosec(cot(3 + 6 * cot(x))))) + sin(22 + 3 * theta + 238 * z))))"
+
"\r\n"+
"]";
//////Refer this code(to crossverify)D:\SAANDXF_NEW + TO_DO\PDFsharp - 1.5 - master___2012\PDFsharp - 1.5 - master\src\PdfSharp\
///D:\SAANSHARPPDF\SAANSHARPPDF_2012_3_3\SAANSHARPPDF_2012_3_3\SAANSHARPPDF_2012_3_3\SAANSHARPPDF_2012_3_3_Forms_PagePreview.cs
if (
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_GTSIMPLEX_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
!=null
)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_GTSIMPLEX_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.Clear();
// + "\r\n" +
// "font-family:'{for_html_reports___fontFace}';font-size:{for_html_reports___fontHeight}px;color:{for_html_reports___fontColor};}"
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_GTSIMPLEX_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.AppendLine
(
"<html>" +
"\r\n" +
"<head>"
+ "\r\n" +
"<meta charset=\"UTF-8\">"
+ "\r\n" +
"<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">"
+ "\r\n" +
"<style>"
+ "\r\n" +
"table{border-collapse:collapse;width:100%;} th, td {border:1px solid black;padding:8px;text-align:left;}"
+ "\r\n"+
"body{{font-family:'{for_html_reports___fontFace}';font-size:{for_html_reports___fontHeight}px;color:{for_html_reports___fontColor};}"
+ "\r\n" +
"pre {margin: 0; text-align: left; }"
+ "\r\n" +
"margin: 0;"
+ "\r\n" +
"padding:0;"
+ "\r\n" +
"display:flex;"
+ "\r\n" +
"flex-direction:column;"
+ "\r\n" +
"align-items:center;"
+ "\r\n" +
"}"
+ "\r\n" +
".svg-container{"
+ "\r\n" +
"width:100 %;"
+ "\r\n" +
"box-sizing:border- box;"
+ "\r\n" +
"margin:10px 0;"
+ "\r\n" +
"}"
+ "\r\n" +
".svg-container svg{"
+ "\r\n" +
"width:100 %;"
+ "\r\n" +
"height:auto;"
+ "\r\n" +
"display:block;"
+ "\r\n" +
"margin:0 auto;"
+ "\r\n" +
"</style>"
+ "\r\n"
+ "\r\n" +
"</head>"
+ "\r\n" +
"<body>"
///+
//////</head> // dont know we need dynamic java scripts or not so ending finally at the end
//////+"\r\n" // dont know we need dynamic java scripts or not so ending finally at the end
);
//////////////////////////////////////////////////////////////////
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_CUMULSUMS_OUTPUT_COMPLS_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.Clear();
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_CUMULSUMS_OUTPUT_COMPLS_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.AppendLine
(
"<html>" +
"\r\n" +
"<head>"
+ "\r\n" +
"<meta charset=\"UTF-8\">"
+ "\r\n" +
"<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">"
+ "\r\n" +
"<style>"
+ "\r\n" +
"table{border-collapse:collapse;width:100%;} th, td {border:1px solid black;padding:8px;text-align:left;}"
+ "\r\n" +
"body{{font-family:'{for_html_reports___fontFace}';font-size:{for_html_reports___fontHeight}px;color:{for_html_reports___fontColor};}"
+ "\r\n" +
"pre {margin: 0; text-align: left; }"
+ "\r\n" +
"margin: 0;"
+ "\r\n" +
"padding:0;"
+ "\r\n" +
"display:flex;"
+ "\r\n" +
"flex-direction:column;"
+ "\r\n" +
"align-items:center;"
+ "\r\n" +
"}"
+ "\r\n" +
".svg-container{"
+ "\r\n" +
"width:100 %;"
+ "\r\n" +
"box-sizing:border- box;"
+ "\r\n" +
"margin:10px 0;"
+ "\r\n" +
"}"
+ "\r\n" +
".svg-container svg{"
+ "\r\n" +
"width:100 %;"
+ "\r\n" +
"height:auto;"
+ "\r\n" +
"display:block;"
+ "\r\n" +
"margin:0 auto;"
+ "\r\n" +
"}"
+ "\r\n" +
"</style>"
+ "\r\n"
+ "\r\n" +
"</head>"
+ "\r\n" +
"<body>"
///+
//////</head> // dont know we need dynamic java scripts or not so ending finally at the end
//////+"\r\n" // dont know we need dynamic java scripts or not so ending finally at the end
);
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_GTSIMPLEX_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
=
new StringBuilder();
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_GTSIMPLEX_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.Clear();
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_GTSIMPLEX_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.AppendLine
(
"<html>" +
"\r\n" +
"<head>"
+ "\r\n" +
"<meta charset=\"UTF-8\">"
+ "\r\n" +
"<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">"
+ "\r\n" +
"<style>"
+ "\r\n" +
"table{border-collapse:collapse;width:100%;} th, td {border:1px solid black;padding:8px;text-align:left;}"
+ "\r\n" +
"body{{font-family:'{for_html_reports___fontFace}';font-size:{for_html_reports___fontHeight}px;color:{for_html_reports___fontColor};}"
+ "\r\n" +
"pre {margin: 0; text-align: left; }"
+ "\r\n" +
"margin: 0;"
+ "\r\n" +
"padding:0;"
+ "\r\n" +
"display:flex;"
+ "\r\n" +
"flex-direction:column;"
+ "\r\n" +
"align-items:center;"
+ "\r\n" +
"}"
+ "\r\n" +
".svg-container{"
+ "\r\n" +
"width:100 %;"
+ "\r\n" +
"box-sizing:border- box;"
+ "\r\n" +
"margin:10px 0;"
+ "\r\n" +
"}"
+ "\r\n" +
".svg-container svg{"
+ "\r\n" +
"width:100 %;"
+ "\r\n" +
"height:auto;"
+ "\r\n" +
"display:block;"
+ "\r\n" +
"margin:0 auto;"
+ "\r\n" +
"}"
+ "\r\n" +
"</style>"
+ "\r\n"
+ "\r\n" +
"</head>"
+ "\r\n" +
"<body>"
///+
//////</head> // dont know we need dynamic java scripts or not so ending finally at the end
//////+"\r\n" // dont know we need dynamic java scripts or not so ending finally at the end
);
}//end of else
////////////////if (
////////////////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
////////////////public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_GTSIMPLEX_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
////////////////!= null
////////////////)
//////try
////// {
////// SAANPDF.ArticleExample AE = new ArticleExample();
////// SAANPDF.AE.Test(DebugCheckBox.Checked, "ArticleExample.pdf");
////// SAANPDF.AE.Test(DebugCheckBox.Checked, "D:\\SAAN_PDF.pdf"); //testing ok
////// return;
///////////////yes running
///////////////
//////////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID", false);
///////////////yes running
/////////////// _midf.Describe()
///////////////
////////////System.IO.File.WriteAllText("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID.txt", _midf.ToString());
////////////////////////////////////// yessssssssssssssssssssss worked
////// }
//////catch (Exception Ex)
////// {
////// // error exit
////// string[] ExceptionStack = ExceptionReport.GetMessageAndStack(Ex);
////// MessageBox.Show(this, "PDF Document creation falied\n" + ExceptionStack[0] + "\n" + ExceptionStack[1], "PDFDocument Error" + "\r\n" + Ex.StackTrace.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
////// return;
////// }// catch (Exception Ex)
//these dont work
//////this.Width = Screen.GetWorkingArea().Width;
// this.Width = Screen.GetWorkingArea().Width;
//TOOOOOOOOOOOOOOOOOOOOOO IMPORTANT "G17" THE 17 DIGIT IS THE MAXIMUM PRECISSION SUPPORTED IN CSHARP // i have seen only G 17 works .ToString("G38",CultureInfo.InvariantCulture); // i have seen only G 17 works
//TOOOOOOOOOOOOOOOOOOOOOO IMPORTANT "G17" THE 17 DIGIT IS THE MAXIMUM PRECISSION SUPPORTED IN CSHARP // i have seen only G 17 works .ToString("G38",CultureInfo.InvariantCulture); // i have seen only G 17 works
//TOOOOOOOOOOOOOOOOOOOOOO IMPORTANT "G17" THE 17 DIGIT IS THE MAXIMUM PRECISSION SUPPORTED IN CSHARP // i have seen only G 17 works .ToString("G38",CultureInfo.InvariantCulture); // i have seen only G 17 works
//TOOOOOOOOOOOOOOOOOOOOOO IMPORTANT "G17" THE 17 DIGIT IS THE MAXIMUM PRECISSION SUPPORTED IN CSHARP // i have seen only G 17 works .ToString("G38",CultureInfo.InvariantCulture); // i have seen only G 17 works
//TOOOOOOOOOOOOOOOOOOOOOO IMPORTANT "G17" THE 17 DIGIT IS THE MAXIMUM PRECISSION SUPPORTED IN CSHARP // i have seen only G 17 works .ToString("G38",CultureInfo.InvariantCulture); // i have seen only G 17 works
//TOOOOOOOOOOOOOOOOOOOOOO IMPORTANT "G17" THE 17 DIGIT IS THE MAXIMUM PRECISSION SUPPORTED IN CSHARP // i have seen only G 17 works .ToString("G38",CultureInfo.InvariantCulture); // i have seen only G 17 works
//https://stackoverflow.com/questions/7564906/convert-double-to-fraction-as-string-in-c-sharp
////// The provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object.Typically, provider is a CultureInfo object or a NumberFormatInfo object.The provider parameter supplies culture-specific information used in formatting.If provider is null, the return value is formatted using the NumberFormatInfo object for the current culture.
//////By default, the return value only contains 15 digits of precision although a maximum of 17 digits is maintained internally. If the value of this instance has greater than 15 digits, ToString returns PositiveInfinitySymbol or NegativeInfinitySymbol instead of the expected number. If you require more precision, specify format with the "G17" format specification, which always returns 17 digits of precision, or "R", which returns 15 digits if the number can be represented with that precision or 17 digits if the number can only be represented with maximum precision.
////////.ToString("G38",CultureInfo.InvariantCulture); // i have seen only G 17 works
//////double _checking_38_decimal_places = 0.1234576891011121314151617181920232728293031323334353738;
//////MessageBox.Show(_checking_38_decimal_places + "\r\n" + _checking_38_decimal_places.ToString() + "\r\nToString(\"G38\",CultureInfo.InvariantCulture)\r\n" + _checking_38_decimal_places.ToString("G38", CultureInfo.InvariantCulture));
//this takes some times so we need to call this with separate threads
//to process the images and the bitmaps generated from the graphics objects
//i think i have to take some buffered graphics object to pump the bitmaps to the list of bitmaps
//while preparing the graphics objects while simulations will run
//testing codes for gif files generations working ok
//yes i have tested that it works d:\\01.png d:\\02.png d:\\03.png
//now we are using after 03082020plus Program.public_static_string_GT_folder
//great tested this is working and generating gif files which are playing also
//this works with bitmaps also the size of gif is small for the low sizes bitmaps also
//Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.TESTING_ConvertTestGifFiles();
//note that GT_PARSERS string comew twice in the calling conventions
//calling conventions ExcelFormulaParser_GT_PARSER.GT_PARSERS.GT_PARSERS.PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC
// ExcelFormulaParser_GT_PARSER.GT_PARSERS
// public ExcelFormulaParser_GT_PARSER.GT_PARSERS.PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC
_runtimes_global_object_of___PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC
= new ExcelFormulaParser_GT_PARSER.GT_PARSERS.PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC();
;
//= new ExcelFormulaParser_GT_PARSER.GT_PARSERS.PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC();
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.public_static_graphics_for_GT_DRAWING_on_picture_boxes
= pictureBox_FOR_GT_DISPLAYS.CreateGraphics();
/// i think i have to revise this to some other styles such that we can record the animated effects even when the screen is minimized
/// i think i have to revise this to some other styles such that we can record the animated effects even when the screen is minimized
/// i think i have to revise this to some other styles such that we can record the animated effects even when the screen is minimized
////// Bitmap _btmap = new Bitmap(this.pictureBox_FOR_GT_DISPLAYS.Width, this.pictureBox_FOR_GT_DISPLAYS.Height);
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
//////.public_static_graphics_for_GT_DRAWING_on_picture_boxes
//////= Graphics.FromImage(_btmap);
/// i think i have to revise this to some other styles such that we can record the animated effects even when the screen is minimized
/// i think i have to revise this to some other styles such that we can record the animated effects even when the screen is minimized
/// i think i have to revise this to some other styles such that we can record the animated effects even when the screen is minimized
//this is to generate gif with list of bitmaps
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_control_whose_picture_to_store_in_list = this.pictureBox_FOR_GT_DISPLAYS;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations = this.pictureBox_FOR_GT_DISPLAYS;
dataGridViewFOR_GT_PRESETS_DATA.RowCount = 600;
//row headers width set to 60 otherwise the 3 digit numbers were not visible to this
//row headers width set to 60 otherwise the 3 digit numbers were not visible to this
//row headers width set to 60 otherwise the 3 digit numbers were not visible to this
//row headers width set to 60 otherwise the 3 digit numbers were not visible to this
//row headers width set to 60 otherwise the 3 digit numbers were not visible to this
//row headers width set to 60 otherwise the 3 digit numbers were not visible to this
//without this code , it was too tough to understand which rows to edit and to consider
for (int row_index = 0; row_index < this.dataGridViewFOR_GT_PRESETS_DATA.RowCount; row_index++)
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[row_index].HeaderCell.Value = row_index.ToString();
this.dataGridViewFOR_GT_PRESETS_DATA.Invalidate();
}//for(int row_index=0; row_index < this.dataGridViewFOR_GT_PRESETS_DATA.RowCount; row_index++)
dataGridView___COMPOSER.RowCount = 6000;//we will change the data as per necessary
//without this code , it was too tough to understand which rows to edit and to consider
for (int row_index = 0; row_index < this.dataGridView___COMPOSER.RowCount; row_index++)
{
this.dataGridView___COMPOSER.Rows[row_index].HeaderCell.Value = row_index.ToString();
this.dataGridView___COMPOSER.Invalidate();
}//for(int row_index=0; row_index < this.dataGridViewFOR_GT_PRESETS_DATA.RowCount; row_index++)
dataGridViewFOR_GT_PRESETS_DATA.Rows[0].Cells[0].Value = "X1";
dataGridViewFOR_GT_PRESETS_DATA.Rows[1].Cells[0].Value = "Y1";
dataGridViewFOR_GT_PRESETS_DATA.Rows[2].Cells[0].Value = "Z1";
dataGridViewFOR_GT_PRESETS_DATA.Rows[3].Cells[0].Value = "X2";
dataGridViewFOR_GT_PRESETS_DATA.Rows[4].Cells[0].Value = "Y2";
dataGridViewFOR_GT_PRESETS_DATA.Rows[5].Cells[0].Value = "Z2";
dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[0].Value = "L_OF_FIRST_LINE";
dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[0].Value = "INITIAL_LOCKED_SET_POSITIONS_THETA_DEGREE";
dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[8].Cells[0].Value = "INITIAL_LOCKED_SET_POSITIONS_THETA_RADIAN";
dataGridViewFOR_GT_PRESETS_DATA.Rows[9].Cells[0].Value = "pivot_x";
dataGridViewFOR_GT_PRESETS_DATA.Rows[10].Cells[0].Value = "pivot_y";
dataGridViewFOR_GT_PRESETS_DATA.Rows[11].Cells[0].Value = "pivot_z";
dataGridViewFOR_GT_PRESETS_DATA.Rows[12].Cells[0].Value = "stretch_x";
dataGridViewFOR_GT_PRESETS_DATA.Rows[13].Cells[0].Value = "stretch_y";
dataGridViewFOR_GT_PRESETS_DATA.Rows[14].Cells[0].Value = "stretch_z";
dataGridViewFOR_GT_PRESETS_DATA.Rows[15].Cells[0].Value = "nodal_x";
dataGridViewFOR_GT_PRESETS_DATA.Rows[16].Cells[0].Value = "nodal_y";
dataGridViewFOR_GT_PRESETS_DATA.Rows[17].Cells[0].Value = "nodal_z";
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[0].Value = "command_string";
dataGridViewFOR_GT_PRESETS_DATA.Rows[19].Cells[0].Value = "commands_character_array;";
dataGridViewFOR_GT_PRESETS_DATA.Rows[20].Cells[0].Value = "initial_line_segment";
dataGridViewFOR_GT_PRESETS_DATA.Rows[21].Cells[0].Value = "current_commands_array_size_int";
dataGridViewFOR_GT_PRESETS_DATA.Rows[22].Cells[0].Value = "frame_count_simulations";
dataGridViewFOR_GT_PRESETS_DATA.Rows[23].Cells[0].Value = "segments_x1_double_array;";
dataGridViewFOR_GT_PRESETS_DATA.Rows[24].Cells[0].Value = "segments_y1_double_array;";
dataGridViewFOR_GT_PRESETS_DATA.Rows[25].Cells[0].Value = "segments_sizes_x1_double_array;";
dataGridViewFOR_GT_PRESETS_DATA.Rows[26].Cells[0].Value = "segments_sizes_y1_double_array;";
dataGridViewFOR_GT_PRESETS_DATA.Rows[27].Cells[0].Value = "org.opensourcephysics.media.gif.AnimatedGifEncoder";
dataGridViewFOR_GT_PRESETS_DATA.Rows[28].Cells[0].Value = "DO_YOU_WANT_TO_CLEAR_GRAPHICS_AT_EVERY_TRANSITIONS_YES_NO"; ////// "java.awt.image.BufferedImage";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[28].Cells[0].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[28].Cells[0].Style.BackColor = Color.Red;
dataGridViewFOR_GT_PRESETS_DATA.Rows[28].Cells[0].Style.ForeColor = Color.White;
dataGridViewFOR_GT_PRESETS_DATA.Rows[29].Cells[0].Value = "java.awt.Graphics";
dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[0].Value = "GT_SEED_ANGLES_DEGREES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[31].Cells[0].Value = "GT_SEED_ANGLES_DEGREES_INCREMENTER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[32].Cells[0].Value = "L_REF_OR_PERP_REF_TO_CONTROL_SEGMENT_CONSTRUCTIONS_DIRECTION";
dataGridViewFOR_GT_PRESETS_DATA.Rows[33].Cells[0].Value = "LIN_PROJ_X";
dataGridViewFOR_GT_PRESETS_DATA.Rows[34].Cells[0].Value = "LIN_PROJ_Y";
dataGridViewFOR_GT_PRESETS_DATA.Rows[35].Cells[0].Value = "ROT_CENTER_X";
dataGridViewFOR_GT_PRESETS_DATA.Rows[36].Cells[0].Value = "ROT_CENTER_Y";
dataGridViewFOR_GT_PRESETS_DATA.Rows[37].Cells[0].Value = "FINAL_POINT_X";
dataGridViewFOR_GT_PRESETS_DATA.Rows[38].Cells[0].Value = "FINAL_POINT_Y";
dataGridViewFOR_GT_PRESETS_DATA.Rows[39].Cells[0].Value = "CURRENT_LENGTH_CALCULATED";
dataGridViewFOR_GT_PRESETS_DATA.Rows[40].Cells[0].Value = "CURRENT_NECESSARY_LINEAR_PROJECTION_LENGTH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[41].Cells[0].Value = "CURRENT_NECESSARY_ROTATION_RADIANS_FROM_ROT_CENTER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[42].Cells[0].Value = "CURRENT_NECESSARY_ROTATION_DIRECTION_FROM_ROT_CENTER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[43].Cells[0].Value = "CURRENT_UNIT_VECTOR_X";
dataGridViewFOR_GT_PRESETS_DATA.Rows[44].Cells[0].Value = "CURRENT_UNIT_VECTOR_Y";
dataGridViewFOR_GT_PRESETS_DATA.Rows[45].Cells[0].Value = "FRAMES_MIN_X";
dataGridViewFOR_GT_PRESETS_DATA.Rows[46].Cells[0].Value = "FRAMES_MIN_Y";
dataGridViewFOR_GT_PRESETS_DATA.Rows[47].Cells[0].Value = "FRAMES_MAX_X";
dataGridViewFOR_GT_PRESETS_DATA.Rows[48].Cells[0].Value = "FRAMES_MAX_Y";
//we are adding these new variables for the conditional demonstration of the line segments
//CALLING CONVENTIONS ARE FOR THESE LIKE
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PERPENDICULAR_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BASE_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_HYPOTENUSE_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOTS_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_CG_CHAINS_LINES = true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[49].Cells[0].Value = "SHOW_PERPENDICULARS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[50].Cells[0].Value = "SHOW_BASES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[51].Cells[0].Value = "SHOW_HYPOTENUSES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[52].Cells[0].Value = "SHOW_PIVOT_CHAINS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[52 + 1].Cells[0].Value = "SHOW_STRETCH_CHAINS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[53 + 1].Cells[0].Value = "SHOW_NODAL_CHAINS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[53 + 2].Cells[0].Value = "SHOW_CG_CHAINS";
//THESE ARE SPECIAL COMMANDS FOR SPECIAL CHECKING
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_PERPENDICULAR_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_BASE_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_HYPOTENUSE_LINES = true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[56].Cells[0].Value = "SHOW_COMPLEMENT_PERPENDICULARS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[57].Cells[0].Value = "SHOW_COMPLEMENT_BASES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[58].Cells[0].Value = "SHOW_COMPLEMENT_HYPOTENUSES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[59].Cells[0].Value = "SHOW_OUTPUT_LINES_ADDRESS_TEXTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[60].Cells[0].Value = "SHOW_COMPLEMENT_LINES_ADDRESS_TEXTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[61].Cells[0].Value = "CLEAR_SCREEN_WITH_NEW_SEEDS_ANGLES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[61].Cells[0].Style.BackColor = Color.Red;
dataGridViewFOR_GT_PRESETS_DATA.Rows[61].Cells[0].Style.ForeColor = Color.White;
dataGridViewFOR_GT_PRESETS_DATA.Rows[62].Cells[0].Value = "KEEP_CURRENT_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[63].Cells[0].Value = "KEEP_0_TO_360_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES";
//(TO DO) CAUTION NOT IMPLEMENTED YET SINCE WE ARE TO DO SEVERAL OTHER THINGS FIRST
//(TO DO) WE HAVE TO PLAN THE BEST FAST ARCHITECTURES TO IMPLEMENT THESE THINGS WITH HASSLE FREE TECHNICS
//(TO DO) SO WE ARE MOVING WITH THE OTHER THINGS FIRST WHERE WE WILL SHOW THE CURSORS AND THE HORIZONTAL PROJECTIONS AND THE VERTICAL PROJECTIONS FIRST
dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 1].Cells[0].Value = "(TO DO)SHOW_EACH_PIVOTS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 2].Cells[0].Value = "(TO DO)SHOW_EACH_STRETCHES_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
dataGridViewFOR_GT_PRESETS_DATA.Rows[66].Cells[0].Value = "(TO DO)SHOW_EACH_NODALS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_VECTOR_FROM_ORIGIN_0_0 = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_VECTOR_FROM_ORIGIN_0_0 = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_VECTOR_FROM_ORIGIN_0_0 = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BOUNDING_BOXES = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_X = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_Y = true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[66 + 1].Cells[0].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[68].Cells[0].Value = "SHOW_PIVOT_VERTICAL_PROJECTIONS_ON_X_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[69].Cells[0].Value = "SHOW_STRETCH_VERTICAL_PROJECTIONS_ON_X_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[70].Cells[0].Value = "SHOW_NODAL_VERTICAL_PROJECTIONS_ON_X_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[71].Cells[0].Value = "SHOW_PIVOT_HORIZONTAL_PROJECTIONS_ON_Y_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[72].Cells[0].Value = "SHOW_STRETCH_HORIZONTAL_PROJECTIONS_ON_Y_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[73].Cells[0].Value = "SHOW_NODAL_HORIZONTAL_PROJECTIONS_ON_Y_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[73 + 1].Cells[0].Value = "SHOW_PIVOT_VECTOR_FROM_ORIGIN_0_0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[73 + 2].Cells[0].Value = "SHOW_STRETCH_VECTOR_FROM_ORIGIN_0_0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[76].Cells[0].Value = "SHOW_NODAL_VECTOR_FROM_ORIGIN_0_0";
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BOUNDING_BOXES = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_X = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_Y = true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[77].Cells[0].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[78].Cells[0].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[78 + 1].Cells[0].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[80].Cells[0].Value = "SHOW_BOUNDING_BOXES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[81].Cells[0].Value = "TO_SHOW_THE_AXIS_X";
dataGridViewFOR_GT_PRESETS_DATA.Rows[82].Cells[0].Value = "SHOW_THE_AXIS_Y";
//THESE ARE ADDED AFTER THE 0 TO 360 SCANNING IS DONE
dataGridViewFOR_GT_PRESETS_DATA.Rows[83].Cells[0].Value = "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[83 + 1].Cells[0].Value = "SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[83 + 2].Cells[0].Value = "SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[86].Cells[0].Value = "SHOW_0_TO_360_SEEDS_TRIANGLES_FOR_R_TH_CHARACTER_COMMANDS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[87].Cells[0].Value = "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[88].Cells[0].Value = "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[88 + 1].Cells[0].Value = "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[90].Cells[0].Value = "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[91].Cells[0].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[92].Cells[0].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[92 + 1].Cells[0].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[94].Cells[0].Value = "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[95].Cells[0].Value = "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[96].Cells[0].Value = "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 1].Cells[0].Value = "DO_YOU_WANT_TO_STORE_GIF_FILES(YES/NO)";//DEFAULT IS SET TO NO FOR FASTER SIMULATIONS
//THESE THREE ARE THE VISUALIZERS FILTERS IN THE FOR LOOP OF GT SIMPLEX CONSTRUCTIONS WHICH COUNTS THE NUMBER OF STAGES TO VISUALIZE AND THE COUNTER WITHIN THE MIN TO MAX RANGES ARE ONLY VISUALIZED IN THE RENDERER SCREENS
//SLIDER WILL CONTROLL THE VALUES DEPENDING UPON THE GAP VALUE IN ROW 100 THE ROW 96+2 IS SLIDER CONTROLLED OR TYPED (ERROR CHECKING TO DO INSIDE THE LOADER OF THE FORMS DATA)
//WE WILL HAVE TO TAKE CARE FOR THE INDEX OUT OF BOUNDS CONDITIONS THROUGH THE MIN WITH THE MAX CONTROLLERS DATA
//THESE VARIABLES ARE ADDED TO GET THE FILTERED DATA VISUALIZATION FOR THE CONSTRUCTIONS PROTOCOLS TO SEE WHICH OF THE GT SEEDS TRIANGLE IS FORMED AT WHAT STAGES
dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[0].Value = "THE_MAXIMUM_VALUE_OF_VISUALIZER_FILTER";//DEFAULT IS LENGTH OF GT STRING COMMAND (REVISED TO GT_STRING LENGTHS EVERY TIMES)WE WILL CONTROLL THIS WITH SLIDER (NOT THE OTHER VALUES)
dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 3].Cells[0].Value = "THE_MINIMUM_VALUE_OF_VISUALIZER_FILTER";//DEFAULT IS ZERO THIS IS CONTROLLED WITH THE SLIDER ALSO (WE CAN SET THIS WITH SLIDER IF NEXT GAP DATA IS NOT ZERO OTHERWISE THE MAX CONTROLLER SLIDER WILL NOT CHANGE THIS VALUE)
dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[0].Value = "DEFAULT GAP=0(FROM SLIDER MAX FOR>0 (MAX-GAP)=MIN IS SET";//THIS HELPS US TO VISUALIZE THE SPECIFIC GT SEEDS TRIANGLE AT THE STAGES FROM THE LAST OF MAXIMUM VALUE CHOSEN IN THE SLIDERS
//THESE ARE FOR THE POWER SERIES ANALYSIS OF THE WHOLE SYSTEMS AS SUMMATIONS OF SERIES AS COEFFICIENTS MULTIPLIED TO THE RECURSIVE STAGE WISE OUTPUTS AND THE COMPLEMENTS
//TO CHECK HOW THE NATURAL SUMMATIONS OF THE OUTPUT LINE SEGMENTS (SCALED WITH COEFFICIENTS SELECTED WHEN FACTORS <> 0 AND THE OUTPUTS OR COMPLEMENTS ARE NOT TAKEN WHEN THE FACTORS ARE TAKEN AS ZERO ARE NOT TAKEN WHEN
//THE SCALE TO FIT COEFFICIENTS THE MAX WITH THE MIN WILL ALSO GET ADJUSTED WITH THE CONDITIONS OF THE CUMULATIONS DONE WHEN THE CUMULATIONS OUTPUTS ARE GENERATED
//we have plans to handle the centers of triangles properties and the universal language for trigonometry constructions and the combinatorial coefficients to take care as scalers or rotors
dataGridViewFOR_GT_PRESETS_DATA.Rows[101].Cells[0].Value = "GLOBALLY_ALL_DOUBLE_VALUES_COEFFICIENT_FACTOR_CURRENT_GT_TRIANGLE_OUTPUT_FOR_POWER_SERIES";//WE WILL ADD THESE FOR ZERO COEFFICIENTS POWER SERIES CASES
dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 1].Cells[0].Value = "GLOBALLY_ALL_DOUBLE_VALUESCOEFFICIENT_FACTOR_CURRENT_GT_TRIANGLE_COMPLEMENT_FOR_POWER_SERIES";//WE WILL ADD THESE FOR ZERO COEFFICIENTS POWER SERIES CASES
dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 2].Cells[0].Value = "DUMMY";
dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3].Cells[0].Value = "TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3 + 1].Cells[0].Value = "TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[104].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[105].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[105].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[106].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[107].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[108].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[109].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[110].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[111].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[112].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[113].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[114].Cells[0].Style.BackColor = Color.LightSkyBlue;
//CAUTION NOTE FOR FUTURE WORKING
//CAUTION NOTE FOR FUTURE WORKING
//CAUTION NOTE FOR FUTURE WORKING
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//AFTER WE GOT SUCCESS IN THE VISUALIZATIONS OF THE CONCATENATED OUTPUTS AND THE CONCATENATED COMPLEMENTS LINE SEGMENTS GEOMETRICALLY WE ARE TRYING TO GET SOME MORE INFORMATIONS FROM THE THINGS THERE
//THESE ARE TO ANALYSE TO GET THE CONDITIONS OF GEOMETRY THAT CAN GENERATE WITH THE OUTPUTS PERPENDICULARS CONCATENATED ONLY FOR THE POWER SERIES ANALYSIS SYSTEMS
dataGridViewFOR_GT_PRESETS_DATA.Rows[106].Cells[0].Value = "TO_CALCULATE_CUMULATE_PERPENDICULAR_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 1].Cells[0].Value = "TO_CALCULATE_CUMULATE_BASE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 2].Cells[0].Value = "TO_CALCULATE_CUMULATE_HYPOTENUSE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3].Cells[0].Value = "TO_CALCULATE_CUMULATE_PERPENDICULAR_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 1].Cells[0].Value = "TO_CALCULATE_CUMULATE_BASE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 2].Cells[0].Value = "TO_CALCULATE_CUMULATE_HYPOTENUSE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[112].Cells[0].Value = "TO_CALCULATE_CUMULATE_PERPENDICULAR_ALL_SHOW_SCALES_TO_FIT_Y_N"; // ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
dataGridViewFOR_GT_PRESETS_DATA.Rows[113].Cells[0].Value = "TO_CALCULATE_CUMULATE_BASE_ALL_SHOW_SCALES_TO_FIT_Y_N";// ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
dataGridViewFOR_GT_PRESETS_DATA.Rows[114].Cells[0].Value = "TO_CALCULATE_CUMULATE_HYPOTENUSE_ALL_SHOW_SCALES_TO_FIT_Y_N";// ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
//FOR SEVERAL CASES WE DONT NEED GIF FILES BUT THE PROPER NAMED FILES WITH COMMAND STRINGS AND THE ANGLES DATA WITH THE STAGES OF THGE CONSTRUCTIONS SEQUENCES
//SINCE SEVERAL TIMES WE NEED TO COMMUNICATE WITH OTHERS REGARDING THE SHAPES AND SIZES OF THE DATA WHICH WE WILL USE FOR THE COMMUNICATIONS ALONG WITH THE DXF FILES
dataGridViewFOR_GT_PRESETS_DATA.Rows[115].Cells[0].Value = "DO_YOU_NEED_NAMED_SNAP_FOR_CURRENT_BMP(Y_N)FOR_NON_GIF_SNAPS";//THIS IS NEEDED WHEN WE WANT TO PREPARE THE DOCUMENTATIONS FOR COMMUNICATIONS WITH SPECIFIC CASES AND WE DONT NEED THE GIF FILES
dataGridViewFOR_GT_PRESETS_DATA.Rows[115 + 1].Cells[0].Value = "DO_YOU_NEED_NAMED_DXF_FOR_CURRENT_STATES(Y_N)";//THIS IS NEEDED WHEN WE WANT TO PREPARE THE DOCUMENTATIONS FOR COMMUNICATIONS WITH SPECIFIC CASES AND WE DONT NEED THE GIF FILES
//we have made the calculations of unit vectors and the lengths of the corresponding distances of the CG_TO_PIVOT CG_TO_STRETCH CG_TO_NODAL HANDLING TO SHOW THE SHRINK AND GROW OF THE PERPENDICULAR BASE AND THE HYPOTENUSE LINES WITH ARROW HEADS FOR DIRECTIONAL UNDERSTANDINGS REPRESENTED IN THE OVERLAP FREE STYLES
//PUBLIC_STATIC_DOUBLE______REPRESENTATIONAL_SCALE_FACTOR_OF_CURRENT_GT_SEED_TRIANGLE_FROM_THE_CURRENT_CG_TO_SHRINK_GROW_POINTS_TO_DETECT_OVERLAPS_OF_LINES_OR_POINTS_ON_GRAPHS
//WE DONT NEED ANY OTHER SEPARATE BOOLEAN VARIABLES FOR THE VISIBILITY OF THE REPRESENTATIONAL TRIANGLES GENERATIONS ON SCREEN
//IF THE VALUE OF THIS VARIABLE IS NOT ZERO 0 OR NOT 1 THEN IT WILL CONSIDER THAT WE HAVE TO SHOW THESE REPRESENTATIONAL PERPENDICULARS , REPRESENTATIONAL BASE AND THE REPRESENTATIONAL HYPOTENUSE ON SCREEN WITH DIRECTIONAL ARROWHEADS AND ALSO WE NEED TO SHOW THAT OVERLAP FREE THROUGH THE SETTING OF N FOR THE ORIGINAL RENDERING LINES
//TRICKY VARIABLES THIS CONTROLS THE CONDITIONS FOR THE SQUEEZING THE TRIANGLES TOWARDS THE CORRESPONDING CENTER OF GRAVITY AND SHOWS THE REPRESENTATION OF OVERLAP FREE LINE SEGMENTS WHICH IS TO CHECK WHICH LINE SEGMENT OVERLAPS TO WHICH NEXT RECURSIVE GT_TRIANGLE
//IT IS TOUGH TO CHECK IN THE JUNGLES OF LARGE NUMBERS OF POLYLINES TO IDENTIFY THE TRIANGLES SEPARATELY AND ALSO IT IS HELPFUL TO IDENTIFY AT WHICH SCALE FACTOR THE CLASHING OF THE TRIANGLES STARTS
//THIS IS A KIND OF HAUSDROFF KIND OF MEASUREMENT TO CHECK THE OVERLAP FREE LIMIT OF TRIANGLES VISUALIZATION WHEN THE POWER SERIES OF TRIGONOMETRIC MULTIPLICATIONS RECURSE IN THE PROCES
dataGridViewFOR_GT_PRESETS_DATA.Rows[117].Cells[0].Value = "REPRESENTATIONAL_SCALE_FACTOR___TRUE_IF_NOT_0_OR_NOT_1";
//WE HAVE THE GREAT VISUALIZATIONS NOW TO SEE THE SMALLENED AND LARGENED RECURSIVELY CONSTRUCTED GT_TRIANGLES FOR EACH STAGES
//SO IT BECOMES VERY NECESSARY TO SHOW THE ARROWHEADS OF THESE CG CHAINS LINES AND THE THICKENED CG_CHAINS LINES TO IDENTIFY THE DIRECTIONS OF THE FLOW OF RECURSIVE CONSTRUCTIONS OF THE GT_TRIANGLES
dataGridViewFOR_GT_PRESETS_DATA.Rows[118].Cells[0].Value = "WIDTH_OF_CG_CHAIN_PEN_THICKNESS_FOR_BETTER_REPRESENTATION_OF_DIRECTIONS_OF_RECURSIVE_CONSTRUCTIONS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[119].Cells[0].Value = "SHOW_RECURSIONS_CONSTRUCTION_NUMBERS_ON_CG_POINTS_Y_N___SHOW_TEXTS";
//THESE ARE BOOLEAN TYPES OF VARIABLES (THESE ARE ADDED AFTER WE HAVE SEEN THAT THE SMALLENING AND LARGENING OF EACH CORRESPONDING RECURSIVE TRIANGLES ARE VISIBLE
dataGridViewFOR_GT_PRESETS_DATA.Rows[119 + 1].Cells[0].Value = "SHOW_PERPENDICULAR_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[119 + 2].Cells[0].Value = "SHOW_BASE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[122].Cells[0].Value = "SHOW_HYPOTENUSE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N";
////////////// //calling conventions public_static_class_simulations_CONTROLLER_for_gt_Class.
////////////// //THIS IS SPECIAL THING WHICH IS INPUT CONTROLLED TO CHECK THE TWO POINTS OR LINES ARE OF SAME LENGTH ALMOST OR NOT
//////////////public static double PUBLIC_STATIC_DISTANCE_COMPARING_TOLERANCE_TAKEN_FOR_DIFFERENCE_CHECKS = 0.003;// Double.MinValue;//0;
//////////////public static bool TO_SHOW_THE_BOUNDING_BOX_FOR_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N = true;
///
dataGridViewFOR_GT_PRESETS_DATA.Rows[123].Cells[0].Value = "COMPARING_TOLERANCE_TAKEN_FOR_DIFFERENCE_CHECKS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[123 + 1].Cells[0].Value = "TO_SHOW_THE_BOUNDING_BOX_FOR_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
////////////// //GRAPHICS ARE WRITEN NOW WE NEED TO KEEP THE CONDITIONS WITH CONTROLLER SUCH THAT WE CAN DOCUMENT THE WHOLE PROCESS FROM SINGLE PLACES OF VARIABLES AND CONTROLLERS FOR ROBUST ANALYSIS
//////////////public static bool TO_SHOW_THE_BOUNDING_BOX_FOR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N = true;
//////////////public static bool TO_SHOW_THE_BOUNDING_BOX_FOR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N = true;
////////////////THESE GRAPHICS ARE ALSO TO DO WITH THE RATIO ANALYSIS AND CAUCHY SEQUENCE TESTS FOR THE CONVERGANCES OF ALL THESE CASES TO DO FOR EVERY GT SIMPLEX CONDITIONS FROM THE SEEDS ANGLES 0 TO 360 CASES
//////////////public static bool TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N = true;
//////////////public static bool TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N = true;
//////////////public static bool TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N = true;
////////////////WE ARE TRYING TO GENERATE SOME GEOMETRIC SEMANTIC INTERPRETATIONS FOR TAYLORS SERIES AND OTHER SERIES CONDITIONS
////////////////https://cloudflare-ipfs.com/ipfs/bafykbzaceasq3bggif6qv3ohauv3gtgxofnh2fegrnkdm6h4effnul2b3bmue?filename=Lindberg%2C%20David%20C%20-%20The%20Beginnings%20of%20Western%20Science-W.%20Ross%20MacDonald%20School%20Resources%20Services%20Library%20%282011%29.pdf
////////////////BEGINING OF WESTERN SCIENCES http://libgen.is/search.php?req=David%20C.%20Lindberg&column[]=author
////////////////https://cloudflare-ipfs.com/ipfs/bafykbzaceauewbd7ef47veug2npjc2ta5wv4pdaoy5i2mdidwnc5vjqgsfmye?filename=Rozsa%20Peter%2C%20Z.%20P.%20Dienes%20-%20Playing%20with%20Infinity.%20Mathematical%20Explorations%20and%20Excursions-Dover%20Publications%20%282010%29.pdf
//////////////public static bool TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N = true;
//////////////public static bool TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N = true;
//////////////public static bool TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N = true;
///
//calling conventions public_static_class_simulations_CONTROLLER_for_gt_Class.
dataGridViewFOR_GT_PRESETS_DATA.Rows[125].Cells[0].Value = "TO_SHOW_THE_BOUNDING_BOX_FOR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[126].Cells[0].Value = "TO_SHOW_THE_BOUNDING_BOX_FOR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
//calling conventions public_static_class_simulations_CONTROLLER_for_gt_Class.
dataGridViewFOR_GT_PRESETS_DATA.Rows[125 + 2].Cells[0].Value = "TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[125 + 3].Cells[0].Value = "TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[129].Cells[0].Value = "TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[130].Cells[0].Value = "TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[131].Cells[0].Value = "TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[132].Cells[0].Value = "TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[124].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[125].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[126].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[127].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[128].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[129].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[130].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[131].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[132].Cells[0].Style.BackColor = Color.LightGreen;
//THESE ARE SPECIALLY ADDED FOR SUMMABILITY CONDITIONS CHECKING
dataGridViewFOR_GT_PRESETS_DATA.Rows[133].Cells[0].Value = "TO_SET_SEEDS_ANGLES_INCREMENTER_EQUAL_TO_SEEDS_ANGLES_FOR_MULTIPLE_ANGLES_CHECKING_Y_N";
//NO WE WILL DO THAT WITH OTHER OPERATORS
dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1].Cells[0].Value = "TO_SET_ALTERNATE_TERMS_TO_CHANGE_SIGNS_LENGTH_AND_THE_VECTORS_ALTER_Y_N";
//NO WE WILL DO THAT WITH OTHER OPERATORS
dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1 + 1].Cells[0].Value = "SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360";
//NO WE WILL DO THAT WITH OTHER OPERATORS
dataGridViewFOR_GT_PRESETS_DATA.Rows[136].Cells[0].Value = "SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360";
//DO_YOU_NEED_PDF_REPORTING_FOR_THE_DATA
dataGridViewFOR_GT_PRESETS_DATA.Rows[136 + 1].Cells[0].Value = "DO_YOU_NEED_PDF_REPORTING_FOR_THE_DATA";// "DO_YOU_NEED_PDF_REPORTING_FOR_THE_DATA";
dataGridViewFOR_GT_PRESETS_DATA.Rows[138].Cells[0].Value = "PIVOT_TO_STRETCH(YES)___STRETCH_TO_PIVOT(NO)";//
dataGridViewFOR_GT_PRESETS_DATA.Rows[139].Cells[0].Value = "PIVOT_TO_NODAL(YES)___NODAL_TO_PIVOT(NO)";//
dataGridViewFOR_GT_PRESETS_DATA.Rows[140].Cells[0].Value = "STRETCH_TO_NODAL(YES)___NODAL_TO_STRETCH(NO)";//
dataGridViewFOR_GT_PRESETS_DATA.Rows[141].Cells[0].Value = "FULL_ANTICLOCK(YES)_PIVOT_STRETCH_NODAL_PIVOT_CHAIN";
dataGridViewFOR_GT_PRESETS_DATA.Rows[142].Cells[0].Value = "FULL_CLOCK(YES)_PIVOT_NODAL_STRETCH_PIVOT_CHAIN";
dataGridViewFOR_GT_PRESETS_DATA.Rows[143].Cells[0].Value = "MINIMUM_ENERGY_AUTODECIDE(YES)_OTHERWISE_FILL(NO)";
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 1].Cells[0].Value = "KEEP_AS_NATURAL_OUTPUTS(YES)_OTHERWISE_FILL(NO)";
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 2].Cells[0].Value = "ORIENTOR__AS_PER_138_139_140_DATA(YES)___OTHERWISE_(NO)";
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[0].Value = "ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_(R/S/A/C/O/M)";
dataGridViewFOR_GT_PRESETS_DATA.Rows[147].Cells[0].Value = "OUTPUT_LINE_THICKNESS_IN_GTSIMPLEX";
dataGridViewFOR_GT_PRESETS_DATA.Rows[148].Cells[0].Value = "COMPLEMENT_LINE_THICKNESS_IN_GTSIMPLEX";
dataGridViewFOR_GT_PRESETS_DATA.Rows[149].Cells[0].Value = "GIVEN_LINE_THICKNESS_IN_GTSIMPLEX";
dataGridViewFOR_GT_PRESETS_DATA.Rows[150].Cells[0].Value = "TO_SHOW_THICK_OUTPUT_LINES_IN_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[151].Cells[0].Value = "TO_SHOW_THICK_COMPLEMENT_LINES_IN_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[152].Cells[0].Value = "TO_SHOW_THICK_GIVEN_LINES_IN_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[153].Cells[0].Value = "TO_SHOW_CIRCUM_CENTER_OF_EACH_TRIANGLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[154].Cells[0].Value = "TO_SHOW_IN_CENTER_OF_EACH_TRIANGLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[155].Cells[0].Value = "TO_SHOW_ORTHO_CENTER_OF_EACH_TRIANGLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[156].Cells[0].Value = "TO_CALCULATE_THEOREMS_CIRCLES_WITH_UNIQUE_POINTS___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[156 + 1].Cells[0].Value = "TO_CALCULATE_THEOREMS_LINE_RAYS_WITH_UNIQUE_POINTS___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[156 + 2].Cells[0].Value = "TO_CALCULATE_THEOREMS_SEGMENTS_WITH_UNIQUE_POINTS___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[159].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_INTERSECTIONS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[160].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_OUTPUT_POINTS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[161].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_COMPLEMENT_POINTS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[162].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_HYPOTENUSE_POINTS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[163].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_BASE_POINTS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[164].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_PERPENDICULAR_POINTS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[165].Cells[0].Value = "GENERATE_MIDI_WITH_GTSIMPLEX_CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[166].Cells[0].Value = "GENERATE_MIDI_WITH_OUTPUTS_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[166 + 1].Cells[0].Value = "GENERATE_MIDI_WITH_CUMULATIVE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[168].Cells[0].Value = "GENERATE_MIDI_WITH_HYPOTENUSE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[169].Cells[0].Value = "GENERATE_MIDI_WITH_BASE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[170].Cells[0].Value = "GENERATE_MIDI_WITH_PERPENDICULAR_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[171].Cells[0].Value = "SIZE_OF_CIRCLES_FOR_ACCUMULATED_FOUND_POINTS_FOR_THEOREMS_SEARCHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[171].Cells[0].Style.BackColor = Color.PaleVioletRed;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[172].Cells[0].Value = "TO_SHOW_RADIUS_OF_IN_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[172].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[173].Cells[0].Value = "TO_INCLUDE_INCENTER_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[173].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[174].Cells[0].Value = "TO_INCLUDE_ORTHOCENTER_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[174].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[175].Cells[0].Value = "TO_INCLUDE_CIRCUM_CENTER_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[175].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[176].Cells[0].Value = "TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_HYPOTENUSE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[176].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[177].Cells[0].Value = "TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_BASE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[177].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[178].Cells[0].Value = "TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_PERPENDICULAR_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[178].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[178 + 1].Cells[0].Value = "TO_INCLUDE_CENTER_OF_HYPOTENUSE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[178 + 1].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[180].Cells[0].Value = "TO_INCLUDE_CENTER_OF_BASE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[180].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[181].Cells[0].Value = "TO_INCLUDE_CENTER_OF_PERPENDICULAR_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[181].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[182].Cells[0].Value = "TO_INCLUDE_TOUCHPOINT_OF_HYPOTENUSE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[182].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[183].Cells[0].Value = "TO_INCLUDE_TOUCHPOINT_OF_BASE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[183].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[184].Cells[0].Value = "TO_INCLUDE_TOUCHPOINT_OF_PERPENDICULAR_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[184].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[185].Cells[0].Value = "TO_INCLUDE_TOUCHPOINT_OF_HYPOTENUSE_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[185].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[186].Cells[0].Value = "TO_INCLUDE_TOUCHPOINT_OF_BASE_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[186].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[187].Cells[0].Value = "TO_INCLUDE_TOUCHPOINT_OF_PERPENDICULAR_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[187].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[188].Cells[0].Value = "TO_INCLUDE_OUTPUT_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[188].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[189].Cells[0].Value = "TO_INCLUDE_COMPLEMENT_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[189].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[190].Cells[0].Value = "TO_INCLUDE_GIVEN_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[190].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[191].Cells[0].Value = "TO_INCLUDE_TRIANGLE_CG_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[191].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[192].Cells[0].Value = "TO_INCLUDE_LINE_SEGMENTS_INTERIOR_INTERSECTIONS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[192].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[194].Cells[0].Value = "TO_INCLUDE_LINE_SEGMENTS_EXTERIOR_INTERSECTIONS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[194].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[195].Cells[0].Value = "TO_INCLUDE_PIVOT_POINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[195].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[196].Cells[0].Value = "TO_INCLUDE_STRETCH_POINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[196].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[197].Cells[0].Value = "TO_INCLUDE_NODAL_POINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[197].Cells[0].Style.BackColor = Color.LightGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[198].Cells[0].Value = "TOLERANCE_DOUBLE_VALUE_TO_CONSIDER_WE_CAN_INCLUDE_POINT_IN_SAME_CIRCLE_OR_NOT_DEFAULT_0_01";
dataGridViewFOR_GT_PRESETS_DATA.Rows[198].Cells[0].Style.BackColor = Color.LightCyan;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[199].Cells[0].Value = "THICKNESS_INCREASING_TO_CIRCLES_PER_INCREASING_OF_ADDITIONAL_POINTS_IN_THAT_DEFAULT_POINTS_COUNT_BY_10";
dataGridViewFOR_GT_PRESETS_DATA.Rows[199].Cells[0].Style.BackColor = Color.LightCyan;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[200].Cells[0].Value = "TO_SHOW_ONLY_THOSE_3_OR_MORE_POINTS_CIRCLES_WHICH_PASS_THROUGH_3_PLUS_K_POINTS___DEFAULT_K_VALUE_0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[200].Cells[0].Style.BackColor = Color.LightCyan;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[201].Cells[0].Value = "DO_YOU_NEED_SPECIAL_HIGHLIGHTING_OF_CENTERS_OF_3_PLUS_K_POINT_CIRCLES_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[201].Cells[0].Style.BackColor = Color.LightCyan;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[202].Cells[0].Value = "TO_INCLUDE__MIDPOINT_OF_HYPOTENUSE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[202].Cells[0].Style.BackColor = Color.LightGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[203].Cells[0].Value = "TO_INCLUDE__MIDPOINT_OF_BASE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[203].Cells[0].Style.BackColor = Color.LightGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[204].Cells[0].Value = "TO_INCLUDE__MIDPOINT_OF_PERPENDICULAR_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[204].Cells[0].Style.BackColor = Color.LightGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[207].Cells[0].Value = "DO_YOU_NEED_LINE_RAY_FINDING_CALCULATIONS_LOGGING___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[207].Cells[0].Style.BackColor = Color.LightSlateGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[208].Cells[0].Value = "DO_YOU_NEED_CIRCLE_CHORDS_MINS_MAX_DISTANCES_LOGGING___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[208].Cells[0].Style.BackColor = Color.LightSlateGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[209].Cells[0].Value = "DO_YOU_NEED_DATA_ACCUMULATIONS_LOGGING_FOR_POINTS___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[209].Cells[0].Style.BackColor = Color.LightSlateGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[210].Cells[0].Value = "TO_CONSTRUCT_3_POINT_CIRCLES_ANTICLOCK___A__CLOCK___C___OR__O_FOR_OTHER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[210].Cells[0].Style.BackColor = Color.LightSeaGreen;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[0].Value = "DOUBLE_VALUE___MINIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[0].Style.BackColor = Color.LightGreen;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[212].Cells[0].Value = "DOUBLE_VALUE___MAXIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___600000";
dataGridViewFOR_GT_PRESETS_DATA.Rows[212].Cells[0].Style.BackColor = Color.LightGreen;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 1 , duplicate_point_count_state = 0 _temp_3_digit_point x = 0, y = 0, dist_from_origin = 0, UNIQUE_ADDRESS_OF_THE_POINT = PIVOT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 2 , duplicate_point_count_state = 0 _temp_3_digit_point x = 668.583, y = -230.211, dist_from_origin = 707.107, UNIQUE_ADDRESS_OF_THE_POINT = STRETCH(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 3 , duplicate_point_count_state = 0 _temp_3_digit_point x = 898.794, y = 438.371, dist_from_origin = 1000, UNIQUE_ADDRESS_OF_THE_POINT = NODAL(LAZ)_WITH_ORIENT(RRR)
///
///
///
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 4 , duplicate_point_count_state = 0 _temp_3_digit_point x = 898.794, y = 438.371, dist_from_origin = 1000, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_OUTPUT_SUMS_START_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 5 , duplicate_point_count_state = 0 _temp_3_digit_point x = 1567.377, y = 208.16, dist_from_origin = 1581.139, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_OUTPUT_SUMS_FINAL_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 6 , duplicate_point_count_state = 0 _temp_3_digit_point x = 0, y = 0, dist_from_origin = 0, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_COMPLEMENT_SUMS_START_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 7 , duplicate_point_count_state = 0 _temp_3_digit_point x = 230.211, y = 668.583, dist_from_origin = 707.107, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_COMPLEMENT_SUMS_FINAL_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 8 , duplicate_point_count_state = 0 _temp_3_digit_point x = 898.794, y = 0, dist_from_origin = 898.794, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_PERPENDICULAR_SUMS_START_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 9 , duplicate_point_count_state = 0 _temp_3_digit_point x = 1129.005, y = 668.583, dist_from_origin = 1312.119, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_PERPENDICULAR_SUMS_FINAL_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 10 , duplicate_point_count_state = 0 _temp_3_digit_point x = 898.794, y = 0, dist_from_origin = 898.794, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_BASE_SUMS_START_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 11 , duplicate_point_count_state = 0 _temp_3_digit_point x = 1567.377, y = -230.211, dist_from_origin = 1584.193, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_BASE_SUMS_FINAL_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 12 , duplicate_point_count_state = 0 _temp_3_digit_point x = 898.794, y = 0, dist_from_origin = 898.794, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_HYPOTENUSE_SUMS_START_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 13 , duplicate_point_count_state = 0 _temp_3_digit_point x = 1797.588, y = 438.371, dist_from_origin = 1850.268, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_HYPOTENUSE_SUMS_FINAL_POINT(LAZ)_WITH_ORIENT(RRR)
///
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[213].Cells[0].Value = "TO_INCLUDE___CUMULATIVE_OUTPUT_SUMS_START_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[213].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[214].Cells[0].Value = "TO_INCLUDE___CUMULATIVE_OUTPUT_SUMS_FINAL_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[214].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[215].Cells[0].Value = "TO_INCLUDE___CUMULATIVE_COMPLEMENT_SUMS_START_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[215].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[216].Cells[0].Value = "TO_INCLUDE___CUMULATIVE_COMPLEMENT_SUMS_FINAL_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[216].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[217].Cells[0].Value = "TO_INCLUDE___CUMULATIVE_PERPENDICULAR_SUMS_START_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[217].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[218].Cells[0].Value = "TO_INCLUDE___CUMULATIVE_PERPENDICULAR_SUMS_FINAL_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[218].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[219].Cells[0].Value = "TO_INCLUDE___CUMULATIVE_BASE_SUMS_START_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[219].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[220].Cells[0].Value = "TO_INCLUDE___CUMULATIVE_BASE_SUMS_FINAL_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[220].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[221].Cells[0].Value = "TO_INCLUDE___CUMULATIVE_HYPOTENUSE_SUMS_START_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[221].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[222].Cells[0].Value = "TO_INCLUDE___CUMULATIVE_HYPOTENUSE_SUMS_FINAL_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[222].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// THESE ARE DONE AFTER ACHIEVING THE MIDI SOUNDS FROM THE CAD DRAWINGS
// WE ARE TRYING TO UNDERSTAND THE KINDS OF DYNAMICS OF THE POINTS MOVING ALONE IN THE WHOLE THINGS
// AND NOT SHOWING THE OTHER LINES OR OTHER THINGS THERE
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[240].Cells[0].Value = "TO_SHOW_ACCUMULATED_POINTS_DOTS_ENLARGED___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[240].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[241].Cells[0].Value = "SIZE_OF_THE_POINT_TO_REPRESENT";
dataGridViewFOR_GT_PRESETS_DATA.Rows[241].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[0].Value = "SLIDER_SCALE_FACTOR_FOR_CENTRAL_CIRCLES ( x / 1000 = 1 : 1)";//hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS
dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[0].Style.BackColor = Color.LightGreen;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[243].Cells[0].Value = "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[243].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[244].Cells[0].Value = "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[244].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[245].Cells[0].Value = "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[245].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[246].Cells[0].Value = "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[246].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[247].Cells[0].Value = "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[247].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[248].Cells[0].Value = "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[248].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[249].Cells[0].Value = "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[249].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[250].Cells[0].Value = "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[250].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[251].Cells[0].Value = "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[251].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[252].Cells[0].Value = "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[252].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[253].Cells[0].Value = "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[253].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[254].Cells[0].Value = "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[254].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[255].Cells[0].Value = "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[255].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[256].Cells[0].Value = "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[256].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[257].Cells[0].Value = "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[257].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[258].Cells[0].Value = "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[258].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[259].Cells[0].Value = "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[259].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[260].Cells[0].Value = "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[260].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[261].Cells[0].Value = "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[261].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[262].Cells[0].Value = "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[262].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[263].Cells[0].Value = "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[263].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[264].Cells[0].Value = "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[264].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[265].Cells[0].Value = "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[265].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[266].Cells[0].Value = "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[266].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[270].Cells[0].Value = "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[270].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[271].Cells[0].Value = "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[271].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[272].Cells[0].Value = "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[272].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
//////////////////////////////////////////////////////////////////////////////////
/// for references
////////////// Calculate distances and print
////////////double[] distances_for_given = GenerateInterceptsAndDistances(given_x1, given_y1, given_x2, given_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_output = GenerateInterceptsAndDistances(output_x1, output_y1, output_x2, output_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_complement = GenerateInterceptsAndDistances(complement_x1, complement_y1, complement_x2, complement_y2, x_standard, y_standard, N_intercepts);
//////////////////// Calculate CUMULATIONS distances and print
////////////double[] distances_for_output_cumulations = GenerateInterceptsAndDistances(outputs_cumulations_x1, outputs_cumulations_y1, outputs_cumulations_x2, outputs_cumulations_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_complement_cumulations = GenerateInterceptsAndDistances(complements_cumulations_x1, complements_cumulations_y1, complements_cumulations_x2, complements_cumulations_y2, x_standard, y_standard, N_intercepts);
/////////////////////////////// CALCULATE CUMULATIONS
////////////double[] distances_for_hypotenuses_cumulations = GenerateInterceptsAndDistances(hypots_cumulations_x1, hypots_cumulations_y1, hypots_cumulations_x2, hypots_cumulations_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_bases_cumulations = GenerateInterceptsAndDistances(base_cumulations_x1, base_cumulations_y1, base_cumulations_x2, base_cumulations_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_perpendiculars_cumulations = GenerateInterceptsAndDistances(perps_cumulations_x1, perps_cumulations_y1, perps_cumulations_x2, perps_cumulations_y2, x_standard, y_standard, N_intercepts);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[0].Value = "CAUTION_DO_YOU_NEED_THE_WAV_FILES_SAMPLES_FOR_GTSTATES___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[0].Style.BackColor = Color.Red;
dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[0].Value = "CAUTION_FACTOR_GAINS___distances_for_given____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[0].Style.BackColor = Color.Red;
dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[0].Value = "CAUTION_FACTOR_GAINS___distances_for_output____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[0].Style.BackColor = Color.Red;
dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[0].Value = "CAUTION_FACTOR_GAINS___distances_for_complement____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[0].Style.BackColor = Color.Red;
dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[303+1].Cells[0].Value = "CAUTION_FACTOR_GAINS___distances_for_distances_for_output_cumulations____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[303+1].Cells[0].Style.BackColor = Color.Red;
dataGridViewFOR_GT_PRESETS_DATA.Rows[303+1].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 2].Cells[0].Value = "CAUTION_FACTOR_GAINS___distances_for_distances_for_complement_cumulations____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 2].Cells[0].Style.BackColor = Color.Red;
dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 2].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[0].Value = "CAUTION_FACTOR_GAINS___distances_for_hypotenuses_cumulations____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[0].Style.BackColor = Color.Red;
dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[306+1].Cells[0].Value = "CAUTION_FACTOR_GAINS___distances_for_bases_cumulations____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[306+1].Cells[0].Style.BackColor = Color.Red;
dataGridViewFOR_GT_PRESETS_DATA.Rows[306+1].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 2].Cells[0].Value = "CAUTION_FACTOR_GAINS___distances_for_perpendiculars_cumulations____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 2].Cells[0].Style.BackColor = Color.Red;
dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 2].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[0].Value = "CAUTION_SAMPLE_POINTS_PER_HYPOTENUSE_IN_GT_SIMPLEX_SEGMENT____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[0].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[0].Value = "CAUTION_SAMPLE_POINTS_PER_PERPENDICULAR_IN_GT_SIMPLEX_SEGMENT____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[0].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[0].Value = "CAUTION_SAMPLE_POINTS_PER_BASE_IN_GT_SIMPLEX_SEGMENT____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[0].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[0].Value = "CAUTION_SAMPLE_POINTS_PER_CUMULATIONS_SEGMENTS_IN____NUMBER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[0].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
/// added several things below for midi systems also
//////////////////////// THESE ARE NEW VARIABLES TO DO THE CUSTOMIZABLE PATCHES FOR 68 DIFFERENT INSTRUMENTS FOR 68 DIFFERENT TRACKS //////
//////////////////////// THESE ARE NEW VARIABLES TO DO THE CUSTOMIZABLE PATCHES FOR 68 DIFFERENT INSTRUMENTS FOR 68 DIFFERENT TRACKS //////
//////////////////////// THESE ARE NEW VARIABLES TO DO THE CUSTOMIZABLE PATCHES FOR 68 DIFFERENT INSTRUMENTS FOR 68 DIFFERENT TRACKS //////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[0].Value = "TRACK_2_GTMIDS_PATCH_1___320_DRUMS_1____20TH_TO_19TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[0].Value = "TRACK_3_GTMIDS_PATCH_2___321_DRUMS_2____19TH_TO_18TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[0].Value = "TRACK_4_GTMIDS_PATCH_3___322_DRUMS_3____18TH_TO_17TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[0].Value = "TRACK_5_GTMIDS_PATCH_4___323_DRUMS_4____17TH_TO_16TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[0].Value = "TRACK_6_GTMIDS_PATCH_5___324_DRUMS_5____16TH_TO_15TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[0].Value = "TRACK_7_GTMIDS_PATCH_6___325_DRUMS_6____15TH_TO_14TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[0].Value = "TRACK_8_GTMIDS_PATCH_7___326_DRUMS_7____14TH_TO_13TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[0].Value = "TRACK_9_GTMIDS_PATCH_8___327_DRUMS_8____13TH_TO_12TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[0].Value = "TRACK_10_GTMIDS_PATCH_9___328_DRUMS_9____12TH_TO_11TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[0].Value = "TRACK_11_GTMIDS_PATCH_10___329_DRUMS_10____11TH_TO_10TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[0].Value = "TRACK_12_GTMIDS_PATCH_11___330_DRUMS_11____10TH_TO_9TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[0].Value = "TRACK_13_GTMIDS_PATCH_12___331_DRUMS_12____9TH_TO_8TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[0].Value = "TRACK_14_GTMIDS_PATCH_13___332_DRUMS_13____9TH_TO_7TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[0].Value = "TRACK_15_GTMIDS_PATCH_14___333_DRUMS_14____7TH_TO_6TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[0].Value = "TRACK_16_GTMIDS_PATCH_15___334_DRUMS_15____6TH_TO_5TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[0].Value = "TRACK_17_GTMIDS_PATCH_16___335_DRUMS_16____5TH_TO_4TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[0].Value = "TRACK_18_GTMIDS_PATCH_17___336_DRUMS_17____4TH_TO_3RD";
dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[0].Value = "TRACK_19_GTMIDS_PATCH_18___337_DRUMS_18____3RD_TO_2ND";
dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[0].Value = "TRACK_20_GTMIDS_PATCH_19___338_DRUMS_19____2ND_TO_1ST";
dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[0].Value = "TRACK_21_GTMIDS_PATCH_20___339_DRUMS_20____1ST_TO_0TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[0].Value = "TRACK_22_GTMIDS_PATCH_21___340_STRINGS_1____20TH_TO_19TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[0].Value = "TRACK_23_GTMIDS_PATCH_22___341_STRINGS_2____19TH_TO_18TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[0].Value = "TRACK_24_GTMIDS_PATCH_23___342_STRINGS_3____18TH_TO_17TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[0].Value = "TRACK_25_GTMIDS_PATCH_24___343_STRINGS_4____17TH_TO_16TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[0].Value = "TRACK_26_GTMIDS_PATCH_25___344_STRINGS_5____16TH_TO_15TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[0].Value = "TRACK_27_GTMIDS_PATCH_26___345_STRINGS_6____15TH_TO_14TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[0].Value = "TRACK_28_GTMIDS_PATCH_27___346_STRINGS_7____14TH_TO_13TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[0].Value = "TRACK_29_GTMIDS_PATCH_28___347_STRINGS_8____13TH_TO_12TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[0].Value = "TRACK_30_GTMIDS_PATCH_29___348_STRINGS_9____12TH_TO_11TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[0].Value = "TRACK_31_GTMIDS_PATCH_30___349_STRINGS_10____11TH_TO_10TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[0].Value = "TRACK_32_GTMIDS_PATCH_31___350_STRINGS_11____10TH_TO_9TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[0].Value = "TRACK_33_GTMIDS_PATCH_32___351_STRINGS_12____9TH_TO_8TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[0].Value = "TRACK_34_GTMIDS_PATCH_33___352_STRINGS_13____8TH_TO_7TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[0].Value = "TRACK_35_GTMIDS_PATCH_34___353_STRINGS_14____7TH_TO_6TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[0].Value = "TRACK_36_GTMIDS_PATCH_35___354_STRINGS_15____6TH_TO_5TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[0].Value = "TRACK_37_GTMIDS_PATCH_36___355_STRINGS_16____5TH_TO_4TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[0].Value = "TRACK_38_GTMIDS_PATCH_37___356_STRINGS_17____4TH_TO_3RD";
dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[0].Value = "TRACK_39_GTMIDS_PATCH_38___357_STRINGS_18____3RD_TO_2ND";
dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[0].Value = "TRACK_40_GTMIDS_PATCH_39___358_STRINGS_19____2ND_TO_1ST";
dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[0].Value = "TRACK_41_GTMIDS_PATCH_40___359_STRINGS_20____1ST_TO_0TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[0].Value = "TRACK_42_GTMIDS_PATCH_41___360_WINDS_1____20TH_TO_19TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[0].Value = "TRACK_43_GTMIDS_PATCH_42___361_WINDS_2____19TH_TO_18TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[0].Value = "TRACK_44_GTMIDS_PATCH_43___362_WINDS_3____18TH_TO_17TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[0].Value = "TRACK_45_GTMIDS_PATCH_44___363_WINDS_4____17TH_TO_16TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[0].Value = "TRACK_46_GTMIDS_PATCH_45___364_WINDS_5____16TH_TO_15TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[0].Value = "TRACK_47_GTMIDS_PATCH_46___365_WINDS_6____15TH_TO_14TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[0].Value = "TRACK_48_GTMIDS_PATCH_47___366_WINDS_7____14TH_TO_13TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[0].Value = "TRACK_49_GTMIDS_PATCH_48___367_WINDS_8____13TH_TO_12TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[0].Value = "TRACK_50_GTMIDS_PATCH_49___368_WINDS_9____12TH_TO_11TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[0].Value = "TRACK_51_GTMIDS_PATCH_50___369_WINDS_10____11TH_TO_10TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[0].Value = "TRACK_52_GTMIDS_PATCH_51___370_WINDS_11____10TH_TO_9TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Value = "TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[0].Value = "TRACK_54_GTMIDS_PATCH_53___372_WINDS_13____8TH_TO_7TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[0].Value = "TRACK_55_GTMIDS_PATCH_54___373_WINDS_14____7TH_TO_6TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[0].Value = "TRACK_56_GTMIDS_PATCH_55___374_WINDS_15____6TH_TO_5TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
///
///
///
///
///
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[0].Value = "TRACK_57_GTMIDS_PATCH_56___375_WINDS_16____5TH_TO_4TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[0].Value = "TRACK_58_GTMIDS_PATCH_57___376_WINDS_17____4TH_TO_3RD";
dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[0].Value = "TRACK_59_GTMIDS_PATCH_58___377_WINDS_18____3RD_TO_2ND";
dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[0].Value = "TRACK_60_GTMIDS_PATCH_59___378_WINDS_19____2ND_TO_1ST";
dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[0].Value = "TRACK_61_GTMIDS_PATCH_60___379_WINDS_20____1ST_TO_0TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[0].Value = "TRACK_62_GTMIDS_PATCH_61___380_LONG_NOTES_1";
dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[0].Value = "TRACK_63_GTMIDS_PATCH_62___381_LONG_NOTES_2";
dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[0].Value = "TRACK_64_GTMIDS_PATCH_63___382_LONG_NOTES_3";
dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[0].Value = "TRACK_65_GTMIDS_PATCH_64___383_LONG_NOTES_4";
dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[0].Value = "TRACK_66_GTMIDS_PATCH_65___384_LONG_NOTES_5";
dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[0].Value = "TRACK_67_GTMIDS_PATCH_66___385_LONG_NOTES_6";
dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[0].Value = "TRACK_68_GTMIDS_PATCH_67___386_LONG_NOTES_7";
dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[0].Value = "TRACK_69_GTMIDS_PATCH_68___387_LONG_NOTES_8";
dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
//////double Original_long_lines_x1
//////,double Original_long_lines_y1
//////, double Original_long_lines_z1
//////, double Original_long_lines_x2
//////, double Original_long_lines_y2
//////, double Original_long_lines_z2
///
///
/// /////////////////////////////////////////////////////////////
//////, double tolerance_after_which_breaking_starts
//////, double first_line_segment_length
//////, double common_difference_for_line_segment_length
//////, double first_rotation_angle_degrees_theta0
//////,double common_difference_rotation_angle_degrees_thetaDiff
//////,double left_side_offset_multiplier
//////,double right_side_offset_multiplier
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[400].Cells[0].Value = "MIN_TOLERANCE_LENGTH_LONG_LINE_SPLITTER_400";
dataGridViewFOR_GT_PRESETS_DATA.Rows[400].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[400].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[401].Cells[0].Value = "FIRST_SMALL_SEGMENT_LENGTH_AP_TERMS_0_LONG_LINE_SPLITTER_401";
dataGridViewFOR_GT_PRESETS_DATA.Rows[401].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[401].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[402].Cells[0].Value = "COMMN_DIFF_FOR_AP_LENGTH_LONG_LINE_SPLITTER_402";
dataGridViewFOR_GT_PRESETS_DATA.Rows[402].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[402].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[403].Cells[0].Value = "FIRST_ROT_ANG_DEG_FOR_AP_LONG_LINE_SPLITTER_403";
dataGridViewFOR_GT_PRESETS_DATA.Rows[403].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[403].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[404].Cells[0].Value = "COMMN_DIFF_ROT_ANG_DEG_FOR_AP_LONG_LINE_SPLITTER_404";
dataGridViewFOR_GT_PRESETS_DATA.Rows[404].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[404].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[405].Cells[0].Value = "LEFT_SIDE_DIST_OFFSET_MULTIPLIER_LONG_LINE_SPLITTER_405";
dataGridViewFOR_GT_PRESETS_DATA.Rows[405].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[405].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[406].Cells[0].Value = "RIGHT_SIDE_DIST_OFFSET_MULTIPLIER_LONG_LINE_SPLITTER_406";
dataGridViewFOR_GT_PRESETS_DATA.Rows[406].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[406].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[407].Cells[0].Value = "LEFT_SIDE_DEGREE_ANGULAR_MULTIPLIER_LONG_LINE_SPLITTER_407";
dataGridViewFOR_GT_PRESETS_DATA.Rows[407].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[407].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[408].Cells[0].Value = "RIGHT_SIDE_DEGREE_ANGULAR_MULTIPLIER_LONG_LINE_SPLITTER_408";
dataGridViewFOR_GT_PRESETS_DATA.Rows[408].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[408].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[409].Cells[0].Value = "DEFAULT_2__LOGARITHMS_BASE_FOR_PITCH_BENDS_409";
dataGridViewFOR_GT_PRESETS_DATA.Rows[409].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[409].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
//////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/09/abstractmelodyandeargrammars.html
///https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/09/flutemodelingvibrato.html
//WE ARE TAKING THESE FROM ROW 420 IN THE FLEX GRIDS
//we are using these for the circle splitting to generate the notes in more creative ways
//we can take the l;ayered circles and offsetted circles to generate the notes
///for the more creative styles of ear grammars generations through the well defined sequences of the distributions of notes around the circles
//////double circumference,/// not to take as input in flexgrids
//////double center_x,/// not to take as input in flexgrids
//////double center_y,/// not to take as input in flexgrids
//////double center_z,/// not to take as input in flexgrids
//////double min_center_x_offset_to_include_for_small_lines, FOR FLEXGRIDS
//////double min_center_y_offset_to_include_for_small_lines, FOR FLEXGRIDS
//////double min_center_z_offset_to_include_for_small_lines, FOR FLEXGRIDS
//////double radius_found,/// not to take as input in flexgrids
///
//////double radius_min_to_filter_for_small_lines_generations, FOR FLEXGRIDS
//////double references_rotor_center_for_all_segments_x_offset_from_cx, FOR FLEXGRIDS
//////double references_rotor_center_for_all_segments_y_offset_from_cy, FOR FLEXGRIDS
//////string substring_for_layers_name_user_input_to_include_to_split, FOR FLEXGRIDS
//////string STRING_LAYER_NAME_FOUND_FOR_THE_ENTITY_CIRCLE,
//////double push_away_from_center_scale_factor, FOR FLEXGRIDS
//////double pull_towards_to_center_scale_factor, FOR FLEXGRIDS
//////double first_line_segment_length, FOR FLEXGRIDS
//////double common_difference_for_line_segment_length, FOR FLEXGRIDS
//////double first_rotation_angle_degrees_theta0, FOR FLEXGRIDS
//////double common_difference_rotation_angle_degrees_thetaDiff, FOR FLEXGRIDS
//////double left_side_offset_multiplier, FOR FLEXGRIDS
//////double right_side_offset_multiplier, FOR FLEXGRIDS
//////double left_side_degrees_offsets_multiplier, FOR FLEXGRIDS
//////double right_side_degrees_offsets_multiplier FOR FLEXGRIDS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[420].Cells[0].Value = "MIN_CENTER_X_OFFSET_CIRCS_SPLITTER_NOTES___420";
dataGridViewFOR_GT_PRESETS_DATA.Rows[420].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[420].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[421].Cells[0].Value = "MIN_CENTER_Y_OFFSET_CIRCS_SPLITTER_NOTES___421";
dataGridViewFOR_GT_PRESETS_DATA.Rows[421].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[421].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[422].Cells[0].Value = "MIN_CENTER_Z_OFFSET_CIRCS_SPLITTER_NOTES___422";
dataGridViewFOR_GT_PRESETS_DATA.Rows[422].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[422].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[423].Cells[0].Value = "MIN_RADIUS_TO_DO_CIRCS_SPLITTER_NOTES___423";
dataGridViewFOR_GT_PRESETS_DATA.Rows[423].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[423].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
//AFTER SPLITTING IS DONE WE CAN ROTATE WHOLE SETS OF SMALL LINE SEGMENTS ABOUT THIS REF ROTOR CENTER CHANGEABLE WITH NOTES COUNTERS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[424].Cells[0].Value = "REF_ROTOR_CENTER_X_CIRCS_SPLITTER_NOTES___424";
dataGridViewFOR_GT_PRESETS_DATA.Rows[424].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[424].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
//AFTER SPLITTING IS DONE WE CAN ROTATE WHOLE SETS OF SMALL LINE SEGMENTS ABOUT THIS REF ROTOR CENTER CHANGEABLE WITH NOTES COUNTERS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[425].Cells[0].Value = "REF_ROTOR_CENTER_Y_CIRCS_SPLITTER_NOTES___425";
dataGridViewFOR_GT_PRESETS_DATA.Rows[425].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[425].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[426].Cells[0].Value = "TO_CHECK_NEAREST_OVERLAPS_OF_NOTES_CHORDS_IN_CIRC_SPLITTING___426";
dataGridViewFOR_GT_PRESETS_DATA.Rows[426].Cells[0].Style.BackColor = Color.LightSlateGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[426].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[427].Cells[0].Value = "LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427";
dataGridViewFOR_GT_PRESETS_DATA.Rows[427].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[427].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
//////double push_away_from_center_scale_factor, FOR FLEXGRIDS
//////double pull_towards_to_center_scale_factor, FOR FLEXGRIDS
//////double first_line_segment_length, FOR FLEXGRIDS
//////double common_difference_for_line_segment_length, FOR FLEXGRIDS
//////double first_rotation_angle_degrees_theta0, FOR FLEXGRIDS
//////double common_difference_rotation_angle_degrees_thetaDiff, FOR FLEXGRIDS
//////double left_side_offset_multiplier, FOR FLEXGRIDS
//////double right_side_offset_multiplier, FOR FLEXGRIDS
//////double left_side_degrees_offsets_multiplier, FOR FLEXGRIDS
//////double right_side_degrees_offsets_multiplier FOR FLEXGRIDS
///
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[428].Cells[0].Value = "PUSH_AWAY_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___428";
dataGridViewFOR_GT_PRESETS_DATA.Rows[428].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[428].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[429].Cells[0].Value = "PULL_TOWARDS_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___429";
dataGridViewFOR_GT_PRESETS_DATA.Rows[429].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[429].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[430].Cells[0].Value = "DO_YOU_NEED_CENTI_DEGREES_SNAPPING_OF_NOTES___430";
dataGridViewFOR_GT_PRESETS_DATA.Rows[430].Cells[0].Style.BackColor = Color.LightSlateGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[430].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[431].Cells[0].Value = "FIRST_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___431";
dataGridViewFOR_GT_PRESETS_DATA.Rows[431].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[431].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[432].Cells[0].Value = "COMMS_DIFFS_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___432";
dataGridViewFOR_GT_PRESETS_DATA.Rows[432].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[432].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[433].Cells[0].Value = "FIRST_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___433";
dataGridViewFOR_GT_PRESETS_DATA.Rows[433].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[433].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[434].Cells[0].Value = "COMMN_DIFFS_FOR_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___434";
dataGridViewFOR_GT_PRESETS_DATA.Rows[434].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[434].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[435].Cells[0].Value = "LEFT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___435";
dataGridViewFOR_GT_PRESETS_DATA.Rows[435].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[435].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[436].Cells[0].Value = "RIGHT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___436";
dataGridViewFOR_GT_PRESETS_DATA.Rows[436].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[436].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[437].Cells[0].Value = "LEFT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___437";
dataGridViewFOR_GT_PRESETS_DATA.Rows[437].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[437].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[438].Cells[0].Value = "RIGHT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___438";
dataGridViewFOR_GT_PRESETS_DATA.Rows[438].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[438].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[439].Cells[0].Value = "MIN_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___439";
dataGridViewFOR_GT_PRESETS_DATA.Rows[439].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[439].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[440].Cells[0].Value = "MAX_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___440";
dataGridViewFOR_GT_PRESETS_DATA.Rows[440].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[440].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[441].Cells[0].Value = "DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441";
dataGridViewFOR_GT_PRESETS_DATA.Rows[441].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[441].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[442].Cells[0].Value = "DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442";
dataGridViewFOR_GT_PRESETS_DATA.Rows[442].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[442].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[443].Cells[0].Value = "DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443";
dataGridViewFOR_GT_PRESETS_DATA.Rows[443].Cells[0].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[443].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[0].Value = "D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444";
dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[0].Value = "D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445";
dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[0].Value = "D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446";
dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
//////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/09/flutemodelingvibrato.html
///for references public static int NUMBER_OF_TRIANGLES_INVOLVED_IN_COMMAND_STRING_EXCEPT_L_AND_Z = 0;
///for references public static double average_of_pivot_x = 0;
///for references public static double average_of_pivot_y = 0;
///for references public static double variance_of_pivot_x = 0;
///for references public static double variance_of_pivot_y = 0;
///for references public static double sd_of_pivot_x = 0;
///for references public static double sd_of_pivot_y = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_pivot_x = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_pivot_y = 0;
///for references public static double average_of_stretch_x = 0;
///for references public static double average_of_stretch_y = 0;
///for references public static double variance_of_stretch_x = 0;
///for references public static double variance_of_stretch_y = 0;
///for references public static double sd_of_stretch_x = 0;
///for references public static double sd_of_stretch_y = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_stretch_x = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_stretch_y = 0;
///for references public static double average_of_nodal_x = 0;
///for references public static double average_of_nodal_y = 0;
///for references public static double variance_of_nodal_x = 0;
///for references public static double variance_of_nodal_y = 0;
///for references public static double sd_of_nodal_x = 0;
///for references public static double sd_of_nodal_y = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_nodal_x = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_nodal_y = 0;
///for references public static double average_of_output_cumuls_x = 0;
///for references public static double average_of_output_cumuls_y = 0;
///for references public static double variance_of_output_cumuls_x = 0;
///for references public static double variance_of_output_cumuls_y = 0;
///for references public static double sd_of_output_cumuls_x = 0;
///for references public static double sd_of_output_cumuls_y = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_output_cumuls_x = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_output_cumuls_y = 0;
///for references public static double average_of_complement_cumuls_x = 0;
///for references public static double average_of_complement_cumuls_y = 0;
///for references public static double variance_of_complement_cumuls_x = 0;
///for references public static double variance_of_complement_cumuls_y = 0;
///for references public static double sd_of_complement_cumuls_x = 0;
///for references public static double sd_of_complement_cumuls_y = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_complementt_cumuls_x = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_complement_cumuls_y = 0;
///for references public static double average_of_perpendicular_cumuls_sums_x = 0;
///for references public static double average_of_perpendicular_cumuls_sums_y = 0;
///for references public static double variance_of_perpendicular_cumuls_sums_x = 0;
///for references public static double variance_of_perpendicular_cumuls_sums_y = 0;
///for references public static double sd_of_perpendicular_cumuls_sums_x = 0;
///for references public static double sd_of_perpendicular_cumuls_sums_y = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_perpendicular_cumuls_sums_x = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_perpendicular_cumuls_sums_y = 0;
///for references public static double average_of_base_cumuls_sums_x = 0;
///for references public static double average_of_base_cumuls_sums_y = 0;
///for references public static double variance_of_base_cumuls_sums_x = 0;
///for references public static double variance_of_base_cumuls_sums_y = 0;
///for references public static double sd_of_base_cumuls_sums_x = 0;
///for references public static double sd_of_base_cumuls_sums_y = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_base_cumuls_sums_x = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_base_cumuls_sums_y = 0;
///for references public static double average_of_hypotenuse_cumuls_sums_x = 0;
///for references public static double average_of_hypotenuse_cumuls_sums_y = 0;
///for references public static double variance_of_hypotenuse_cumuls_sums_x = 0;
///for references public static double variance_of_hypotenuse_cumuls_sums_y = 0;
///for references public static double sd_of_hypotenuse_cumuls_sums_x = 0;
///for references public static double sd_of_hypotenuse_cumuls_sums_y = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_hypotenuse_cumuls_sums_x = 0;
///for references public static double SQUARING_FOR_VAR_CALCS_average_of_hypotenuse_cumuls_sums_y = 0;
///
///
///
///
///
///
////// the above part is for the headings of the variables in the column=0
////// the above part is for the headings of the variables in the column=0
////// the above part is for the headings of the variables in the column=0
////// the above part is for the headings of the variables in the column=0
////// the above part is for the headings of the variables in the column=0
////// the above part is for the headings of the variables in the column=0
dataGridViewFOR_GT_PRESETS_DATA.Rows[0].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[1].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[2].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[3].Cells[1].Value = "1000";//THESE ARE ADDED on 28062020plus when we have made drastic changes for the calculations procedures and stage wise constructions visualizations also
dataGridViewFOR_GT_PRESETS_DATA.Rows[4].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[5].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value = "1000";
dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[1].Value = "0";// "26"; the default value to zero is ok to avoid theorems generations mistakes
dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[2].Value = "CHANGE IT TO 0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[2].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[8].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[9].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[10].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[11].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[12].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[13].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[14].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[15].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[16].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[17].Cells[1].Value = "0";
/////////////// since the points calculations and the circle calculations for the theorems generations are taking long time
///when we keep so large numbers of operations so we need to think with smaller data here
/// dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value = "LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ";
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value = "LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ"; ;// "LAOAOAOZ";
dataGridViewFOR_GT_PRESETS_DATA.Rows[19].Cells[1].Value = "Variables.VarTableFUNDAMENTAL:20";
dataGridViewFOR_GT_PRESETS_DATA.Rows[20].Cells[1].Value = "null";
dataGridViewFOR_GT_PRESETS_DATA.Rows[21].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[22].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[23].Cells[1].Value = "Variables.VarTableFUNDAMENTAL:24";
dataGridViewFOR_GT_PRESETS_DATA.Rows[24].Cells[1].Value = "Variables.VarTableFUNDAMENTAL:25";
dataGridViewFOR_GT_PRESETS_DATA.Rows[25].Cells[1].Value = "Variables.VarTableFUNDAMENTAL:26";
dataGridViewFOR_GT_PRESETS_DATA.Rows[26].Cells[1].Value = "Variables.VarTableFUNDAMENTAL:27";
dataGridViewFOR_GT_PRESETS_DATA.Rows[27].Cells[1].Value = "//";
dataGridViewFOR_GT_PRESETS_DATA.Rows[28].Cells[1].Value = "YES";//DO_YOU_WANT_TO_CLEAR_GRAPHICS_AT_EVERY_TRANSITIONS_YES_NO ;// "//";
dataGridViewFOR_GT_PRESETS_DATA.Rows[29].Cells[1].Value = "//";
dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value = "13";
dataGridViewFOR_GT_PRESETS_DATA.Rows[31].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[32].Cells[1].Value = "L_REF";
dataGridViewFOR_GT_PRESETS_DATA.Rows[33].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[34].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[35].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[36].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[37].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[38].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[39].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[40].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[41].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[42].Cells[1].Value = "ANTICLOCK";
dataGridViewFOR_GT_PRESETS_DATA.Rows[43].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[44].Cells[1].Value = "0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[45].Cells[1].Value = "600000";
dataGridViewFOR_GT_PRESETS_DATA.Rows[46].Cells[1].Value = "600000";
dataGridViewFOR_GT_PRESETS_DATA.Rows[47].Cells[1].Value = "-600000";
dataGridViewFOR_GT_PRESETS_DATA.Rows[48].Cells[1].Value = "-600000";
//we are adding these new variables for the conditional demonstration of the line segments
//CALLING CONVENTIONS ARE FOR THESE LIKE
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PERPENDICULAR_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BASE_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_HYPOTENUSE_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOTS_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_CG_CHAINS_LINES = true;
//we are adding these new variables for the conditional demonstration of the line segments
//CALLING CONVENTIONS ARE FOR THESE LIKE
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PERPENDICULAR_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BASE_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_HYPOTENUSE_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOTS_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_CG_CHAINS_LINES = true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[49].Cells[1].Value = "YES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[50].Cells[1].Value = "YES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[51].Cells[1].Value = "YES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[52].Cells[1].Value = "NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[52 + 1].Cells[1].Value = "NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[53 + 1].Cells[1].Value = "NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[53 + 2].Cells[1].Value = "NO";
//THESE ARE SPECIAL COMMANDS FOR SPECIAL CHECKING
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_PERPENDICULAR_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_BASE_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_HYPOTENUSE_LINES = true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[56].Cells[1].Value = "YES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[57].Cells[1].Value = "YES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[58].Cells[1].Value = "YES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[59].Cells[1].Value = "YES";// "SHOW_OUTPUT_LINES_ADDRESS_TEXTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[60].Cells[1].Value = "YES";// "SHOW_COMPLEMENT_LINES_ADDRESS_TEXTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[61].Cells[1].Value = "YES";// "CLEAR_SCREEN_WITH_NEW_SEEDS_ANGLES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[62].Cells[1].Value = "NO";// "KEEP_CURRENT_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[63].Cells[1].Value = "NO"; //"KEEP_0_TO_360_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 1].Cells[1].Value = "NO";// "SHOW_EACH_PIVOTS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 2].Cells[1].Value = "NO";// "SHOW_EACH_STRETCHES_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
dataGridViewFOR_GT_PRESETS_DATA.Rows[66].Cells[1].Value = "NO";// "SHOW_EACH_NODALS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_VECTOR_FROM_ORIGIN_0_0 = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_VECTOR_FROM_ORIGIN_0_0 = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_VECTOR_FROM_ORIGIN_0_0 = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BOUNDING_BOXES = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_X = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_Y = true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[66 + 1].Cells[1].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[68].Cells[1].Value = "NO"; //(DISTURBING) "YES";// "SHOW_PIVOT_VERTICAL_PROJECTIONS_ON_X_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[69].Cells[1].Value = "NO"; //(DISTURBING)"YES";// "SHOW_STRETCH_VERTICAL_PROJECTIONS_ON_X_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[70].Cells[1].Value = "NO"; //(DISTURBING)"YES";//"SHOW_NODAL_VERTICAL_PROJECTIONS_ON_X_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[71].Cells[1].Value = "NO"; //(DISTURBING)"YES";// "SHOW_PIVOT_HORIZONTAL_PROJECTIONS_ON_Y_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[72].Cells[1].Value = "NO"; //(DISTURBING)"YES";//"SHOW_STRETCH_HORIZONTAL_PROJECTIONS_ON_Y_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[73].Cells[1].Value = "NO"; //(DISTURBING)"YES";// "SHOW_NODAL_HORIZONTAL_PROJECTIONS_ON_Y_AXIS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[73 + 1].Cells[1].Value = "NO"; //(DISTURBING) "YES";// "SHOW_PIVOT_VECTOR_FROM_ORIGIN_0_0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[73 + 2].Cells[1].Value = "NO"; //(DISTURBING)"YES";// "SHOW_STRETCH_VECTOR_FROM_ORIGIN_0_0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[76].Cells[1].Value = "NO"; //(DISTURBING) "YES";// "SHOW_NODAL_VECTOR_FROM_ORIGIN_0_0";
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BOUNDING_BOXES = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_X = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_Y = true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[77].Cells[1].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[78].Cells[1].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[78 + 1].Cells[1].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[80].Cells[1].Value = "YES";// "SHOW_BOUNDING_BOXES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[81].Cells[1].Value = "YES";//"TO_SHOW_THE_AXIS_X";
dataGridViewFOR_GT_PRESETS_DATA.Rows[82].Cells[1].Value = "YES";// "SHOW_THE_AXIS_Y";
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE here we set 0 to 360 scanning data //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE here we set 0 to 360 scanning data //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE here we set 0 to 360 scanning data //////////////////////////
//THESE ARE ADDED AFTER THE 0 TO 360 SCANNING IS DONE
dataGridViewFOR_GT_PRESETS_DATA.Rows[83].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[83 + 1].Cells[1].Value = "YES";//"SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[83 + 2].Cells[1].Value = "YES";//"SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[86].Cells[1].Value = "YES";//"SHOW_0_TO_360_SEEDS_TRIANGLES_FOR_R_TH_CHARACTER_COMMANDS";
//THESE ARE ADDED AFTER THE 0 TO 360 SCANNING IS DONE
dataGridViewFOR_GT_PRESETS_DATA.Rows[87].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[88].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[88 + 1].Cells[1].Value = "YES";//"SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[90].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[91].Cells[1].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[92].Cells[1].Value = "NOTHING";
dataGridViewFOR_GT_PRESETS_DATA.Rows[92 + 1].Cells[1].Value = "NOTHING";
//THESE ARE ADDED AFTER THE 0 TO 360 SCANNING IS DONE
dataGridViewFOR_GT_PRESETS_DATA.Rows[94].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[95].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[96].Cells[1].Value = "YES";//"SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES";
dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 1].Cells[1].Value = "NO";// "DO_YOU_WANT_TO_STORE_GIF_FILES(YES/NO)";
////////////////////////////////////////////////////////////////////////////////////////////////
//////// dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value = "LAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOZ";
////// first 3 variables are having 0 to 8
///next 5 variables controll first 3 variables
///so 32 is sufficient and we have 0 to F and then G to Z whicj means
///we can have 32 states to controll all orientations
/// this is new things
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
{
int _temp_commands_strings_length = 0;
_temp_commands_strings_length
=
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Length;
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value
=
(new String('R', _temp_commands_strings_length)).ToString();
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[2].Value
=
"1248GFV1248GFV1248GFV1248GFV1248GFV1248GFV1248GFV";
;// "ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888...";
}// if(dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value!=null)
//THESE THREE ARE THE VISUALIZERS FILTERS IN THE FOR LOOP OF GT SIMPLEX CONSTRUCTIONS WHICH COUNTS THE NUMBER OF STAGES TO VISUALIZE AND THE COUNTER WITHIN THE MIN TO MAX RANGES ARE ONLY VISUALIZED IN THE RENDERER SCREENS
//SLIDER WILL CONTROLL THE VALUES DEPENDING UPON THE GAP VALUE IN ROW 100 THE ROW 96+2 IS SLIDER CONTROLLED OR TYPED (ERROR CHECKING TO DO INSIDE THE LOADER OF THE FORMS DATA)
//WE WILL HAVE TO TAKE CARE FOR THE INDEX OUT OF BOUNDS CONDITIONS THROUGH THE MIN WITH THE MAX CONTROLLERS DATA
//THESE VARIABLES ARE ADDED TO GET THE FILTERED DATA VISUALIZATION FOR THE CONSTRUCTIONS PROTOCOLS TO SEE WHICH OF THE GT SEEDS TRIANGLE IS FORMED AT WHAT STAGES
//this value is controlled with the slider of filtering visualizing things so CAUTIONS are required at this stages
//FIRST CHECKS THE COMMAND STRINGS AND ITS LENGTHS THE MAX DATA CANNOT EXCEED THIS LENGTH
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
{
//i have tested that default systems are working
//FIRST CHECKS THE COMMAND STRINGS AND ITS LENGTHS THE MAX DATA CANNOT EXCEED THIS LENGTH
dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value =
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length.ToString();
;// "THE_MINIMUM_VALUE_OF_VISUALIZER_FILTER";//DEFAULT IS LENGTH OF GT STRING COMMAND (REVISED TO GT_STRING LENGTHS EVERY TIMES)WE WILL CONTROLL THIS WITH SLIDER (NOT THE OTHER VALUES)
//////// CALLING CONVENTION
//////ExcelFormulaParser_GT_PARSER
////// .GT_PARSERS.PUBLIC_STATIC_CLASS_FOR_MY_OWN_FORMULA_PARSER_FOR_GT
////// .PUBLIC_STATIC_STRING_FROM_GIVEN_GT_STRING_FOR_GTSIMPLEX
////// (string filename_to_log_all_cases, string GTSIMPLEX_STRING_COMMAND);
}
else
{
//FIRST CHECKS THE COMMAND STRINGS AND ITS LENGTHS THE MAX DATA CANNOT EXCEED THIS LENGTH
dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value = "100";//risky to set this properly in the loader conditions when the command string is read
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
//these are also too much important visualization filtereing controllers so we need to set these data with cautions otherwise the complete gt simplex will not get rendered upto complete depths
dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 3].Cells[1].Value = "0";////CAUTION "THE_MINIMUM_VALUE_OF_VISUALIZER_FILTER";//DEFAULT IS ZERO THIS IS CONTROLLED WITH THE SLIDER ALSO (WE CAN SET THIS WITH SLIDER IF NEXT GAP DATA IS NOT ZERO OTHERWISE THE MAX CONTROLLER SLIDER WILL NOT CHANGE THIS VALUE)
dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value = "0";////CAUTION "DEFAULT GAP=0(FROM SLIDER MAX FOR>0 (MAX-GAP)=MIN IS SET";//THIS HELPS US TO VISUALIZE THE SPECIFIC GT SEEDS TRIANGLE AT THE STAGES FROM THE LAST OF MAXIMUM VALUE CHOSEN IN THE SLIDERS
//THESE ARE FOR THE POWER SERIES ANALYSIS OF THE WHOLE SYSTEMS AS SUMMATIONS OF SERIES AS COEFFICIENTS MULTIPLIED TO THE RECURSIVE STAGE WISE OUTPUTS AND THE COMPLEMENTS
//TO CHECK HOW THE NATURAL SUMMATIONS OF THE OUTPUT LINE SEGMENTS (SCALED WITH COEFFICIENTS SELECTED WHEN FACTORS <> 0 AND THE OUTPUTS OR COMPLEMENTS ARE NOT TAKEN WHEN THE FACTORS ARE TAKEN AS ZERO ARE NOT TAKEN WHEN
//THE SCALE TO FIT COEFFICIENTS THE MAX WITH THE MIN WILL ALSO GET ADJUSTED WITH THE CONDITIONS OF THE CUMULATIONS DONE WHEN THE CUMULATIONS OUTPUTS ARE GENERATED
dataGridViewFOR_GT_PRESETS_DATA.Rows[101].Cells[1].Value = "1.00";// "GLOBALLY_ALL_DOUBLE_VALUES_COEFFICIENT_FACTOR_CURRENT_GT_TRIANGLE_OUTPUT_FOR_POWER_SERIES";//WE WILL ADD THESE FOR ZERO COEFFICIENTS POWER SERIES CASES
dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 1].Cells[1].Value = "1.00";// "GLOBALLY_ALL_DOUBLE_VALUESCOEFFICIENT_FACTOR_CURRENT_GT_TRIANGLE_COMPLEMENT_FOR_POWER_SERIES";//WE WILL ADD THESE FOR ZERO COEFFICIENTS POWER SERIES CASES
dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 2].Cells[1].Value = "";// "DUMMY";
dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3 + 1].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N";
//CAUTION NOTE FOR FUTURE WORKING
//CAUTION NOTE FOR FUTURE WORKING
//CAUTION NOTE FOR FUTURE WORKING
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
//AFTER WE GOT SUCCESS IN THE VISUALIZATIONS OF THE CONCATENATED OUTPUTS AND THE CONCATENATED COMPLEMENTS LINE SEGMENTS GEOMETRICALLY WE ARE TRYING TO GET SOME MORE INFORMATIONS FROM THE THINGS THERE
//THESE ARE TO ANALYSE TO GET THE CONDITIONS OF GEOMETRY THAT CAN GENERATE WITH THE OUTPUTS PERPENDICULARS CONCATENATED ONLY FOR THE POWER SERIES ANALYSIS SYSTEMS
dataGridViewFOR_GT_PRESETS_DATA.Rows[106].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_PERPENDICULAR_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 1].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_BASE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 2].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_HYPOTENUSE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_PERPENDICULAR_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 1].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_BASE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 2].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_HYPOTENUSE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[112].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_PERPENDICULAR_ALL_SHOW_SCALES_TO_FIT_Y_N"; // ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
dataGridViewFOR_GT_PRESETS_DATA.Rows[113].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_BASE_ALL_SHOW_SCALES_TO_FIT_Y_N";// ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
dataGridViewFOR_GT_PRESETS_DATA.Rows[114].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_HYPOTENUSE_ALL_SHOW_SCALES_TO_FIT_Y_N";// ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
//FOR SEVERAL CASES WE DONT NEED GIF FILES BUT THE PROPER NAMED FILES WITH COMMAND STRINGS AND THE ANGLES DATA WITH THE STAGES OF THGE CONSTRUCTIONS SEQUENCES
//SINCE SEVERAL TIMES WE NEED TO COMMUNICATE WITH OTHERS REGARDING THE SHAPES AND SIZES OF THE DATA WHICH WE WILL USE FOR THE COMMUNICATIONS ALONG WITH THE DXF FILES
dataGridViewFOR_GT_PRESETS_DATA.Rows[115].Cells[1].Value = "YES";//"DO_YOU_NEED_NAMED_SNAP_FOR_CURRENT_BMP(Y_N)FOR_NON_GIF_SNAPS";//THIS IS NEEDED WHEN WE WANT TO PREPARE THE DOCUMENTATIONS FOR COMMUNICATIONS WITH SPECIFIC CASES AND WE DONT NEED THE GIF FILES
dataGridViewFOR_GT_PRESETS_DATA.Rows[115 + 1].Cells[1].Value = "YES";// "DO_YOU_NEED_NAMED_DXF_FOR_CURRENT_STATES(Y_N)";//THIS IS NEEDED WHEN WE WANT TO PREPARE THE DOCUMENTATIONS FOR COMMUNICATIONS WITH SPECIFIC CASES AND WE DONT NEED THE GIF FILES
//we have made the calculations of unit vectors and the lengths of the corresponding distances of the CG_TO_PIVOT CG_TO_STRETCH CG_TO_NODAL HANDLING TO SHOW THE SHRINK AND GROW OF THE PERPENDICULAR BASE AND THE HYPOTENUSE LINES WITH ARROW HEADS FOR DIRECTIONAL UNDERSTANDINGS REPRESENTED IN THE OVERLAP FREE STYLES
//CALLING CONVENTION public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE______REPRESENTATIONAL_SCALE_FACTOR_OF_CURRENT_GT_SEED_TRIANGLE_FROM_THE_CURRENT_CG_TO_SHRINK_GROW_POINTS_TO_DETECT_OVERLAPS_OF_LINES_OR_POINTS_ON_GRAPHS
//WE DONT NEED ANY OTHER SEPARATE BOOLEAN VARIABLES FOR THE VISIBILITY OF THE REPRESENTATIONAL TRIANGLES GENERATIONS ON SCREEN FOR OVERLAP FREE RENDERING
//IF THE VALUE OF THIS VARIABLE IS NOT ZERO 0 OR NOT 1 THEN IT WILL CONSIDER THAT WE HAVE TO SHOW THESE REPRESENTATIONAL PERPENDICULARS , REPRESENTATIONAL BASE AND THE REPRESENTATIONAL HYPOTENUSE ON SCREEN WITH DIRECTIONAL ARROWHEADS AND ALSO WE NEED TO SHOW THAT OVERLAP FREE THROUGH THE SETTING OF N FOR THE ORIGINAL RENDERING LINES
//TRICKY VARIABLES
// dataGridViewFOR_GT_PRESETS_DATA.Rows[117].Cells[0].Value = "REPRESENTATIONAL_SCALE_FACTOR___TRUE_IF_NOT_0_OR_NOT_1";
//this is a special variable which is double type but for its values of zero or 1 it will not render the data on screen nor on the dxf files with arrow heads and overlap free
//CAUTION NOTE THIS IS DOUBLE TYPE VARIABLE BUT CONTROLS THE BOOLEAN CONDITIONS OF RENDERING ON SCREEN AND ALSO ON DXF FOR OVERLAP FREE RENDERING WITH ARROWHEADS
//THE OVERLAP FREE SHRINKING OR STRETCHED SEGMENTS WILL NOT SHOW(NOR ON SCREEN NOR ON DXF) FOR =0 OR FOR =1
//THE OVERLAP FREE SHRINKING OR STRETCHED SEGMENTS WILL NOT SHOW(NOR ON SCREEN NOR ON DXF) FOR =0 OR FOR =1
//THE OVERLAP FREE SHRINKING OR STRETCHED SEGMENTS WILL NOT SHOW(NOR ON SCREEN NOR ON DXF) FOR =0 OR FOR =1
dataGridViewFOR_GT_PRESETS_DATA.Rows[117].Cells[1].Value = 0.11;// "1" ; //THE OVERLAP FREE SHRINKING OR STRETCHED SEGMENTS WILL NOT SHOW(NOR ON SCREEN NOR ON DXF) FOR =0 OR FOR =1
//TOO IMPORTANT VARIABLE [117] FOR OVERLAP FREE VISUALIZATIONS ON SCREEN AND ALSO ON THE DXF FILES
//TOO IMPORTANT VARIABLE [117] FOR OVERLAP FREE VISUALIZATIONS ON SCREEN AND ALSO ON THE DXF FILES
//TOO IMPORTANT VARIABLE [117] FOR OVERLAP FREE VISUALIZATIONS ON SCREEN AND ALSO ON THE DXF FILES
//WE HAVE THE GREAT VISUALIZATIONS NOW TO SEE THE SMALLENED AND LARGENED RECURSIVELY CONSTRUCTED GT_TRIANGLES FOR EACH STAGES
//SO IT BECOMES VERY NECESSARY TO SHOW THE ARROWHEADS OF THESE CG CHAINS LINES AND THE THICKENED CG_CHAINS LINES TO IDENTIFY THE DIRECTIONS OF THE FLOW OF RECURSIVE CONSTRUCTIONS OF THE GT_TRIANGLES
//DEFAULT IS ZERO AND WE HAVE PLACED THE ARROW HEADS NOW TO SHOW THE DIRECTIONS OF THE FLOW OF RECURSIVE CONSTRUCTIONS
// dataGridViewFOR_GT_PRESETS_DATA.Rows[118].Cells[1].Value = 0.01;// "WIDTH_OF_CG_CHAIN_PEN_THICKNESS_FOR_BETTER_REPRESENTATION_OF_DIRECTIONS_OF_RECURSIVE_CONSTRUCTIONS";
//THESE ARE NEW
dataGridViewFOR_GT_PRESETS_DATA.Rows[118].Cells[1].Value = 0.001;// "WIDTH_OF_CG_CHAIN_PEN_THICKNESS_FOR_BETTER_REPRESENTATION_OF_DIRECTIONS_OF_RECURSIVE_CONSTRUCTIONS";
//THESE CREATES JUNGLES SHOW_RECURSIONS_CONSTRUCTION_NUMBERS_ON_CG_POINTS_Y_N___SHOW_TEXTS
dataGridViewFOR_GT_PRESETS_DATA.Rows[119].Cells[1].Value = "NO";// "SHOW_RECURSIONS_CONSTRUCTION_NUMBERS_ON_CG_POINTS_Y_N___SHOW_TEXTS";
//THESE ARE BOOLEAN TYPES OF VARIABLES (THESE ARE ADDED AFTER WE HAVE SEEN THAT THE SMALLENING AND LARGENING OF EACH CORRESPONDING RECURSIVE TRIANGLES ARE VISIBLE
dataGridViewFOR_GT_PRESETS_DATA.Rows[119 + 1].Cells[1].Value = "YES";// "SHOW_PERPENDICULAR_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[119 + 2].Cells[1].Value = "YES";//"SHOW_BASE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[122].Cells[1].Value = "YES";// "SHOW_HYPOTENUSE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N";
////////////// //calling conventions public_static_class_simulations_CONTROLLER_for_gt_Class.
////////////// //THIS IS SPECIAL THING WHICH IS INPUT CONTROLLED TO CHECK THE TWO POINTS OR LINES ARE OF SAME LENGTH ALMOST OR NOT
//////////////public static double PUBLIC_STATIC_DISTANCE_COMPARING_TOLERANCE_TAKEN_FOR_DIFFERENCE_CHECKS = 0.003;// Double.MinValue;//0;
//////////////public static bool TO_SHOW_THE_BOUNDING_BOX_FOR_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N = true;
///
dataGridViewFOR_GT_PRESETS_DATA.Rows[123].Cells[1].Value = "0.003";// "COMPARING_TOLERANCE_TAKEN_FOR_DIFFERENCE_CHECKS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[123 + 1].Cells[1].Value = "YES";// "TO_SHOW_THE_BOUNDING_BOX_FOR_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
//calling conventions public_static_class_simulations_CONTROLLER_for_gt_Class.
dataGridViewFOR_GT_PRESETS_DATA.Rows[125].Cells[1].Value = "YES";// "TO_SHOW_THE_BOUNDING_BOX_FOR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[126].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
//calling conventions public_static_class_simulations_CONTROLLER_for_gt_Class.
dataGridViewFOR_GT_PRESETS_DATA.Rows[125 + 2].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[125 + 3].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[129].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[130].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[131].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[132].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
//THESE ARE SPECIALLY ADDED FOR SUMMABILITY CONDITIONS CHECKING
dataGridViewFOR_GT_PRESETS_DATA.Rows[133].Cells[1].Value = "NO";// "TO_SET_SEEDS_ANGLES_INCREMENTER_EQUAL_TO_SEEDS_ANGLES_FOR_MULTIPLE_ANGLES_CHECKING_Y_N";
//NO WE WILL DO THAT WITH OTHER OPERATORS
dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1].Cells[1].Value = "NO";// "TO_SET_ALTERNATE_TERMS_TO_CHANGE_SIGNS_LENGTH_AND_THE_VECTORS_ALTER_Y_N";
//NO WE WILL DO THAT WITH OTHER OPERATORS
dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1 + 1].Cells[1].Value = "33.7";// "SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360";
//NO WE WILL DO THAT WITH OTHER OPERATORS
dataGridViewFOR_GT_PRESETS_DATA.Rows[136].Cells[1].Value = "1.3";// "SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360";
//DO_YOU_NEED_PDF_REPORTING_FOR_THE_DATA
dataGridViewFOR_GT_PRESETS_DATA.Rows[136 + 1].Cells[1].Value = "NO";// "DO_YOU_NEED_PDF_REPORTING_FOR_THE_DATA";
dataGridViewFOR_GT_PRESETS_DATA.Rows[138].Cells[1].Value = "NO";// "PIVOT_TO_STRETCH(YES)___STRETCH_TO_PIVOT(NO)";//
dataGridViewFOR_GT_PRESETS_DATA.Rows[139].Cells[1].Value = "NO";//"PIVOT_TO_NODAL(YES)___NODAL_TO_PIVOT(NO)";//
dataGridViewFOR_GT_PRESETS_DATA.Rows[140].Cells[1].Value = "NO";//"STRETCH_TO_NODAL(YES)___NODAL_TO_STRETCH(NO)";//
dataGridViewFOR_GT_PRESETS_DATA.Rows[141].Cells[1].Value = "NO";//"FULL_ANTICLOCK(YES)_PIVOT_STRETCH_NODAL_PIVOT_CHAIN";
dataGridViewFOR_GT_PRESETS_DATA.Rows[142].Cells[1].Value = "NO";// "FULL_CLOCK(YES)_PIVOT_NODAL_STRETCH_PIVOT_CHAIN";
dataGridViewFOR_GT_PRESETS_DATA.Rows[143].Cells[1].Value = "NO";//"MINIMUM_ENERGY_AUTODECIDE(YES)_OTHERWISE_FILL(NO)";
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 1].Cells[1].Value = "YES";////"KEEP_AS_NATURAL_OUTPUTS(YES)_OTHERWISE_FILL(NO)";
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 2].Cells[1].Value = "NO";// "ORIENTOR__AS_PER_138_139_140_DATA(YES)___OTHERWISE_(NO)";
dataGridViewFOR_GT_PRESETS_DATA.Rows[147].Cells[1].Value = "0.01";// "OUTPUT_LINE_THICKNESS_IN_GTSIMPLEX";
dataGridViewFOR_GT_PRESETS_DATA.Rows[148].Cells[1].Value = "0.01";// "COMPLEMENT_LINE_THICKNESS_IN_GTSIMPLEX";
dataGridViewFOR_GT_PRESETS_DATA.Rows[149].Cells[1].Value = "0.01";// "GIVEN_LINE_THICKNESS_IN_GTSIMPLEX";
dataGridViewFOR_GT_PRESETS_DATA.Rows[147].Cells[1].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[148].Cells[1].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[149].Cells[1].Style.BackColor = Color.LightCyan;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[150].Cells[0].Value = "TO_SHOW_THICK_OUTPUT_LINES_IN_GTSIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[151].Cells[0].Value = "TO_SHOW_THICK_COMPLEMENT_LINES_IN_GTSIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[152].Cells[0].Value = "TO_SHOW_THICK_GIVEN_LINES_IN_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[150].Cells[1].Value = "NO";// "TO_SHOW_THICK_OUTPUT_LINES_IN_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[151].Cells[1].Value = "NO";// "TO_SHOW_THICK_COMPLEMENT_LINES_IN_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[152].Cells[1].Value = "NO";// "TO_SHOW_THICK_GIVEN_LINES_IN_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[150].Cells[1].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[151].Cells[1].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[152].Cells[1].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[153].Cells[1].Value = "YES";// "TO_SHOW_CIRCUM_CENTER_OF_EACH_TRIANGLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[154].Cells[1].Value = "YES"; // "TO_SHOW_IN_CENTER_OF_EACH_TRIANGLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[155].Cells[1].Value = "YES";// "TO_SHOW_ORTHO_CENTER_OF_EACH_TRIANGLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[156].Cells[1].Value = "NO";// "TO_CALCULATE_THEOREMS_CIRCLES_WITH_UNIQUE_POINTS___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[156].Cells[1].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[156 + 1].Cells[1].Value = "NO";//"TO_CALCULATE_THEOREMS_LINE_RAYS_WITH_UNIQUE_POINTS___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[156 + 1].Cells[1].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[156 + 2].Cells[1].Value = "NO";//"TO_CALCULATE_THEOREMS_SEGMENTS_WITH_UNIQUE_POINTS___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[156 + 2].Cells[1].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[159].Cells[1].Value = "NO";//"TO_CALCULATE_THEOREMS_WITH_ALL_INTERSECTIONS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[159].Cells[1].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[160].Cells[1].Value = "NO";//"TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_OUTPUT_POINTS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[160].Cells[1].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[161].Cells[1].Value = "NO";//"TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_COMPLEMENT_POINTS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[161].Cells[1].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[162].Cells[1].Value = "NO";// "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_HYPOTENUSE_POINTS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[162].Cells[1].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[163].Cells[1].Value = "NO";// "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_BASE_POINTS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[163].Cells[1].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[164].Cells[1].Value = "NO";//"TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_PERPENDICULAR_POINTS_IN_GTSIMPLEX___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[164].Cells[1].Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[165].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_GTSIMPLEX_CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[165].Cells[1].Style.BackColor = Color.PaleTurquoise;
dataGridViewFOR_GT_PRESETS_DATA.Rows[166].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_OUTPUTS_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[166].Cells[1].Style.BackColor = Color.PaleTurquoise;
dataGridViewFOR_GT_PRESETS_DATA.Rows[166 + 1].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_CUMULATIVE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[166 + 1].Cells[1].Style.BackColor = Color.PaleTurquoise;
dataGridViewFOR_GT_PRESETS_DATA.Rows[168].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_HYPOTENUSE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[168].Cells[1].Style.BackColor = Color.PaleTurquoise;
dataGridViewFOR_GT_PRESETS_DATA.Rows[169].Cells[1].Value = "NO";// "GENERATE_MIDI_WITH_BASE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[169].Cells[1].Style.BackColor = Color.PaleTurquoise;
dataGridViewFOR_GT_PRESETS_DATA.Rows[170].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_PERPENDICULAR_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[170].Cells[1].Style.BackColor = Color.PaleTurquoise;
dataGridViewFOR_GT_PRESETS_DATA.Rows[171].Cells[1].Value = "11";// "SIZE_OF_CIRCLES_FOR_ACCUMULATED_FOUND_POINTS_FOR_THEOREMS_SEARCHING";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[171].Cells[0].Style.BackColor = Color.MediumVioletRed;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[172].Cells[1].Value = "NO";// TO_SHOW_RADIUS_OF_IN_CIRCLE___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[172].Cells[1].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[173].Cells[1].Value = "NO";//"TO_INCLUDE_INCENTER_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[173].Cells[1].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[174].Cells[1].Value = "NO";//"TO_INCLUDE_ORTHOCENTER_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[174].Cells[1].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[175].Cells[1].Value = "NO";// "TO_INCLUDE_CIRCUM_CENTER_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[175].Cells[1].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[176].Cells[1].Value = "NO";// "TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_HYPOTENUSE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[176].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[177].Cells[1].Value = "NO";//"TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_BASE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[177].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[178].Cells[1].Value = "NO";//"TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_PERPENDICULAR_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[178].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[178 + 1].Cells[1].Value = "NO";//"TO_INCLUDE_CENTER_OF_HYPOTENUSE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[178 + 1].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[180].Cells[1].Value = "NO";//"TO_INCLUDE_CENTER_OF_BASE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[180].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[181].Cells[1].Value = "NO";// "TO_INCLUDE_CENTER_OF_PERPENDICULAR_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[181].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[182].Cells[1].Value = "NO";//"TO_INCLUDE_TOUCHPOINT_OF_HYPOTENUSE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[182].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[183].Cells[1].Value = "NO";//"TO_INCLUDE_TOUCHPOINT_OF_BASE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[183].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[184].Cells[1].Value = "NO";//"TO_INCLUDE_TOUCHPOINT_OF_PERPENDICULAR_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[184].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[185].Cells[1].Value = "NO";// "TO_INCLUDE_TOUCHPOINT_OF_HYPOTENUSE_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[185].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[186].Cells[1].Value = "NO";// "TO_INCLUDE_TOUCHPOINT_OF_BASE_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[186].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[187].Cells[1].Value = "NO";// "TO_INCLUDE_TOUCHPOINT_OF_PERPENDICULAR_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[187].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[188].Cells[1].Value = "NO";//"TO_INCLUDE_OUTPUT_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[188].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[189].Cells[1].Value = "NO";//"TO_INCLUDE_COMPLEMENT_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[189].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[190].Cells[1].Value = "NO";//"TO_INCLUDE_GIVEN_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[190].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[191].Cells[1].Value = "NO";//"TO_INCLUDE_TRIANGLE_CG_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[191].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[192].Cells[1].Value = "NO";//"TO_INCLUDE_LINE_SEGMENTS_INTERIOR_INTERSECTIONS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[192].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[194].Cells[1].Value = "NO";// "TO_INCLUDE_LINE_SEGMENTS_EXTERIOR_INTERSECTIONS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[194].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[195].Cells[1].Value = "NO";//"TO_INCLUDE_PIVOT_POINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[195].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[196].Cells[1].Value = "NO";// "TO_INCLUDE_STRETCH_POINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[196].Cells[1].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[197].Cells[1].Value = "NO";//"TO_INCLUDE_NODAL_POINTS_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[197].Cells[1].Style.BackColor = Color.LightGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[198].Cells[1].Value = "0.01";// "TOLERANCE_DOUBLE_VALUE_TO_CONSIDER_WE_CAN_INCLUDE_POINT_IN_SAME_CIRCLE_OR_NOT_DEFAULT_0_01";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[198].Cells[0].Style.BackColor = Color.LightCyan;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[199].Cells[1].Value = "0.1";// "THICKNESS_INCREASING_TO_CIRCLES_PER_INCREASING_OF_ADDITIONAL_POINTS_IN_THAT_DEFAULT_POINTS_COUNT_BY_10";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[199].Cells[0].Style.BackColor = Color.LightCyan;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[200].Cells[1].Value = "0";// "TO_SHOW_ONLY_THOSE_3_OR_MORE_POINTS_CIRCLES_WHICH_PASS_THROUGH_3_PLUS_K_POINTS___DEFAULT_K_VALUE_0";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[200].Cells[0].Style.BackColor = Color.LightCyan;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[201].Cells[1].Value = "YES";// "DO_YOU_NEED_SPECIAL_HIGHLIGHTING_OF_CENTERS_OF_3_PLUS_K_POINT_CIRCLES_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[201].Cells[1].Style.BackColor = Color.LightCyan;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[202].Cells[1].Value = "NO";// "TO_INCLUDE__MIDPOINT_OF_HYPOTENUSE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[202].Cells[1].Style.BackColor = Color.LightGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[203].Cells[1].Value = "NO";// "TO_INCLUDE__MIDPOINT_OF_BASE_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[203].Cells[1].Style.BackColor = Color.LightGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[204].Cells[1].Value = "NO";//"TO_INCLUDE__MIDPOINT_OF_PERPENDICULAR_IN_THEOREMS_POINT_SET___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[204].Cells[1].Style.BackColor = Color.LightGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[207].Cells[1].Value = "N";// "DO_YOU_NEED_LINE_RAY_FINDING_CALCULATIONS_LOGGING___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[207].Cells[0].Style.BackColor = Color.LightSlateGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[208].Cells[1].Value = "N";// "DO_YOU_NEED_CIRCLE_CHORDS_MINS_MAX_DISTANCES_LOGGING___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[208].Cells[0].Style.BackColor = Color.LightSlateGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[209].Cells[1].Value = "N";// "DO_YOU_NEED_DATA_ACCUMULATIONS_LOGGING_FOR_POINTS___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[209].Cells[0].Style.BackColor = Color.LightSlateGray;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[210].Cells[1].Value = "A";// "TO_CONSTRUCT_3_POINT_CIRCLES_ANTICLOCK___A__CLOCK___C___OR__O_FOR_OTHER";
dataGridViewFOR_GT_PRESETS_DATA.Rows[210].Cells[0].Style.BackColor = Color.LightSeaGreen;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[1].Value = "0";// "DOUBLE_VALUE___MINIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___0";
dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[0].Style.BackColor = Color.LightGreen;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[212].Cells[1].Value = "600000";//"DOUBLE_VALUE___MAXIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___600000";
dataGridViewFOR_GT_PRESETS_DATA.Rows[212].Cells[0].Style.BackColor = Color.LightGreen;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 1 , duplicate_point_count_state = 0 _temp_3_digit_point x = 0, y = 0, dist_from_origin = 0, UNIQUE_ADDRESS_OF_THE_POINT = PIVOT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 2 , duplicate_point_count_state = 0 _temp_3_digit_point x = 668.583, y = -230.211, dist_from_origin = 707.107, UNIQUE_ADDRESS_OF_THE_POINT = STRETCH(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 3 , duplicate_point_count_state = 0 _temp_3_digit_point x = 898.794, y = 438.371, dist_from_origin = 1000, UNIQUE_ADDRESS_OF_THE_POINT = NODAL(LAZ)_WITH_ORIENT(RRR)
///
///
///
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 4 , duplicate_point_count_state = 0 _temp_3_digit_point x = 898.794, y = 438.371, dist_from_origin = 1000, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_OUTPUT_SUMS_START_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 5 , duplicate_point_count_state = 0 _temp_3_digit_point x = 1567.377, y = 208.16, dist_from_origin = 1581.139, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_OUTPUT_SUMS_FINAL_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 6 , duplicate_point_count_state = 0 _temp_3_digit_point x = 0, y = 0, dist_from_origin = 0, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_COMPLEMENT_SUMS_START_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 7 , duplicate_point_count_state = 0 _temp_3_digit_point x = 230.211, y = 668.583, dist_from_origin = 707.107, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_COMPLEMENT_SUMS_FINAL_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 8 , duplicate_point_count_state = 0 _temp_3_digit_point x = 898.794, y = 0, dist_from_origin = 898.794, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_PERPENDICULAR_SUMS_START_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 9 , duplicate_point_count_state = 0 _temp_3_digit_point x = 1129.005, y = 668.583, dist_from_origin = 1312.119, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_PERPENDICULAR_SUMS_FINAL_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 10 , duplicate_point_count_state = 0 _temp_3_digit_point x = 898.794, y = 0, dist_from_origin = 898.794, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_BASE_SUMS_START_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 11 , duplicate_point_count_state = 0 _temp_3_digit_point x = 1567.377, y = -230.211, dist_from_origin = 1584.193, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_BASE_SUMS_FINAL_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 12 , duplicate_point_count_state = 0 _temp_3_digit_point x = 898.794, y = 0, dist_from_origin = 898.794, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_HYPOTENUSE_SUMS_START_POINT(LAZ)_WITH_ORIENT(RRR)
//////iterate_on_GTSIMPLEX = 1 , Accumulated_point_count_state = 13 , duplicate_point_count_state = 0 _temp_3_digit_point x = 1797.588, y = 438.371, dist_from_origin = 1850.268, UNIQUE_ADDRESS_OF_THE_POINT = CUMULATIVE_HYPOTENUSE_SUMS_FINAL_POINT(LAZ)_WITH_ORIENT(RRR)
///
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[213].Cells[1].Value = "NO";// "TO_INCLUDE___CUMULATIVE_OUTPUT_SUMS_START_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[213].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[214].Cells[1].Value = "NO";//"TO_INCLUDE___CUMULATIVE_OUTPUT_SUMS_FINAL_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[214].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[215].Cells[1].Value = "NO";//"TO_INCLUDE___CUMULATIVE_COMPLEMENT_SUMS_START_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[215].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[216].Cells[1].Value = "NO";//"TO_INCLUDE___CUMULATIVE_COMPLEMENT_SUMS_FINAL_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[216].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[217].Cells[1].Value = "NO";//"TO_INCLUDE___CUMULATIVE_PERPENDICULAR_SUMS_START_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[217].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[218].Cells[1].Value = "NO";//"TO_INCLUDE___CUMULATIVE_PERPENDICULAR_SUMS_FINAL_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[218].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[219].Cells[1].Value = "NO";//"TO_INCLUDE___CUMULATIVE_BASE_SUMS_START_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[219].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[220].Cells[1].Value = "NO";//"TO_INCLUDE___CUMULATIVE_BASE_SUMS_FINAL_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[220].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[221].Cells[1].Value = "NO";// "TO_INCLUDE___CUMULATIVE_HYPOTENUSE_SUMS_START_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[221].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[222].Cells[1].Value = "NO";//"TO_INCLUDE___CUMULATIVE_HYPOTENUSE_SUMS_FINAL_POINT___YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[222].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// THESE ARE DONE AFTER ACHIEVING THE MIDI SOUNDS FROM THE CAD DRAWINGS
// WE ARE TRYING TO UNDERSTAND THE KINDS OF DYNAMICS OF THE POINTS MOVING ALONE IN THE WHOLE THINGS
// AND NOT SHOWING THE OTHER LINES OR OTHER THINGS THERE
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[240].Cells[1].Value = "Y";// "TO_SHOW_ACCUMULATED_POINTS_DOTS_ENLARGED___YES_NO";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[240].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[241].Cells[1].Value = "6";// "SIZE_OF_THE_POINT_TO_REPRESENT";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[241].Cells[0].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[1].Value = "1000";//" SLIDER_SCALE_FACTOR_FOR_CENTRAL_CIRCLES";//hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS
dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[1].Style.BackColor = Color.LightSeaGreen;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[243].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[243].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[244].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[244].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[245].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[245].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[246].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[246].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[247].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[247].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[248].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[248].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[249].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[249].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[250].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[250].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[251].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[251].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[252].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[252].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[253].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[253].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[254].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[254].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[255].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[255].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[256].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[256].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[257].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[257].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[258].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[258].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[259].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[259].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[260].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[260].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[261].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[261].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[262].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[262].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[263].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[263].Cells[1].Style.BackColor = Color.LightSkyBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[264].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[264].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[265].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[265].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[266].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[266].Cells[1].Style.BackColor = Color.LightSteelBlue;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[270].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[270].Cells[1].Style.BackColor = Color.LightCyan;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[271].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[271].Cells[1].Style.BackColor = Color.LightCyan;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[272].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO";
dataGridViewFOR_GT_PRESETS_DATA.Rows[272].Cells[1].Style.BackColor = Color.LightCyan;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
//////////////////////////////////////////////////////////////////////////////////
/// for references
////////////// Calculate distances and print
////////////double[] distances_for_given = GenerateInterceptsAndDistances(given_x1, given_y1, given_x2, given_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_output = GenerateInterceptsAndDistances(output_x1, output_y1, output_x2, output_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_complement = GenerateInterceptsAndDistances(complement_x1, complement_y1, complement_x2, complement_y2, x_standard, y_standard, N_intercepts);
//////////////////// Calculate CUMULATIONS distances and print
////////////double[] distances_for_output_cumulations = GenerateInterceptsAndDistances(outputs_cumulations_x1, outputs_cumulations_y1, outputs_cumulations_x2, outputs_cumulations_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_complement_cumulations = GenerateInterceptsAndDistances(complements_cumulations_x1, complements_cumulations_y1, complements_cumulations_x2, complements_cumulations_y2, x_standard, y_standard, N_intercepts);
/////////////////////////////// CALCULATE CUMULATIONS
////////////double[] distances_for_hypotenuses_cumulations = GenerateInterceptsAndDistances(hypots_cumulations_x1, hypots_cumulations_y1, hypots_cumulations_x2, hypots_cumulations_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_bases_cumulations = GenerateInterceptsAndDistances(base_cumulations_x1, base_cumulations_y1, base_cumulations_x2, base_cumulations_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_perpendiculars_cumulations = GenerateInterceptsAndDistances(perps_cumulations_x1, perps_cumulations_y1, perps_cumulations_x2, perps_cumulations_y2, x_standard, y_standard, N_intercepts);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[1].Value = "N";// "CAUTION_DO_YOU_NEED_THE_WAV_FILES_SAMPLES_FOR_GTSTATES___YES_NO___300";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[1].Style.BackColor = Color.Red;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[1].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[1].Value = "1.01";// "CAUTION_FACTOR_GAINS___distances_for_given____NUMBER___301";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[0].Style.BackColor = Color.Red;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[1].Value = "1.01";//"CAUTION_FACTOR_GAINS___distances_for_output____NUMBER___302";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[0].Style.BackColor = Color.Red;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[1].Value ="1.01";// "CAUTION_FACTOR_GAINS___distances_for_complement____NUMBER___303";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[0].Style.BackColor = Color.Red;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 1].Cells[1].Value ="1.01";// "CAUTION_FACTOR_GAINS___distances_for_distances_for_output_cumulations____NUMBER___304";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 1].Cells[0].Style.BackColor = Color.Red;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 1].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 2].Cells[1].Value ="1.01";// "CAUTION_FACTOR_GAINS___distances_for_distances_for_complement_cumulations____NUMBER___305";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 2].Cells[0].Style.BackColor = Color.Red;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 2].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[1].Value = "1.01";//"CAUTION_FACTOR_GAINS___distances_for_hypotenuses_cumulations____NUMBER___306";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[0].Style.BackColor = Color.Red;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 1].Cells[1].Value ="1.01";// "CAUTION_FACTOR_GAINS___distances_for_bases_cumulations____NUMBER___307";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 1].Cells[0].Style.BackColor = Color.Red;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 1].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 2].Cells[1].Value = "1.01";//"CAUTION_FACTOR_GAINS___distances_for_perpendiculars_cumulations____NUMBER___308";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 2].Cells[0].Style.BackColor = Color.Red;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 2].Cells[0].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[1].Value = "33";// CAUTION_SAMPLE_POINTS_PER_HYPOTENUSE_IN_GT_SIMPLEX_SEGMENT____NUMBER___309";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[1].Style.BackColor = Color.PaleVioletRed;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[1].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[1].Value = "37";// "CAUTION_SAMPLE_POINTS_PER_PERPENDICULAR_IN_GT_SIMPLEX_SEGMENT____NUMBER___310";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[1].Style.BackColor = Color.PaleVioletRed;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[1].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[1].Value = "21";// "CAUTION_SAMPLE_POINTS_PER_BASE_IN_GT_SIMPLEX_SEGMENT____NUMBER___311";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[1].Style.BackColor = Color.PaleVioletRed;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[1].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///S
///
///
///
///
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[1].Value = "11";// "CAUTION_SAMPLE_POINTS_PER_CUMULATIONS_SEGMENTS_IN____NUMBER___312";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[1].Style.BackColor = Color.PaleVioletRed;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[1].Style.ForeColor = Color.White;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
//////////////////////// THESE ARE NEW VARIABLES TO DO THE CUSTOMIZABLE PATCHES FOR 68 DIFFERENT INSTRUMENTS FOR 68 DIFFERENT TRACKS //////
//////////////////////// THESE ARE NEW VARIABLES TO DO THE CUSTOMIZABLE PATCHES FOR 68 DIFFERENT INSTRUMENTS FOR 68 DIFFERENT TRACKS //////
//////////////////////// THESE ARE NEW VARIABLES TO DO THE CUSTOMIZABLE PATCHES FOR 68 DIFFERENT INSTRUMENTS FOR 68 DIFFERENT TRACKS //////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[1].Value = "32";//////"TRACK_2_GTMIDS_PATCH_1___320_DRUMS_1____20TH_TO_19TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[1].Value = "33";//////"TRACK_3_GTMIDS_PATCH_2___321_DRUMS_2____19TH_TO_18TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[1].Value = "34";//////"TRACK_4_GTMIDS_PATCH_3___322_DRUMS_3____18TH_TO_17TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[1].Value = "35";//////"TRACK_5_GTMIDS_PATCH_4___323_DRUMS_4____17TH_TO_16TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[1].Value = "36";//////"TRACK_6_GTMIDS_PATCH_5___324_DRUMS_5____16TH_TO_15TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[1].Value = "37";//////"TRACK_7_GTMIDS_PATCH_6___325_DRUMS_6____15TH_TO_14TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[1].Value = "38";//////"TRACK_8_GTMIDS_PATCH_7___326_DRUMS_7____14TH_TO_13TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[1].Value = "39";//////"TRACK_9_GTMIDS_PATCH_8___327_DRUMS_8____13TH_TO_12TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[1].Value = "40";//////"TRACK_10_GTMIDS_PATCH_9___328_DRUMS_9____12TH_TO_11TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[1].Value = "41";//////"TRACK_11_GTMIDS_PATCH_10___329_DRUMS_10____11TH_TO_10TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[1].Value = "42";//////"TRACK_12_GTMIDS_PATCH_11___330_DRUMS_11____10TH_TO_9TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[1].Value = "50";//////"TRACK_13_GTMIDS_PATCH_12___331_DRUMS_12____9TH_TO_8TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[1].Value = "51";//////"TRACK_14_GTMIDS_PATCH_13___332_DRUMS_13____9TH_TO_7TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[1].Value = "52";//////"TRACK_15_GTMIDS_PATCH_14___333_DRUMS_14____7TH_TO_6TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[1].Value = "53";//////"TRACK_16_GTMIDS_PATCH_15___334_DRUMS_15____6TH_TO_5TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[1].Value = "54";//////"TRACK_17_GTMIDS_PATCH_16___335_DRUMS_16____5TH_TO_4TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[1].Value = "55";//////"TRACK_18_GTMIDS_PATCH_17___336_DRUMS_17____4TH_TO_3RD";
dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[1].Value = "56";//////"TRACK_19_GTMIDS_PATCH_18___337_DRUMS_18____3RD_TO_2ND";
dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[1].Value = "57";//////"TRACK_20_GTMIDS_PATCH_19___338_DRUMS_19____2ND_TO_1ST";
dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[1].Value = "58";//////"TRACK_21_GTMIDS_PATCH_20___339_DRUMS_20____1ST_TO_0TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[0].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[1].Value = "14";//////"TRACK_22_GTMIDS_PATCH_21___340_STRINGS_1____20TH_TO_19TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[1].Value = "25";//////"TRACK_23_GTMIDS_PATCH_22___341_STRINGS_2____19TH_TO_18TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[1].Value = "26";//////"TRACK_24_GTMIDS_PATCH_23___342_STRINGS_3____18TH_TO_17TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[1].Value = "27";//////"TRACK_25_GTMIDS_PATCH_24___343_STRINGS_4____17TH_TO_16TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[1].Value = "28";//////"TRACK_26_GTMIDS_PATCH_25___344_STRINGS_5____16TH_TO_15TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[1].Value = "29";//////"TRACK_27_GTMIDS_PATCH_26___345_STRINGS_6____15TH_TO_14TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[1].Value = "30";//////"TRACK_28_GTMIDS_PATCH_27___346_STRINGS_7____14TH_TO_13TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[1].Value = "31";//////"TRACK_29_GTMIDS_PATCH_28___347_STRINGS_8____13TH_TO_12TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[1].Value = "32";//////"TRACK_30_GTMIDS_PATCH_29___348_STRINGS_9____12TH_TO_11TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[1].Value = "41";//////"TRACK_31_GTMIDS_PATCH_30___349_STRINGS_10____11TH_TO_10TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[1].Value = "42";//////"TRACK_32_GTMIDS_PATCH_31___350_STRINGS_11____10TH_TO_9TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[1].Value = "43";//////"TRACK_33_GTMIDS_PATCH_32___351_STRINGS_12____9TH_TO_8TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[1].Value = "44";//////"TRACK_34_GTMIDS_PATCH_33___352_STRINGS_13____8TH_TO_7TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[1].Value = "45";//////"TRACK_35_GTMIDS_PATCH_34___353_STRINGS_14____7TH_TO_6TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[1].Value = "46";//////"TRACK_36_GTMIDS_PATCH_35___354_STRINGS_15____6TH_TO_5TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[1].Value = "47";//////"TRACK_37_GTMIDS_PATCH_36___355_STRINGS_16____5TH_TO_4TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[1].Value = "48";//////"TRACK_38_GTMIDS_PATCH_37___356_STRINGS_17____4TH_TO_3RD";
dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[1].Value = "49";//////"TRACK_39_GTMIDS_PATCH_38___357_STRINGS_18____3RD_TO_2ND";
dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[1].Value = "50";//////"TRACK_40_GTMIDS_PATCH_39___358_STRINGS_19____2ND_TO_1ST";
dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[1].Value = "51";//////"TRACK_41_GTMIDS_PATCH_40___359_STRINGS_20____1ST_TO_0TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[0].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[1].Value = "65";//////"TRACK_42_GTMIDS_PATCH_41___360_WINDS_1____20TH_TO_19TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[1].Value = "66";//////"TRACK_43_GTMIDS_PATCH_42___361_WINDS_2____19TH_TO_18TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[1].Value = "67";//////"TRACK_44_GTMIDS_PATCH_43___362_WINDS_3____18TH_TO_17TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[1].Value = "68";//////"TRACK_45_GTMIDS_PATCH_44___363_WINDS_4____17TH_TO_16TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[1].Value = "69";//////"TRACK_46_GTMIDS_PATCH_45___364_WINDS_5____16TH_TO_15TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[1].Value = "70";//////"TRACK_47_GTMIDS_PATCH_46___365_WINDS_6____15TH_TO_14TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[1].Value = "71";//////"TRACK_48_GTMIDS_PATCH_47___366_WINDS_7____14TH_TO_13TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[1].Value = "72";//////"TRACK_49_GTMIDS_PATCH_48___367_WINDS_8____13TH_TO_12TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[1].Value = "73";//////"TRACK_50_GTMIDS_PATCH_49___368_WINDS_9____12TH_TO_11TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[1].Value = "74";//////"TRACK_51_GTMIDS_PATCH_50___369_WINDS_10____11TH_TO_10TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[1].Value = "75";//////"TRACK_52_GTMIDS_PATCH_51___370_WINDS_11____10TH_TO_9TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[1].Value = "76";//////"TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[1].Value = "77";//////"TRACK_54_GTMIDS_PATCH_53___372_WINDS_13____8TH_TO_7TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[1].Value = "109";//////"TRACK_55_GTMIDS_PATCH_54___373_WINDS_14____7TH_TO_6TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[1].Value = "110";//////"TRACK_56_GTMIDS_PATCH_55___374_WINDS_15____6TH_TO_5TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
///
///
///
///
///
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[1].Value = "111";//////"TRACK_57_GTMIDS_PATCH_56___375_WINDS_16____5TH_TO_4TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[1].Value = "111";//////"TRACK_58_GTMIDS_PATCH_57___376_WINDS_17____4TH_TO_3RD";
dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[1].Value = "111";//////"TRACK_59_GTMIDS_PATCH_58___377_WINDS_18____3RD_TO_2ND";
dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[1].Value = "111";//////"TRACK_60_GTMIDS_PATCH_59___378_WINDS_19____2ND_TO_1ST";
dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[1].Value = "111";//////"TRACK_61_GTMIDS_PATCH_60___379_WINDS_20____1ST_TO_0TH";
dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[1].Value = "111";//////"TRACK_62_GTMIDS_PATCH_61___380_LONG_NOTES_1";
dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[1].Value = "74";//////"TRACK_63_GTMIDS_PATCH_62___381_LONG_NOTES_2";
dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[1].Value = "111";//////"TRACK_64_GTMIDS_PATCH_63___382_LONG_NOTES_3";
dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[1].Value = "111";//////"TRACK_65_GTMIDS_PATCH_64___383_LONG_NOTES_4";
dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[1].Value = "74";//////"TRACK_66_GTMIDS_PATCH_65___384_LONG_NOTES_5";
dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[1].Value = "111";//////"TRACK_67_GTMIDS_PATCH_66___385_LONG_NOTES_6";
dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[1].Value = "74";//////"TRACK_68_GTMIDS_PATCH_67___386_LONG_NOTES_7";
dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[1].Value = "111";//////"TRACK_69_GTMIDS_PATCH_68___387_LONG_NOTES_8";
dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[0].Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
//////double Original_long_lines_x1
//////,double Original_long_lines_y1
//////, double Original_long_lines_z1
//////, double Original_long_lines_x2
//////, double Original_long_lines_y2
//////, double Original_long_lines_z2
///
///
/// /////////////////////////////////////////////////////////////
//////, double tolerance_after_which_breaking_starts
//////, double first_line_segment_length
//////, double common_difference_for_line_segment_length
//////, double first_rotation_angle_degrees_theta0
//////,double common_difference_rotation_angle_degrees_thetaDiff
//////,double left_side_offset_multiplier
//////,double right_side_offset_multiplier
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[400].Cells[1].Value = "6800";// "MIN_TOLERANCE_LENGTH_LONG_LINE_SPLITTER_400";
dataGridViewFOR_GT_PRESETS_DATA.Rows[400].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[400].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[401].Cells[1].Value = "0.03";// "FIRST_SMALL_SEGMENT_LENGTH_AP_TERMS_0_LONG_LINE_SPLITTER_401";
dataGridViewFOR_GT_PRESETS_DATA.Rows[401].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[401].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[402].Cells[1].Value = "0.01";// "COMMN_DIFF_FOR_AP_LENGTH_LONG_LINE_SPLITTER_402";
dataGridViewFOR_GT_PRESETS_DATA.Rows[402].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[402].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[403].Cells[1].Value = "1.1";// "FIRST_ROT_ANG_DEG_FOR_AP_LONG_LINE_SPLITTER_403";
dataGridViewFOR_GT_PRESETS_DATA.Rows[403].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[403].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[404].Cells[1].Value = "0.3";// "COMMN_DIFF_ROT_ANG_DEG_FOR_AP_LONG_LINE_SPLITTER_404";
dataGridViewFOR_GT_PRESETS_DATA.Rows[404].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[404].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[405].Cells[1].Value = "3";// "LEFT_SIDE_DIST_OFFSET_MULTIPLIER_LONG_LINE_SPLITTER_405";
dataGridViewFOR_GT_PRESETS_DATA.Rows[405].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[405].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[406].Cells[1].Value = "6";// "RIGHT_SIDE_DIST_OFFSET_MULTIPLIER_LONG_LINE_SPLITTER_406";
dataGridViewFOR_GT_PRESETS_DATA.Rows[406].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[406].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[407].Cells[1].Value = "0.38";// "LEFT_SIDE_DEGREE_ANGULAR_MULTIPLIER_LONG_LINE_SPLITTER_407";
dataGridViewFOR_GT_PRESETS_DATA.Rows[407].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[407].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[408].Cells[1].Value = "0.68";// "RIGHT_SIDE_DEGREE_ANGULAR_MULTIPLIER_LONG_LINE_SPLITTER_408";
dataGridViewFOR_GT_PRESETS_DATA.Rows[408].Cells[0].Style.BackColor = Color.LightSteelBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[408].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[409].Cells[1].Value = "2";// ///>1 to do "DEFAULT_2__LOGARITHMS_BASE_FOR_PITCH_BENDS_409";
dataGridViewFOR_GT_PRESETS_DATA.Rows[409].Cells[1].Style.BackColor = Color.LightSkyBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[409].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
//////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/09/abstractmelodyandeargrammars.html
///https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/09/flutemodelingvibrato.html
//WE ARE TAKING THESE FROM ROW 420 IN THE FLEX GRIDS
//we are using these for the circle splitting to generate the notes in more creative ways
//we can take the l;ayered circles and offsetted circles to generate the notes
///for the more creative styles of ear grammars generations through the well defined sequences of the distributions of notes around the circles
//////double circumference,/// not to take as input in flexgrids
//////double center_x,/// not to take as input in flexgrids
//////double center_y,/// not to take as input in flexgrids
//////double center_z,/// not to take as input in flexgrids
//////double min_center_x_offset_to_include_for_small_lines, FOR FLEXGRIDS
//////double min_center_y_offset_to_include_for_small_lines, FOR FLEXGRIDS
//////double min_center_z_offset_to_include_for_small_lines, FOR FLEXGRIDS
//////double radius_found,/// not to take as input in flexgrids
///
//////double radius_min_to_filter_for_small_lines_generations, FOR FLEXGRIDS
//////double references_rotor_center_for_all_segments_x_offset_from_cx, FOR FLEXGRIDS
//////double references_rotor_center_for_all_segments_y_offset_from_cy, FOR FLEXGRIDS
//////string substring_for_layers_name_user_input_to_include_to_split, FOR FLEXGRIDS
//////string STRING_LAYER_NAME_FOUND_FOR_THE_ENTITY_CIRCLE,
//////double push_away_from_center_scale_factor, FOR FLEXGRIDS
//////double pull_towards_to_center_scale_factor, FOR FLEXGRIDS
//////double first_line_segment_length, FOR FLEXGRIDS
//////double common_difference_for_line_segment_length, FOR FLEXGRIDS
//////double first_rotation_angle_degrees_theta0, FOR FLEXGRIDS
//////double common_difference_rotation_angle_degrees_thetaDiff, FOR FLEXGRIDS
//////double left_side_offset_multiplier, FOR FLEXGRIDS
//////double right_side_offset_multiplier, FOR FLEXGRIDS
//////double left_side_degrees_offsets_multiplier, FOR FLEXGRIDS
//////double right_side_degrees_offsets_multiplier FOR FLEXGRIDS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[420].Cells[1].Value = "3";// "30";// "MIN_CENTER_X_OFFSET_CIRCS_SPLITTER_NOTES___420";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[420].Cells[1].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[420].Cells[1].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[421].Cells[1].Value = "3";// "30";// "MIN_CENTER_Y_OFFSET_CIRCS_SPLITTER_NOTES___421";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[421].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[421].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[422].Cells[1].Value = "3";// "0";// "MIN_CENTER_Z_OFFSET_CIRCS_SPLITTER_NOTES___422";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[422].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[422].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[423].Cells[1].Value = "30";// "100";// "MIN_RADIUS_TO_DO_CIRCS_SPLITTER_NOTES___423";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[423].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[423].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
//AFTER SPLITTING IS DONE WE CAN ROTATE WHOLE SETS OF SMALL LINE SEGMENTS ABOUT THIS REF ROTOR CENTER CHANGEABLE WITH NOTES COUNTERS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[424].Cells[1].Value = "30";// "REF_ROTOR_CENTER_X_CIRCS_SPLITTER_NOTES___424";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[424].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[424].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
//AFTER SPLITTING IS DONE WE CAN ROTATE WHOLE SETS OF SMALL LINE SEGMENTS ABOUT THIS REF ROTOR CENTER CHANGEABLE WITH NOTES COUNTERS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[425].Cells[1].Value = "30";// "REF_ROTOR_CENTER_Y_CIRCS_SPLITTER_NOTES___425";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[425].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[425].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[426].Cells[1].Value = "YES";// "PUBLIC_STATIC_BOOL___TO_CHECK_NEAREST_OVERLAPS_OF_NOTES_CHORDS_IN_CIRC_SPLITTING___426 = true;//"YES";//
dataGridViewFOR_GT_PRESETS_DATA.Rows[426].Cells[0].Style.BackColor = Color.LightGray;
dataGridViewFOR_GT_PRESETS_DATA.Rows[426].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[427].Cells[1].Value = "3,NOTE,CIRC";// "LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[427].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[427].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[428].Cells[1].Value = "3";// "1.1";// "PUSH_AWAY_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___428";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[428].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[428].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
//////double push_away_from_center_scale_factor, FOR FLEXGRIDS
//////double pull_towards_to_center_scale_factor, FOR FLEXGRIDS
//////double first_line_segment_length, FOR FLEXGRIDS
//////double common_difference_for_line_segment_length, FOR FLEXGRIDS
//////double first_rotation_angle_degrees_theta0, FOR FLEXGRIDS
//////double common_difference_rotation_angle_degrees_thetaDiff, FOR FLEXGRIDS
//////double left_side_offset_multiplier, FOR FLEXGRIDS
//////double right_side_offset_multiplier, FOR FLEXGRIDS
//////double left_side_degrees_offsets_multiplier, FOR FLEXGRIDS
//////double right_side_degrees_offsets_multiplier FOR FLEXGRIDS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[429].Cells[1].Value = "6";// "1.6";// "PULL_TOWARDS_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___429";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[429].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[429].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[430].Cells[1].Value = "YES";// "DO_YOU_NEED_CENTI_DEGREES_SNAPPING_OF_NOTES___430";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[430].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[430].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[431].Cells[1].Value = "1";// "3";// "FIRST_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___431";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[431].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[431].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[432].Cells[1].Value = "0.01";// "0.1";// "COMMS_DIFFS_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___432";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[432].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[432].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[433].Cells[1].Value = "0.001";// "0.01"; // "FIRST_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___433";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[433].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[433].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[434].Cells[1].Value = "0.01";// "0.3";// "COMMN_DIFFS_FOR_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___434";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[434].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[434].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[435].Cells[1].Value = "1.1";// "6.1";// "LEFT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___435";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[435].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[435].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[436].Cells[1].Value = "1.1";// "6.8";// "RIGHT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___436";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[436].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[436].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[437].Cells[1].Value = "1.1";// "LEFT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___437";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[437].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[437].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[438].Cells[1].Value = "1.1";// "3.3";// "RIGHT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___438";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[438].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[438].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[439].Cells[1].Value = "33";// "MIN_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___439";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[439].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[439].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[440].Cells[1].Value = "680";// "MAX_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___440";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[440].Cells[0].Style.BackColor = Color.LightGray;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[440].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441 = "11,13,23";//1,
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442 = "71,61,33";//1,
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443 = "1,111,41,51,97";//1,
dataGridViewFOR_GT_PRESETS_DATA.Rows[441].Cells[1].Value = "11,13,23";// "1,2,3,4,5,6,7,8.9";// "DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[441].Cells[0].Style.BackColor = Color.LightSkyBlue;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[441].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[442].Cells[1].Value = "71,61,33";// "1,2,3,4,5,6,7,8.9";// "DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[442].Cells[0].Style.BackColor = Color.LightSkyBlue;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[442].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[443].Cells[1].Value = "1,111,41,51,97";// "1,2,3,4,5,6,7,8.9"; ;// "DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443";
//dataGridViewFOR_GT_PRESETS_DATA.Rows[443].Cells[0].Style.BackColor = Color.LightSkyBlue;
//dataGridViewFOR_GT_PRESETS_DATA.Rows[443].Cells[0].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
//////////////////___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////___can_i_take_this_short_splitted_zigzag_line REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
///IF D THEN WE WILL TAKE THESE FACTORS DIVISIBILITY TO THE NOTES COUNTERS INCLUSIONS IF THERE IS N THEN WE WILL INCLUDE THE NOTES IF NOT DIVISIBLES
///// THIS WILL HAVE BETTER AND WILL INCLUDE SEVERAL OTHE KINDS OF RHYTHMS FOR THE NOTES CONDITIONS AND WE HAVE SEEN THAT FOR THE CASES OF DIVISIONS FILTERS
///WE ARE GETTING TOO SLOW AND LESS DENSER RHYTHMS FOR THE SYSTEMS OF WHOLES DISTRIBUTIONS OF THE SYSTEMS TO ARRANGE THE SOUNDS CONDITIONS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[1].Value = "D";// "D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444";
dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[1].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[1].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
//////////////////___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////___can_i_take_this_short_splitted_zigzag_line REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
///IF D THEN WE WILL TAKE THESE FACTORS DIVISIBILITY TO THE NOTES COUNTERS INCLUSIONS IF THERE IS N THEN WE WILL INCLUDE THE NOTES IF NOT DIVISIBLES
///// THIS WILL HAVE BETTER AND WILL INCLUDE SEVERAL OTHE KINDS OF RHYTHMS FOR THE NOTES CONDITIONS AND WE HAVE SEEN THAT FOR THE CASES OF DIVISIONS FILTERS
///WE ARE GETTING TOO SLOW AND LESS DENSER RHYTHMS FOR THE SYSTEMS OF WHOLES DISTRIBUTIONS OF THE SYSTEMS TO ARRANGE THE SOUNDS CONDITIONS
///
//////////////////___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////___can_i_take_this_short_splitted_zigzag_line REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[1].Value = "D";// "D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445";
dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[1].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[1].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///
///IF D THEN WE WILL TAKE THESE FACTORS DIVISIBILITY TO THE NOTES COUNTERS INCLUSIONS IF THERE IS N THEN WE WILL INCLUDE THE NOTES IF NOT DIVISIBLES
///// THIS WILL HAVE BETTER AND WILL INCLUDE SEVERAL OTHE KINDS OF RHYTHMS FOR THE NOTES CONDITIONS AND WE HAVE SEEN THAT FOR THE CASES OF DIVISIONS FILTERS
///WE ARE GETTING TOO SLOW AND LESS DENSER RHYTHMS FOR THE SYSTEMS OF WHOLES DISTRIBUTIONS OF THE SYSTEMS TO ARRANGE THE SOUNDS CONDITIONS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[1].Value = "D";//"D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446";
dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[1].Style.BackColor = Color.LightCyan;
dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[1].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
/// ////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
/// ////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
/// ////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
///
// this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.tabControlFOR_GT_PARSING_PICTURES.Width = this.Width - this.tabControlFOR_GT_PARSING_PICTURES.Left - 33;
this.tabControlFOR_GT_PARSING_PICTURES.Height = this.Height - this.tabControlFOR_GT_PARSING_PICTURES.Top - 33;
this.tabControlFOR_GT_PARSING_PICTURES.Invalidate();
this.tabControlFOR_GT_PARSING_PICTURES.Refresh();
this.panelFORHOLDINGGRIDS.Width = this.panelFORHOLDINGGRIDS.Width;
this.panelFORHOLDINGGRIDS.Height = this.Height - this.panelFORHOLDINGGRIDS.Top - 33;
// this.progressBarFOR_ANIMATIONS_SAVING.Top = this.panelFORHOLDINGGRIDS.Top + this.panelFORHOLDINGGRIDS.Height - 33;
this.progressBarFOR_ANIMATIONS_SAVING.Top = this.buttonSCAN_0_360.Top;// + this.panelFORHOLDINGGRIDS.Height - 33;
this.progressBarFOR_ANIMATIONS_SAVING.Left = this.buttonSCAN_0_360.Left + this.buttonSCAN_0_360.Width + 3;
FORMS_DATA_PUSHER_reset_simulations_data_to_fresh_read_data_from_grids_and_regenerate_redraw_all();
//this is for safe side reloading at start
this.hScrollBarFOR_DEGREES_CHANGERS.Value =
(int)(ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.GT_SEED_ANGLES_DEGREES);
//26;
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int;
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Value
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int;
}//private void SampleForm_Load(object sender, EventArgs e)
private void SampleForm_ResizeEnd(object sender, EventArgs e)
{
// this.WindowState=WindowState
// this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.tabControlFOR_GT_PARSING_PICTURES.Width = this.Width - this.tabControlFOR_GT_PARSING_PICTURES.Left - 33;
this.tabControlFOR_GT_PARSING_PICTURES.Height = this.Height - this.tabControlFOR_GT_PARSING_PICTURES.Top - 33;
this.panelFORHOLDINGGRIDS.Width = this.panelFORHOLDINGGRIDS.Width;
this.panelFORHOLDINGGRIDS.Height = this.Height - this.panelFORHOLDINGGRIDS.Top - 33;
//////this.progressBarFOR_ANIMATIONS_SAVING.Top = this.panelFORHOLDINGGRIDS.Top + this.panelFORHOLDINGGRIDS.Height - 15;
// this.progressBarFOR_ANIMATIONS_SAVING.Top = this.panelFORHOLDINGGRIDS.Top + this.panelFORHOLDINGGRIDS.Height - 33;
this.progressBarFOR_ANIMATIONS_SAVING.Top = this.buttonSCAN_0_360.Top;// + this.panelFORHOLDINGGRIDS.Height - 33;
this.progressBarFOR_ANIMATIONS_SAVING.Left = this.buttonSCAN_0_360.Left + this.buttonSCAN_0_360.Width + 3;
}//private void SampleForm_ResizeEnd(object sender, EventArgs e)
private void SampleForm_ResizeBegin(object sender, EventArgs e)
{
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
}//private void SampleForm_ResizeBegin(object sender, EventArgs e)
private void SampleForm_AutoSizeChanged(object sender, EventArgs e)
{
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
}//private void SampleForm_AutoSizeChanged(object sender, EventArgs e)
private void SampleForm_ClientSizeChanged(object sender, EventArgs e)
{
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
}//private void SampleForm_ClientSizeChanged(object sender, EventArgs e)
private void pictureBox_FOR_GT_DISPLAYS_Click(object sender, EventArgs e)
{
this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
//////ExcelFormulaParser_GT_PARSER.PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
////// reload_recalculate_redraw();//
}//private void pictureBox_FOR_GT_DISPLAYS_Click(object sender, EventArgs e)
private void pictureBox_FOR_GT_DISPLAYS_Paint(object sender, PaintEventArgs e)
{
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_DOUBLE___COUNTER_WHEN_ENTERS___GenerateInterceptsAndDistances
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_DOUBLE___COUNTER_WHEN_ENTERS___GenerateInterceptsAndDistances
= 0;
//////////////////PUBLIC_STATIC_DOUBLE___COUNTER_WHEN_ENTERS___GenerateInterceptsAndDistances = 0;
/// <summary>
///
/// </summary>
///
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_DOUBLE___COUNTER_WHEN_ENTERS___The_WAV_AMPLITUDES__GENERATORS_Main
= 0;
////// NOTE THAT WE HAVE ADDED SEVERAL FUNCTIONS THERE SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
////// NOTE THAT WE HAVE ADDED SEVERAL FUNCTIONS THERE SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
////// NOTE THAT WE HAVE ADDED SEVERAL FUNCTIONS THERE SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
///
/// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
/// /// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
/// /// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
/// /// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
/// /// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
/// /// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
/// /// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
/// /// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
/// /// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
///
try
{
///i am taking this to the pbox starting point
///////////////////////////// fresh svg generated ////////////////////
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ONLY_GTSIMPLEX_SINGLE_STATE_SVG
.Clear();
////////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
//////public static StringBuilder
////// public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_CUMULSUMS_OUTPUT_COMPLS_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
////// = new StringBuilder();
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ONLY_SINGLE_STATE_CUMULSUMS_OUTPUT_COMPL_SVG
.Clear();
/// WE HAVE TO TAKE THIS ONE double pbox_width = ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE_CURRENT_STATUS_OF_PBOX_WIDTH;
/// WE HAVE TO TAKE THIS ONE double pbox_height = ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE_CURRENT_STATUS_OF_PBOX_HEIGHT;
//https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/02/svg-output-from-geometrifying.html
double pbox_width = 0;
double pbox_height = 0;
pbox_width = this.pictureBox_FOR_GT_DISPLAYS.Width ;
pbox_height = this.pictureBox_FOR_GT_DISPLAYS.Height ;
/////////i am taking this to the pbox starting point
////// /// svgBuilder.AppendLine($"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"{svgWidth}\" height=\"{svgHeight}\">");
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
//////public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ONLY_GTSIMPLEX_SINGLE_STATE_SVG
//////.AppendLine
//////(
////////////$"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"{Math.Round(SIMULATIONS_global_0_TO_360_theoretical_found_width,2)}\" height=\"{Math.Round(SIMULATIONS_global_0_TO_360_theoretical_found_height, 2)}\">"
//////$"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"{Math.Round(pbox_width, 2)}\" height=\"{Math.Round(pbox_height, 2)}\">"
//////+ "\r\n"
//////);
///
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ONLY_GTSIMPLEX_SINGLE_STATE_SVG
.AppendLine
(
//////$"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"{Math.Round(SIMULATIONS_global_0_TO_360_theoretical_found_width,2)}\" height=\"{Math.Round(SIMULATIONS_global_0_TO_360_theoretical_found_height, 2)}\">"
$"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"{Math.Round(pbox_width, 2)}\" height=\"{Math.Round(pbox_height, 2)}\">"
+ "\r\n"
);
////// ///////////////////////////// fresh svg generated ////////////////////
////// ///
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ONLY_SINGLE_STATE_CUMULSUMS_OUTPUT_COMPL_SVG
.AppendLine
(
//////$"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"{Math.Round(SIMULATIONS_global_0_TO_360_theoretical_found_width,2)}\" height=\"{Math.Round(SIMULATIONS_global_0_TO_360_theoretical_found_height, 2)}\">"
$"<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"{Math.Round(pbox_width, 2)}\" height=\"{Math.Round(pbox_height, 2)}\">"
+ "\r\n"
);
////// ///////////////////////////// fresh svg generated ////////////////////
//////PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SECOND_FOUND
///this is calculated from the samples found and from the total durations in the millisecond
//////public static double PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_DURATIONS_MILLISECONDS_FOUND = 30000;
//////public static double PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SECOND_FOUND = 44200;
//////DEFAULT VALUES
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_DURATIONS_MILLISECONDS_FOUND
= 30000;
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
//////DEFAULT VALUES
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SECOND_FOUND
= 30;// 44200;//default
//////___temp_data_for_samples_in_SEGMENT
////// = Math.Max
////// (
////// ExcelFormulaParser_GT_PARSER
////// .GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SEGMENT_FOUND
////// ,
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class.
////// CAUTION_SAMPLE_POINTS_PER_CUMULATIONS_SEGMENTS_IN____NUMBER___312
////// );
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
// this is to get auto calculated from the samples found and the durations in the millisecond in the text box
/////////////////////////// CAUTION WE WILL POPULATE THE REAL DATA FEW LINES LATER SO DONT DO THESE DAFAULT DATA AFTER THIS LINES
/////////////////////////// CAUTION WE WILL POPULATE THE REAL DATA FEW LINES LATER SO DONT DO THESE DAFAULT DATA AFTER THIS LINES
/////////////////////////// CAUTION WE WILL POPULATE THE REAL DATA FEW LINES LATER SO DONT DO THESE DAFAULT DATA AFTER THIS LINES
/////////////////////////// CAUTION WE WILL POPULATE THE REAL DATA FEW LINES LATER SO DONT DO THESE DAFAULT DATA AFTER THIS LINES
/////////////////////////// CAUTION WE WILL POPULATE THE REAL DATA FEW LINES LATER SO DONT DO THESE DAFAULT DATA AFTER THIS LINES
/////////////////////////// CAUTION WE WILL POPULATE THE REAL DATA FEW LINES LATER SO DONT DO THESE DAFAULT DATA AFTER THIS LINES
this.button_TO_PLAY_CURRENT_GT_SIMPLEX_WAVE_FILES.BackColor = Color.PaleVioletRed;
this.button_TO_PLAY_CURRENT_GT_SIMPLEX_WAVE_FILES.Enabled = false;
string _current_gtsimplex_files_name = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder + "current_gtsimplex_file_current_commandstring_only_muswavs_amplitudes_samples.GTAMPS";
//////ExcelFormulaParser_GT_PARSERSample.Program
////// .
////// ___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
////// .Clear();
//////ExcelFormulaParser_GT_PARSERSample.Program
//////.
//////___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
//////.AppendLine
//////(
//////"Amplitudes"
//////);
try
{
/// THIS IS USED TO CALCULATE THE AUTODENERATIONS OF VALUES
double total_samples_per_second_found_for_waves_files = 44200;
total_samples_per_second_found_for_waves_files
= Convert.ToDouble(this.textbox_FOR_TXT_TO_WAVS_SAMPLES_PER_SEGMENT.Text.TrimEnd().TrimStart().Trim());
double ___temp_data_for_samples_in_seconds = 3000;
try
{
___temp_data_for_samples_in_seconds
=
Convert.ToDouble(this.textbox_FOR_TXT_TO_WAVS_SAMPLES_PER_SEGMENT.Text.ToString().TrimEnd().TrimStart().Trim());
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SEGMENT_FOUND
=
___temp_data_for_samples_in_seconds
;
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SEGMENT_FOUND
=
Math.Max
(
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SEGMENT_FOUND
,
30
);
// this.generatorPanel_for_saan_gt_systems.public_non_static_double_durations_in_milliseconds
// = ___temp_data_for_duration_in_seconds;
}
catch (Exception _excp)
{
___temp_data_for_samples_in_seconds = 44200;
}//catch(Exception _excp)
/// REPOPULATE THESE DATA EVERY TIMES
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SECOND_FOUND
=
30;// 44100;//default
// reversecalculatedfromsamplesfoundanddurationsinmillisecond
///___temp_data_for_samples_in_seconds;
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SEGMENT_FOUND
=
Math.Max
(
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SEGMENT_FOUND
,
30
);
}
catch (Exception _excp_for_samples_per_second_data_storages_for_wav_files)
{
/// REPOPULATE THESE DATA EVERY TIMES
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SECOND_FOUND
= 44200;
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SEGMENT_FOUND
=
Math.Max
(
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SEGMENT_FOUND
,
30
);
}// catch(Exception _excp_for_samples_per_second_data_storages_for_wav_files)
//THIS IS ADDED TO SET SCALES WHEN UPDATING DATA
//public static double PUBLIC_STATIC_DOUBLE_CURRENT_STATUS_OF_PBOX_WIDTH = 0;
//public static double PUBLIC_STATIC_DOUBLE_CURRENT_STATUS_OF_PBOX_HEIGHT = 0;
try
{
FORMS_DATA_PUSHER_reset_simulations_data_to_fresh_read_data_from_grids_and_regenerate_redraw_all();
}
catch (Exception _excp_to_read_data_or_convert_data_Forms_reading)
{
System.Windows.Forms.MessageBox.Show("Please Correct the Data " + _excp_to_read_data_or_convert_data_Forms_reading.Message + "\r\n" + _excp_to_read_data_or_convert_data_Forms_reading.StackTrace.ToString());
}//catch(Exception _excp_to_read_data_or_convert_data_Forms_reading)
//NOTE THAT
//THIS IS IMPORTANT CALL
//DOUBLE CALL DONT HARM THE THINGS
//THIS FUNCTION IS ALREADY CALLED INSIDE FORMS_DATA_PUSHER_reset_simulations_data_to_fresh_read_data_from_grids_and_regenerate_redraw_all();
//ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.update_whole_array_with_command_string___TOO_MUCH_MANDATORY_PUBLIC__STATIC_ARRAY_OF_GLUABLE_TRIANGLES_TO_FORM_MULTIPLE_GTSIMPLEX_the_2D_PUBLIC_STATIC_MANDATORY_MULTIPLIE_GTSIMPLEX_array_of_multiplicative_recursive_lines___STORES_ALL_GTSIMPLEX_CHAINS___TO_FORM_SINGLE_GTSIMPLEX_ONLY();
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//this is called again which is not disturbing (This generates log csv with the dxf)
//NEW VARIABLE ADDED AFTER THE CHAINS ARE ALSO CHECKED IN THE GIF FILES GENERATIONS current_seeds_angle_supplied_to_updater_functions
//TO MAKE THINGS FASTER FOR NON GRAPHICS UPDATED LOOPING WE HAVE ADDED THIS NEW VARIABLE IN THE FUNCTIONS FOR UPDATIONS
// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//NEW VARIABLES ARE NOW TAKEN TO GENERATE THE AMPLITUDES FILES
////// GT_SEED_ANGLES_DEGREES = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value);
//CALLING CONVENTION IS (FOR THIS PLACE IT IS DUMMY CALLING ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.GT_SEED_ANGLES_DEGREES
//YES TESTED WORKING
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.update_ALL_GTSIMPLEX_OBJECTS_EVERYTIME_REFRESH_whole_array_with_command_string___PUBLIC_STATIC_MANDATORY_MULTIPLIE_GTSIMPLEX_array_of_multiplicative_recursive_lines___TO_FORM_SINGLE_GTSIMPLEX_ONLY
(
ExcelFormulaParser_GT_PARSER
.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.GT_SEED_ANGLES_DEGREES
);
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MAX_X
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MIN_X
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MAX_Y
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MIN_X
////// //THESE ARE CSHARPS ADDITIONS
////////////public static double FRAMES_WIDTH_AFTER_GENERATIONS = -600000; // Variables.VarTable_GT_CALCULATIONS:13
////////////public static double FRAMES_HEIGHT_AFTER_GENERATIONS = -600000; // Variables.VarTable_GT_CALCULATIONS:14
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_WIDTH_AFTER_GENERATIONS
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_HEIGHT_AFTER_GENERATIONS
////////these are new set of variables with c sharps
//////_TEMP_INITIAL_SEED_TRIANGLES_OBJECT_INSIDE_FOR_LOOP.LATEST_FRAMES_MAX_X = FRAMES_MAX_X;
//////_TEMP_INITIAL_SEED_TRIANGLES_OBJECT_INSIDE_FOR_LOOP.LATEST_FRAMES_MAX_Y = FRAMES_MAX_Y;
//////_TEMP_INITIAL_SEED_TRIANGLES_OBJECT_INSIDE_FOR_LOOP.LATEST_FRAMES_MIN_X = FRAMES_MIN_X;
//////_TEMP_INITIAL_SEED_TRIANGLES_OBJECT_INSIDE_FOR_LOOP.LATEST_FRAMES_MIN_Y = FRAMES_MIN_Y;
//////_TEMP_INITIAL_SEED_TRIANGLES_OBJECT_INSIDE_FOR_LOOP.LATEST_FRAMES_WIDTH_AFTER_GENERATIONS = FRAMES_WIDTH_AFTER_GENERATIONS;
//////_TEMP_INITIAL_SEED_TRIANGLES_OBJECT_INSIDE_FOR_LOOP.LATEST_FRAMES_HEIGHT_AFTER_GENERATIONS = FRAMES_HEIGHT_AFTER_GENERATIONS;
//////_TEMP_INITIAL_SEED_TRIANGLES_OBJECT_INSIDE_FOR_LOOP.LATEST_FRAMES_AREA_AFTER_GENERATIONS = FRAMES_AREA_AFTER_GENERATIONS;
///
double CURRENT_ALL_SIDES_OFFSET_ON_PLOT_REGIONS
= PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.ALL_SIDES_OFFSET_ON_PLOT_REGIONS;
double min_x = public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MIN_X;
double min_y = public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MIN_Y;
double max_x = public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MAX_X;
double max_y = public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MAX_Y;
double width_found = public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_WIDTH_AFTER_GENERATIONS + 2 * CURRENT_ALL_SIDES_OFFSET_ON_PLOT_REGIONS;
double height_found = public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_HEIGHT_AFTER_GENERATIONS + 2 * CURRENT_ALL_SIDES_OFFSET_ON_PLOT_REGIONS;
double found_area = public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_AREA_AFTER_GENERATIONS;//NOT CONSIDERED
//these are new variables defined to reduce jerking in the simulations
//these are new variables defined to reduce jerking in the simulations
//these are new variables defined to reduce jerking in the simulations
double _global_0_360_width_found = public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_WIDTH_AFTER_GENERATIONS + 2 * CURRENT_ALL_SIDES_OFFSET_ON_PLOT_REGIONS;
double _global_0_360_height_found = public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_WIDTH_AFTER_GENERATIONS + 2 * CURRENT_ALL_SIDES_OFFSET_ON_PLOT_REGIONS;
// Graphics g = null;
Graphics g = e.Graphics;
//the below lines causes too much flickering
//we are trying to set the non flickering and keeping previous graphics uncleared with our own conditions
//////if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes==null)
////// {
////// g = e.Graphics;
////// }//if(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes==null)
// g.PageUnit = GraphicsUnit.Point;
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
////// Bitmap _btmap = new Bitmap(this.pictureBox_FOR_GT_DISPLAYS.Width, this.pictureBox_FOR_GT_DISPLAYS.Height);
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
//////.public_static_graphics_for_GT_DRAWING_on_picture_boxes
//////= Graphics.FromImage(_btmap);
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
//THIS IS NEW ADDITION
double MIN_OF_BOTH_WIDTH_AND_HEIGHT_OF_PBOX = 0;
//THIS IS NEW ADDITION
MIN_OF_BOTH_WIDTH_AND_HEIGHT_OF_PBOX = Math.Min(this.pictureBox_FOR_GT_DISPLAYS.Width, this.pictureBox_FOR_GT_DISPLAYS.Height);
//////////////
//////float FRAMES_scale_x_current______FOR_CURRENT_SEEDS_ANGLES = (float)(Math.Abs(width_found) / this.pictureBox_FOR_GT_DISPLAYS.Width);
//////////////
//////float FRAMES_scale_y_current______FOR_CURRENT_SEEDS_ANGLES = (float)(Math.Abs(height_found )/ this.pictureBox_FOR_GT_DISPLAYS.Height);
////////
float FRAMES_scale_x_current______FOR_CURRENT_SEEDS_ANGLES = (float)(Math.Abs(width_found) / MIN_OF_BOTH_WIDTH_AND_HEIGHT_OF_PBOX);
////////
float FRAMES_scale_y_current______FOR_CURRENT_SEEDS_ANGLES = (float)(Math.Abs(height_found) / MIN_OF_BOTH_WIDTH_AND_HEIGHT_OF_PBOX);
//////
// float FRAMES_scale_x_current______FOR_CURRENT_SEEDS_ANGLES = (float)(this.pictureBox_FOR_GT_DISPLAYS.Width/width_found);
//////
// float FRAMES_scale_y_current______FOR_CURRENT_SEEDS_ANGLES = (float)(this.pictureBox_FOR_GT_DISPLAYS.Height/height_found);
// float FRAMES_scale_x_current______FOR_CURRENT_SEEDS_ANGLES = (float)(MIN_OF_BOTH_WIDTH_AND_HEIGHT_OF_PBOX / width_found);
// float FRAMES_scale_y_current______FOR_CURRENT_SEEDS_ANGLES = (float)(MIN_OF_BOTH_WIDTH_AND_HEIGHT_OF_PBOX / height_found);
//these are for the adjuster of coordinates
//WE SET THE SCALES HERE AND WE WILL PRESERVE THIS IN PUBLIC STATIC CLASS
public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_scale_x_current______FOR_CURRENT_SEEDS_ANGLES = (double)FRAMES_scale_x_current______FOR_CURRENT_SEEDS_ANGLES;
public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_scale_y_current______FOR_CURRENT_SEEDS_ANGLES = (double)FRAMES_scale_y_current______FOR_CURRENT_SEEDS_ANGLES;
//RECONFIRMING DATA
FRAMES_scale_x_current______FOR_CURRENT_SEEDS_ANGLES = (float)public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_scale_x_current______FOR_CURRENT_SEEDS_ANGLES;
FRAMES_scale_y_current______FOR_CURRENT_SEEDS_ANGLES = (float)public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_scale_y_current______FOR_CURRENT_SEEDS_ANGLES;
////////THESE VARIABLES ARE DEFINED TO GET LESSER JERKINGS IN THE SYSTEMS
////////THESE VARIABLES ARE DEFINED TO GET LESSER JERKINGS IN THE SYSTEMS
////////THESE VARIABLES ARE DEFINED TO GET LESSER JERKINGS IN THE SYSTEMS
//////public static double SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_x_current______FOR_GLOBAL_SIMULATIONS = 0;
//////public static double SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_y_current______FOR_GLOBAL_SIMULATION = 0;
////////THESE VARIABLES ARE DEFINED TO GET LESSER JERKINGS IN THE SYSTEMS
////////THESE VARIABLES ARE DEFINED TO GET LESSER JERKINGS IN THE SYSTEMS
////////THESE VARIABLES ARE DEFINED TO GET LESSER JERKINGS IN THE SYSTEMS
//these are new variables defined to reduce jerking in the simulations
//these are new variables defined to reduce jerking in the simulations
//these are new variables defined to reduce jerking in the simulations
// double _global_0_360_width_found = public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_WIDTH_AFTER_GENERATIONS + 2 * CURRENT_ALL_SIDES_OFFSET_ON_PLOT_REGIONS;
// double _global_0_360_height_found = public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_WIDTH_AFTER_GENERATIONS + 2 * CURRENT_ALL_SIDES_OFFSET_ON_PLOT_REGIONS;
//these are new variables to reduce jerking of overall simulations
//these are new variables to reduce jerking of overall simulations
//these are new variables to reduce jerking of overall simulations
////////
float _temp_SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_x_current______FOR_GLOBAL_SIMULATIONS = (float)(Math.Abs(_global_0_360_width_found) / MIN_OF_BOTH_WIDTH_AND_HEIGHT_OF_PBOX);
////////
float _temp_SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_y_current______FOR_GLOBAL_SIMULATION = (float)(Math.Abs(_global_0_360_height_found) / MIN_OF_BOTH_WIDTH_AND_HEIGHT_OF_PBOX);
public_static_class_simulations_CONTROLLER_for_gt_Class
.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_x_current______FOR_GLOBAL_SIMULATIONS
= (double)_temp_SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_x_current______FOR_GLOBAL_SIMULATIONS;
public_static_class_simulations_CONTROLLER_for_gt_Class
.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_y_current______FOR_GLOBAL_SIMULATIONS
= (double)_temp_SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_y_current______FOR_GLOBAL_SIMULATION;
//these are new variables for reducing jerking in overall simulations
//RECONFIRMING DATA
_temp_SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_x_current______FOR_GLOBAL_SIMULATIONS
= (float)public_static_class_simulations_CONTROLLER_for_gt_Class
.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_x_current______FOR_GLOBAL_SIMULATIONS;
_temp_SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_y_current______FOR_GLOBAL_SIMULATION
= (float)public_static_class_simulations_CONTROLLER_for_gt_Class
.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_scale_y_current______FOR_GLOBAL_SIMULATIONS;
//////
// Matrix originSetter = new Matrix(1, 0, 0, -1, 0, this.pictureBoxRawPicture.Height);
//////paintgraphics.Transform = originSetter;
//////
// Matrix originSetter = new Matrix(1, 0, 0, -1, 0, this.pictureBox_FOR_GT_DISPLAYS.Height);
//i have not reverted the y axis
//
// Matrix originSetter = new Matrix(1, 0, 0, -1, 0, 0);
//
// originSetter.Scale((float)(width_found / this.pictureBox_FOR_GT_DISPLAYS.Width), (float)(height_found / this.pictureBox_FOR_GT_DISPLAYS.Height));
// C:\FROM_PHONE_TAB\GT_CSHARP_23032020\GTCSPRDSORAORA\FRESHSINGLIFIED\ExcelFormulaParserSample\GT_PARSERS\PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.cs
//
//
//////originSetter.Scale((float)(1/FRAMES_scale_x_current______FOR_CURRENT_SEEDS_ANGLES), (float)(1/FRAMES_scale_y_current______FOR_CURRENT_SEEDS_ANGLES));
//if we dont do this) originSetter.Scale((float)(FRAMES_scale_x_current______FOR_CURRENT_SEEDS_ANGLES), (float)( FRAMES_scale_y_current______FOR_CURRENT_SEEDS_ANGLES));
// g.Transform = originSetter;
/// if we dont do here then it flickers the screen too much
/// if we dont do here then it flickers the screen too much
/// if we dont do here then it flickers the screen too much
///
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.public_static_graphics_for_GT_DRAWING_on_picture_boxes
= g;
/// if we dont do here then it flickers the screen too much
/// if we dont do here then it flickers the screen too much
/// if we dont do here then it flickers the screen too much
//this line of if statement causes too much of flickering
//////if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes == null)
////// {
///
/// i think i have to change this to the graaphics of bitmaps objects and then convert that bitmaps to the graphics objects
/// otherwise when the screen is minimised we see that gif files are coming from the other windows instead of the graphics screens
/// we have to check that to get the right off line buffering instead of the active screens pbox objects graphics to bitmaps
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.public_static_graphics_for_GT_DRAWING_on_picture_boxes != null)
{
/// to make the screen clearing with row 28 and with row 61
/// we have made this
///
//////////////////////////// TO CHECK THIS ALSO //////////////////////////////////////
//////////////////////////// TO CHECK THIS ALSO //////////////////////////////////////
//////////////////////////// TO CHECK THIS ALSO //////////////////////////////////////
if (
!
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.
PUBLIC_STATIC_BOOL_DO_YOU_WANT_TO_CLEAR_GRAPHICS_AT_EVERY_TRANSITIONS_YES_NO___28)
{
//but this flickers the screen
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.public_static_graphics_for_GT_DRAWING_on_picture_boxes
= g;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.public_static_graphics_for_GT_DRAWING_on_picture_boxes.Clear(Color.White);
}
else
{
// DONT CLEAR
}
//////if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
////// .
////// PUBLIC_STATIC_BOOL_DO_YOU_WANT_TO_CLEAR_GRAPHICS_AT_EVERY_TRANSITIONS_YES_NO___28)
///
//PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_CLEAR_SCREEN_WITH_NEW_SEEDS_ANGLES = true;
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_CLEAR_SCREEN_WITH_NEW_SEEDS_ANGLES___61)
{
//CHECKING THIS CLEARING DONT GIVE ANY EFFECT
// since in the invalidate and repaint it is creating teh graphics fresh so the clear is nottaking effect
if (
!
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.
PUBLIC_STATIC_BOOL_DO_YOU_WANT_TO_CLEAR_GRAPHICS_AT_EVERY_TRANSITIONS_YES_NO___28)
{
//but this flickers the screen
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.public_static_graphics_for_GT_DRAWING_on_picture_boxes
= g;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.public_static_graphics_for_GT_DRAWING_on_picture_boxes.Clear(Color.White);
}
else
{
// DONT CLEAR
}
//////if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
////// .
////// PUBLIC_STATIC_BOOL_DO_YOU_WANT_TO_CLEAR_GRAPHICS_AT_EVERY_TRANSITIONS_YES_NO___28)
///
// if (PUBLIC_STATIC_BOOL___TO_CLEAR_SCREEN_WITH_NEW_SEEDS_ANGLES)
}
else
{
//TO DO TO DO TO DO
//no clear to compare previous cases
//to compare previous lines with different seeds angles cases
//////// Restore(GraphicsState gstate);
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes.Restore(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_sgraphicsstates_to_show_comparative_graphics);
////// //////=
////// //////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_sgraphicsstates_to_show_comparative_graphics;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_sgraphicsstates_to_show_comparative_graphics =
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes.Save();
////////trying WORKING AT THE LAST LINE OF THIS FUNCTION NO ERROR
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_sgraphicsstates_to_show_comparative_graphics =
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes.Save();
//////// Restore(GraphicsState gstate);
//NO EFFECT FOUND PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes.Restore(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_sgraphicsstates_to_show_comparative_graphics);
}//else cases if (PUBLIC_STATIC_BOOL___TO_CLEAR_SCREEN_WITH_NEW_SEEDS_ANGLES)
}
else
{
//but this flickers the screen
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.public_static_graphics_for_GT_DRAWING_on_picture_boxes
= g;
}
//////if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
////// .public_static_graphics_for_GT_DRAWING_on_picture_boxes != null)
////// {
////// }
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
////// Bitmap _btmap_GGG = new Bitmap(this.pictureBox_FOR_GT_DISPLAYS.Width, this.pictureBox_FOR_GT_DISPLAYS.Height);
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
//////.public_static_graphics_for_GT_DRAWING_on_picture_boxes
//////= Graphics.FromImage(_btmap_GGG);
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
////// I AM TRYING TO DO NEW CALCULATIONS SUCH THAT WE CAN GET THE IMAGES PROPERLY EVEN WHEN THE SCREEN IS MINIMIZED
////// }
/// else
/// {
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes
////// = PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes;
//////
/// }//else case //if(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes==null)
//this is new additions
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes.ScaleTransform((float)(1 / FRAMES_scale_x_current______FOR_CURRENT_SEEDS_ANGLES), (float)(1 / FRAMES_scale_y_current______FOR_CURRENT_SEEDS_ANGLES));
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes.Transform = originSetter;
//CAUTION NOW WE NEED TO CHECK THE CONDITIONS OF THIS FOR 0 TO 360 SCANS CASES NOW SINCE WE HAVE IMPLEMENTED THE SCANNING (FAST SCANNING WITHOUT UPDATING THE PBOXES)
//CAUTION NOW WE NEED TO CHECK THE CONDITIONS OF THIS FOR 0 TO 360 SCANS CASES NOW SINCE WE HAVE IMPLEMENTED THE SCANNING (FAST SCANNING WITHOUT UPDATING THE PBOXES)
//CAUTION NOW WE NEED TO CHECK THE CONDITIONS OF THIS FOR 0 TO 360 SCANS CASES NOW SINCE WE HAVE IMPLEMENTED THE SCANNING (FAST SCANNING WITHOUT UPDATING THE PBOXES)
//this is called when all data populations are done THIS IS THE COMPLETE VIEW CONTROLLER AND THIS RENDERS EVERYTHING ON THE PBOX WITH GRAPHICS
//THIS SAVES THE BMP FILES ALSO FOR THE GIF PREPERATIONS SO WE NEED SOME CONTROLLER VARIABLES FOR THE GIF FILES SAVING OPTIONS WITH THE BITMAP FILES SAVING OPTIONS
//SINCE WE HAVE TESTED THAT ALL THE GIF FILES ARE GENERATING PROPERLY AND NOW WE CAN CONTROL TE GIF FILES GENERATIONS CONDITIONS WHENEVER REQUIRED TO GET THE FAST SCANNING AND SIMULATIONS
// SOMETIMES WE SEE THAT GIF FILES GENERATIONS ARE TAKING LOT OF TIME WHICH IS NOT ACTUALLY REQUIRED FOR EVERY TIME WHEN WE ARE DOING ROUGH CALCULATIONS OR ROUGH SIMULATIONS
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//////this.button_PLAY_0_360.BackColor = Color.Blue;
//////this.buttonSCAN_0_360.BackColor = Color.Blue;
}
else
{
//////this.button_PLAY_0_360.BackColor = Color.Blue;
//////this.buttonSCAN_0_360.BackColor = Color.Red;
}//else cases of if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
//WE HAVE SET THIS VARIABLE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_KEEP_CURRENT_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES
//WHOLE OF THE RENDERING PROCESS LOOPS ARE INSIDE THE IF CONDITIONS OF PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_KEEP_CURRENT_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES
//CAUTIOMN THIS VARIABLES CONTROLS THE RENDERING STORAGES PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_KEEP_CURRENT_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES
//i am planning to use this https://stackoverflow.com/questions/2928845/saving-system-drawing-graphics-to-a-png-or-bmp
//to directly saving the graphics objects to the bit maps files
//that will help us to record the graphics faster and we can run the simulations when the whole screen (or the control is minimized)
////////////////private void SaveControlImage(Control ctr)
//////////////// {
//////////////// try
//////////////// {
//////////////// var imagePath = @"C:\Image.png";
//////////////// Image bmp = new Bitmap(ctr.Width, ctr.Height);
//////////////// var gg = Graphics.FromImage(bmp);
//////////////// var rect = ctr.RectangleToScreen(ctr.ClientRectangle);
//////////////// gg.CopyFromScreen(rect.Location, Point.Empty, ctr.Size);
//////////////// bmp.Save(imagePath);
//////////////// Process.Start(imagePath);
//////////////// }
//////////////// catch (Exception)
//////////////// {
//////////////// //
//////////////// }
//////////////// }
//////Graphics graph = CreateGraphics();
//////Bitmap bmpPicture = new Bitmap("filename.bmp");
//////graph.DrawImage(bmpPicture, width, height);
///// Image.Save("myfile.png",ImageFormat.Png)
///
//this is the rendering codes
ExcelFormulaParser_GT_PARSER
.PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
reload_recalculate_redraw();//
//CAUTION NOW WE NEED TO CHECK THE CONDITIONS OF THIS FOR 0 TO 360 SCANS CASES NOW SINCE WE HAVE IMPLEMENTED THE SCANNING (FAST SCANNING WITHOUT UPDATING THE PBOXES)
//CAUTION NOW WE NEED TO CHECK THE CONDITIONS OF THIS FOR 0 TO 360 SCANS CASES NOW SINCE WE HAVE IMPLEMENTED THE SCANNING (FAST SCANNING WITHOUT UPDATING THE PBOXES)
//CAUTION NOW WE NEED TO CHECK THE CONDITIONS OF THIS FOR 0 TO 360 SCANS CASES NOW SINCE WE HAVE IMPLEMENTED THE SCANNING (FAST SCANNING WITHOUT UPDATING THE PBOXES)
//now we are using after 03082020plus Program.public_static_string_GT_folder
//this has problems for animations SaveControlImage(this.pictureBox_FOR_GT_DISPLAYS, "D:\\CHECKING_GTIMAGES.BMP");
/// YES I HAVE TESTED THAT FOR THE FIRST TIME RUN IT GENERATES THE COUNTING AS 3 AND UPTO 3 IT ENTEERS TO INITIAL STRING
/// YES I HAVE TESTED THAT FOR THE FIRST TIME RUN IT GENERATES THE COUNTING AS 3 AND UPTO 3 IT ENTEERS TO INITIAL STRING
/// YES I HAVE TESTED THAT FOR THE FIRST TIME RUN IT GENERATES THE COUNTING AS 3 AND UPTO 3 IT ENTEERS TO INITIAL STRING
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_COMMAND_STRING_CHANGED_FOR_SVG_SAVING_INITIALIZATIONS > (3+1))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_GTSIMPLEX_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.AppendLine
(
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ONLY_GTSIMPLEX_SINGLE_STATE_REPORT_TEXT_ABOVE_SVG
.ToString()
+
"\r\n<div class=\"svg-container\">"
+ "\r\n" +
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ONLY_GTSIMPLEX_SINGLE_STATE_SVG
.ToString()
+ "\r\n</div>\r\n"
);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_CUMULSUMS_OUTPUT_COMPLS_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.AppendLine
(
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ONLY_GTSIMPLEX_SINGLE_STATE_REPORT_TEXT_ABOVE_SVG
.ToString()
+
"\r\n<div class=\"svg-container\">"
+ "\r\n" +
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ONLY_SINGLE_STATE_CUMULSUMS_OUTPUT_COMPL_SVG
.ToString()
+ "\r\n</div>\r\n"
);
//end of if // if ( PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_COMMAND_STRING_CHANGED_FOR_SVG_SAVING_INITIALIZATIONS>0)
}
else
{
/// for the initializations strings
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ONLY_GTSIMPLEX_SINGLE_STATE_SVG
.Clear();
}//end of else // if ( PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_COMMAND_STRING_CHANGED_FOR_SVG_SAVING_INITIALIZATIONS>1)
//now we are using after 03082020plus Program.public_static_string_GT_folder
//yes tested that these are working
//this is newly added to get the data for the reporting this needs the file names withj the proper naming conventions in d drives
if (public_static_class_simulations_CONTROLLER_for_gt_Class.DO_YOU_NEED_NAMED_SNAP_FOR_CURRENT_BMP_Y_N_FOR_NON_GIF_SNAPS)
{
//////SaveControlImage___FUNCTION_DEFINED_IN_FORM_OBJECTS(this.pictureBox_FOR_GT_DISPLAYS
////// ,
////// "D:\\" +
////// public_static_class_simulations_CONTROLLER_for_gt_Class.command_string + "_" +
////// public_static_class_simulations_CONTROLLER_for_gt_Class.GT_SEED_ANGLES_DEGREES.ToString()
////// + "_cutoff_" +
////// public_static_class_simulations_CONTROLLER_for_gt_Class.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
////// + "_" +
////// public_static_class_simulations_CONTROLLER_for_gt_Class.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
////// +"_OVERLAP_" + public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE______REPRESENTATIONAL_SCALE_FACTOR_OF_CURRENT_GT_SEED_TRIANGLE_FROM_THE_CURRENT_CG_TO_SHRINK_GROW_POINTS_TO_DETECT_OVERLAPS_OF_LINES_OR_POINTS_ON_GRAPHS.ToString()
////// + ".bmp"
////// );
string _total_bmp_path = "";
string _temp_bmp_files_name_part = "";
_temp_bmp_files_name_part
=
public_static_class_simulations_CONTROLLER_for_gt_Class
.
command_string
+
"_" +
public_static_class_simulations_CONTROLLER_for_gt_Class
.
orientation_string
.Substring(0,
public_static_class_simulations_CONTROLLER_for_gt_Class
.
command_string.Length)
+ "_" +
public_static_class_simulations_CONTROLLER_for_gt_Class
.
GT_SEED_ANGLES_DEGREES.ToString()
+ "_cutoff_" +
public_static_class_simulations_CONTROLLER_for_gt_Class
.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
+ "_" +
public_static_class_simulations_CONTROLLER_for_gt_Class
.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
+ "_OVERLAP_" + public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______REPRESENTATIONAL_SCALE_FACTOR_OF_CURRENT_GT_SEED_TRIANGLE_FROM_THE_CURRENT_CG_TO_SHRINK_GROW_POINTS_TO_DETECT_OVERLAPS_OF_LINES_OR_POINTS_ON_GRAPHS
.ToString()
+ ".bmp"
;
//+ ".bmp";
_total_bmp_path
=
ExcelFormulaParser_GT_PARSERSample
.Program.public_static_string_GT_folder +
_temp_bmp_files_name_part;
if (_total_bmp_path.Length < 255)
{
//////System.IO.File
////// .WriteAllText
////// (
////// _total_bmp_path
////// ,
////// SAAGIRID.ClassToGenerateSAANSAAGIRID_DXF_Reports_26092019
////// .sbuilder_for_bmp.ToString()
////// );
//if ends if(_total_bmp_path.Length<255)
SaveControlImage___FUNCTION_DEFINED_IN_FORM_OBJECTS(this.pictureBox_FOR_GT_DISPLAYS
,
//////Program.public_static_string_GT_folder +
//////public_static_class_simulations_CONTROLLER_for_gt_Class.command_string + "_" +
//////public_static_class_simulations_CONTROLLER_for_gt_Class
//////.GT_SEED_ANGLES_DEGREES.ToString()
//////+ "_cutoff_" +
//////public_static_class_simulations_CONTROLLER_for_gt_Class
//////.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
//////+ "_" +
//////public_static_class_simulations_CONTROLLER_for_gt_Class
//////.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
//////+ "_OVERLAP_" + public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE______REPRESENTATIONAL_SCALE_FACTOR_OF_CURRENT_GT_SEED_TRIANGLE_FROM_THE_CURRENT_CG_TO_SHRINK_GROW_POINTS_TO_DETECT_OVERLAPS_OF_LINES_OR_POINTS_ON_GRAPHS
//////.ToString()
//////+ ".bmp"
_total_bmp_path
);
}
else
{
_temp_bmp_files_name_part
=
_temp_bmp_files_name_part
=
public_static_class_simulations_CONTROLLER_for_gt_Class
.
command_string
+
"_" +
//////public_static_class_simulations_CONTROLLER_for_gt_Class
//////.
//////orientation_string
//////.Substring(0,
//////public_static_class_simulations_CONTROLLER_for_gt_Class
//////.
//////command_string.Length)
//////+ "_" +
public_static_class_simulations_CONTROLLER_for_gt_Class
.
GT_SEED_ANGLES_DEGREES.ToString()
+ "_cutoff_" +
public_static_class_simulations_CONTROLLER_for_gt_Class
.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
+ "_" +
public_static_class_simulations_CONTROLLER_for_gt_Class
.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
+ "_OVERLAP_" + public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______REPRESENTATIONAL_SCALE_FACTOR_OF_CURRENT_GT_SEED_TRIANGLE_FROM_THE_CURRENT_CG_TO_SHRINK_GROW_POINTS_TO_DETECT_OVERLAPS_OF_LINES_OR_POINTS_ON_GRAPHS
.ToString()
+ ".bmp"
;
//+ ".bmp";
_total_bmp_path
=
ExcelFormulaParser_GT_PARSERSample
.Program.public_static_string_GT_folder +
_temp_bmp_files_name_part;
//////System.IO.File
////// .WriteAllText
////// (
////// _total_bmp_path
////// ,
////// SAAGIRID.ClassToGenerateSAANSAAGIRID_DXF_Reports_26092019
////// .sbuilder_for_bmp.ToString()
////// );
///
//////SaveControlImage___FUNCTION_DEFINED_IN_FORM_OBJECTS(this.pictureBox_FOR_GT_DISPLAYS
////// ,
////// Program.public_static_string_GT_folder +
////// public_static_class_simulations_CONTROLLER_for_gt_Class
////// .command_string + "_" +
////// public_static_class_simulations_CONTROLLER_for_gt_Class
////// .GT_SEED_ANGLES_DEGREES.ToString()
////// + "_cutoff_" +
////// public_static_class_simulations_CONTROLLER_for_gt_Class
////// .minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
////// + "_" +
////// public_static_class_simulations_CONTROLLER_for_gt_Class
////// .maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
////// + "_OVERLAP_" + public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_DOUBLE______REPRESENTATIONAL_SCALE_FACTOR_OF_CURRENT_GT_SEED_TRIANGLE_FROM_THE_CURRENT_CG_TO_SHRINK_GROW_POINTS_TO_DETECT_OVERLAPS_OF_LINES_OR_POINTS_ON_GRAPHS
////// .ToString()
////// + ".bmp"
////// );
SaveControlImage___FUNCTION_DEFINED_IN_FORM_OBJECTS(this.pictureBox_FOR_GT_DISPLAYS
,
//////Program.public_static_string_GT_folder +
//////public_static_class_simulations_CONTROLLER_for_gt_Class.command_string + "_" +
//////public_static_class_simulations_CONTROLLER_for_gt_Class
//////.GT_SEED_ANGLES_DEGREES.ToString()
//////+ "_cutoff_" +
//////public_static_class_simulations_CONTROLLER_for_gt_Class
//////.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
//////+ "_" +
//////public_static_class_simulations_CONTROLLER_for_gt_Class
//////.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int.ToString()
//////+ "_OVERLAP_" + public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE______REPRESENTATIONAL_SCALE_FACTOR_OF_CURRENT_GT_SEED_TRIANGLE_FROM_THE_CURRENT_CG_TO_SHRINK_GROW_POINTS_TO_DETECT_OVERLAPS_OF_LINES_OR_POINTS_ON_GRAPHS
//////.ToString()
//////+ ".bmp"
_total_bmp_path
);
}//end of else if(_total_bmp_path.Length<255)
}// if( public_static_class_simulations_CONTROLLER_for_gt_Class.DO_YOU_NEED_NAMED_SNAP_FOR_CURRENT_BMP_Y_N_FOR_NON_GIF_SNAPS )
//we have no option other than using this
//
// ((Bitmap)(_tempBitmap)).Save(_temp_filesnames_for_frames);
//
// Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names.Add(_temp_filesnames_for_frames);
int _temp_frames_number = Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.PUBLIC_STATIC_INT_FRAMES_ITERATOR_UPDATED_FROM_FORMS_SIMULATORS_BUTTON;
string _temp_fresh_names =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ (new String('0', 13 - _temp_frames_number.ToString().Trim().TrimEnd().TrimStart().Length)) + _temp_frames_number.ToString().Trim().TrimEnd().TrimStart() + ".bmp";
//this does wrong things here string _temp_filenames_to_saves = Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names.Last<string>();
//this is newly added thing to set the systems with faster simulations and not to save all simulations every times
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO)
{
//we will set this to conditional
//checking we have checked that it is working
//and we cannot do minimization of the screen otherwise it captures wrong things there
SaveControlImage___FUNCTION_DEFINED_IN_FORM_OBJECTS
(this.pictureBox_FOR_GT_DISPLAYS, _temp_fresh_names);
//we have seen that this _temp_fresh_names works so we are storing this data to this list
//THIS DONT ENTER WHILE RUNNING SIMULATIONS BUTTON 0 TO 360 WHEN N IS THERE IN 97
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF
.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names
.Add(_temp_fresh_names);
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO)
//https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.control.drawtobitmap?view=windowsdesktop-6.0
//public void DrawToBitmap (System.Drawing.Bitmap bitmap, System.Drawing.Rectangle targetBounds);
//this function is there
//to use this pictureBox_FOR_GT_DISPLAYS.DrawToBitmap()
//trying new ways of working with the pdf systems here
// SAANPDF.OtherExample OE_FOR_TESTING;//=new SAANPDF.Oth
////// StringBuilder ___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
//////= new StringBuilder();
////// ___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
////// .Clear();
////// string _current_gtsimplex_files_name = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder + "current_gtsimplex_file_current_commandstring_only_muswavs_amplitudes_samples.GTAMPS";
/// not to append
System.IO.File.WriteAllText
(
_current_gtsimplex_files_name
,
ExcelFormulaParser_GT_PARSERSample.Program
.
___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
.ToString()
);
this.button_TO_PLAY_CURRENT_GT_SIMPLEX_WAVE_FILES.BackColor = Color.LightBlue;
this.button_TO_PLAY_CURRENT_GT_SIMPLEX_WAVE_FILES.Enabled = true;
}
catch (Exception excpggg)
{
}//catch (Exception excp)
// pictureBox_FOR_GT_DISPLAYS.Invalidate();
}//private void pictureBox_FOR_GT_DISPLAYS_Paint(object sender, PaintEventArgs e)
private void dataGridViewFOR_GT_PRESETS_DATA_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
FORMS_DATA_PUSHER_reset_simulations_data_to_fresh_read_data_from_grids_and_regenerate_redraw_all();
this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
}// private void dataGridViewFOR_GT_PRESETS_DATA_CellContentClick(object sender, DataGridViewCellEventArgs e)
public void FORMS_DATA_PUSHER_reset_simulations_data_to_fresh_read_data_from_grids_and_regenerate_redraw_all()
{
//////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/07/stepstogeometrifytrigonometryexpression.html
//////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/07/gtupdatedatafromthedatagrids.html
//////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/07/public-void-formsdatapusherresetsimulat.html
//////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/07/gtpboxtorepaint.html
//////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/07/gtsegmentsdatastorageclass.html
//////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/07/gtonlygluabletriangleclass.html
////// WHEN WE WILL READ THE DIFFERENT ANGLES THEN WE NEED TO POPULATE THE ANGLES DATA FROM THE SEPARATE TAB
///THERE ARE SEPARATE DATA GRIDS NECESSARY FOR THAT FROM WHICH WE WILL READ THE CONDITIONAL ANGLE CHANGES EVERY TIMES
///AND WE WILL POPULATE THE DATA TO THE LIST OF ANGLES TO HANDLE THE OBJECTS OF RECURSIVE CONSTRUCTIONS
///NOW WE HAVE MADE THE SYSTEM WHICH HAS THICK LINES FOR OUTPUT COMPLEMENTS GIVEN LINE SEGMENTS WITH DIRECTIONAL ARROWS AND ALSO WE HAVE THE ORIENTATIONS DONE
///FOR R S A C O M CASES AND WE CAN THINK FOR OTHER KINDS OF ORIENTATUIONS ALSO THE SHAPES OF GT SIMPLEX DONT CHANGE WHEN WE CHANGE THE ORIENTATIONS OF CONSTRUCTED TRIANGLES
///THAT WE HAVE CHECKED THOROUGHLY
//CALLING CONVENTIONS OF THESE VARIABLES
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_STRING_CUMULATIVE_STRING_OF_COMMANDS_CHARACTERS_CONCATENATED_FLUSHED_ONLY_AT_START___OF_GT_SIMPLEX_GENERATIONS_LOOP = "";//FLUSHING IS REQUIRED
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_STRING_CUMULATIVE_STRING_OF_UNDERSCORE_SEPARATED_WITH_CURRENTSEEDS_ANGLES_COMMANDS_CHARACTERS_CONCATENATED_FLUSHED_ONLY_AT_START___OF_GT_SIMPLEX_GENERATIONS_LOOP = "";//FLUSHING IS REQUIRED
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_STRING_CUMULATIVE_STRING_OF_COMMANDS_OUTPUT_CONCATENATED_FLUSHED_ONLY_AT_START___OF_GT_SIMPLEX_GENERATIONS_LOOP = "";//FLUSHING IS REQUIRED
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_STRING_CUMULATIVE_STRING_OF_COMMANDS_WITH_LAST_COMPLEMENTED_CHAR_CONCATENATED_FLUSHED_ONLY_AT_START___OF_GT_SIMPLEX_GENERATIONS_LOOP = "";//FLUSHING IS REQUIRED
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT____TOTAL_COMMAND_CHARS_PROCESSED_UPTO_NOW___FOR_GLOBAL_ACCESS_PROCESSING_IN_CURRENT_GT_SIMPLEX = 0;// "";//FLUSHING IS REQUIRED
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_STRING____CURRENT_ACTIVE_COMMAND_CHAR_AS_STRING___PROCESSING = "";//FLUSHING IS REQUIRED
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_STRING____CURRENT_ACTIVE_OUTPUT_CHAR_AS_STRING___PROCESSING = "";//FLUSHING IS REQUIRED
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_STRING____CURRENT_ACTIVE_COMPLEMENT_CHAR_AS_STRING___PROCESSING = "";//FLUSHING IS REQUIRED
//these will help us to auto decide the situations of calculations while updating data for the objects of lines and triangles
//this systems of integrations can help the systems deciding how to connect the data visible properly on the screens
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE_CURRENT_STATUS_OF_PBOX_WIDTH
=
this.pictureBox_FOR_GT_DISPLAYS.Width;
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE_CURRENT_STATUS_OF_PBOX_HEIGHT
=
this.pictureBox_FOR_GT_DISPLAYS.Height;
//THIS IS ADDED TO SET SCALES WHEN UPDATING DATA
//public static double PUBLIC_STATIC_DOUBLE_CURRENT_STATUS_OF_PBOX_WIDTH = 0;
//public static double PUBLIC_STATIC_DOUBLE_CURRENT_STATUS_OF_PBOX_HEIGHT = 0;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[0].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
X1 = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[0].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[1].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
Y1 = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[1].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[2].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
Z1 = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[2].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
X2 = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[4].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
Y2 = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[4].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[5].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
Z2 = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[5].Cells[1].Value);
}
//AFTER 28062020PLUS WE ARE ENHANCING THE FIRST GIVEN LINE SEGMENTS TO TAKE FROM THE GIVEN COORDINATES
//THAT WILL GIVE US MORE POWER TO ANALYSE THE SCENARIOS OF THE INPUT TO OUTPUTS AND THEN TRANSFORMATIONS WITH INVERSE STRINGS CASES ALSO
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value != null)
{
try
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
L_OF_FIRST_LINE = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value.ToString());
//CAUTIONS these parts of codes are added after 28062020plus for better visualizations and checking of the cases of reverse strings
//CAUTIONS these parts of codes are added after 28062020plus for better visualizations and checking of the cases of reverse strings
//CAUTIONS these parts of codes are added after 28062020plus for better visualizations and checking of the cases of reverse strings
//PREVIOUSLY 23032020 LOCKDOWN STAGES WE WERE IN HURRY AND WE DID NOT TAKE CARE FOR THESE
double _temp_given_x1 = 0;//FLUSHING FIRST
double _temp_given_y1 = 0;//FLUSHING FIRST
double _temp_given_x2 = 0;//FLUSHING FIRST
double _temp_given_y2 = 0;//FLUSHING FIRST
//POPULATING THE DATA
_temp_given_x1 = ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.X1;
_temp_given_y1 = ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.Y1;
_temp_given_x2 = ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.X2;
_temp_given_y2 = ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.Y2;
//temp called inside first
double _temp_lengthof_initial_line_calculated_from_the_given_x1_y1_x2_y2 =
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.get_length_of_line(_temp_given_x1, _temp_given_y1, _temp_given_x2, _temp_given_y2);
//populating to the public static global variables
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
L_OF_FIRST_LINE_______CALCULATED_FROM_GIVEN_X1_Y1_X2_Y2
=
_temp_lengthof_initial_line_calculated_from_the_given_x1_y1_x2_y2;
//precautionary checking and data setting
//precautionary checking and data setting
//precautionary checking and data setting
if (
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
L_OF_FIRST_LINE_______CALCULATED_FROM_GIVEN_X1_Y1_X2_Y2
!=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
L_OF_FIRST_LINE
)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
L_OF_FIRST_LINE
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
L_OF_FIRST_LINE_______CALCULATED_FROM_GIVEN_X1_Y1_X2_Y2;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
L_OF_FIRST_LINE.ToString();
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Style.BackColor = Color.PaleVioletRed;
}
else
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Style.BackColor = Color.LightGreen;
}//else cases completes
////////////if (
//////////// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
////////////L_OF_FIRST_LINE_______CALCULATED_FROM_GIVEN_X1_Y1_X2_Y2
////////////!=
//////////// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
////////////L_OF_FIRST_LINE
////////////)
}
catch (Exception EXCP_FOR_VALUES_CALCULATIONS_OF_LENGTHS)
{
}//catch(Exception EXCP_FOR_VALUES_CALCULATIONS_OF_LENGTHS)
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
INITIAL_LOCKED_SET_POSITIONS_THETA_DEGREE
= Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[1].Value);
////////////////////////// NEWLY ADDED AFTER THE THEOREMS POINTS ACCUMULATIONS ARE DONE AND THESE ARE REQUIRED FOR THE THEOREMS POINTS CHECKING
////////////////////////// NEWLY ADDED AFTER THE THEOREMS POINTS ACCUMULATIONS ARE DONE AND THESE ARE REQUIRED FOR THE THEOREMS POINTS CHECKING
/// ////////////////////////// NEWLY ADDED AFTER THE THEOREMS POINTS ACCUMULATIONS ARE DONE AND THESE ARE REQUIRED FOR THE THEOREMS POINTS CHECKING
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
INITIAL_LOCKED_SET_POSITIONS_THETA_RADIAN
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
INITIAL_LOCKED_SET_POSITIONS_THETA_DEGREE
* (Math.PI / 180);//these codes are added in c sharps
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value != null)
{
}
else
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value
= "1000";
}//if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value!=null)
////////////////////////////////////////////////////////////////////////////////////
///
/// X2 FOR INITIAL L POSITIONING /////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3].Cells[1].Value
=
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.X1
+
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
L_OF_FIRST_LINE
*
Math.Cos(
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
INITIAL_LOCKED_SET_POSITIONS_THETA_RADIAN
)
)
.ToString()
;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3 + 1].Cells[1].Value
=
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.Y1
+
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
L_OF_FIRST_LINE
*
Math.Sin(
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
INITIAL_LOCKED_SET_POSITIONS_THETA_RADIAN
)
)
.ToString()
;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[8].Cells[1].Value
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
INITIAL_LOCKED_SET_POSITIONS_THETA_RADIAN
.ToString();
this.hScrollBar_FOR_L_GIVEN_LINE_SEGMENTS_ROTATIONS.Value
=
Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[1].Value);
///////////// re updated
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
X2
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3].Cells[1].Value);
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
Y2 = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3 + 1].Cells[1].Value);
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[8].Cells[1].Value != null)
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////INITIAL_LOCKED_SET_POSITIONS_THETA_RADIAN = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[8].Cells[1].Value);
///
//= Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[8].Cells[1].Value);
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
INITIAL_LOCKED_SET_POSITIONS_THETA_RADIAN
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
INITIAL_LOCKED_SET_POSITIONS_THETA_DEGREE
* (Math.PI / 180);//these codes are added in c sharps
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[9].Cells[1].Value != null)
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////pivot_x = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[9].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[10].Cells[1].Value != null)
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////pivot_y = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[10].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[11].Cells[1].Value != null)
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////pivot_z = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[11].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[12].Cells[1].Value != null)
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////stretch_x = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[12].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[13].Cells[1].Value != null)
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////stretch_y = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[13].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[14].Cells[1].Value != null)
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////stretch_z = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[14].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[15].Cells[1].Value != null)
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////nodal_x = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[15].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[16].Cells[1].Value != null)
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////nodal_y = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[16].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[17].Cells[1].Value != null)
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////nodal_z = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[17].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
{
//this is the command string conditions
this.Text =
"Excel_LIKE_FormulaParser_FOR_SANJOY_NATH_GEOMETRIFYING_TRIGONOMETRY_AUTOMATED_THEOREMS_GENERATORS_AND_PROOVERS___"
+
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string
+ " ( " +
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.GT_SEED_ANGLES_DEGREES.ToString()
+ " degrees ) "
;
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Style.BackColor = Color.LightCyan;
//previous commandstring is already stored inside ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string
//this stores the current state of the value of command string stored inside the systems which is to scan for all analysis purpose
//to check if the command string is changed in the flexgrids data entry systems we are writing this loop
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart()
!=
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.command_string
)
{
/////// we will start saving the svg files when this is >0
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_COMMAND_STRING_CHANGED_FOR_SVG_SAVING_INITIALIZATIONS
++;
/////////////////////////////////////////////////// THIS IS FOR WAV FILES SAMPLES ACCUMULATIONS
////////////////////////////////////////////////////// THIS IS FOR WAV FILES SAMPLES ACCUMULATIONS
/////////////////////////////////////////////////// THIS IS FOR WAV FILES SAMPLES ACCUMULATIONS
///
/////////////////// CAUTION WE WILL REVISE THE CONDITIONS
/////////////////// CAUTION WE WILL REVISE THE CONDITIONS
/////////////////// CAUTION WE WILL REVISE THE CONDITIONS
///if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length < 6)
if( ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_DO_YOU_NEED_THE_WAV_FILES_SAMPLES_FOR_GTSTATES___YES_NO___300 )
{
///for command changes
//////for command changes
//////for command changes
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_WHEN_ENTERS___GenerateInterceptsAndDistances = 0;
ExcelFormulaParser_GT_PARSERSample.Program
.
___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
.AppendLine
(
"Amplitudes"
);
/// not to append
System.IO.File.WriteAllText
(
// _current_gtsimplex_files_name
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "current_gtsimplex_file_current_commandstring_only_muswavs_amplitudes_samples.GTAMPS"
,
ExcelFormulaParser_GT_PARSERSample.Program
.
___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
.ToString()
);
/// first write to the file
ExcelFormulaParser_GT_PARSERSample.Program
.
___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
.Clear();
ExcelFormulaParser_GT_PARSERSample.Program
.
___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
.AppendLine
(
"Amplitudes"
);
}
//////if (ExcelFormulaParser_GT_PARSER.GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class.
////// CAUTION_DO_YOU_NEED_THE_WAV_FILES_SAMPLES_FOR_GTSTATES___YES_NO___300)
else
{
/// not to append
System.IO.File.WriteAllText
(
// _current_gtsimplex_files_name
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "current_gtsimplex_file_current_commandstring_only_muswavs_amplitudes_samples.GTAMPS"
,
ExcelFormulaParser_GT_PARSERSample.Program
.
___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
.ToString()
);
/// first write to the file
ExcelFormulaParser_GT_PARSERSample.Program
.
___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
.Clear();
ExcelFormulaParser_GT_PARSERSample.Program
.
___STRINGBUILDER_FOR_CURRENT_GTSIMPLEX_OBJECTS_COMPLETE___WAV_FILES_GENERATOR_AMPLITUDES_SAMPLES___current_gtsimplex_file_samples
.AppendLine
(
"Amplitudes"
);
}/// if not to generate wav files amplitudes samples
// if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length<6)
//////public static double PUBLIC_STATIC_DOUBLE___TOTAL_SAMPLES_ACCUMULATED = 0;
//////public static double PUBLIC_STATIC_DOUBLE___TOTAL_SECONDS_WAV_FILES_DURATIONS_REVERSE_CALCULATED_FROM_SAMPLES_ACCUMULATED___WITH___SAMPLES_PER_SECOND = 0; = 0;
ExcelFormulaParser_GT_PARSERSample.Program
.
PUBLIC_STATIC_DOUBLE___TOTAL_SAMPLES_ACCUMULATED
= 0;
ExcelFormulaParser_GT_PARSERSample.Program
.
PUBLIC_STATIC_DOUBLE___TOTAL_SECONDS_WAV_FILES_DURATIONS_REVERSE_CALCULATED_FROM_SAMPLES_ACCUMULATED___WITH___SAMPLES_PER_SECOND
= 0;
/////////////////////////////////////////////////// THIS IS FOR WAV FILES SAMPLES ACCUMULATIONS
////////////////////////////////////////////////////// THIS IS FOR WAV FILES SAMPLES ACCUMULATIONS
/////////////////////////////////////////////////// THIS IS FOR WAV FILES SAMPLES ACCUMULATIONS
string _report_permuted =
// CALLING CONVENTION
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.PUBLIC_STATIC_CLASS_FOR_MY_OWN_FORMULA_PARSER_FOR_GT
.GET_ALL_PERMULATION_STRING___FROM_SAAN___GT_STRING_FOR___GT_SIMPLEX
(
ExcelFormulaParser_GT_PARSERSample
.Program.public_static_string_GT_folder
+
"permuted_report_" +
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.command_string
.ToString()
+ ".txt"
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.command_string
);
//we clear this here (for scanning 0 to 360 starts) (And also when the command string is changed)
//we clear this here (for scanning 0 to 360 starts) (And also when the command string is changed)
//we clear this here (for scanning 0 to 360 starts) (And also when the command string is changed)
//no calling this inside data pusher disturbs this disturbs the scan 0 to 360 cases public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Clear();
//no calling this inside data pusher disturbs this disturbs the scan 0 to 360 cases public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Clear();
//no calling this inside data pusher disturbs this disturbs the scan 0 to 360 cases public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Clear();
//we clear this here (for scanning 0 to 360 starts) (And also when the command string is changed)
//we clear this here (for scanning 0 to 360 starts) (And also when the command string is changed)
//we clear this here (for scanning 0 to 360 starts) (And also when the command string is changed)
//WE NEED TO CLEAR THE PREVIOUS LISTS FOR THE COMMANDSTRING CHANGES
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//////this.button_PLAY_0_360.BackColor = Color.Blue;
this.buttonSCAN_0_360.BackColor = Color.Blue;
this.buttonSCAN_0_360.Invalidate();
this.buttonSCAN_0_360.Refresh();
}
else
{
//IF THE PREVIOUS COMMAND STRING IS NOT SAME AS THE CURRENT COMMAND STRING THEN WE WILL RESET THE CURRENT SEEDS_ANGLE TO FRESH FORMS LOADING STATES OF TO 26 DEGREES
if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.Length > 10)
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value
=
(360 / (ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.command_string.Length - 2)
).ToString();
//added after 28062020plus
this.hScrollBarFOR_DEGREES_CHANGERS.Maximum = 360;
this.hScrollBarFOR_DEGREES_CHANGERS.Value
= Convert.ToInt32
(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30]
.Cells[1].Value.ToString().Trim().TrimEnd()
.TrimStart());
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT
.Maximum = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.Length - 1;
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT
.Value = this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Style.BackColor = Color.PaleVioletRed;
////// THIS IS NEW THING INTRODUCED TO HANDLE THE ORIENTED NESS OF THE CONSTRUCTIONS AND THESE ARE DONE AFTER 2022
////// THIS IS NEW THING INTRODUCED TO HANDLE THE ORIENTED NESS OF THE CONSTRUCTIONS AND THESE ARE DONE AFTER 2022
////// THIS IS NEW THING INTRODUCED TO HANDLE THE ORIENTED NESS OF THE CONSTRUCTIONS AND THESE ARE DONE AFTER 2022
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
{
int _temp_commands_strings_length = 0;
_temp_commands_strings_length
=
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Length;
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value
=
(new String('R', _temp_commands_strings_length)).ToString();
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.orientation_string
= dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[2].Value.ToString();
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value != null)
{
#region TO_CORRECT_ORIENTATION_STRING_WITH_PATTERNS_REPEATS
string ___temp_data_string_found_in___orientation_string = "";
___temp_data_string_found_in___orientation_string
=
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString();
string new_orientation_string_formed = "";
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length <= _temp_commands_strings_length)
{
/// this is patterns repeater
for (int kkk = 0; kkk < (int)(_temp_commands_strings_length / ___temp_data_string_found_in___orientation_string.Length) + 1; kkk++)
{
new_orientation_string_formed
=
///(new String('R', _temp_commands_strings_length)).ToString();
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString()
//////+
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString();
new_orientation_string_formed
+
___temp_data_string_found_in___orientation_string;
}//for(int kkk=0;kkk<(int)(_temp_commands_strings_length/ ___temp_data_string_found_in___orientation_string.Length)+1; kkk++)
/// THIS PATTERN REPEAT IS NECESSARY TO DO AUTO CORRECTIONS
/// /// THIS PATTERN REPEAT IS NECESSARY TO DO AUTO CORRECTIONS
/// /// THIS PATTERN REPEAT IS NECESSARY TO DO AUTO CORRECTIONS
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value
=
new_orientation_string_formed
;
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length<= _temp_commands_strings_length)
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value!=null)
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[2].Value
=
//////"1248GFV1248GFV1248GFV1248GFV1248GFV1248GFV1248GFV";
/// (new String('R', _temp_commands_strings_length)).ToString();
///
///;// "ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888...";
"O/A/C/R/S/N/M/H=(A-H)/B=(A-B)/P=(A-P)/h=(C-H)/b=(C-B)/p=(C-P) reversing single side is also allowed now WHERE O (ORIENTED AS PER 138 139 140 ROWS HERE ABOVE) A (ANTI CLOCK) C (CLOCK) R (RANDOM/REAL NATURAL WHICHEVER CONSTRUCTIONS INITIAL PROTOCOL TAKES) S (SWAP R OUTPUTS) N(COMPLEMENTS SWAPS) M (MINIMUM ENERGY) AND WE NEED TO THINK OTHER 32 CASES OF ARRANGEMENTS POSSIBLE 1248GFV1248GFV1248GFV1248GFV1248GFV1248GFV1248GFV";
;
////////////// DONT DO TOUPPER
/// ////////////// DONT DO TOUPPER
/// ////////////// DONT DO TOUPPER
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.orientation_string
= dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[2].Value.ToString();///SMALLER CASE ALLOWED
#endregion TO_CORRECT_ORIENTATION_STRING_WITH_PATTERNS_REPEATS
}// if(dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value!=null)
}
else
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Style.BackColor = Color.PaleGreen;
//since 45 degrees gives the most best symmetry
// i have to calculate the minimum energy conditions for these things
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value = 45;// 13;//CAN TRY WITH 43 ALSO
//added after 28062020plus
this.hScrollBarFOR_DEGREES_CHANGERS.Maximum = 360;
this.hScrollBarFOR_DEGREES_CHANGERS.Value
=
Convert.ToInt32
(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum = ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.Length - 1;
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Value = this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum;
}// if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.Length > 10)
//////this.button_PLAY_0_360.BackColor = Color.Blue;
this.buttonSCAN_0_360.BackColor = Color.Red;
this.buttonSCAN_0_360.Invalidate();
this.buttonSCAN_0_360.Refresh();
}//else cases of if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
//this is very important code to avoid errors of wrong sliding
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Maximum = public_static_class_simulations_CONTROLLER_for_gt_Class.current_commands_array_size_int;
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Value = Math.Max(0, this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Maximum - 1);
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Invalidate();
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Refresh();
//for true cases
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Clear();
//CAUTION CAUTION CAUTION these are taken inside THIS LOOP
//CAUTION CAUTION CAUTION these are taken inside THIS LOOP
//CAUTION CAUTION CAUTION these are taken inside THIS LOOP
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___PIVOT___AFTER_ADJUSTMENTS.Clear();// = new List<PointF>();
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___STRETCH___AFTER_ADJUSTMENTS.Clear();// = new List<PointF>();
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___NODAL___AFTER_ADJUSTMENTS.Clear();// = new List<PointF>();
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___CG___AFTER_ADJUSTMENTS.Clear();
//since we have set the scanning of the 0 to 360 scans now so we need to reset these values when the command strings are changed
//these will give us better understanding of the total spaces and spans of the geometry of the objects taken there
//////public static double FRAMES_MIN_X = 600000; // Variables.VarTable_GT_CALCULATIONS:13
//////public static double FRAMES_MIN_Y = 600000; // Variables.VarTable_GT_CALCULATIONS:14
//////public static double FRAMES_MAX_X = -600000; // Variables.VarTable_GT_CALCULATIONS:15
//////public static double FRAMES_MAX_Y = -600000; // Variables.VarTable_GT_CALCULATIONS:16
//////////////public static double FRAMES_MIN_X = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:13
//////////////public static double FRAMES_MIN_Y = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:14
//////////////public static double FRAMES_MAX_X = Double.MinValue;//-600000 // Variables.VarTable_GT_CALCULATIONS:15
//////////////public static double FRAMES_MAX_Y = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:16
////////////////WE WANT TO KEEP THIS RECORD FOR EACH OF GT TRIANGLES FOR THE ANALYSIS NEEDS AFTER THE DATA POPULATIONS ARE COMPLETED
////////////////WE CAN GET THE PROPORTIONAL ZONE SPACING RANKING OF THE LINE SEGMENT OBJECTS AND ALSO THE GT TRIANGLES AREA PERCENTAGES RANKING IN THE WHOLE PROCESS OF THE ANALYSIS
////////////////THE OVERALL GT COMPLEX IS FOUND WHEN ALL THE DOUBLE ITERATIONS ARE COMPLETE WHEN WE SEE THAT 0 TO 360 SCANNING ARE DONE
////////////////we preserve this data before the symmetric min with symmetric max data for x to y compares are done and these are preserved in the GT objects (virtual line segment objects)
////////////////before we take the global min global max data settings calculated in the iterations flows
//////////////public static double CURRENT_ITERATIONS_WITHIN_CURRENT_GT_SIMPLEX___FRAMES_MIN_X = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:13
//////////////public static double CURRENT_ITERATIONS_WITHIN_CURRENT_GT_SIMPLEX___FRAMES_MIN_Y = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:14
//////////////public static double CURRENT_ITERATIONS_WITHIN_CURRENT_GT_SIMPLEX___FRAMES_MAX_X = Double.MinValue;//-600000 // Variables.VarTable_GT_CALCULATIONS:15
//////////////public static double CURRENT_ITERATIONS_WITHIN_CURRENT_GT_SIMPLEX___FRAMES_MAX_Y = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:16
////////////////WE FLUSH THESE VALUES ONLY AT THE STARING OF THE SIMULATIONS BUTTON NOT IN THE MIDDLE OF THE PROCESS
//////////////public static double SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MIN_X = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:13
//////////////public static double SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MIN_Y = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:14
//////////////public static double SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MAX_X = Double.MinValue;//-600000 // Variables.VarTable_GT_CALCULATIONS:15
//////////////public static double SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MAX_Y = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:16
//calling conventions public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MIN_X = (+1) * Double.MaxValue;
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MIN_X = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:13
public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MIN_Y = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:14
public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MAX_X = Double.MinValue;//-600000 // Variables.VarTable_GT_CALCULATIONS:15
public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MAX_Y = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:16
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MIN_X = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:13
public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MIN_Y = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:14
public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MAX_X = Double.MinValue;//-600000 // Variables.VarTable_GT_CALCULATIONS:15
public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MAX_Y = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:16
//CAUTIONS THE VALUE IS SET INSIDE THE SCANNER BUTTON AND IS RESET TO FALSE AFTER THE COMMAND CHARACTER IS CHANGED
//CALLING CONVENTIONS PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE
//////public static bool IS_0_TO_360_SCANNING_DONE = false;//THIS CHECKING IS NECESSARY FOR THE CONDITIONS TO USE THE BELOW VARIABLES TO ACT PROPERLY
//this variable is flushed to false when command string is changed CAUTION WE WILL POPULATE THESE TO TRUE IF PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE = true;
//this variable is flushed to false when command string is changed CAUTION WE WILL POPULATE THESE TO TRUE IF PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE = true;
//this variable is flushed to false when command string is changed CAUTION WE WILL POPULATE THESE TO TRUE IF PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE = true;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS = false;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS = false;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS = false;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_SEEDS_TRIANGLES_FOR_R_TH_CHARACTER_COMMANDS = false;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS = false;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS = false;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS = false;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS = false;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS = false;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES = false;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES = false;
//CAUTION CAUTION CAUTION this is a very interesting code for the controlleer of the systems
//CAUTION CAUTION CAUTION this is a very interesting code for the controlleer of the systems
//CAUTION CAUTION CAUTION this is a very interesting code for the controlleer of the systems
//THIS VARIABLE WAS NEVER USED UNTIL THE 0 TO 360 SCAN WAS DONE IN C SHARP (THIS WAS USED IN THE EJS SYSTEMS PREVIOUSLY FOR THE CONSTRUCTIONS ITERATIONS)
//WE ARE CURRENTLY INSIDE if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart()
//THIS LINE IS USED IN SOME OTHER PART OF THE CODE ALSO INSIDE if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[19].Cells[1].Value != null)
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
////// current_commands_array_size_int
////// =
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
////// commands_character_array.Length;
// commands_character_array= Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[19].Cells[1].Value);
//CAUTION WE HAD do THIS SPECIALLY SINCE EVERY TIME THE COMMANDSTRING CHANGES WE NEED TO DO THIS
//CAUTION WE HAD do THIS SPECIALLY SINCE EVERY TIME THE COMMANDSTRING CHANGES WE NEED TO DO THIS
//CAUTION WE HAD do THIS SPECIALLY SINCE EVERY TIME THE COMMANDSTRING CHANGES WE NEED TO DO THIS
if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.Length > 1)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
commands_character_array = ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.ToCharArray();
char[] _tempchararraytocheck =
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
commands_character_array;
string _checking_chararray = "";
for (int r = 0; r < (_tempchararraytocheck.Length - 1); r++)
{
_checking_chararray += "\r\n" + _tempchararraytocheck[r].ToString();
}// for(int r=0;r< _tempchararraytocheck.Length; r++)
//yes working System.Windows.Forms.MessageBox.Show(_checking_chararray);
}//if (command_string.Length > 1)
//CAUTION WE HAD do THIS SPECIALLY SINCE EVERY TIME THE COMMANDSTRING CHANGES WE NEED TO DO THIS
//CAUTION WE HAD do THIS SPECIALLY SINCE EVERY TIME THE COMMANDSTRING CHANGES WE NEED TO DO THIS
//CAUTION WE HAD do THIS SPECIALLY SINCE EVERY TIME THE COMMANDSTRING CHANGES WE NEED TO DO THIS
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.current_commands_array_size_int
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.command_string.Trim().TrimEnd().TrimStart().Length;
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Maximum = ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.current_commands_array_size_int;
//WE WANT TO SEE THE STAGE WISE CONSTRUCTIONS OF THE GT_SIMPLEX (THIS IS DONE AFTER 0 TO 360 SCANNING SYSTEMS ADDED AND SOMETIMES WE GET CONFUSED TO SEE WHICH LINE SEGMENTS ARE GENERATED AFTER WHICH OTHER LINE SEGMENTS)
//THIS IS IMPORTANT TO SHOW THE VISUALIZATIONS AND WE WILL SET THE UPDATER FUNCTIONS OR THE RENDERING FUNCTIONS
//I THINK IT IS BETTER TO CONTROL THE RENDERING FUNCTIONS FROM THIS CONTROLLER THROUGH SOME PUBLIC STATIC VARIABLES 28062020PLUS
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum = ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.current_commands_array_size_int;
//WE ARE DEFINING ONE VARIABLE (PUBLIC STATIC INT TO GET THE STAGE WISE RENDERER WHOSE MAXIMUM VALUE IS FROM THE 0 TO THE MAXIMUM VALUE OF THE LENGTH OF THE GT_STRING CHAINS
////////THESE THREE ARE THE VISUALIZERS FILTERS IN THE FOR LOOP OF GT SIMPLEX CONSTRUCTIONS WHICH COUNTS THE NUMBER OF STAGES TO VISUALIZE AND THE COUNTER WITHIN THE MIN TO MAX RANGES ARE ONLY VISUALIZED IN THE RENDERER SCREENS
////////SLIDER WILL CONTROLL THE VALUES DEPENDING UPON THE GAP VALUE IN ROW 100 THE ROW 96+2 IS SLIDER CONTROLLED OR TYPED (ERROR CHECKING TO DO INSIDE THE LOADER OF THE FORMS DATA)
////////WE WILL HAVE TO TAKE CARE FOR THE INDEX OUT OF BOUNDS CONDITIONS THROUGH THE MIN WITH THE MAX CONTROLLERS DATA
////////THESE VARIABLES ARE ADDED TO GET THE FILTERED DATA VISUALIZATION FOR THE CONSTRUCTIONS PROTOCOLS TO SEE WHICH OF THE GT SEEDS TRIANGLE IS FORMED AT WHAT STAGES
////////this value is controlled with the slider of filtering visualizing things so CAUTIONS are required at this stages
////////FIRST CHECKS THE COMMAND STRINGS AND ITS LENGTHS THE MAX DATA CANNOT EXCEED THIS LENGTH
//////if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
////// {
////// //i have tested that default systems are working
////// //FIRST CHECKS THE COMMAND STRINGS AND ITS LENGTHS THE MAX DATA CANNOT EXCEED THIS LENGTH
////// dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value =
////// dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length.ToString();
////// ;// "THE_MINIMUM_VALUE_OF_VISUALIZER_FILTER";//DEFAULT IS LENGTH OF GT STRING COMMAND (REVISED TO GT_STRING LENGTHS EVERY TIMES)WE WILL CONTROLL THIS WITH SLIDER (NOT THE OTHER VALUES)
////// }
//////else
////// {
////// //FIRST CHECKS THE COMMAND STRINGS AND ITS LENGTHS THE MAX DATA CANNOT EXCEED THIS LENGTH
////// dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value = "100";//risky to set this properly in the loader conditions when the command string is read
////// }// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
////////these are also too much important visualization filtereing controllers so we need to set these data with cautions otherwise the complete gt simplex will not get rendered upto complete depths
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 3].Cells[1].Value = "0";////CAUTION "THE_MINIMUM_VALUE_OF_VISUALIZER_FILTER";//DEFAULT IS ZERO THIS IS CONTROLLED WITH THE SLIDER ALSO (WE CAN SET THIS WITH SLIDER IF NEXT GAP DATA IS NOT ZERO OTHERWISE THE MAX CONTROLLER SLIDER WILL NOT CHANGE THIS VALUE)
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value = "0";////CAUTION "DEFAULT GAP=0(FROM SLIDER MAX FOR>0 (MAX-GAP)=MIN IS SET";//THIS HELPS US TO VISUALIZE THE SPECIFIC GT SEEDS TRIANGLE AT THE STAGES FROM THE LAST OF MAXIMUM VALUE CHOSEN IN THE SLIDERS
//////////////TO SET THESE AT THE CORRECT POSITIONS OF CODE LATER ALONG THE SAME FUNCTIONS (BELOW) public static int minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int = 0;
//////////////TO SET THESE AT THE CORRECT POSITIONS OF CODE LATER ALONG THE SAME FUNCTIONS (BELOW) public static int maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int = 0;
//////////////TO SET THESE AT THE CORRECT POSITIONS OF CODE LATER ALONG THE SAME FUNCTIONS (BELOW) public static int gap_equals_maximum_to_minimum_backcalculated_for_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int = 0;
//THIS ABOVE NEW VARIABLE IS ADDED TO CHECK THE STAGE WISE RENDERING OF CONSTRUCTIONS SEQUENCES INSIDE THE GT_SIMPLEX TO VISUALIZE THE NATURES OF THE CONSTRUCTIONS FLOW
//THE GENERATIONS OF LINE SEGMENTS STAGEWISE ONE AFTER ANOTHER IS VERY NECESSARY TO OBSERVE TO SEE THE FLOW OF THE CONSTRUCTIONS OTHERWISE IT IS TOUGH TO THINK FOR NEW THEOREMS
//WITH THE FLOWS NATURES WHILE ITERATING OVER 0 TO 360 SCANNING OR THROUGH THE INTERNAL CONSTRUCTIONS INSIDE THE RENDERER SYSTEMS
//CAUTION CAUTION CAUTION this is a very interesting code for the controlleer of the systems
//CAUTION CAUTION CAUTION this is a very interesting code for the controlleer of the systems
//CAUTION CAUTION CAUTION this is a very interesting code for the controlleer of the systems
//this variable is flushed to false when command string is changed
//this variable is flushed to false when command string is changed
//this variable is flushed to false when command string is changed
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE = false;
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION WE HAD do THIS SPECIALLY SINCE EVERY TIME THE COMMANDSTRING CHANGES WE NEED TO DO THIS
//CAUTION WE HAD do THIS SPECIALLY SINCE EVERY TIME THE COMMANDSTRING CHANGES WE NEED TO DO THIS
//CAUTION WE HAD do THIS SPECIALLY SINCE EVERY TIME THE COMMANDSTRING CHANGES WE NEED TO DO THIS
}
// if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart()
//////!=
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string
//////)
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
// command_string = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value);
command_string = (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
//we will not do toUpper since wse have bigger plans with other purposes
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.command_string.Trim().TrimEnd().TrimStart();
if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.StartsWith("L"))
{
//OK
}
else
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string
=
("L" + ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.ToString()).Trim().TrimEnd().TrimStart();
}//if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.StartsWith("L"))
if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.EndsWith("Z"))
{
//OK
}
else
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string
////// =
////// ( ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.StartsWith("L")).ToString().Trim().TrimEnd().TrimStart();
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string
=
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string + "Z"
).ToString().Trim().TrimEnd().TrimStart();
}//if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.StartsWith("L"))
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value
////// =
////// (new String('R', _temp_commands_strings_length)).ToString();
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.orientation_string
//////= dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[2].Value.ToString();
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[19].Cells[1].Value != null)
{
// commands_character_array= Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[19].Cells[1].Value);
//to do
if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.Length > 1)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
commands_character_array =
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.command_string.ToCharArray();
char[] _tempchararraytocheck =
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
commands_character_array;
string _checking_chararray = "";
for (int r = 0; r < (_tempchararraytocheck.Length - 1); r++)
{
_checking_chararray += "\r\n" + _tempchararraytocheck[r].ToString();
}// for(int r=0;r< _tempchararraytocheck.Length; r++)
//yes working System.Windows.Forms.MessageBox.Show(_checking_chararray);
}//if (command_string.Length > 1)
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[20].Cells[1].Value != null)
{
// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
// initial_line_segment = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[20].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[21].Cells[1].Value != null)
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////current_commands_array_size_int = Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[21].Cells[1].Value);
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
commands_character_array =
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.ToCharArray();
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
current_commands_array_size_int
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
commands_character_array.Length;
//////////////////// NOW WE HAVE TO DO THE ADDITIONAL CHECKING AT [143+2] CASE ALSO
///ORIENTATIONS CHARACTERS ARE ALSO TAKEN NOW
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[21].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[22].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
frame_count_simulations = Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[22].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[23].Cells[1].Value != null)
{
// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
// segments_x1_double_array= Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[23].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[24].Cells[1].Value != null)
{
//ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
// segments_y1_double_array= Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[24].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[25].Cells[1].Value != null)
{
//ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
// segments_sizes_x1_double_array= Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[25].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[26].Cells[1].Value != null)
{
//ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
// segments_sizes_y1_double_array;= Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[26].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[27].Cells[1].Value != null)
{
//ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
// org.opensourcephysics.media.gif.AnimatedGifEncoder = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[27].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[28].Cells[1].Value != null)
{
//ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
// java.awt.image.BufferedImage = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[28].Cells[1].Value);
//DO_YOU_WANT_TO_CLEAR_GRAPHICS_AT_EVERY_TRANSITIONS_YES_NO
// DO_YOU_WANT_TO_CLEAR_GRAPHICS_AT_EVERY_TRANSITIONS_YES_NO
// PUBLIC_STATIC_BOOL_DO_YOU_WANT_TO_CLEAR_GRAPHICS_AT_EVERY_TRANSITIONS_YES_NO___28
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[28].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[28].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.
PUBLIC_STATIC_BOOL_DO_YOU_WANT_TO_CLEAR_GRAPHICS_AT_EVERY_TRANSITIONS_YES_NO___28
= true;
}
else
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.
PUBLIC_STATIC_BOOL_DO_YOU_WANT_TO_CLEAR_GRAPHICS_AT_EVERY_TRANSITIONS_YES_NO___28
= false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[76].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[76].Cells[1].Value != null)
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[29].Cells[1].Value != null)
{
//ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
// java.awt.Graphics = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[29].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
GT_SEED_ANGLES_DEGREES
= Convert.ToDouble
(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value);
//this is special code
//added after 28062020plus
//added after 28062020plus reconfirming data checks
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value
= ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.GT_SEED_ANGLES_DEGREES;////// (360 / (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.Length - 2));
//added after 28062020plus
this.hScrollBarFOR_DEGREES_CHANGERS.Maximum = 360;
//reconfirming the data checks
this.hScrollBarFOR_DEGREES_CHANGERS.Value
=
(int)
(ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.GT_SEED_ANGLES_DEGREES);////// Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
//for every degrees changing we dont need to change the state to maximum otherwise we cannot check the stage wise changes conditions
// CAUTION THE STATE CHANGING NOT TO DO HERE
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum = ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.Length - 1;
//WE NEED TO RETHINK ON THIS FOR THIS PLACES this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Value = this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum;
//this line is added in csharp
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.INITIAL_LOCKED_SET_POSITIONS_THETA_DEGREE
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
GT_SEED_ANGLES_DEGREES;//= Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value);
//this line is added in c sharp codes
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
INITIAL_LOCKED_SET_POSITIONS_THETA_RADIAN
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
INITIAL_LOCKED_SET_POSITIONS_THETA_DEGREE * (Math.PI / 180);
if (public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SET_SEEDS_ANGLES_INCREMENTER_EQUAL_TO_SEEDS_ANGLES_FOR_MULTIPLE_ANGLES_CHECKING_Y_N)
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30 + 1].Cells[1].Value =
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1]
.Value.ToString();
}
else
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30 + 1].Cells[1].Value != null)
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30 + 1].Cells[1].Value
= this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30 + 1].Cells[1].Value.ToString();
}
else
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30 + 1].Cells[1].Value = "0";
}//else of if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30 + 1].Cells[1].Value!=null)
}//if(public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SET_SEEDS_ANGLES_INCREMENTER_EQUAL_TO_SEEDS_ANGLES_FOR_MULTIPLE_ANGLES_CHECKING_Y_N)
//newly added conditions to check summability conditions
// public static bool TO_SET_SEEDS_ANGLES_INCREMENTER_EQUAL_TO_SEEDS_ANGLES_FOR_MULTIPLE_ANGLES_CHECKING_Y_N = false;
// public static bool TO_SET_ALTERNATE_TERMS_TO_CHANGE_SIGNS_LENGTH_AND_THE_VECTORS_ALTER_Y_N = false;
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[31].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
GT_SEED_ANGLES_DEGREES_INCREMENTER = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[31].Cells[1].Value);
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.INITIAL_LOCKED_SET_POSITIONS_THETA_DEGREE
////// = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[31].Cells[1].Value);
///
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
GT_SEED_ANGLES_RADIANS_INCREMENTER_NEW_VARIABLES
= ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
GT_SEED_ANGLES_DEGREES_INCREMENTER * (Math.PI / 180);
}
//THIS IS THE CONTROLLER FOR SYNTHESIS WITH SEPARATE OPTIONS OF CONSTRUCTIONS PROTOCOLS CHOOSER
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[32].Cells[1].Value != null)
{
/// i have now initiated different kinds of orientation controllers for combinatorial explotions
/// dynamic programming concepts introduced for machine learning data generations
/// through rows 138 139 140 141 142 143 144 145 146 commands for orientability strings
//////L_REF_OR_PERP_REF_TO_CONTROL_SEGMENT_CONSTRUCTIONS_DIRECTION = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[32].Cells[1].Value);
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
L_REF_OR_PERP_REF_TO_CONTROL_SEGMENT_CONSTRUCTIONS_DIRECTION
= (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[32].Cells[1].Value.ToString());
/// i have now initiated different kinds of orientation controllers for combinatorial explotions
/// dynamic programming concepts introduced for machine learning data generations
/// through rows 138 139 140 141 142 143 144 145 146 commands for orientability strings
///
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[32].Cells[2].Value = "CHECK ROW 143 TO 146";
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[32].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[33].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
LIN_PROJ_X = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[33].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[34].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
LIN_PROJ_Y = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[34].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[35].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
ROT_CENTER_X = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[35].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[36].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
ROT_CENTER_Y = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[36].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[37].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
FINAL_POINT_X = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[37].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[38].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
FINAL_POINT_Y = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[38].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[39].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
CURRENT_LENGTH_CALCULATED = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[39].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[40].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
CURRENT_NECESSARY_LINEAR_PROJECTION_LENGTH = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[40].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[41].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
CURRENT_NECESSARY_ROTATION_RADIANS_FROM_ROT_CENTER = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[41].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[42].Cells[1].Value != null)
{
//////CURRENT_NECESSARY_ROTATION_DIRECTION_FROM_ROT_CENTER = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[42].Cells[1].Value);
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
CURRENT_NECESSARY_ROTATION_DIRECTION_FROM_ROT_CENTER = (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[42].Cells[1].Value.ToString());
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[43].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
CURRENT_UNIT_VECTOR_X = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[43].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[44].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
CURRENT_UNIT_VECTOR_Y = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[44].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[45].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
FRAMES_MIN_X = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[45].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[46].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
FRAMES_MIN_Y = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[46].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[47].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
FRAMES_MAX_X = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[47].Cells[1].Value);
}
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[48].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
FRAMES_MAX_Y = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[48].Cells[1].Value);
}
//we are adding these new variables for the conditional demonstration of the line segments
//CALLING CONVENTIONS ARE FOR THESE LIKE
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PERPENDICULAR_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BASE_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_HYPOTENUSE_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOTS_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_CHAINS_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_CG_CHAINS_LINES = true;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[49].Cells[1].Value = "YES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[50].Cells[1].Value = "YES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[51].Cells[1].Value = "YES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[52].Cells[1].Value = "YES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[52 + 1].Cells[1].Value = "YES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[54].Cells[1].Value = "YES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[55].Cells[1].Value = "YES";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[49].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[49].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PERPENDICULAR_LINES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PERPENDICULAR_LINES = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[49].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[49].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[50].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[50].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BASE_LINES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BASE_LINES = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[50].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[50].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[51].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[51].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_HYPOTENUSE_LINES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_HYPOTENUSE_LINES = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[51].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[51].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[52].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[52].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOTS_CHAINS_LINES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOTS_CHAINS_LINES = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[52].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[52].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[52 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[52 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_CHAINS_LINES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_CHAINS_LINES = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[52+1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[52+1].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[53 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[53 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_CHAINS_LINES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_CHAINS_LINES = false;
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[ 53+1 ].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[53+1].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[53 + 2].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[53 + 2].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_CG_CHAINS_LINES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_CG_CHAINS_LINES = false;
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[ 53+2 ].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[53+2].Cells[1].Value != null)
//THESE ARE SPECIAL COMMANDS FOR SPECIAL CHECKING
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_PERPENDICULAR_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_BASE_LINES = true;
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_HYPOTENUSE_LINES = true;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[56].Cells[1].Value = "YES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[57].Cells[1].Value = "YES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[58].Cells[1].Value = "YES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[56].Cells[0].Value = "SHOW_COMPLEMENT_PERPENDICULARS";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[57].Cells[0].Value = "SHOW_COMPLEMENT_BASES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[58].Cells[0].Value = "SHOW_COMPLEMENT_HYPOTENUSES";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_PERPENDICULAR_LINES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_PERPENDICULAR_LINES = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_BASE_LINES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_BASE_LINES = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56+1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56+1].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56 + 2].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56 + 2].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_HYPOTENUSE_LINES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_COMPLEMENT_HYPOTENUSE_LINES = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56+2].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[56+2].Cells[1].Value != null)
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[59].Cells[1].Value = "YES";// "SHOW_OUTPUT_LINES_ADDRESS_TEXTS";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[60].Cells[1].Value = "YES";// "SHOW_COMPLEMENT_LINES_ADDRESS_TEXTS";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[61].Cells[1].Value = "YES";// "CLEAR_SCREEN_WITH_NEW_SEEDS_ANGLES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[59].Cells[1].Value = "YES";// "SHOW_OUTPUT_LINES_ADDRESS_TEXTS";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[60].Cells[1].Value = "YES";// "SHOW_COMPLEMENT_LINES_ADDRESS_TEXTS";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[61].Cells[1].Value = "YES";// "CLEAR_SCREEN_WITH_NEW_SEEDS_ANGLES";
/// <summary>
///
///
///
///
///
/// </summary>
///
////// //THESE ARE SPECIAL COMMANDS FOR SPECIAL CHECKING
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_OUTPUT_LINES_ADDRESS_TEXTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_SHOW_COMPLEMENT_LINES_ADDRESS_TEXTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_CLEAR_SCREEN_WITH_NEW_SEEDS_ANGLES = true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[58 + 1].Cells[0]
.Style.BackColor = Color.PaleVioletRed;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[59].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[59].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_OUTPUT_LINES_ADDRESS_TEXTS = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_OUTPUT_LINES_ADDRESS_TEXTS = false;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[58 + 1].Cells[0]
////// .Style.BackColor = Color.PaleVioletRed;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[59].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[59].Cells[1].Value != null)
dataGridViewFOR_GT_PRESETS_DATA.Rows[58 + 2].Cells[0]
.Style.BackColor = Color.PaleVioletRed;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[60].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[60].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_SHOW_COMPLEMENT_LINES_ADDRESS_TEXTS = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_SHOW_COMPLEMENT_LINES_ADDRESS_TEXTS = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[60].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[60].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[61].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[61].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_CLEAR_SCREEN_WITH_NEW_SEEDS_ANGLES___61 = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_CLEAR_SCREEN_WITH_NEW_SEEDS_ANGLES___61 = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[61].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[61].Cells[1].Value != null)
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[62].Cells[1].Value = "NO";// "KEEP_CURRENT_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[63].Cells[1].Value = "NO"; //"KEEP_0_TO_360_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 1].Cells[1].Value = "NO";// "SHOW_EACH_PIVOTS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 2].Cells[1].Value = "NO";// "SHOW_EACH_STRETCHES_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[66].Cells[1].Value = "NO";// "SHOW_EACH_NODALS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
///
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[62].Cells[1].Value = "NO";// "KEEP_CURRENT_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[63].Cells[1].Value = "NO"; //"KEEP_0_TO_360_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 1].Cells[1].Value = "NO";// "SHOW_EACH_PIVOTS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 2].Cells[1].Value = "NO";// "SHOW_EACH_STRETCHES_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[66].Cells[1].Value = "NO";// "SHOW_EACH_NODALS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360";
//THESE ARE SPECIAL COMMANDS FOR SPECIAL LOGGING AND REPRESENTATIONS OF OVERALL FLOWS FROM THE 0 TO 360 CASES
//////////////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_KEEP_CURRENT_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES = false;
//////////////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_KEEP_0_TO_360_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES = false;
//////////////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_SHOW_EACH_PIVOTS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360 = false;
//////////////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_SHOW_EACH_STRETCHES_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360 = false;
//////////////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_SHOW_EACH_NODALS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360 = false;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[62].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[62].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_KEEP_CURRENT_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_KEEP_CURRENT_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[62].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[62].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_KEEP_0_TO_360_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_KEEP_0_TO_360_GT_LIST_NOT_CLEAR_AFTER_EACH_SEEDS_CHANGES = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_SHOW_EACH_PIVOTS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360 = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_SHOW_EACH_PIVOTS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360 = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63+1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63+1].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 2].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63 + 2].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_SHOW_EACH_STRETCHES_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360 = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_SHOW_EACH_STRETCHES_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360 = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63+2].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[63+2].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[66].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[66].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_SHOW_EACH_NODALS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360 = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL_SHOW_EACH_NODALS_CORRESPONDING_POINTS_FLOWS_CHAINS_0_TO_360 = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[66].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[66].Cells[1].Value != null)
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_VECTOR_FROM_ORIGIN_0_0 = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_VECTOR_FROM_ORIGIN_0_0 = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_VECTOR_FROM_ORIGIN_0_0 = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BOUNDING_BOXES = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_X = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_Y = true;
// dataGridViewFOR_GT_PRESETS_DATA.Rows[66 + 1].Cells[1].Value = "NOTHING";
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[68].Cells[1].Value = "YES";// "SHOW_PIVOT_VERTICAL_PROJECTIONS_ON_X_AXIS";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[68].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[68].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_VERTICAL_PROJECTIONS_ON_X_AXIS = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[68].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[68].Cells[1].Value != null)
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[69].Cells[1].Value = "YES";// "SHOW_STRETCH_VERTICAL_PROJECTIONS_ON_X_AXIS";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[69].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[69].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_VERTICAL_PROJECTIONS_ON_X_AXIS = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[69].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[69].Cells[1].Value != null)
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[70].Cells[1].Value = "YES";//"SHOW_NODAL_VERTICAL_PROJECTIONS_ON_X_AXIS";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[70].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[70].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_VERTICAL_PROJECTIONS_ON_X_AXIS = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_VERTICAL_PROJECTIONS_ON_X_AXIS = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[70].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[70].Cells[1].Value != null)
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[71].Cells[1].Value = "YES";// "SHOW_PIVOT_HORIZONTAL_PROJECTIONS_ON_Y_AXIS";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[71].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[71].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[71].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[71].Cells[1].Value != null)
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[72].Cells[1].Value = "YES";//"SHOW_STRETCH_HORIZONTAL_PROJECTIONS_ON_Y_AXIS";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[72].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[72].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[72].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[72].Cells[1].Value != null)
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[73].Cells[1].Value = "YES";// "SHOW_NODAL_HORIZONTAL_PROJECTIONS_ON_Y_AXIS";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_HORIZONTAL_PROJECTIONS_ON_Y_AXIS = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73].Cells[1].Value != null)
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[73 + 1].Cells[1].Value = "YES";// "SHOW_PIVOT_VECTOR_FROM_ORIGIN_0_0";
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_VECTOR_FROM_ORIGIN_0_0 = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_VECTOR_FROM_ORIGIN_0_0 = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_VECTOR_FROM_ORIGIN_0_0 = true;
///
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_VECTOR_FROM_ORIGIN_0_0 = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_PIVOT_VECTOR_FROM_ORIGIN_0_0 = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73+1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73+1].Cells[1].Value != null)
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[73 + 2].Cells[1].Value = "YES";// "SHOW_STRETCH_VECTOR_FROM_ORIGIN_0_0";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73 + 2].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73 + 2].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_VECTOR_FROM_ORIGIN_0_0 = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_STRETCH_VECTOR_FROM_ORIGIN_0_0 = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73+2].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[73+2].Cells[1].Value != null)
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[76].Cells[1].Value = "YES";// "SHOW_NODAL_VECTOR_FROM_ORIGIN_0_0";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[76].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[76].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_VECTOR_FROM_ORIGIN_0_0 = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_NODAL_VECTOR_FROM_ORIGIN_0_0 = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[76].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[76].Cells[1].Value != null)
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BOUNDING_BOXES = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_X = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_Y = true;
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[77].Cells[1].Value = "NOTHING";
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[78].Cells[1].Value = "NOTHING";
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[78 + 1].Cells[1].Value = "NOTHING";
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BOUNDING_BOXES = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_X = true;
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_Y = true;
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[80].Cells[1].Value = "YES";// "SHOW_BOUNDING_BOXES";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[80].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[80].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BOUNDING_BOXES = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_BOUNDING_BOXES = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[80].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[80].Cells[1].Value != null)
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[81].Cells[1].Value = "YES";//"TO_SHOW_THE_AXIS_X";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[81].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[81].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_X = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_X = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[81].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[81].Cells[1].Value != null)
//DOING NEXT LINES dataGridViewFOR_GT_PRESETS_DATA.Rows[82].Cells[1].Value = "YES";// "SHOW_THE_AXIS_Y";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[82].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[82].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_Y = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_THE_AXIS_Y = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[82].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[82].Cells[1].Value != null)
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//NEW VERSION IS ADDED IN NEXT LINES ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.update_whole_array_with_command_string___TOO_MUCH_MANDATORY_PUBLIC__STATIC_ARRAY_OF_GLUABLE_TRIANGLES_TO_FORM_MULTIPLE_GTSIMPLEX_the_2D_PUBLIC_STATIC_MANDATORY_MULTIPLIE_GTSIMPLEX_array_of_multiplicative_recursive_lines___STORES_ALL_GTSIMPLEX_CHAINS___TO_FORM_SINGLE_GTSIMPLEX_ONLY();
//now doing the settings 0 to 360 scanning implementations
//now doing the settings 0 to 360 scanning implementations
//now doing the settings 0 to 360 scanning implementations
//CAUTIONS THE VALUE IS SET INSIDE THE SCANNER BUTTON AND IS RESET TO FALSE AFTER THE COMMAND CHARACTER IS CHANGED 0 to 360 scanning implementations
//CALLING CONVENTIONS PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE
//////public static bool IS_0_TO_360_SCANNING_DONE = false;//THIS CHECKING IS NECESSARY FOR THE CONDITIONS TO USE THE BELOW VARIABLES TO ACT PROPERLY
//this variable is flushed to false when command string is changed CAUTION WE WILL POPULATE THESE TO TRUE IF PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE = true;
//this variable is flushed to false when command string is changed CAUTION WE WILL POPULATE THESE TO TRUE IF PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE = true;
//this variable is flushed to false when command string is changed CAUTION WE WILL POPULATE THESE TO TRUE IF PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE = true;
//flushing all these first to false (until PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE=true) //tested that running fine before using these
//flushing all these first to false (until PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE=true) //tested that running fine before using these
//flushing all these first to false (until PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE=true) //tested that running fine before using these
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS = false;
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS = false;
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS = false;
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_SEEDS_TRIANGLES_FOR_R_TH_CHARACTER_COMMANDS = false;
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS = false;
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS = false;
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS = false;
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS = false;
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS = false;
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES = false;
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES = false;
//this variable is flushed to false when command string is changed
//this variable is flushed to false when command string is changed
//this variable is flushed to false when command string is changed
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CULPRIT LINE PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE = false;
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE here we set 0 to 360 scanning data //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE here we set 0 to 360 scanning data //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE here we set 0 to 360 scanning data //////////////////////////
//THESE ARE ADDED AFTER THE 0 TO 360 SCANNING IS DONE
// dataGridViewFOR_GT_PRESETS_DATA.Rows[83].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS";
//DOING NEXT LINES (PREVIOUS REFERENCES) dataGridViewFOR_GT_PRESETS_DATA.Rows[82].Cells[1].Value = "YES";// "SHOW_THE_AXIS_Y";
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS = true;
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS = false;//SCANNING NOT DONE
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}
else
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS = true;//NOT REQUIRED FOR USER
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS = false;//NOT REQUIRED FOR USER
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83].Cells[1].Value != null)
//REFERENCES KEPT dataGridViewFOR_GT_PRESETS_DATA.Rows[83 + 1].Cells[1].Value = "YES";//"SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS";
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS = true;
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS = true;
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS = false;//CAUTION SCANNING NOT DONE
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}
else
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS = false;//FALSE FOR ELSE CASES
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS = false;//FALSE FOR ELSE CASES
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83+1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83+1].Cells[1].Value != null)
//REFERENCES KEPT dataGridViewFOR_GT_PRESETS_DATA.Rows[83 + 2].Cells[1].Value = "YES";//"SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS";
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83 + 2].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83 + 2].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS = true;
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS = true;//SCANNING DONE AND USER NEEDS THIS
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS = false;//CAUTION SCANNING NOT DONE
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}
else
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS = false;//NOT REQUIRED TO TRACE FOR USER
}
else
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS = false;//NOT REQUIRED TO TRACE FOR USER
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83+2].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[83+2].Cells[1].Value != null)
dataGridViewFOR_GT_PRESETS_DATA.Rows[86].Cells[1].Value = "YES";//"SHOW_0_TO_360_SEEDS_TRIANGLES_FOR_R_TH_CHARACTER_COMMANDS";
//THESE ARE ADDED AFTER THE 0 TO 360 SCANNING IS DONE
//REFERENCES KEPT dataGridViewFOR_GT_PRESETS_DATA.Rows[87].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS";
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[87].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[87].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS = true;//SCANNING DONE AND USER NEEDS THIS
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS = false;//CAUTION SCANNING NOT DONE
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}
else
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS = false;//NOT REQUIRED TO TRACE FOR USER
}
else
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS = false;//NOT REQUIRED TO TRACE FOR USER
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[87].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[87].Cells[1].Value != null)
//REFERENCES KEPT dataGridViewFOR_GT_PRESETS_DATA.Rows[88].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS";
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[88].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[88].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS = true;//SCANNING DONE AND USER NEEDS THIS
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS = false;//CAUTION SCANNING NOT DONE
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}
else
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS = false;//NOT REQUIRED TO TRACE FOR USER
}
else
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS = false;//NOT REQUIRED TO TRACE FOR USER
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[88].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[88].Cells[1].Value != null)
//REFERENCES KEPT dataGridViewFOR_GT_PRESETS_DATA.Rows[88 + 1].Cells[1].Value = "YES";//"SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS";
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[88 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[88 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS = true;//SCANNING DONE AND USER NEEDS THIS
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS = false;//CAUTION SCANNING NOT DONE
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}
else
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS = false;//NOT REQUIRED TO TRACE FOR USER
}
else
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS = false;//NOT REQUIRED TO TRACE FOR USER
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[88+1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[88+1].Cells[1].Value != null)
//REFERENCES KEPT dataGridViewFOR_GT_PRESETS_DATA.Rows[90].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS";
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[90].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[90].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS = true;//SCANNING DONE AND USER NEEDS THIS
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS = false;//CAUTION SCANNING NOT DONE
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}
else
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS = false;//NOT REQUIRED TO TRACE FOR USER
}
else
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS = false;//NOT REQUIRED TO TRACE FOR USER
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[90].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[90].Cells[1].Value != null)
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[91].Cells[1].Value = "NOTHING";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[92].Cells[1].Value = "NOTHING";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[92 + 1].Cells[1].Value = "NOTHING";
//THESE ARE ADDED AFTER THE 0 TO 360 SCANNING IS DONE
//REFERENCES KEPT dataGridViewFOR_GT_PRESETS_DATA.Rows[94].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS";
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[94].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[94].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS = true;//SCANNING DONE AND USER NEEDS THIS
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS = false;//CAUTION SCANNING NOT DONE
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}
else
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS = false;//NOT REQUIRED TO TRACE FOR USER
}
else
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS = false;//NOT REQUIRED TO TRACE FOR USER
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[94].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[94].Cells[1].Value != null)
//REFERENCES KEPT dataGridViewFOR_GT_PRESETS_DATA.Rows[95].Cells[1].Value = "YES";// "SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES";
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[95].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[95].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES = true;//SCANNING DONE AND USER NEEDS THIS
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES = false;//CAUTION SCANNING NOT DONE
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}
else
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES = false;//NOT REQUIRED TO TRACE FOR USER
}
else
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES = false;//NOT REQUIRED TO TRACE FOR USER
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[95].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[95].Cells[1].Value != null)
//REFERENCES KEPT dataGridViewFOR_GT_PRESETS_DATA.Rows[96].Cells[1].Value = "YES";//"SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES";
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
//CAUTIONS we are doing all these conditions since we are using single functions for rendering controllers
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES = true;//SCANNING DONE AND USER NEEDS THIS
}
else
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES = false;//CAUTION SCANNING NOT DONE
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}
else
{
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
//spacial conditions attached here this guarantees that the controller of rendering locus will not activate until the scanning is done
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES = false;//NOT REQUIRED TO TRACE FOR USER
}
else
{
//FALSE FOR ELSE CASES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES = false;//NOT REQUIRED TO TRACE FOR USER
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96].Cells[1].Value != null)
//REFERENCES KEPT dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 1].Cells[1].Value = "NO";// "DO_YOU_WANT_TO_STORE_GIF_FILES(YES/NO)";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
//public static bool PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO = false;// DO_YOU_WANT_TO_STORE_GIF_FILES(YES/NO)
//
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO = true;// DO_YOU_WANT_TO_STORE_GIF_FILES(YES/NO)
// = true;
}
else
{
// public static bool PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO = false;// DO_YOU_WANT_TO_STORE_GIF_FILES(YES/NO)
//
// public static bool PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO = false;// DO_YOU_WANT_TO_STORE_GIF_FILES(YES/NO)
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO = false;
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96+1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96+1].Cells[1].Value != null)
//CAUTION CAUTION CAUTION FOR 3 VARIABLES HERE SLIDER CONTROLLER FOR RENDERING FILTERS OF STAGES OF GT SIMPLEX CONSTRUCTIONS STAGEWISE CHECKING
//CAUTION CAUTION CAUTION FOR 3 VARIABLES HERE SLIDER CONTROLLER FOR RENDERING FILTERS OF STAGES OF GT SIMPLEX CONSTRUCTIONS STAGEWISE CHECKING
//CAUTION CAUTION CAUTION FOR 3 VARIABLES HERE SLIDER CONTROLLER FOR RENDERING FILTERS OF STAGES OF GT SIMPLEX CONSTRUCTIONS STAGEWISE CHECKING
//CAUTION THESE 3 VARIABLES ARE SPECIALLY CONTROLLED THROUGH THE SLIDERS BUT THE GAP IS CONTROLLED THREOUGH HERE
//IF GAP IS ZERO THE MINIMUM IS TO SET FROM THE DATA GRIDS OTHERWISE THE MIN DATA WILL AUTO CONTROLLED FROM THE SLIDER
//MAX - GAP = MIN
//WE ARE DEFINING ONE VARIABLE (PUBLIC STATIC INT TO GET THE STAGE WISE RENDERER WHOSE MAXIMUM VALUE IS FROM THE 0 TO THE MAXIMUM VALUE OF THE LENGTH OF THE GT_STRING CHAINS
////////THESE THREE ARE THE VISUALIZERS FILTERS IN THE FOR LOOP OF GT SIMPLEX CONSTRUCTIONS WHICH COUNTS THE NUMBER OF STAGES TO VISUALIZE AND THE COUNTER WITHIN THE MIN TO MAX RANGES ARE ONLY VISUALIZED IN THE RENDERER SCREENS
////////SLIDER WILL CONTROLL THE VALUES DEPENDING UPON THE GAP VALUE IN ROW 100 THE ROW 96+2 IS SLIDER CONTROLLED OR TYPED (ERROR CHECKING TO DO INSIDE THE LOADER OF THE FORMS DATA)
////////WE WILL HAVE TO TAKE CARE FOR THE INDEX OUT OF BOUNDS CONDITIONS THROUGH THE MIN WITH THE MAX CONTROLLERS DATA
////////THESE VARIABLES ARE ADDED TO GET THE FILTERED DATA VISUALIZATION FOR THE CONSTRUCTIONS PROTOCOLS TO SEE WHICH OF THE GT SEEDS TRIANGLE IS FORMED AT WHAT STAGES
////////this value is controlled with the slider of filtering visualizing things so CAUTIONS are required at this stages
////////FIRST CHECKS THE COMMAND STRINGS AND ITS LENGTHS THE MAX DATA CANNOT EXCEED THIS LENGTH
//////if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
////// {
////// //i have tested that default systems are working
////// //FIRST CHECKS THE COMMAND STRINGS AND ITS LENGTHS THE MAX DATA CANNOT EXCEED THIS LENGTH
////// dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value =
////// dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length.ToString();
////// ;// "THE_MINIMUM_VALUE_OF_VISUALIZER_FILTER";//DEFAULT IS LENGTH OF GT STRING COMMAND (REVISED TO GT_STRING LENGTHS EVERY TIMES)WE WILL CONTROLL THIS WITH SLIDER (NOT THE OTHER VALUES)
////// }
//////else
////// {
////// //FIRST CHECKS THE COMMAND STRINGS AND ITS LENGTHS THE MAX DATA CANNOT EXCEED THIS LENGTH
////// dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value = "100";//risky to set this properly in the loader conditions when the command string is read
////// }// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
////////these are also too much important visualization filtereing controllers so we need to set these data with cautions otherwise the complete gt simplex will not get rendered upto complete depths
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 3].Cells[1].Value = "0";////CAUTION "THE_MINIMUM_VALUE_OF_VISUALIZER_FILTER";//DEFAULT IS ZERO THIS IS CONTROLLED WITH THE SLIDER ALSO (WE CAN SET THIS WITH SLIDER IF NEXT GAP DATA IS NOT ZERO OTHERWISE THE MAX CONTROLLER SLIDER WILL NOT CHANGE THIS VALUE)
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value = "0";////CAUTION "DEFAULT GAP=0(FROM SLIDER MAX FOR>0 (MAX-GAP)=MIN IS SET";//THIS HELPS US TO VISUALIZE THE SPECIFIC GT SEEDS TRIANGLE AT THE STAGES FROM THE LAST OF MAXIMUM VALUE CHOSEN IN THE SLIDERS
//CALLING CONVENTIONS ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
//CALLING CONVENTIONS ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
//CALLING CONVENTIONS ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
//////////////TO SET THESE AT THE CORRECT POSITIONS OF CODE LATER ALONG THE SAME FUNCTIONS (BELOW) public static int minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int = 0;
//////////////TO SET THESE AT THE CORRECT POSITIONS OF CODE LATER ALONG THE SAME FUNCTIONS (BELOW) public static int maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int = 0;
//////////////TO SET THESE AT THE CORRECT POSITIONS OF CODE LATER ALONG THE SAME FUNCTIONS (BELOW) public static int gap_equals_maximum_to_minimum_backcalculated_for_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int = 0;
//this stores the max cutoff value for renderer <=length of gt string
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value != null)
{
//the max cutoff , min cut off and the gap are the integer data types default GAP =0 WHICH MEANS THE MIN IS MANUALLY CONTROLLED
//IF GAP >0 AND GAP < MAX THEN WE WILL CALCULATE THE MIN =MAX - GAP
//we load the max data first
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int
= Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value.ToString().TrimEnd().TrimStart().Trim());
//this is the safe side code CAUTION SINCE THE MAX OF CUTOFF OF RENDERING CONTROLLER CANNOT EXCEED THE LENGTH OF GT COMMAND STRING FOR STAGE WISE CONSTRUCTIONS CUTOFF DATA
//this is the safe side code CAUTION SINCE THE MAX OF CUTOFF OF RENDERING CONTROLLER CANNOT EXCEED THE LENGTH OF GT COMMAND STRING FOR STAGE WISE CONSTRUCTIONS CUTOFF DATA
//this is the safe side code CAUTION SINCE THE MAX OF CUTOFF OF RENDERING CONTROLLER CANNOT EXCEED THE LENGTH OF GT COMMAND STRING FOR STAGE WISE CONSTRUCTIONS CUTOFF DATA
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int
=
Math.Max(
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.current_commands_array_size_int
);
//CAUTION CAUTION CAUTION WE NEED TO GET THE DATA FROM THE SLIDERS VALUE ALSO FOR THIS CASES SINCE IT IS RENDERING VARIABLES
//CAUTION CAUTION CAUTION WE NEED TO GET THE DATA FROM THE SLIDERS VALUE ALSO FOR THIS CASES SINCE IT IS RENDERING VARIABLES
//CAUTION CAUTION CAUTION WE NEED TO GET THE DATA FROM THE SLIDERS VALUE ALSO FOR THIS CASES SINCE IT IS RENDERING VARIABLES
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int
=
Math.Min(
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int
,
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Value
);
//CAUTION CAUTION CAUTION WE NEED TO GET THE DATA FROM THE SLIDERS VALUE ALSO FOR THIS CASES SINCE IT IS RENDERING VARIABLES
//CAUTION CAUTION CAUTION WE NEED TO GET THE DATA FROM THE SLIDERS VALUE ALSO FOR THIS CASES SINCE IT IS RENDERING VARIABLES
//CAUTION CAUTION CAUTION WE NEED TO GET THE DATA FROM THE SLIDERS VALUE ALSO FOR THIS CASES SINCE IT IS RENDERING VARIABLES
//this is the safe side code CAUTION SINCE THE MAX OF CUTOFF OF RENDERING CONTROLLER CANNOT EXCEED THE LENGTH OF GT COMMAND STRING FOR STAGE WISE CONSTRUCTIONS CUTOFF DATA
//this is the safe side code CAUTION SINCE THE MAX OF CUTOFF OF RENDERING CONTROLLER CANNOT EXCEED THE LENGTH OF GT COMMAND STRING FOR STAGE WISE CONSTRUCTIONS CUTOFF DATA
//this is the safe side code CAUTION SINCE THE MAX OF CUTOFF OF RENDERING CONTROLLER CANNOT EXCEED THE LENGTH OF GT COMMAND STRING FOR STAGE WISE CONSTRUCTIONS CUTOFF DATA
//nested calls are done here for the min cutoff value which is controlled through the max-gap when the gap value is zero
//first we take the values from the data grids and then re adjust the values with comparing the conditions of the gap data
//and also to compare the max data found in the process.
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 3].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int
=
Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 3].Cells[1].Value.ToString().TrimEnd().TrimStart().Trim());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 3].Cells[1].Value != null)
//refining the data for this min sorters for filter of visualizations rendering
//lower end set to avoid errors
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int
= Math.Min(
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int
,
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int
- 1
)
);
//we cannot allow the negative values for the minimum values of the cutoff points for rendering
//we cannot allow the negative values for the minimum values of the cutoff points for rendering
//we cannot allow the negative values for the minimum values of the cutoff points for rendering
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int
= Math.Max(
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int
,
(
0
)
);
//getting gap data
//getting gap data
//getting gap data
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.gap_equals_maximum_to_minimum_backcalculated_for_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int
=
Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value.ToString().TrimEnd().TrimStart().Trim());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value != null)
//intelligent data refining is done here for max -gap =min settings
//intelligent data refining is done here for max -gap =min settings
//intelligent data refining is done here for max -gap =min settings
if (
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.gap_equals_maximum_to_minimum_backcalculated_for_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int
> 0
&&
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int
== 0
)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int
-
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.gap_equals_maximum_to_minimum_backcalculated_for_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int;
//AFTER CALCULATING THE DATA WE NEED TO RESET THE VALUE OF DATA GRIDS DATA
//AFTER CALCULATING THE DATA WE NEED TO RESET THE VALUE OF DATA GRIDS DATA
//AFTER CALCULATING THE DATA WE NEED TO RESET THE VALUE OF DATA GRIDS DATA
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 3].Cells[1].Value
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.minimum_cutoff_visualizer____from_which__visualization_to_start___renderer______current_commands_array_size_int;
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.commands_character_array.Length;
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Value
= this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum;
//AFTER CALCULATING THE DATA WE NEED TO RESET THE VALUE OF DATA GRIDS DATA
//AFTER CALCULATING THE DATA WE NEED TO RESET THE VALUE OF DATA GRIDS DATA
//AFTER CALCULATING THE DATA WE NEED TO RESET THE VALUE OF DATA GRIDS DATA
}
//double conditions check if cases to set max-gap=min
}//if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96+2].Cells[1].Value != null)
//THIS ABOVE NEW VARIABLE IS ADDED TO CHECK THE STAGE WISE RENDERING OF CONSTRUCTIONS SEQUENCES INSIDE THE GT_SIMPLEX TO VISUALIZE THE NATURES OF THE CONSTRUCTIONS FLOW
//THE GENERATIONS OF LINE SEGMENTS STAGEWISE ONE AFTER ANOTHER IS VERY NECESSARY TO OBSERVE TO SEE THE FLOW OF THE CONSTRUCTIONS OTHERWISE IT IS TOUGH TO THINK FOR NEW THEOREMS
//WITH THE FLOWS NATURES WHILE ITERATING OVER 0 TO 360 SCANNING OR THROUGH THE INTERNAL CONSTRUCTIONS INSIDE THE RENDERER SYSTEMS
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.
////////////// ////////THESE ARE FOR THE POWER SERIES ANALYSIS OF THE WHOLE SYSTEMS AS SUMMATIONS OF SERIES AS COEFFICIENTS MULTIPLIED TO THE RECURSIVE STAGE WISE OUTPUTS AND THE COMPLEMENTS
////////////// ////////TO CHECK HOW THE NATURAL SUMMATIONS OF THE OUTPUT LINE SEGMENTS (SCALED WITH COEFFICIENTS SELECTED WHEN FACTORS <> 0 AND THE OUTPUTS OR COMPLEMENTS ARE NOT TAKEN WHEN THE FACTORS ARE TAKEN AS ZERO ARE NOT TAKEN WHEN
////////////// ////////THE SCALE TO FIT COEFFICIENTS THE MAX WITH THE MIN WILL ALSO GET ADJUSTED WITH THE CONDITIONS OF THE CUMULATIONS DONE WHEN THE CUMULATIONS OUTPUTS ARE GENERATED
////////////// ////// dataGridViewFOR_GT_PRESETS_DATA.Rows[101].Cells[1].Value = "1.00";// "GLOBALLY_ALL_DOUBLE_VALUES_COEFFICIENT_FACTOR_CURRENT_GT_TRIANGLE_OUTPUT_FOR_POWER_SERIES";//WE WILL ADD THESE FOR ZERO COEFFICIENTS POWER SERIES CASES
////////////// ////// dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 1].Cells[1].Value = "1.00";// "GLOBALLY_ALL_DOUBLE_VALUESCOEFFICIENT_FACTOR_CURRENT_GT_TRIANGLE_COMPLEMENT_FOR_POWER_SERIES";//WE WILL ADD THESE FOR ZERO COEFFICIENTS POWER SERIES CASES
////////////// ////// dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 2].Cells[1].Value = "";// "DUMMY";
////////////// ////// dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N";
////////////// ////// dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3 + 1].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N";
////////////// //CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.
//////////////public static double GLOBALLY_ALL_DOUBLE_VALUES_COEFFICIENT_FACTOR_CURRENT_GT_TRIANGLE_OUTPUT_FOR_POWER_SERIES = 1.00;
//////////////public static double GLOBALLY_ALL_DOUBLE_VALUES_COEFFICIENT_FACTOR_CURRENT_GT_TRIANGLE_COMPLEMENT_FOR_POWER_SERIES = 1.00;
//////////////public static bool TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N = false;//default false and in the data grids we will set the data for the conditions
//////////////public static bool TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N = false;//default false and in the data grids we will set the data for the conditions
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
GLOBALLY_ALL_DOUBLE_VALUES_COEFFICIENT_FACTOR_CURRENT_GT_TRIANGLE_OUTPUT_FOR_POWER_SERIES =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 1].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
GLOBALLY_ALL_DOUBLE_VALUES_COEFFICIENT_FACTOR_CURRENT_GT_TRIANGLE_COMPLEMENT_FOR_POWER_SERIES =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101+1].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
//calling conventions ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N
//calling conventions ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N
////// public static bool TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N = false;//default false and in the data grids we will set the data for the conditions
//////public static bool TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N = false;//default false and in the data grids we will set the data for the conditions
//we have brought these here
//discarded //CALLING CONVENTIONS PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N
//discarded //CALLING CONVENTIONS PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N
dataGridViewFOR_GT_PRESETS_DATA.Rows[104].Cells[2]
.Style.BackColor = Color.PaleVioletRed;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
//discarding ////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
//////TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N = true;
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N = true;
// MessageBox.Show("Checking 101+3");
}
else
{
//discarding ////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
//////TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N = false;
///
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_OUTPUTS_SHOW_SCALES_TO_FIT_Y_N = false;
// MessageBox.Show("Checking 101+3");
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101 +3].Cells[1].Value != null)
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
//discarding //////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
////// TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N = true;
///
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N = true;
// MessageBox.Show("Checking 101+3+1");
}
else
{
//discarding //////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
////// TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N = false;
///
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_COMPLEMENTS_SHOW_SCALES_TO_FIT_Y_N = false;
// MessageBox.Show("Checking 101+3+1");
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101 + 3 +1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[101 +3 +1].Cells[1].Value != null)
// ExcelFormulaParser_GT_PARSER.public_static_class_simulations_CONTROLLER_for_gt_Class.
////////////////CAUTION NOTE FOR FUTURE WORKING
////////////////CAUTION NOTE FOR FUTURE WORKING
////////////////CAUTION NOTE FOR FUTURE WORKING
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////AFTER WE GOT SUCCESS IN THE VISUALIZATIONS OF THE CONCATENATED OUTPUTS AND THE CONCATENATED COMPLEMENTS LINE SEGMENTS GEOMETRICALLY WE ARE TRYING TO GET SOME MORE INFORMATIONS FROM THE THINGS THERE
////////////////THESE ARE TO ANALYSE TO GET THE CONDITIONS OF GEOMETRY THAT CAN GENERATE WITH THE OUTPUTS PERPENDICULARS CONCATENATED ONLY FOR THE POWER SERIES ANALYSIS SYSTEMS
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_PERPENDICULAR_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 1].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_BASE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 2].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_HYPOTENUSE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_PERPENDICULAR_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 1].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_BASE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 2].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_HYPOTENUSE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[112].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_PERPENDICULAR_ALL_SHOW_SCALES_TO_FIT_Y_N"; // ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[113].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_BASE_ALL_SHOW_SCALES_TO_FIT_Y_N";// ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[114].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_HYPOTENUSE_ALL_SHOW_SCALES_TO_FIT_Y_N";// ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
////////////////FOR SEVERAL CASES WE DONT NEED GIF FILES BUT THE PROPER NAMED FILES WITH COMMAND STRINGS AND THE ANGLES DATA WITH THE STAGES OF THGE CONSTRUCTIONS SEQUENCES
////////////////SINCE SEVERAL TIMES WE NEED TO COMMUNICATE WITH OTHERS REGARDING THE SHAPES AND SIZES OF THE DATA WHICH WE WILL USE FOR THE COMMUNICATIONS ALONG WITH THE DXF FILES
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[115].Cells[1].Value = "YES";//"DO_YOU_NEED_NAMED_SNAP_FOR_CURRENT_BMP(Y_N)FOR_NON_GIF_SNAPS";//THIS IS NEEDED WHEN WE WANT TO PREPARE THE DOCUMENTATIONS FOR COMMUNICATIONS WITH SPECIFIC CASES AND WE DONT NEED THE GIF FILES
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[115 + 1].Cells[1].Value = "YES";// "DO_YOU_NEED_NAMED_DXF_FOR_CURRENT_STATES(Y_N)";//THIS IS NEEDED WHEN WE WANT TO PREPARE THE DOCUMENTATIONS FOR COMMUNICATIONS WITH SPECIFIC CASES AND WE DONT NEED THE GIF FILES
////////////////CAUTION NOTE FOR FUTURE WORKING
////////////////CAUTION NOTE FOR FUTURE WORKING
////////////////CAUTION NOTE FOR FUTURE WORKING
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////we will not calculate the 8 types of orientations right now we will simply take the pivot to stretch as the base directions , pivot to nodal as the hypotenuse directions and the stretch to nodal is the perpendicular
////////////////AFTER WE GOT SUCCESS IN THE VISUALIZATIONS OF THE CONCATENATED OUTPUTS AND THE CONCATENATED COMPLEMENTS LINE SEGMENTS GEOMETRICALLY WE ARE TRYING TO GET SOME MORE INFORMATIONS FROM THE THINGS THERE
////////////////THESE ARE TO ANALYSE TO GET THE CONDITIONS OF GEOMETRY THAT CAN GENERATE WITH THE OUTPUTS PERPENDICULARS CONCATENATED ONLY FOR THE POWER SERIES ANALYSIS SYSTEMS
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_PERPENDICULAR_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_PERPENDICULAR_OUTPUT_SHOW_SCALES_TO_FIT_Y_N
// public static bool TO_CALCULATE_CUMULATE_PERPENDICULAR_OUTPUT_SHOW_SCALES_TO_FIT_Y_N = false;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_PERPENDICULAR_OUTPUT_SHOW_SCALES_TO_FIT_Y_N = true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_PERPENDICULAR_OUTPUT_SHOW_SCALES_TO_FIT_Y_N = false;
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106].Cells[1].Value != null)
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 1].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_BASE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_BASE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N
// public static bool TO_CALCULATE_CUMULATE_BASE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N = false;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_BASE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N = true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_BASE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N = false;
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106+1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106+1].Cells[1].Value != null)
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 2].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_HYPOTENUSE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N";
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_HYPOTENUSE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N
// public static bool TO_CALCULATE_CUMULATE_HYPOTENUSE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N = false;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 2].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 2].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_HYPOTENUSE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N = true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_HYPOTENUSE_OUTPUT_SHOW_SCALES_TO_FIT_Y_N = false;
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106+2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106+2].Cells[1].Value != null)
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_PERPENDICULAR_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_PERPENDICULAR_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N
// public static bool TO_CALCULATE_CUMULATE_PERPENDICULAR_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N = false;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_PERPENDICULAR_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N = true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_PERPENDICULAR_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N = false;
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106+3].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106+3].Cells[1].Value != null)
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 1].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_BASE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_BASE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N
// public static bool TO_CALCULATE_CUMULATE_BASE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N = false;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_BASE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N = true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_BASE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N = false;
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106+3 +1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106+3 +1 ].Cells[1].Value != null)
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 2].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_HYPOTENUSE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N";
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_HYPOTENUSE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N
// public static bool TO_CALCULATE_CUMULATE_HYPOTENUSE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N = false;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 2].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106 + 3 + 2].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_HYPOTENUSE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N = true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_HYPOTENUSE_COMPLEMENT_SHOW_SCALES_TO_FIT_Y_N = false;
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106+3 +2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[106+3 +2 ].Cells[1].Value != null)
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[112].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_PERPENDICULAR_ALL_SHOW_SCALES_TO_FIT_Y_N"; // ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_PERPENDICULAR_ALL_SHOW_SCALES_TO_FIT_Y_N
// public static bool TO_CALCULATE_CUMULATE_PERPENDICULAR_ALL_SHOW_SCALES_TO_FIT_Y_N = false;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[112].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[112].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_PERPENDICULAR_ALL_SHOW_SCALES_TO_FIT_Y_N = true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_PERPENDICULAR_ALL_SHOW_SCALES_TO_FIT_Y_N = false;
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[112].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[112 ].Cells[1].Value != null)
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[113].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_BASE_ALL_SHOW_SCALES_TO_FIT_Y_N";// ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_BASE_ALL_SHOW_SCALES_TO_FIT_Y_N
// public static bool TO_CALCULATE_CUMULATE_BASE_ALL_SHOW_SCALES_TO_FIT_Y_N = false;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[113].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[113].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_BASE_ALL_SHOW_SCALES_TO_FIT_Y_N = true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_BASE_ALL_SHOW_SCALES_TO_FIT_Y_N = false;
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[113].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[113 ].Cells[1].Value != null)
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[114].Cells[1].Value = "YES";// "TO_CALCULATE_CUMULATE_HYPOTENUSE_ALL_SHOW_SCALES_TO_FIT_Y_N";// ALL MEANS THE OUTPUT AND THE COMPLEMENTS BOTH (IRRESPECTIVELY CONCATENATED TO GET THE CURVES LIKE ENTITY)
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.TO_CALCULATE_CUMULATE_HYPOTENUSE_ALL_SHOW_SCALES_TO_FIT_Y_N
// public static bool TO_CALCULATE_CUMULATE_HYPOTENUSE_ALL_SHOW_SCALES_TO_FIT_Y_N = false;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[114].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[114].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_HYPOTENUSE_ALL_SHOW_SCALES_TO_FIT_Y_N = true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
TO_CALCULATE_CUMULATE_HYPOTENUSE_ALL_SHOW_SCALES_TO_FIT_Y_N = false;
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[114].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[114 ].Cells[1].Value != null)
//these are output controllers for dxf or bmp files for current states (not for gif cases)
//these are output controllers for dxf or bmp files for current states (not for gif cases)
//these are output controllers for dxf or bmp files for current states (not for gif cases)
////////////////FOR SEVERAL CASES WE DONT NEED GIF FILES BUT THE PROPER NAMED FILES WITH COMMAND STRINGS AND THE ANGLES DATA WITH THE STAGES OF THGE CONSTRUCTIONS SEQUENCES
////////////////SINCE SEVERAL TIMES WE NEED TO COMMUNICATE WITH OTHERS REGARDING THE SHAPES AND SIZES OF THE DATA WHICH WE WILL USE FOR THE COMMUNICATIONS ALONG WITH THE DXF FILES
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[115].Cells[1].Value = "YES";//"DO_YOU_NEED_NAMED_SNAP_FOR_CURRENT_BMP(Y_N)FOR_NON_GIF_SNAPS";//THIS IS NEEDED WHEN WE WANT TO PREPARE THE DOCUMENTATIONS FOR COMMUNICATIONS WITH SPECIFIC CASES AND WE DONT NEED THE GIF FILES
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.DO_YOU_NEED_NAMED_SNAP_FOR_CURRENT_BMP_Y_N_FOR_NON_GIF_SNAPS
// public static bool DO_YOU_NEED_NAMED_SNAP_FOR_CURRENT_BMP_Y_N_FOR_NON_GIF_SNAPS = false;
dataGridViewFOR_GT_PRESETS_DATA.Rows[115].Cells[2]
.Style.BackColor = Color.PaleVioletRed;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[115].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[115].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
DO_YOU_NEED_NAMED_SNAP_FOR_CURRENT_BMP_Y_N_FOR_NON_GIF_SNAPS = true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
DO_YOU_NEED_NAMED_SNAP_FOR_CURRENT_BMP_Y_N_FOR_NON_GIF_SNAPS = false;
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[115].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[115 ].Cells[1].Value != null)
//////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[115 + 1].Cells[1].Value = "YES";// "DO_YOU_NEED_NAMED_DXF_FOR_CURRENT_STATES(Y_N)";//THIS IS NEEDED WHEN WE WANT TO PREPARE THE DOCUMENTATIONS FOR COMMUNICATIONS WITH SPECIFIC CASES AND WE DONT NEED THE GIF FILES
//CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.DO_YOU_NEED_NAMED_DXF_FOR_CURRENT_STATES_Y_N
// public static bool DO_YOU_NEED_NAMED_DXF_FOR_CURRENT_STATES_Y_N = false;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[115 + 1].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[115 + 1].Cells[1].Value.ToString().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
DO_YOU_NEED_NAMED_DXF_FOR_CURRENT_STATES_Y_N = true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
DO_YOU_NEED_NAMED_DXF_FOR_CURRENT_STATES_Y_N = false;
}//else cases if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[115 +1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y)"))
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[115 +1 ].Cells[1].Value != null)
//we have made the calculations of unit vectors and the lengths of the corresponding distances of the CG_TO_PIVOT CG_TO_STRETCH CG_TO_NODAL HANDLING TO SHOW THE SHRINK AND GROW OF THE PERPENDICULAR BASE AND THE HYPOTENUSE LINES WITH ARROW HEADS FOR DIRECTIONAL UNDERSTANDINGS REPRESENTED IN THE OVERLAP FREE STYLES
//CALLING CONVENTION public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE______REPRESENTATIONAL_SCALE_FACTOR_OF_CURRENT_GT_SEED_TRIANGLE_FROM_THE_CURRENT_CG_TO_SHRINK_GROW_POINTS_TO_DETECT_OVERLAPS_OF_LINES_OR_POINTS_ON_GRAPHS
//WE DONT NEED ANY OTHER SEPARATE BOOLEAN VARIABLES FOR THE VISIBILITY OF THE REPRESENTATIONAL TRIANGLES GENERATIONS ON SCREEN FOR OVERLAP FREE RENDERING
//IF THE VALUE OF THIS VARIABLE IS NOT ZERO 0 OR NOT 1 THEN IT WILL CONSIDER THAT WE HAVE TO SHOW THESE REPRESENTATIONAL PERPENDICULARS , REPRESENTATIONAL BASE AND THE REPRESENTATIONAL HYPOTENUSE ON SCREEN WITH DIRECTIONAL ARROWHEADS AND ALSO WE NEED TO SHOW THAT OVERLAP FREE THROUGH THE SETTING OF N FOR THE ORIGINAL RENDERING LINES
//TRICKY VARIABLES
// dataGridViewFOR_GT_PRESETS_DATA.Rows[117].Cells[0].Value = "REPRESENTATIONAL_SCALE_FACTOR___TRUE_IF_NOT_0_OR_NOT_1";
//this is a special variable which is double type but for its values of zero or 1 it will not render the data on screen nor on the dxf files with arrow heads and overlap free
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[117].Cells[1].Value != null)
{
try
{
//YES TESTED THAT THESE ARE WORKING NOW WE NEED TO CHECK THE SCALE FACTORS IN THE MAX WITH MIN DATA FOR ZOOM SCALES TO FIT
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE______REPRESENTATIONAL_SCALE_FACTOR_OF_CURRENT_GT_SEED_TRIANGLE_FROM_THE_CURRENT_CG_TO_SHRINK_GROW_POINTS_TO_DETECT_OVERLAPS_OF_LINES_OR_POINTS_ON_GRAPHS
=
Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[117].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception temp_exception_to_convert_to_double)
{
//on error we will set this
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE______REPRESENTATIONAL_SCALE_FACTOR_OF_CURRENT_GT_SEED_TRIANGLE_FROM_THE_CURRENT_CG_TO_SHRINK_GROW_POINTS_TO_DETECT_OVERLAPS_OF_LINES_OR_POINTS_ON_GRAPHS
= 0.8;
}//catch(Exception temp_exception_to_convert_to_double)
}//if (dataGridViewFOR_GT_PRESETS_DATA.Rows[117].Cells[1].Value != null)
////////////// ////////WE HAVE THE GREAT VISUALIZATIONS NOW TO SEE THE SMALLENED AND LARGENED RECURSIVELY CONSTRUCTED GT_TRIANGLES FOR EACH STAGES
////////////// ////////SO IT BECOMES VERY NECESSARY TO SHOW THE ARROWHEADS OF THESE CG CHAINS LINES AND THE THICKENED CG_CHAINS LINES TO IDENTIFY THE DIRECTIONS OF THE FLOW OF RECURSIVE CONSTRUCTIONS OF THE GT_TRIANGLES
////////////// ////////DEFAULT IS ZERO AND WE HAVE PLACED THE ARROW HEADS NOW TO SHOW THE DIRECTIONS OF THE FLOW OF RECURSIVE CONSTRUCTIONS
////////////// wrong //////dataGridViewFOR_GT_PRESETS_DATA.Rows[118].Cells[1].Value = 0.01;// "WIDTH_OF_CG_CHAIN_PEN_THICKNESS_FOR_BETTER_REPRESENTATION_OF_DIRECTIONS_OF_RECURSIVE_CONSTRUCTIONS";
////////////// ////// //THESE ARE NEW variables defined now to see the conditional views of the corresponding line segments which are getting overlapped and which are not overlapped
////////////// ///we see that when the overlap scale factors are large
////////////// ////// dataGridViewFOR_GT_PRESETS_DATA.Rows[118].Cells[1].Value = 0.001;// "WIDTH_OF_CG_CHAIN_PEN_THICKNESS_FOR_BETTER_REPRESENTATION_OF_DIRECTIONS_OF_RECURSIVE_CONSTRUCTIONS";
////////////// // CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE___WIDTH_OF_CG_CHAIN_PEN_THICKNESS_FOR_BETTER_REPRESENTATION_OF_DIRECTIONS_OF_RECURSIVE_CONSTRUCTIONS
//////////////public static double PUBLIC_STATIC_DOUBLE___WIDTH_OF_CG_CHAIN_PEN_THICKNESS_FOR_BETTER_REPRESENTATION_OF_DIRECTIONS_OF_RECURSIVE_CONSTRUCTIONS = 0.01;
//i have tested that this systems are working with the conditions of thickness changing are working with the dots in the line styles are also working
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[118].Cells[1].Value != null)
{
try
{
//YES TESTED THAT THESE ARE WORKING NOWTHE SCALE FACTORS IN THE MAX WITH MIN DATA FOR ZOOM SCALES TO FIT
//non overlapping things are working and now we need to adjust the CG chains pen thickness to identify the conditions of arrow heads
//WE HAVE TO SET THESE TO FLOAT WHILE CREATING THE PEN OBJECTS FOR THE CG CHAINS THE CG CHAINS WILL HAVE THE ARROW HEADS NOW
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE___WIDTH_OF_CG_CHAIN_PEN_THICKNESS_FOR_BETTER_REPRESENTATION_OF_DIRECTIONS_OF_RECURSIVE_CONSTRUCTIONS
=
Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[118].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception temp_exception_to_convert_to_double)
{
//on error we will set this
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_DOUBLE___WIDTH_OF_CG_CHAIN_PEN_THICKNESS_FOR_BETTER_REPRESENTATION_OF_DIRECTIONS_OF_RECURSIVE_CONSTRUCTIONS
= 0.001;
}//catch(Exception temp_exception_to_convert_to_double)
}//if (dataGridViewFOR_GT_PRESETS_DATA.Rows[118].Cells[1].Value != null)
//////////////////// //THESE CREATES JUNGLES SHOW_RECURSIONS_CONSTRUCTION_NUMBERS_ON_CG_POINTS_Y_N___SHOW_TEXTS
/////////////////// CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL___SHOW_RECURSIONS_CONSTRUCTION_NUMBERS_ON_CG_POINTS_Y_N___SHOW_TEXTS
//////////////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[119].Cells[1].Value = "NO";// "SHOW_RECURSIONS_CONSTRUCTION_NUMBERS_ON_CG_POINTS_Y_N___SHOW_TEXTS";
//////////////public static bool PUBLIC_STATIC_BOOL___SHOW_RECURSIONS_CONSTRUCTION_NUMBERS_ON_CG_POINTS_Y_N___SHOW_TEXTS = false;
//this will guide the user the triangles recursions constructions number to check which triangle is what stage of constructions
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL___SHOW_RECURSIONS_CONSTRUCTION_NUMBERS_ON_CG_POINTS_Y_N___SHOW_TEXTS
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL___SHOW_RECURSIONS_CONSTRUCTION_NUMBERS_ON_CG_POINTS_Y_N___SHOW_TEXTS
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119].Cells[1].Value != null)
//////////////////// //THESE ARE BOOLEAN TYPES OF VARIABLES (THESE ARE ADDED AFTER WE HAVE SEEN THAT THE SMALLENING AND LARGENING OF EACH CORRESPONDING RECURSIVE TRIANGLES ARE VISIBLE
//////////////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[119 + 1].Cells[1].Value = "SHOW_PERPENDICULAR_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N";
/////////////////// CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______SHOW_PERPENDICULAR_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N
//////////////public static bool PUBLIC_STATIC_BOOL______SHOW_PERPENDICULAR_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N = false;
//this is for perpendicular of shortened or largened triangles visibility settings
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119 + 1].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119 + 1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______SHOW_PERPENDICULAR_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______SHOW_PERPENDICULAR_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119+1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119+1].Cells[1].Value != null)
//////////////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[119 + 2].Cells[1].Value = "SHOW_BASE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N";
/////////////////// CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______SHOW_BASE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N
//////////////public static bool PUBLIC_STATIC_BOOL______SHOW_BASE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N = false;
//this is for base of shortened or largened triangles visibility settings
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119 + 2].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119 + 2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______SHOW_BASE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______SHOW_BASE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119+2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[119+2].Cells[1].Value != null)
//////////////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[122].Cells[1].Value = "SHOW_HYPOTENUSE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N";
//this is for hypotenuse of shortened or largened triangles visibility settings
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[122].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[122].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______SHOW_HYPOTENUSE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______SHOW_HYPOTENUSE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[122].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[122].Cells[1].Value != null)
/////////////////// CALLING CONVENTIONS public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______SHOW_HYPOTENUSE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N
/////////////////
//////////////public static bool PUBLIC_STATIC_BOOL______SHOW_HYPOTENUSE_LINES_OF_REPRESENTATIONAL_SMALLENED_LARGENED_SCALED_TRIANGLES_Y_N = false;
////////////// //calling conventions public_static_class_simulations_CONTROLLER_for_gt_Class.
////////////// //THIS IS SPECIAL THING WHICH IS INPUT CONTROLLED TO CHECK THE TWO POINTS OR LINES ARE OF SAME LENGTH ALMOST OR NOT
//////////////public static double PUBLIC_STATIC_DISTANCE_COMPARING_TOLERANCE_TAKEN_FOR_DIFFERENCE_CHECKS = 0.003;// Double.MinValue;//0;
//////////////public static bool TO_SHOW_THE_BOUNDING_BOX_FOR_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N = true;
///
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[123].Cells[1].Value = "0.003";// "COMPARING_TOLERANCE_TAKEN_FOR_DIFFERENCE_CHECKS";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[123 + 1].Cells[1].Value = "YES";// "TO_SHOW_THE_BOUNDING_BOX_FOR_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123].Cells[1].Value != null)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_DISTANCE_COMPARING_TOLERANCE_TAKEN_FOR_DIFFERENCE_CHECKS
=
Convert.ToDouble(
dataGridViewFOR_GT_PRESETS_DATA.Rows[123].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception EXCP_TO_CONVERT_COMPARER_TOLERANCES)
{
//on exceptions we set this
public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_DISTANCE_COMPARING_TOLERANCE_TAKEN_FOR_DIFFERENCE_CHECKS = 0.003;
}//catch(Exception EXCP_TO_CONVERT_COMPARER_TOLERANCES)
}//if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123].Cells[1].Value != null)
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123 + 1].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123 + 1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123+1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123+1].Cells[1].Value != null)
////////calling conventions public_static_class_simulations_CONTROLLER_for_gt_Class.
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[125].Cells[1].Value = "YES";// "TO_SHOW_THE_BOUNDING_BOX_FOR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[126].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
////////calling conventions public_static_class_simulations_CONTROLLER_for_gt_Class.
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[125 + 2].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[125 + 3].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[129].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[130].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[131].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[132].Cells[1].Value = "YES";//"TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N";
dataGridViewFOR_GT_PRESETS_DATA.Rows[123 + 2].Cells[2]
.Style.BackColor = Color.PaleVioletRed;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123 + 2].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123 + 2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123+2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123+2].Cells[1].Value != null)
dataGridViewFOR_GT_PRESETS_DATA.Rows[123 + 3].Cells[2]
.Style.BackColor = Color.PaleVioletRed;
//I HAVE TO CHECK THE BOUNDING BOX CONDITIONS FOR SIN AND THE COSEC CASES SINCE SOMETIMES THE GRAPHICS ARE VANISHING FOR THESE CONDITIONS
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123 + 3].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123 + 3].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123+3].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[123+3].Cells[1].Value != null)
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[125 + 2].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[125 + 2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[125+2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[125+2].Cells[1].Value != null)
dataGridViewFOR_GT_PRESETS_DATA.Rows[125 + 3].Cells[2]
.Style.BackColor = Color.PaleVioletRed;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[125 + 3].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[125 + 3].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[125+3].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[125+3].Cells[1].Value != null)
dataGridViewFOR_GT_PRESETS_DATA.Rows[126 + 3].Cells[2]
.Style.BackColor = Color.PaleVioletRed;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[129].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[129].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_OUTPUT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[129].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[129].Cells[1].Value != null)
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[130].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[130].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_PERPENDICULAR_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[130].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[130].Cells[1].Value != null)
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[131].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[131].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_THE_BOUNDING_BOX_FOR_BASE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[131].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[131].Cells[1].Value != null)
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[132].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[132].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SHOW_THE_BOUNDING_BOX_FOR_HYPOTENUSE_COMPLEMENT_CUMULATIONS_FOR_TOTAL_CURRENT_GT_SIMPLEX_NON_SYMMETRIC_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[132].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[132].Cells[1].Value != null)
////////THESE ARE SPECIALLY ADDED FOR SUMMABILITY CONDITIONS CHECKING
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[133].Cells[1].Value = "NO";// "TO_SET_SEEDS_ANGLES_INCREMENTER_EQUAL_TO_SEEDS_ANGLES_FOR_MULTIPLE_ANGLES_CHECKING_Y_N";
////////NO WE WILL DO THAT WITH OTHER OPERATORS
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1].Cells[1].Value = "NO";// "TO_SET_ALTERNATE_TERMS_TO_CHANGE_SIGNS_LENGTH_AND_THE_VECTORS_ALTER_Y_N";
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[133].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[133].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SET_SEEDS_ANGLES_INCREMENTER_EQUAL_TO_SEEDS_ANGLES_FOR_MULTIPLE_ANGLES_CHECKING_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SET_SEEDS_ANGLES_INCREMENTER_EQUAL_TO_SEEDS_ANGLES_FOR_MULTIPLE_ANGLES_CHECKING_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[133].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[133].Cells[1].Value != null)
//this is very important for the extensions of Geometrifying Trigonometry for other conditions of geometry handlings use cases
//we will do extensive researches on these combinations of working for the necessary conditions of setups
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SET_ALTERNATE_TERMS_TO_CHANGE_SIGNS_LENGTH_AND_THE_VECTORS_ALTER_Y_N
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.TO_SET_ALTERNATE_TERMS_TO_CHANGE_SIGNS_LENGTH_AND_THE_VECTORS_ALTER_Y_N
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[133+1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[133+1].Cells[1].Value != null)
//we have seen that while doing the simulations and the gif files saving then there are some issues
//sometimes we need some outputs and sometimes we need large number of outputs and that we need to get configured as per our needs
//until we do that kind of calculations from the interfaces it is not going to give us freedoms so we need the interfacing with the data entry systems
//for the steps of doing simulations while analysing and theorizing which are very important for our purposes
////////NO WE WILL DO THAT WITH OTHER OPERATORS
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1 + 1].Cells[1].Value = "33.7";// "SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360";
//this is for SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360 which saves gif files
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1 + 1].Cells[1].Value != null)
{
//SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360
//saves gif files
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1 + 1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception _doubles_conversions_exceptions)
{
public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360
= 30.3;
}//catch(Exception _doubles_conversions_exceptions)
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1 + 1].Cells[1].Value != null)
////////NO WE WILL DO THAT WITH OTHER OPERATORS
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[136].Cells[1].Value = "1.3";// "SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360";
////////NO WE WILL DO THAT WITH OTHER OPERATORS
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[133 + 1 + 1].Cells[1].Value = "33.7";// "SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360";
//////public static double SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360 = 30.3;
//////////////NO WE WILL DO THAT WITH OTHER OPERATORS
////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[136].Cells[1].Value = "1.3";// "SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360";
//////public static double SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360 = 1.3;
//we have seen that while doing the simulations and the gif files saving then there are some issues
//sometimes we need some outputs and sometimes we need large number of outputs and that we need to get configured as per our needs
//until we do that kind of calculations from the interfaces it is not going to give us freedoms so we need the interfacing with the data entry systems
//for the steps of doing simulations while analysing and theorizing which are very important for our purposes
////////NO WE WILL DO THAT WITH OTHER OPERATORS
//SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360
//does analysis with the geometry and the other things
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[136].Cells[1].Value != null)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class.SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[136].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception _doubles_conversions_exceptions)
{
public_static_class_simulations_CONTROLLER_for_gt_Class.SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360
= 3.7;
}//catch(Exception _doubles_conversions_exceptions)
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[136].Cells[1].Value != null)
dataGridViewFOR_GT_PRESETS_DATA.Rows[137].Cells[2]
.Style.BackColor = Color.PaleVioletRed;
//this is very important for the extensions of Geometrifying Trigonometry for other conditions of geometry handlings use cases
//we will do extensive researches on these combinations of working for the necessary conditions of setups
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[136 + 1].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[136 + 1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.DO_YOU_NEED_PDF_REPORTING_FOR_THE_DATA_______137
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.DO_YOU_NEED_PDF_REPORTING_FOR_THE_DATA_______137
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[133+1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[136+1].Cells[1].Value != null)
/// //////NOW WE ARE EXTENDING OUR PROGRAM TO THE ORIENTABILITY CASES WITH THE MINIMUM ENERGY PRINCIPLES THROUGH THE HORIZONTAL DILATIONS OF AABB WITH VERTICAL DILATIONS WITH AABB
/// THIS SYSTEMS WILL GIVE US EASY TO UNDERSTAND COMPREHENSIVE SYSTEMS FOR THE RANGE TO WHICH OUR SYSTEMS CONTRACT OR EXPAND DUE TO CHOOSING OF THE ORIENTATIONS OF CONSTRUCTIONS
/// WHILE THE PROCESS IS TAKEN 0 TO 360 DEGREES WE CAN KNOW AND UNDERSTAND THE LEVEL OF ENERGY SPENT TO MAKE A LARGER SYSTEMS OR SYMMETRIC SYSTEMS DUE TO THE PROCESS OF CONSTRUCTIONS OF EACH GTSIMPLEXES
/// </summary>
////// //////dataGridViewFOR_GT_PRESETS_DATA.Rows[138].Cells[0].Value = "PIVOT_TO_STRETCH(YES)___STRETCH_TO_PIVOT(NO)";//
//////public static bool PUBLIC_STATIC_BOOL______PIVOT_TO_STRETCH_YES____STRETCH_TO_PIVOT_NO___138 = false;
//this is very important for the extensions of Geometrifying Trigonometry for other conditions of geometry handlings use cases
//we will do extensive researches on these combinations of working for the necessary conditions of setups
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[138].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[138].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______PIVOT_TO_STRETCH_YES____STRETCH_TO_PIVOT_NO___138
= true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[138].Cells[2].Value
= "WORKS FOR O ONLY";
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______PIVOT_TO_STRETCH_YES____STRETCH_TO_PIVOT_NO___138
=
false;
dataGridViewFOR_GT_PRESETS_DATA.Rows[138].Cells[2].Value
= "WORKS FOR O ONLY";
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[138].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[138].Cells[1].Value != null)
//////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[139].Cells[0].Value = "PIVOT_TO_NODAL(YES)___NODAL_TO_PIVOT(NO)";//
//////public static bool PUBLIC_STATIC_BOOL______PIVOT_TO_NODAL_YES____NODAL_TO_PIVOT_NO______139 = false;
//this is very important for the extensions of Geometrifying Trigonometry for other conditions of geometry handlings use cases
//we will do extensive researches on these combinations of working for the necessary conditions of setups
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[139].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[139].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______PIVOT_TO_NODAL_YES____NODAL_TO_PIVOT_NO______139
= true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[139].Cells[2].Value
= "WORKS FOR O ONLY";
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______PIVOT_TO_NODAL_YES____NODAL_TO_PIVOT_NO______139
=
false;
dataGridViewFOR_GT_PRESETS_DATA.Rows[139].Cells[2].Value
= "WORKS FOR O ONLY";
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[139].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[139].Cells[1].Value != null)
//////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[140].Cells[0].Value = "STRETCH_TO_NODAL(YES)___NODAL_TO_STRETCH(NO)";//
//////public static bool PUBLIC_STATIC_BOOL______STRETCH_TO_NODAL_YES____NODAL_TO_STRETCH_NO______140 = false;
//this is very important for the extensions of Geometrifying Trigonometry for other conditions of geometry handlings use cases
//we will do extensive researches on these combinations of working for the necessary conditions of setups
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[140].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[140].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______STRETCH_TO_NODAL_YES____NODAL_TO_STRETCH_NO______140
= true;
dataGridViewFOR_GT_PRESETS_DATA.Rows[140].Cells[2].Value
= "WORKS FOR O ONLY";
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______STRETCH_TO_NODAL_YES____NODAL_TO_STRETCH_NO______140
=
false;
dataGridViewFOR_GT_PRESETS_DATA.Rows[140].Cells[2].Value
= "WORKS FOR O ONLY";
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[140].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[140].Cells[1].Value != null)
//////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[141].Cells[0].Value = "FULL_ANTICLOCK(YES)_PIVOT_STRETCH_NODAL_PIVOT_CHAIN";
//////public static bool PUBLIC_STATIC_BOOL______FULL_ANTICLOCK_YES__PIVOT_STRETCH_NODAL_PIVOT_CHAIN_OTHERWISE_ITS_NO______141 = false;
//this is very important for the extensions of Geometrifying Trigonometry for other conditions of geometry handlings use cases
//we will do extensive researches on these combinations of working for the necessary conditions of setups
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[141].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[141].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______FULL_ANTICLOCK_YES__PIVOT_STRETCH_NODAL_PIVOT_CHAIN_OTHERWISE_ITS_NO______141
= true;
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
{
int _temp_commands_strings_length
=
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Length;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length <= _temp_commands_strings_length)
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value
=
(new String('A', _temp_commands_strings_length)).ToString();
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length<= _temp_commands_strings_length)
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value!=null)
}// if(dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value!=null)
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______FULL_ANTICLOCK_YES__PIVOT_STRETCH_NODAL_PIVOT_CHAIN_OTHERWISE_ITS_NO______141
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[141].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[141].Cells[1].Value != null)
//////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[142].Cells[0].Value = "FULL_CLOCK(YES)_PIVOT_NODAL_STRETCH_PIVOT_CHAIN";
//////public static bool PUBLIC_STATIC_BOOL______FULL_CLOCK_YES__PIVOT_NODAL_STRETCH_PIVOT_CHAIN_OTHERWISE_ITS_NO______142 = false;
//this is very important for the extensions of Geometrifying Trigonometry for other conditions of geometry handlings use cases
//we will do extensive researches on these combinations of working for the necessary conditions of setups
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[142].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[142].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______FULL_CLOCK_YES__PIVOT_NODAL_STRETCH_PIVOT_CHAIN_OTHERWISE_ITS_NO______142
= true;
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
{
int _temp_commands_strings_length
=
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Length;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length <= _temp_commands_strings_length)
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value
=
(new String('C', _temp_commands_strings_length)).ToString();
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length<= _temp_commands_strings_length)
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value!=null)
}// if(dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value!=null)
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______FULL_CLOCK_YES__PIVOT_NODAL_STRETCH_PIVOT_CHAIN_OTHERWISE_ITS_NO______142
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[142].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[142].Cells[1].Value != null)
/// this minimum energy principle is to decide when the most symmetric cases in width expansions and height expansions are seen
/// the most symmetric cases are decided when the whole systems are least changed in sizes
//////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[143].Cells[0].Value = "MINIMUM_ENERGY_AUTODECIDE(YES)_OTHERWISE_FILL(NO)";
//////public static bool PUBLIC_STATIC_BOOL______MINIMUM_ENERGY_AUTODECIDE_YES__OTHERWISE_FILL_NO______143 = false;
//this is very important for the extensions of Geometrifying Trigonometry for other conditions of geometry handlings use cases
//we will do extensive researches on these combinations of working for the necessary conditions of setups
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______MINIMUM_ENERGY_AUTODECIDE_YES__OTHERWISE_FILL_NO______143
= true;
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
{
int _temp_commands_strings_length
=
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Length;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length <= _temp_commands_strings_length)
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value
=
(new String('M', _temp_commands_strings_length)).ToString();
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length<= _temp_commands_strings_length)
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value!=null)
}// if(dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value!=null)
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______MINIMUM_ENERGY_AUTODECIDE_YES__OTHERWISE_FILL_NO______143
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143].Cells[1].Value != null)
//////https://www.feynmanlectures.caltech.edu/II_19.html#Ch19-F1
////// Feynmann lectures
//////“Mr.Bader told me the following: Suppose you have a particle(in a gravitational field, for instance)
///which starts somewhere and moves to some other point by free motion—you throw it, and it goes up and comes down
///(Fig. 19–1).It goes from the original place to the final place in a certain amount of time.Now, you try a different
///motion.Suppose that to get from here to there, it went as shown in Fig. 19–2 but got
///there in just the same amount of time. Then he said this: If you calculate the kinetic energy
///at every moment on the path, take away the potential energy, and integrate it over the time during
///the whole path, you’ll find that the number you’ll get is bigger than that for the actual motion.
//////“In other words, the laws of Newton could be stated not in the form F = ma
////// but in the form: the average kinetic energy less the average potential energy is as little as possible for the path of an object going from one point to another.
//////“Let me illustrate a little bit better what it means.If you take the case of the gravitational field, then if the particle has the path x(t)
//////(let’s just take one dimension for a moment; we take a trajectory that goes up and down and not sideways), where x
////// is the height above the ground, the kinetic energy is 12m(dx / dt)2
//////, and the potential energy at any time is mgx
//////.Now I take the kinetic energy minus the potential energy at every moment along the path and integrate that with respect to time from the initial time to the final time.Let’s suppose that at the original time t1
////// we started at some height and at the end of the time t2
////// we are definitely ending at some other place(Fig. 19–3).
//////The actual motion is some kind of a curve—it’s a parabola if we plot against the time—and gives a certain value for the integral. But we could imagine some other motion that went very high and came up and down in some peculiar way(Fig. 19–4).We can calculate the kinetic energy minus the potential energy and integrate for such a path … or for any other path we want.The miracle is that the true path is the one for which that integral is least.
//////“Let’s try it out. First, suppose we take the case of a free particle for which there is no potential energy at all.Then the rule says that in going from one point to another in a given amount of time, the kinetic energy integral is least, so it must go at a uniform speed. (We know that’s the right answer—to go at a uniform speed.) Why is that ? Because if the particle were to go any other way, the velocities would be sometimes higher and sometimes lower than the average. The average velocity is the same for every case because it has to get from ‘here’ to ‘there’ in a given amount of time.
//////“As an example, say your job is to start from home and get to school in a given length of time with the car.You can do it several ways: You can accelerate like mad at the beginning and slow down with the brakes near the end, or you can go at a uniform speed, or you can go backwards for a while and then go forward, and so on.The thing is that the average speed has got to be, of course, the total distance that you have gone over the time. But if you do anything but go at a uniform speed, then sometimes you are going too fast and sometimes you are going too slow.Now the mean square of something that deviates around an average, as you know, is always greater than the square of the mean; so the kinetic energy integral would always be higher if you wobbled your velocity than if you went at a uniform velocity.So we see that the integral is a minimum if the velocity is a constant (when there are no forces). The correct path is shown in Fig. 19–5.
//////“Now, an object thrown up in a gravitational field does rise faster first and then slow down.That is because there is also the potential energy, and we must have the least difference of kinetic and potential energy on the average. Because the potential energy rises as we go up in space, we will get a lower difference if we can get as soon as possible up to where there is a high potential energy. Then we can take that potential away from the kinetic energy and get a lower average. So it is better to take a path which goes up and gets a lot of negative stuff from the potential energy(Fig. 19–6).
////// Fig. 19–6.
//////“On the other hand, you can’t go up too fast, or too far, because you will then have too much kinetic energy involved—you have to go very fast to get way up and come down again in the fixed amount of time available. So you don’t want to go too far up, but you want to go up some.So it turns out that the solution is some kind of balance between trying to get more potential energy with the least amount of extra kinetic energy—trying to get the difference, kinetic minus the potential, as small as possible.
//////“That is all my teacher told me, because he was a very good teacher and knew when to stop talking.But I don’t know when to stop talking. So instead of leaving it as an interesting remark, I am going to horrify and disgust you with the complexities of life by proving that it is so.The kind of mathematical problem we will have is very difficult and a new kind.We have a certain quantity which is called the action, S
//////.It is the kinetic energy, minus the potential energy, integrated over time.
//////Action = S =∫t2t1(KE−PE)dt.
//////Remember that the PE and KE are both functions of time.For each different possible path you get a different number for this action.Our mathematical problem is to find out for what curve that number is the least.
//////“You say—Oh, that’s just the ordinary calculus of maxima and minima.You calculate the action and just differentiate to find the minimum.
//////“But watch out. Ordinarily we just have a function of some variable, and we have to find the value of that variable where the function is least or most.For instance, we have a rod which has been heated in the middle and the heat is spread around. For each point on the rod we have a temperature, and we must find the point at which that temperature is largest.But now for each path in space we have a number—quite a different thing—and we have to find the path in space for which the number is the minimum. That is a completely different branch of mathematics.It is not the ordinary calculus.In fact, it is called the calculus of variations.
//////“There are many problems in this kind of mathematics.For example, the circle is usually defined as the locus of all points at a constant distance from a fixed point, but another way of defining a circle is this: a circle is that curve of given length which encloses the biggest area. Any other curve encloses less area for a given perimeter than the circle does.So if we give the problem: find that curve which encloses the greatest area for a given perimeter, we would have a problem of the calculus of variations—a different kind of calculus than you’re used to.
//////“So we make the calculation for the path of an object.Here is the way we are going to do it.The idea is that we imagine that there is a true path and that any other curve we draw is a false path, so that if we calculate the action for the false path we will get a value that is bigger than if we calculate the action for the true path(Fig. 19–7).
//////https://www.feynmanlectures.caltech.edu/
//////“Problem: Find the true path.Where is it ? One way, of course, is to calculate the action for millions and millions of paths and look at which one is lowest.When you find the lowest one, that’s the true path.
//////“That’s a possible way.But we can do it better than that.When we have a quantity which has a minimum—for instance, in an ordinary function like the temperature—one of the properties of the minimum is that if we go away from the minimum in the first order, the deviation of the function from its minimum value is only second order.At any place else on the curve, if we move a small distance the value of the function changes also in the first order.But at a minimum, a tiny motion away makes, in the first approximation, no difference(Fig. 19–8).
/// https://opentextbc.ca/graphicdesign/chapter/3-3-compositional-principles-strategies-for-arranging-things-better/
//////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 1].Cells[0].Value = "KEEP_AS_NATURAL_OUTPUTS(YES)_OTHERWISE_FILL(NO)";
//////public static bool PUBLIC_STATIC_BOOL______KEEP_AS_NATURAL_OUTPUTS_YES__OTHERWISE_FILL_NO______144 = false;
//this is very important for the extensions of Geometrifying Trigonometry for other conditions of geometry handlings use cases
//we will do extensive researches on these combinations of working for the necessary conditions of setups
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 1].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______KEEP_AS_NATURAL_OUTPUTS_YES__OTHERWISE_FILL_NO______144
= true;
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
{
int _temp_commands_strings_length
=
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Length;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length <= _temp_commands_strings_length)
{
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value
//////=
//////(new String('R', _temp_commands_strings_length)).ToString();
///
string ___temp_data_string_found_in___orientation_string = "";
___temp_data_string_found_in___orientation_string
=
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString();
string new_orientation_string_formed = "";
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length <= _temp_commands_strings_length)
{
/// this is patterns repeater
for (int kkk = 0; kkk < (int)(_temp_commands_strings_length / ___temp_data_string_found_in___orientation_string.Length) + 1; kkk++)
{
new_orientation_string_formed
=
///(new String('R', _temp_commands_strings_length)).ToString();
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString()
//////+
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString();
new_orientation_string_formed
+
___temp_data_string_found_in___orientation_string;
}//for(int kkk=0;kkk<(int)(_temp_commands_strings_length/ ___temp_data_string_found_in___orientation_string.Length)+1; kkk++)
/// THIS PATTERN REPEAT IS NECESSARY TO DO AUTO CORRECTIONS
/// /// THIS PATTERN REPEAT IS NECESSARY TO DO AUTO CORRECTIONS
/// /// THIS PATTERN REPEAT IS NECESSARY TO DO AUTO CORRECTIONS
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value
=
new_orientation_string_formed
;
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length<= _temp_commands_strings_length)
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length<= _temp_commands_strings_length)
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value!=null)
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.orientation_string
= dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[2].Value.ToString();
}// if(dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value!=null)
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______KEEP_AS_NATURAL_OUTPUTS_YES__OTHERWISE_FILL_NO______144
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 1].Cells[1].Value != null)
//////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 1].Cells[0].Value = "PUBLIC_STATIC_BOOL______ORIENTOR__AS_PER_138_139_140_DATA_YES____OTHERWISE_NO______145";
//////public static bool PUBLIC_STATIC_BOOL______ORIENTOR__AS_PER_138_139_140_DATA_YES____OTHERWISE_NO______145= false;
//this is very important for the extensions of Geometrifying Trigonometry for other conditions of geometry handlings use cases
//we will do extensive researches on these combinations of working for the necessary conditions of setups
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 2].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______ORIENTOR__AS_PER_138_139_140_DATA_YES____OTHERWISE_NO______145
= true;
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
{
int _temp_commands_strings_length
=
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Length;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length <= _temp_commands_strings_length)
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value
=
(new String('O', _temp_commands_strings_length)).ToString();
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length<= _temp_commands_strings_length)
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value!=null)
}// if(dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value!=null)
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_BOOL______ORIENTOR__AS_PER_138_139_140_DATA_YES____OTHERWISE_NO______145
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 2].Cells[1].Value != null)
//////////// dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[0].Value = "ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888...";
//////public static bool PUBLIC_STATIC_STRING_TO_TAKE_AS_CHAR_ARRAY______ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888_OR_FFFFFF___146 = false;
//this is very important for the extensions of Geometrifying Trigonometry for other conditions of geometry handlings use cases
//we will do extensive researches on these combinations of working for the necessary conditions of setups
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value != null)
{
/// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
// {
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_TO_TAKE_AS_CHAR_ARRAY______ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888_OR_FFFFFF___146
= dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString();//////.ToUpper();
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.orientation_string
=
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_TO_TAKE_AS_CHAR_ARRAY______ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888_OR_FFFFFF___146;
///dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[2].Value.ToString();
if (
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_TO_TAKE_AS_CHAR_ARRAY______ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888_OR_FFFFFF___146
.TrimEnd().TrimStart().Trim().Length
<
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.command_string.Length
)
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1]
.Style.BackColor = Color.PaleVioletRed;
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1]
.Style.ForeColor = Color.White;
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
{
int _temp_commands_strings_length
=
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().Length;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length <= _temp_commands_strings_length)
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value
=
(new String('R', _temp_commands_strings_length)).ToString();
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value.ToString().Length<= _temp_commands_strings_length)
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1].Value!=null)
}// if(dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value!=null)
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
////////////////////////////////////////I HAD TO DO THIS SAFE SIDE THINGS TO AVOID LOTS OF ERRORS WHEN SMALLER TO LARGER COMMANDS ARE ENTERED /////////
/// WE WILL DO SOME VALIDATIONS ON THIS LATER
///
/// to do char array for controlling the orientations
/// TOOOOO IMPORTANT CALL DONE HERE FOR TRIANGLES LINE SEGMENTS ORIENTABILITY CONDITIONS
/// TOOOOO IMPORTANT CALL DONE HERE FOR TRIANGLES LINE SEGMENTS ORIENTABILITY CONDITIONS
/// TOOOOO IMPORTANT CALL DONE HERE FOR TRIANGLES LINE SEGMENTS ORIENTABILITY CONDITIONS
///
if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
ORIENTOR_CHARACTER_FINDER_CHAR_ARRAY____commands_character_array != null)
{
Array.Clear
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
ORIENTOR_CHARACTER_FINDER_CHAR_ARRAY____commands_character_array
,
0
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
ORIENTOR_CHARACTER_FINDER_CHAR_ARRAY____commands_character_array
.Length
);
}
//////if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
////// ORIENTOR_CHARACTER_FINDER_CHAR_ARRAY____commands_character_array != null)
///
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.orientation_string
=
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_TO_TAKE_AS_CHAR_ARRAY______ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888_OR_FFFFFF___146
;
///dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[2].Value.ToString();
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
ORIENTOR_CHARACTER_FINDER_CHAR_ARRAY____commands_character_array =
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_TO_TAKE_AS_CHAR_ARRAY______ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888_OR_FFFFFF___146
.TrimEnd().TrimStart().Trim()
.ToCharArray();
//////ExcelFormulaParser_GT_PARSER
//////.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.command_string.ToCharArray();
//////char[] _tempchararraytocheck =
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////commands_character_array;
}
else
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1]
.Style.BackColor = Color.LightBlue;
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[1]
.Style.ForeColor = Color.Black;
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.orientation_string
=
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_TO_TAKE_AS_CHAR_ARRAY______ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888_OR_FFFFFF___146;
///dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[2].Value.ToString();
///
/// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
////// DEFAULT IS TAKEN R WHICH MEANS WE HAVE KEPT THE THINGS AS CONSTRUCTIONS PROTOCOLS ARE GIVING TO US DIRECTLY
/// ////// DEFAULT IS TAKEN R WHICH MEANS WE HAVE KEPT THE THINGS AS CONSTRUCTIONS PROTOCOLS ARE GIVING TO US DIRECTLY
/// ////// DEFAULT IS TAKEN R WHICH MEANS WE HAVE KEPT THE THINGS AS CONSTRUCTIONS PROTOCOLS ARE GIVING TO US DIRECTLY
/// ////// DEFAULT IS TAKEN R WHICH MEANS WE HAVE KEPT THE THINGS AS CONSTRUCTIONS PROTOCOLS ARE GIVING TO US DIRECTLY
///
/// ///
dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 3].Cells[2].Value
=
"O/A/C/R/S/N/M/H=(A-H)/B=(A-B)/P=(A-P)/h=(C-H)/b=(C-B)/p=(C-P) reversing single side is also allowed now WHERE O (ORIENTED AS PER 138 139 140 ROWS HERE ABOVE) A (ANTI CLOCK) C (CLOCK) R (RANDOM/REAL NATURAL WHICHEVER CONSTRUCTIONS INITIAL PROTOCOL TAKES) S (SWAP R OUTPUTS) N(COMPLEMENTS SWAPS) M (MINIMUM ENERGY) AND WE NEED TO THINK OTHER 32 CASES OF ARRANGEMENTS POSSIBLE 1248GFV1248GFV1248GFV1248GFV1248GFV1248GFV1248GFV";
////// DEFAULT IS TAKEN R WHICH MEANS WE HAVE KEPT THE THINGS AS CONSTRUCTIONS PROTOCOLS ARE GIVING TO US DIRECTLY
/// ////// DEFAULT IS TAKEN R WHICH MEANS WE HAVE KEPT THE THINGS AS CONSTRUCTIONS PROTOCOLS ARE GIVING TO US DIRECTLY
/// ////// DEFAULT IS TAKEN R WHICH MEANS WE HAVE KEPT THE THINGS AS CONSTRUCTIONS PROTOCOLS ARE GIVING TO US DIRECTLY
/// ////// DEFAULT IS TAKEN R WHICH MEANS WE HAVE KEPT THE THINGS AS CONSTRUCTIONS PROTOCOLS ARE GIVING TO US DIRECTLY
/// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// /// TO SHOW THE REFERENCES
/// WE WILL DO SOME VALIDATIONS ON THIS LATER
///
/// to do char array for controlling the orientations
/// TOOOOO IMPORTANT CALL DONE HERE FOR TRIANGLES LINE SEGMENTS ORIENTABILITY CONDITIONS
/// TOOOOO IMPORTANT CALL DONE HERE FOR TRIANGLES LINE SEGMENTS ORIENTABILITY CONDITIONS
/// TOOOOO IMPORTANT CALL DONE HERE FOR TRIANGLES LINE SEGMENTS ORIENTABILITY CONDITIONS
///
if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
ORIENTOR_CHARACTER_FINDER_CHAR_ARRAY____commands_character_array != null)
{
Array.Clear
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
ORIENTOR_CHARACTER_FINDER_CHAR_ARRAY____commands_character_array
,
0
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
ORIENTOR_CHARACTER_FINDER_CHAR_ARRAY____commands_character_array
.Length
);
}
//////if (ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
////// ORIENTOR_CHARACTER_FINDER_CHAR_ARRAY____commands_character_array != null)
///
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
ORIENTOR_CHARACTER_FINDER_CHAR_ARRAY____commands_character_array =
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_TO_TAKE_AS_CHAR_ARRAY______ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888_OR_FFFFFF___146
.TrimEnd().TrimStart().Trim()
.ToCharArray();
//////ExcelFormulaParser_GT_PARSER
//////.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.command_string.ToCharArray();
//////char[] _tempchararraytocheck =
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////commands_character_array;
}
////// if (
//////public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_TO_TAKE_AS_CHAR_ARRAY______ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888_OR_FFFFFF___146
//////.TrimEnd().TrimStart().Trim().Length
////// !=
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
////// .command_string.Length
////// )
////// public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_STRING_TO_TAKE_AS_CHAR_ARRAY______ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888_OR_FFFFFF___146
////// = "000000;
////// }
//////else
////// {
////// public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_STRING_TO_TAKE_AS_CHAR_ARRAY______ORIENTOR_SEQUENCE_SAME_LENGTH_AS_COMMAND_888888_OR_FFFFFF___146
////// =
////// false;
////// }//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[143 + 2].Cells[1].Value != null)
/// GGGGGG WILL DO HERE
/// dataGridViewFOR_GT_PRESETS_DATA.Rows[147].Cells[1].Value = "0.01";// "OUTPUT_LINE_THICKNESS_IN_GTSIMPLEX";
/// dataGridViewFOR_GT_PRESETS_DATA.Rows[148].Cells[1].Value = "0.01";// "COMPLEMENT_LINE_THICKNESS_IN_GTSIMPLEX";
/// dataGridViewFOR_GT_PRESETS_DATA.Rows[149].Cells[1].Value = "0.01";// "GIVEN_LINE_THICKNESS_IN_GTSIMPLEX";
///
//////public static double PUBLIC_STATIC_DOUBLE______OUTPUT_LINE_THICKNESS_IN_GTSIMPLEX______147 = 0.01;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[147].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[147].Cells[1].Value
.ToString()
.Trim().TrimEnd().TrimStart().ToUpper()
.Length > 0
)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______OUTPUT_LINE_THICKNESS_IN_GTSIMPLEX______147
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[147].Cells[1].Value.ToString());
}
catch (Exception _excp_to_convert_thickness_of_pen_for_displaying)
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[147].Cells[1].Value = "0.01";
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______OUTPUT_LINE_THICKNESS_IN_GTSIMPLEX______147
= 0.01;
}//catch(Exception _excp_to_convert_thickness_of_pen_for_displaying)
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______OUTPUT_LINE_THICKNESS_IN_GTSIMPLEX______147
= 0.01;
}
/////else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[147].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______OUTPUT_LINE_THICKNESS_IN_GTSIMPLEX______147
= 0.01;
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[147].Cells[1].Value != null)
//////public static double PUBLIC_STATIC_DOUBLE______COMPLEMENT_LINE_THICKNESS_IN_GTSIMPLEX______148 = 0.01;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[148].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[148].Cells[1].Value
.ToString()
.Trim().TrimEnd().TrimStart().ToUpper()
.Length > 0
)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______COMPLEMENT_LINE_THICKNESS_IN_GTSIMPLEX______148
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[148].Cells[1].Value.ToString());
}
catch (Exception _excp_to_convert_thickness_of_pen_for_displaying)
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[148].Cells[1].Value = "0.01";
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______COMPLEMENT_LINE_THICKNESS_IN_GTSIMPLEX______148
= 0.01;
}//catch(Exception _excp_to_convert_thickness_of_pen_for_displaying)
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______COMPLEMENT_LINE_THICKNESS_IN_GTSIMPLEX______148
= 0.01;
}
/////else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[148].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}
else
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[148].Cells[1].Value = "0.01";
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______COMPLEMENT_LINE_THICKNESS_IN_GTSIMPLEX______148
= 0.01;
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[148].Cells[1].Value != null)
//////public static double PUBLIC_STATIC_DOUBLE______GIVEN_LINE_THICKNESS_IN_GTSIMPLEX______149 = 0.01;
///
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[149].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[149].Cells[1].Value
.ToString()
.Trim().TrimEnd().TrimStart().ToUpper()
.Length > 0
)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______GIVEN_LINE_THICKNESS_IN_GTSIMPLEX______149
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[149].Cells[1].Value.ToString());
}
catch (Exception _excp_to_convert_thickness_of_pen_for_displaying)
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[149].Cells[1].Value = "0.01";
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______GIVEN_LINE_THICKNESS_IN_GTSIMPLEX______149
= 0.01;
}//catch(Exception _excp_to_convert_thickness_of_pen_for_displaying)
}
else
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[149].Cells[1].Value = "0.01";
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______GIVEN_LINE_THICKNESS_IN_GTSIMPLEX______149
= 0.01;
}
/////else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[149].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______GIVEN_LINE_THICKNESS_IN_GTSIMPLEX______149
= 0.01;
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[149].Cells[1].Value != null)
//////public static double PUBLIC_STATIC_DOUBLE______GIVEN_LINE_THICKNESS_IN_GTSIMPLEX______149 = 0.01;
///
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[150].Cells[1].Value = "NO";// "TO_SHOW_THICK_OUTPUT_LINES_IN_GTSIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[151].Cells[1].Value = "NO";// "TO_SHOW_THICK_COMPLEMENT_LINES_IN_GTSIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[152].Cells[1].Value = "NO";// "TO_SHOW_THICK_GIVEN_LINES_IN_GTSIMPLEX_YES_NO";
////////////public static bool PUBLIC_STATIC_BOOL______TO_SHOW_THICK_OUTPUT_LINES_IN_GTSIMPLEX_YES_NO______150 = false;
////////////public static bool PUBLIC_STATIC_BOOL______TO_SHOW_THICK_COMPLEMENT_LINES_IN_GTSIMPLEX_YES_NO______151 = false;
////////////public static bool PUBLIC_STATIC_BOOL______TO_SHOW_THICK_OUTPUT_LINES_IN_GTSIMPLEX_YES_NO______152 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[150].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[150].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_THICK_OUTPUT_LINES_IN_GTSIMPLEX_YES_NO______150
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_THICK_OUTPUT_LINES_IN_GTSIMPLEX_YES_NO______150
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[150].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[150].Cells[1].Value != null)
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[151].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[151].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_THICK_COMPLEMENT_LINES_IN_GTSIMPLEX_YES_NO______151
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_THICK_COMPLEMENT_LINES_IN_GTSIMPLEX_YES_NO______151
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[151].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[151].Cells[1].Value != null)
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[152].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[152].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_THICK_OUTPUT_LINES_IN_GTSIMPLEX_YES_NO______152
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_THICK_OUTPUT_LINES_IN_GTSIMPLEX_YES_NO______152
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[152].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[152].Cells[1].Value != null)
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[153].Cells[1].Value = "YES";// "TO_SHOW_CIRCUM_CENTER_OF_EACH_TRIANGLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[154].Cells[1].Value = "YES"; // "TO_SHOW_IN_CENTER_OF_EACH_TRIANGLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[155].Cells[1].Value = "YES";// "TO_SHOW_ORTHO_CENTER_OF_EACH_TRIANGLE___YES_NO";
///
//////public static bool PUBLIC_STATIC_BOOL______TO_SHOW_CIRCUM_CENTER_OF_EACH_TRIANGLE___YES_NO______153 = false;
//////public static bool PUBLIC_STATIC_BOOL______TO_SHOW_IN_CENTER_OF_EACH_TRIANGLE___YES_NO______154 = false;
//////public static bool PUBLIC_STATIC_BOOL______TO_SHOW_ORTHO_CENTER_OF_EACH_TRIANGLE___YES_NO______155 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[153].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[153].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_CIRCUM_CENTER_OF_EACH_TRIANGLE___YES_NO______153
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_CIRCUM_CENTER_OF_EACH_TRIANGLE___YES_NO______153
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[153].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[153].Cells[1].Value != null)
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[154].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[154].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_IN_CENTER_OF_EACH_TRIANGLE___YES_NO______154
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_IN_CENTER_OF_EACH_TRIANGLE___YES_NO______154
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[154].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[154].Cells[1].Value != null)
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[155].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[155].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_ORTHO_CENTER_OF_EACH_TRIANGLE___YES_NO______155
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_ORTHO_CENTER_OF_EACH_TRIANGLE___YES_NO______155
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[155].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[155].Cells[1].Value != null)
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[156].Cells[0].Value = "TO_CALCULATE_THEOREMS_CIRCLES_WITH_UNIQUE_POINTS___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[156 + 1].Cells[0].Value = "TO_CALCULATE_THEOREMS_LINE_RAYS_WITH_UNIQUE_POINTS___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[156 + 2].Cells[0].Value = "TO_CALCULATE_THEOREMS_SEGMENTS_WITH_UNIQUE_POINTS___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[159].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_INTERSECTIONS_IN_GTSIMPLEX___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[160].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_OUTPUT_POINTS_IN_GTSIMPLEX___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[161].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_COMPLEMENT_POINTS_IN_GTSIMPLEX___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[162].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_HYPOTENUSE_POINTS_IN_GTSIMPLEX___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[163].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_BASE_POINTS_IN_GTSIMPLEX___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[164].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_PERPENDICULAR_POINTS_IN_GTSIMPLEX___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[156].Cells[0].Value = "TO_CALCULATE_THEOREMS_CIRCLES_WITH_UNIQUE_POINTS___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[156 + 1].Cells[0].Value = "TO_CALCULATE_THEOREMS_LINE_RAYS_WITH_UNIQUE_POINTS___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[156 + 2].Cells[0].Value = "TO_CALCULATE_THEOREMS_SEGMENTS_WITH_UNIQUE_POINTS___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[159].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_INTERSECTIONS_IN_GTSIMPLEX___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[160].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_OUTPUT_POINTS_IN_GTSIMPLEX___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[161].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_COMPLEMENT_POINTS_IN_GTSIMPLEX___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[162].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_HYPOTENUSE_POINTS_IN_GTSIMPLEX___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[163].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_BASE_POINTS_IN_GTSIMPLEX___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[164].Cells[0].Value = "TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_PERPENDICULAR_POINTS_IN_GTSIMPLEX___YES_NO";
//////public static bool PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_CIRCLES_WITH_UNIQUE_POINTS___YES_NO______156 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[156].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[156].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_CIRCLES_WITH_UNIQUE_POINTS___YES_NO______156
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_CIRCLES_WITH_UNIQUE_POINTS___YES_NO______156
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[156].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[156].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_LINE_RAYS_WITH_UNIQUE_POINTS___YES_NO______157 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[157].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[157].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_LINE_RAYS_WITH_UNIQUE_POINTS___YES_NO______157
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_LINE_RAYS_WITH_UNIQUE_POINTS___YES_NO______157
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[157].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[157].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_SEGMENTS_WITH_UNIQUE_POINTS___YES_NO______158 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[158].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[158].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_SEGMENTS_WITH_UNIQUE_POINTS___YES_NO______158
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_SEGMENTS_WITH_UNIQUE_POINTS___YES_NO______158
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[158].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[158].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_INTERSECTIONS_IN_GTSIMPLEX___YES_NO______159 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[159].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[159].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_INTERSECTIONS_IN_GTSIMPLEX___YES_NO______159
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_INTERSECTIONS_IN_GTSIMPLEX___YES_NO______159
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[159].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[159].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_OUTPUT_POINTS_IN_GTSIMPLEX___YES_NO______160 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[160].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[160].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_OUTPUT_POINTS_IN_GTSIMPLEX___YES_NO______160
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_OUTPUT_POINTS_IN_GTSIMPLEX___YES_NO______160
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[160].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[160].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_COMPLEMENT_POINTS_IN_GTSIMPLEX___YES_NO______161 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[161].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[161].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_COMPLEMENT_POINTS_IN_GTSIMPLEX___YES_NO______161
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_COMPLEMENT_POINTS_IN_GTSIMPLEX___YES_NO______161
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[161].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[161].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_HYPOTENUSE_POINTS_IN_GTSIMPLEX___YES_NO______162 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[162].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[162].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_HYPOTENUSE_POINTS_IN_GTSIMPLEX___YES_NO______162
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_HYPOTENUSE_POINTS_IN_GTSIMPLEX___YES_NO______162
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[162].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[162].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_BASE_POINTS_IN_GTSIMPLEX___YES_NO______163 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[163].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[163].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_BASE_POINTS_IN_GTSIMPLEX___YES_NO______163
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_BASE_POINTS_IN_GTSIMPLEX___YES_NO______163
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[163].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[163].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_PERPENDICULAR_POINTS_IN_GTSIMPLEX___YES_NO______164 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[164].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[164].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_PERPENDICULAR_POINTS_IN_GTSIMPLEX___YES_NO______164
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_CALCULATE_THEOREMS_WITH_ALL_CUMULATIVE_SUM_PERPENDICULAR_POINTS_IN_GTSIMPLEX___YES_NO______164
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[164].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[164].Cells[1].Value != null)
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[165].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_GTSIMPLEX_CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[165].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[166].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_OUTPUTS_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[166].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[166 + 1].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_CUMULATIVE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[166 + 1].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[168].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_HYPOTENUSE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[168].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[169].Cells[1].Value = "NO";// "GENERATE_MIDI_WITH_BASE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[169].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[170].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_PERPENDICULAR_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[170].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////public static bool PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_GTSIMPLEX_CIRCUMSCRIBING_CIRCLE___YES_NO______165 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[165].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[165].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_GTSIMPLEX_CIRCUMSCRIBING_CIRCLE___YES_NO______165
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_GTSIMPLEX_CIRCUMSCRIBING_CIRCLE___YES_NO______165
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[165].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[165].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_OUTPUTS_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______166 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[166].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[166].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_OUTPUTS_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______166
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_OUTPUTS_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______166
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[166].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[166].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_CUMULATIVE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______167 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[167].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[167].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_CUMULATIVE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______167
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_CUMULATIVE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______167
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[167].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[167].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_HYPOTENUSE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______168 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[168].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[168].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_HYPOTENUSE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______168
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_HYPOTENUSE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______168
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[168].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[168].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_BASE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______169 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[169].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[169].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_BASE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______169
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_BASE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______169
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[169].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[169].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_PERPENDICULAR_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______170 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[170].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[170].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_PERPENDICULAR_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______170
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______GENERATE_MIDI_WITH_PERPENDICULAR_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO______170
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[170].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[170].Cells[1].Value != null)
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[165].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_GTSIMPLEX_CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[165].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[166].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_OUTPUTS_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[166].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[166 + 1].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_CUMULATIVE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[166 + 1].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[168].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_HYPOTENUSE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[168].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[169].Cells[1].Value = "NO";// "GENERATE_MIDI_WITH_BASE_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[169].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[170].Cells[1].Value = "NO";//"GENERATE_MIDI_WITH_PERPENDICULAR_CUMULATIVE_SUMS__CIRCUMSCRIBING_CIRCLE___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[170].Cells[1].Style.BackColor = Color.PaleTurquoise;
//////PUBLIC_STATIC_DOUBLE______SIZE_OF_CIRCLES_FOR_ACCUMULATED_FOUND_POINTS_FOR_THEOREMS_SEARCHING______171
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[171].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[171].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length > 0)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______SIZE_OF_CIRCLES_FOR_ACCUMULATED_FOUND_POINTS_FOR_THEOREMS_SEARCHING______171
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[171].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception _excp_to_convert)
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______SIZE_OF_CIRCLES_FOR_ACCUMULATED_FOUND_POINTS_FOR_THEOREMS_SEARCHING______171
= 6;
}//catch(Exception _excp_to_convert)
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______SIZE_OF_CIRCLES_FOR_ACCUMULATED_FOUND_POINTS_FOR_THEOREMS_SEARCHING______171
=
6;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[171].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[171].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_SHOW_RADIUS_OF_IN_CIRCLE___YES_NO______172 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[172].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[172].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_RADIUS_OF_IN_CIRCLE___YES_NO______172
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_RADIUS_OF_IN_CIRCLE___YES_NO______172
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[172].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[172].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_INCENTER_IN_THEOREMS_POINT_SET___YES_NO______173 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[173].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[173].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_INCENTER_IN_THEOREMS_POINT_SET___YES_NO______173
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_INCENTER_IN_THEOREMS_POINT_SET___YES_NO______173
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[173].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[173].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_ORTHOCENTER_IN_THEOREMS_POINT_SET___YES_NO______174 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[174].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[174].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_ORTHOCENTER_IN_THEOREMS_POINT_SET___YES_NO______174
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_ORTHOCENTER_IN_THEOREMS_POINT_SET___YES_NO______174
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[174].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[174].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_CIRCUM_CENTER_IN_THEOREMS_POINT_SET___YES_NO______175 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[175].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[175].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_CIRCUM_CENTER_IN_THEOREMS_POINT_SET___YES_NO______175
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_CIRCUM_CENTER_IN_THEOREMS_POINT_SET___YES_NO______175
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[175].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[175].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_HYPOTENUSE_IN_THEOREMS_POINT_SET___YES_NO______176 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[176].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[176].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_HYPOTENUSE_IN_THEOREMS_POINT_SET___YES_NO______176
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_HYPOTENUSE_IN_THEOREMS_POINT_SET___YES_NO______176
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[176].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[176].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_BASE_IN_THEOREMS_POINT_SET___YES_NO______177 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[177].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[177].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_BASE_IN_THEOREMS_POINT_SET___YES_NO______177
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_BASE_IN_THEOREMS_POINT_SET___YES_NO______177
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[177].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[177].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_PERPENDICULAR_IN_THEOREMS_POINT_SET___YES_NO______178 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[178].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[178].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_PERPENDICULAR_IN_THEOREMS_POINT_SET___YES_NO______178
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_SHOW_EXTERNAL_CIRCLE_TOUCHING_PERPENDICULAR_IN_THEOREMS_POINT_SET___YES_NO______178
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[178].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[178].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_CENTER_OF_HYPOTENUSE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______179 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[179].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[179].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_CENTER_OF_HYPOTENUSE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______179
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_CENTER_OF_HYPOTENUSE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______179
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[179].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[179].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_CENTER_OF_BASE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______180 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[180].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[180].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_CENTER_OF_BASE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______180
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_CENTER_OF_BASE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______180
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[180].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[180].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_CENTER_OF_PERPENDICULAR_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______181 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[181].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[181].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_CENTER_OF_PERPENDICULAR_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______181
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_CENTER_OF_PERPENDICULAR_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______181
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[181].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[181].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_HYPOTENUSE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______182 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[182].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[182].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_HYPOTENUSE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______182
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_HYPOTENUSE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______182
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[182].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[182].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_BASE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______183 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[183].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[183].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_BASE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______183
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_BASE_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______183
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[183].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[183].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_PERPENDICULAR_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______184 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[184].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[184].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_PERPENDICULAR_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______184
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_PERPENDICULAR_TOUCHING_EXTERIOR_CIRCLE_IN_THEOREMS_POINT_SET___YES_NO______184
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[184].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[184].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_HYPOTENUSE_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO______185 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[185].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[185].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_HYPOTENUSE_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO______185
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_HYPOTENUSE_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO______185
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[185].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[185].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_BASE_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO______186 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[186].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[186].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_BASE_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO______186
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_BASE_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO______186
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[186].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[186].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_PERPENDICULAR_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO______187 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[187].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[187].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_PERPENDICULAR_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO______187
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TOUCHPOINT_OF_PERPENDICULAR_TOUCHING_POINT_OF_INCIRCLE_IN_THEOREMS_POINT_SET___YES_NO______187
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[187].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[187].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_OUTPUT_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO______188 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[188].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[188].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_OUTPUT_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO______188
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_OUTPUT_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO______188
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[188].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[188].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_COMPLEMENT_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO______189 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[189].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[189].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_COMPLEMENT_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO______189
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_COMPLEMENT_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO______189
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[189].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[189].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_GIVEN_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO______190 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[190].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[190].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_GIVEN_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO______190
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_GIVEN_MIDPOINTS_IN_THEOREMS_POINT_SET___YES_NO______190
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[190].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[190].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_TRIANGLE_CG_IN_THEOREMS_POINT_SET___YES_NO______191 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[191].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[191].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TRIANGLE_CG_IN_THEOREMS_POINT_SET___YES_NO______191
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_TRIANGLE_CG_IN_THEOREMS_POINT_SET___YES_NO______191
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[191].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[191].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_LINE_SEGMENTS_INTERIOR_INTERSECTIONS_IN_THEOREMS_POINT_SET___YES_NO______192 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[192].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[192].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_LINE_SEGMENTS_INTERIOR_INTERSECTIONS_IN_THEOREMS_POINT_SET___YES_NO______192
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_LINE_SEGMENTS_INTERIOR_INTERSECTIONS_IN_THEOREMS_POINT_SET___YES_NO______192
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[192].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[192].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_LINE_SEGMENTS_EXTERIOR_INTERSECTIONS_IN_THEOREMS_POINT_SET___YES_NO______194 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[194].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[194].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_LINE_SEGMENTS_EXTERIOR_INTERSECTIONS_IN_THEOREMS_POINT_SET___YES_NO______194
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_LINE_SEGMENTS_EXTERIOR_INTERSECTIONS_IN_THEOREMS_POINT_SET___YES_NO______194
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[194].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[194].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_PIVOT_POINTS_IN_THEOREMS_POINT_SET___YES_NO______195 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[195].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[195].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_PIVOT_POINTS_IN_THEOREMS_POINT_SET___YES_NO______195
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_PIVOT_POINTS_IN_THEOREMS_POINT_SET___YES_NO______195
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[195].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[195].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_STRETCH_POINTS_IN_THEOREMS_POINT_SET___YES_NO______196 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[196].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[196].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_STRETCH_POINTS_IN_THEOREMS_POINT_SET___YES_NO______196
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_STRETCH_POINTS_IN_THEOREMS_POINT_SET___YES_NO______196
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[196].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[196].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE_NODAL_POINTS_IN_THEOREMS_POINT_SET___YES_NO______197 = false;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[197].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[197].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_NODAL_POINTS_IN_THEOREMS_POINT_SET___YES_NO______197
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE_NODAL_POINTS_IN_THEOREMS_POINT_SET___YES_NO______197
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[197].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[197].Cells[1].Value != null)
//////public static double PUBLIC_STATIC_DOUBLE______TOLERANCE_DOUBLE_VALUE_TO_CONSIDER_WE_CAN_INCLUDE_POINT_IN_SAME_CIRCLE_OR_NOT_DEFAULT_0_01________198 = 0.01;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[198].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[198].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length > 0)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______TOLERANCE_DOUBLE_VALUE_TO_CONSIDER_WE_CAN_INCLUDE_POINT_IN_SAME_CIRCLE_OR_NOT_DEFAULT_0_01________198
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[198].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception _excp_to_convert)
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______TOLERANCE_DOUBLE_VALUE_TO_CONSIDER_WE_CAN_INCLUDE_POINT_IN_SAME_CIRCLE_OR_NOT_DEFAULT_0_01________198
= 0.01;
}//catch(Exception _excp_to_convert)
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______TOLERANCE_DOUBLE_VALUE_TO_CONSIDER_WE_CAN_INCLUDE_POINT_IN_SAME_CIRCLE_OR_NOT_DEFAULT_0_01________198
=
0.01;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[198].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[198].Cells[1].Value != null)
//////public static double PUBLIC_STATIC_DOUBLE______THICKNESS_INCREASING_TO_CIRCLES_PER_INCREASING_OF_ADDITIONAL_POINTS_IN_THAT_DEFAULT_POINTS_COUNT_BY_10________199 = 0.1;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[199].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[199].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length > 0)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______THICKNESS_INCREASING_TO_CIRCLES_PER_INCREASING_OF_ADDITIONAL_POINTS_IN_THAT_DEFAULT_POINTS_COUNT_BY_10________199
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[199].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception _excp_to_convert)
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______THICKNESS_INCREASING_TO_CIRCLES_PER_INCREASING_OF_ADDITIONAL_POINTS_IN_THAT_DEFAULT_POINTS_COUNT_BY_10________199
= 0.01;
}//catch(Exception _excp_to_convert)
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______THICKNESS_INCREASING_TO_CIRCLES_PER_INCREASING_OF_ADDITIONAL_POINTS_IN_THAT_DEFAULT_POINTS_COUNT_BY_10________199
=
0.01;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[199].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[199].Cells[1].Value != null)
//////public static double PUBLIC_STATIC_DOUBLE______TO_SHOW_ONLY_THOSE_3_OR_MORE_POINTS_CIRCLES_WHICH_PASS_THROUGH_3_PLUS_K_POINTS___DEFAULT_K_VALUE_0______200 = 0;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[200].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[200].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length > 0)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______TO_SHOW_ONLY_THOSE_3_OR_MORE_POINTS_CIRCLES_WHICH_PASS_THROUGH_3_PLUS_K_POINTS___DEFAULT_K_VALUE_0______200
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[200].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception _excp_to_convert)
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______TO_SHOW_ONLY_THOSE_3_OR_MORE_POINTS_CIRCLES_WHICH_PASS_THROUGH_3_PLUS_K_POINTS___DEFAULT_K_VALUE_0______200
= 0;
}//catch(Exception _excp_to_convert)
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______TO_SHOW_ONLY_THOSE_3_OR_MORE_POINTS_CIRCLES_WHICH_PASS_THROUGH_3_PLUS_K_POINTS___DEFAULT_K_VALUE_0______200
=
0;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[200].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[200].Cells[1].Value != null)
////// PUBLIC_STATIC_BOOL______DO_YOU_NEED_SPECIAL_HIGHLIGHTING_OF_CENTERS_OF_3_PLUS_K_POINT_CIRCLES_YES_NO______201
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[201].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[201].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______DO_YOU_NEED_SPECIAL_HIGHLIGHTING_OF_CENTERS_OF_3_PLUS_K_POINT_CIRCLES_YES_NO______201
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______DO_YOU_NEED_SPECIAL_HIGHLIGHTING_OF_CENTERS_OF_3_PLUS_K_POINT_CIRCLES_YES_NO______201
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[201].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[201].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE__MIDPOINT_OF_HYPOTENUSE_IN_THEOREMS_POINT_SET___YES_NO______202 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[202].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[202].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE__MIDPOINT_OF_HYPOTENUSE_IN_THEOREMS_POINT_SET___YES_NO______202
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE__MIDPOINT_OF_HYPOTENUSE_IN_THEOREMS_POINT_SET___YES_NO______202
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[202].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[202].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE__MIDPOINT_OF_BASE_IN_THEOREMS_POINT_SET___YES_NO______203 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[203].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[203].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE__MIDPOINT_OF_BASE_IN_THEOREMS_POINT_SET___YES_NO______203
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE__MIDPOINT_OF_BASE_IN_THEOREMS_POINT_SET___YES_NO______203
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[203].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[203].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE__MIDPOINT_OF_PERPENDICULAR_IN_THEOREMS_POINT_SET___YES_NO______204 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[204].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[204].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE__MIDPOINT_OF_PERPENDICULAR_IN_THEOREMS_POINT_SET___YES_NO______204
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE__MIDPOINT_OF_PERPENDICULAR_IN_THEOREMS_POINT_SET___YES_NO______204
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[204].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[204].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[207].Cells[1].Value = "N";// "DO_YOU_NEED_LINE_RAY_FINDING_CALCULATIONS_LOGGING___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[207].Cells[0].Style.BackColor = Color.LightSlateGray;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[208].Cells[1].Value = "N";// "DO_YOU_NEED_CIRCLE_CHORDS_MINS_MAX_DISTANCES_LOGGING___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[208].Cells[0].Style.BackColor = Color.LightSlateGray;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[209].Cells[1].Value = "N";// "DO_YOU_NEED_DATA_ACCUMULATIONS_LOGGING_FOR_POINTS___YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[209].Cells[0].Style.BackColor = Color.LightSlateGray;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//PUBLIC_STATIC_BOOL______DO_YOU_NEED_LINE_RAY_FINDING_CALCULATIONS_LOGGING___YES_NO______207
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[207].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[207].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______DO_YOU_NEED_LINE_RAY_FINDING_CALCULATIONS_LOGGING___YES_NO______207
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______DO_YOU_NEED_LINE_RAY_FINDING_CALCULATIONS_LOGGING___YES_NO______207
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[207].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[207].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______DO_YOU_NEED_CIRCLE_CHORDS_MINS_MAX_DISTANCES_LOGGING___YES_NO___YES_NO______208 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[208].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[208].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______DO_YOU_NEED_CIRCLE_CHORDS_MINS_MAX_DISTANCES_LOGGING___YES_NO___YES_NO______208
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______DO_YOU_NEED_CIRCLE_CHORDS_MINS_MAX_DISTANCES_LOGGING___YES_NO___YES_NO______208
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[208].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[208].Cells[1].Value != null)
//////public static bool PUBLIC_STATIC_BOOL______DO_YOU_NEED_DATA_ACCUMULATIONS_LOGGING_FOR_POINTS___YES_NO______209 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[209].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[209].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______DO_YOU_NEED_DATA_ACCUMULATIONS_LOGGING_FOR_POINTS___YES_NO______209
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______DO_YOU_NEED_DATA_ACCUMULATIONS_LOGGING_FOR_POINTS___YES_NO______209
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[209].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[209].Cells[1].Value != null)
//PUBLIC_STATIC_STRING______TO_CONSTRUCT_3_POINT_CIRCLES_ANTICLOCK___A__CLOCK___C___OR__O_FOR_OTHER________210
/// TO_CONSTRUCT_3_POINT_CIRCLES_ANTICLOCK___A__CLOCK___C___OR__O_FOR_OTHER
///
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[210].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[210].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length > 0)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING______TO_CONSTRUCT_3_POINT_CIRCLES_ANTICLOCK___A__CLOCK___C___OR__O_FOR_OTHER________210
=
dataGridViewFOR_GT_PRESETS_DATA.Rows[210].Cells[1].Value.ToString();
// = Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception _excp_to_convert)
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING______TO_CONSTRUCT_3_POINT_CIRCLES_ANTICLOCK___A__CLOCK___C___OR__O_FOR_OTHER________210
= "A";
}//catch(Exception _excp_to_convert)
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING______TO_CONSTRUCT_3_POINT_CIRCLES_ANTICLOCK___A__CLOCK___C___OR__O_FOR_OTHER________210
=
"A";
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[210].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[210].Cells[1].Value != null)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[1].Value = "0";// "DOUBLE_VALUE___MINIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___0";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[0].Style.BackColor = Color.LightGreen;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// dataGridViewFOR_GT_PRESETS_DATA.Rows[212].Cells[1].Value = "600000";//"DOUBLE_VALUE___MAXIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___600000";
// dataGridViewFOR_GT_PRESETS_DATA.Rows[212].Cells[0].Style.BackColor = Color.LightGreen;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
//////public static double PUBLIC_STATIC_DOUBLE______DOUBLE_VALUE___MINIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___0________211 = 0.01;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length > 0)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______DOUBLE_VALUE___MINIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___0________211
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception _excp_to_convert)
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______DOUBLE_VALUE___MINIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___0________211
= 0;
}//catch(Exception _excp_to_convert)
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______DOUBLE_VALUE___MINIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___0________211
=
0;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[211].Cells[1].Value != null)
//////public static double PUBLIC_STATIC_DOUBLE______DOUBLE_VALUE___MAXIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___600000________212 = 600000;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[212].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[212].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length > 0)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______DOUBLE_VALUE___MAXIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___600000________212
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[212].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception _excp_to_convert)
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______DOUBLE_VALUE___MAXIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___600000________212
= 600000;
}//catch(Exception _excp_to_convert)
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE______DOUBLE_VALUE___MAXIMUM_DISTANCE_BETWEEN_POINTS_TO_TAKE_FOR_THEOREMS_CIRCLE___600000________212
=
600000;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[212].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[212].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_OUTPUT_SUMS_START_POINT___YES_NO______213 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[213].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[213].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_OUTPUT_SUMS_START_POINT___YES_NO______213
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_OUTPUT_SUMS_START_POINT___YES_NO______213
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[213].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[213].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_OUTPUT_SUMS_FINAL_POINT___YES_NO______214 = true;
///
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[214].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[214].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_OUTPUT_SUMS_FINAL_POINT___YES_NO______214
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_OUTPUT_SUMS_FINAL_POINT___YES_NO______214
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[214].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[214].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_COMPLEMENT_SUMS_START_POINT___YES_NO______215 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[215].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[215].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_COMPLEMENT_SUMS_START_POINT___YES_NO______215
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_COMPLEMENT_SUMS_START_POINT___YES_NO______215
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[215].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[215].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_COMPLEMENT_SUMS_FINAL_POINT___YES_NO______216 = true;
///
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[216].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[216].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_COMPLEMENT_SUMS_FINAL_POINT___YES_NO______216
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_COMPLEMENT_SUMS_FINAL_POINT___YES_NO______216
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[216].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[216].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_PERPENDICULAR_SUMS_START_POINT___YES_NO______217 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[217].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[217].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_PERPENDICULAR_SUMS_START_POINT___YES_NO______217
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_PERPENDICULAR_SUMS_START_POINT___YES_NO______217
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[217].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[217].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_PERPENDICULAR_SUMS_FINAL_POINT___YES_NO______218 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[218].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[218].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_PERPENDICULAR_SUMS_FINAL_POINT___YES_NO______218
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_PERPENDICULAR_SUMS_FINAL_POINT___YES_NO______218
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[218].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[218].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_BASE_SUMS_START_POINT___YES_NO______219 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[219].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[219].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_BASE_SUMS_START_POINT___YES_NO______219
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_BASE_SUMS_START_POINT___YES_NO______219
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[219].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[219].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_BASE_SUMS_FINAL_POINT___YES_NO______220 = true;
///
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[220].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[220].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_BASE_SUMS_FINAL_POINT___YES_NO______220
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_BASE_SUMS_FINAL_POINT___YES_NO______220
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[220].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[220].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_HYPOTENUSE_SUMS_START_POINT___YES_NO______221 = true;
///
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[221].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[221].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_HYPOTENUSE_SUMS_START_POINT___YES_NO______221
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_HYPOTENUSE_SUMS_START_POINT___YES_NO______221
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[221].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[221].Cells[1].Value != null)
//////////////public static bool PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_HYPOTENUSE_SUMS_FINAL_POINT___YES_NO______222 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[222].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[222].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_HYPOTENUSE_SUMS_FINAL_POINT___YES_NO______222
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL______TO_INCLUDE___CUMULATIVE_HYPOTENUSE_SUMS_FINAL_POINT___YES_NO______222
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[222].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[222].Cells[1].Value != null)
/// public static bool TO_SHOW_ACCUMULATED_POINTS_DOTS_ENLARGED___YES_NO___240 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[240].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[240].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_ACCUMULATED_POINTS_DOTS_ENLARGED___YES_NO___240
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_ACCUMULATED_POINTS_DOTS_ENLARGED___YES_NO___240
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[240].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[240].Cells[1].Value != null)
/// public static double SIZE_OF_THE_POINT_TO_REPRESENT___241 = 6;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[241].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[241].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length > 0)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.SIZE_OF_THE_POINT_TO_REPRESENT___241
= Convert.ToDouble(dataGridViewFOR_GT_PRESETS_DATA.Rows[241].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}
catch (Exception _excp_to_convert)
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.SIZE_OF_THE_POINT_TO_REPRESENT___241
= 600000;
}//catch(Exception _excp_to_convert)
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.SIZE_OF_THE_POINT_TO_REPRESENT___241
=
6;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[241].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[241].Cells[1].Value != null)
//////// THESE ARE DONE AFTER ACHIEVING THE MIDI SOUNDS FROM THE CAD DRAWINGS
//////// WE ARE TRYING TO UNDERSTAND THE KINDS OF DYNAMICS OF THE POINTS MOVING ALONE IN THE WHOLE THINGS
//////// AND NOT SHOWING THE OTHER LINES OR OTHER THINGS THERE
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[240].Cells[1].Value = "Y";// "TO_SHOW_ACCUMULATED_POINTS_DOTS_ENLARGED___YES_NO";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[240].Cells[0].Style.BackColor = Color.LightSkyBlue;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[241].Cells[1].Value = "6";// "SIZE_OF_THE_POINT_TO_REPRESENT";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[241].Cells[0].Style.BackColor = Color.LightSkyBlue;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[1].Value = "1000";//" SLIDER_SCALE_FACTOR_FOR_CENTRAL_CIRCLES";//hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS
// dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[1].Style.BackColor = Color.LightSkyBlue;
// KKK
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[0].Value = "SLIDER_SCALE_FACTOR_FOR_CENTRAL_CIRCLES";//hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[0].Style.BackColor = Color.LightSkyBlue;
///
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().Length > 0)
{
try
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.SLIDER_SCALE_FACTOR_FOR_CENTRAL_CIRCLES___242
=
Convert.ToDouble
(dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart())
/ 1000
;
if
(
(int)(public_static_class_simulations_CONTROLLER_for_gt_Class
.SLIDER_SCALE_FACTOR_FOR_CENTRAL_CIRCLES___242)
*
1000
<=
this.hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS
.Maximum
)
{
//////this.hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS
//////.Value
//////=
//////(int)(public_static_class_simulations_CONTROLLER_for_gt_Class
//////.SLIDER_SCALE_FACTOR_FOR_CENTRAL_CIRCLES___242)
//////*
//////1000
//////;
/// dataGridViewFOR_GT_PRESETS_DATA.Rows[250].Cells[1].Style.BackColor = Color.LightSkyBlue;
}
////// if
//////(
//////(int)(public_static_class_simulations_CONTROLLER_for_gt_Class
//////.SLIDER_SCALE_FACTOR_FOR_CENTRAL_CIRCLES___242)
//////*
//////1000
//////<=
////// this.hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS
////// .Maximum
//////)
}
catch (Exception _excp_to_convert)
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.SLIDER_SCALE_FACTOR_FOR_CENTRAL_CIRCLES___242
= 1000 / 1000;
}//catch(Exception _excp_to_convert)
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.SLIDER_SCALE_FACTOR_FOR_CENTRAL_CIRCLES___242
=
1000 / 1000;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[243].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[243].Cells[1].Style.BackColor = Color.LightSkyBlue;
// public static bool TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO___243 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[243].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[243].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO___243
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO___243
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[243].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[243].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[244].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[244].Cells[1].Style.BackColor = Color.LightSkyBlue;
// public static bool TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO___244 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[243 + 1].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[243 + 1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO___244
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO___244
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[243+1].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[243+1].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[245].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[245].Cells[1].Style.BackColor = Color.LightSkyBlue;
///
// public static bool TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO___245 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[245].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[245].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO___245
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_PIVOT_IN_GT_SIMPLEX_YES_NO___245
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[245].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[245].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[246].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[246].Cells[1].Style.BackColor = Color.LightSteelBlue;
///
// public static bool TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO___246 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[246].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[246].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO___246
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO___246
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[246].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[246].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[247].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[247].Cells[1].Style.BackColor = Color.LightSteelBlue;
// public static bool TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO___247 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[247].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[247].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO___247
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO___247
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[247].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[247].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[248].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[248].Cells[1].Style.BackColor = Color.LightSteelBlue;
// public static bool TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO___248 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[248].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[248].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO___248
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_STRETCH_IN_GT_SIMPLEX_YES_NO___248
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[248].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[248].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[249].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[249].Cells[1].Style.BackColor = Color.LightSkyBlue;
// public static bool TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO___249 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[249].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[249].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO___249
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO___249
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[249].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[249].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[250].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[250].Cells[1].Style.BackColor = Color.LightSkyBlue;
// public static bool TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO___250 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[250].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[250].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO___250
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO___250
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[250].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[250].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[251].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[251].Cells[1].Style.BackColor = Color.LightSkyBlue;
// public static bool TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO___251 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[251].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[251].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO___251
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_NODAL_IN_GT_SIMPLEX_YES_NO___251
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[251].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[251].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[252].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[252].Cells[1].Style.BackColor = Color.LightSteelBlue;
///
// public static bool TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO___252 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[252].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[252].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO___252
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO___252
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[252].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[252].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[253].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[253].Cells[1].Style.BackColor = Color.LightSteelBlue;
// public static bool TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO___253 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[253].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[253].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO___253
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO___253
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[253].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[253].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[254].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[254].Cells[1].Style.BackColor = Color.LightSteelBlue;
///
// public static bool TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO___254 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[254].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[254].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO___254
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_OUTPUT_IN_GT_SIMPLEX_YES_NO___254
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[254].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[254].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[255].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[255].Cells[1].Style.BackColor = Color.LightSkyBlue;
///
// public static bool TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO___255 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[255].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[255].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO___255
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO___255
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[255].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[255].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[256].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[256].Cells[1].Style.BackColor = Color.LightSkyBlue;
// public static bool TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO___256 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[256].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[256].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO___256
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO___256
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[256].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[256].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[257].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[257].Cells[1].Style.BackColor = Color.LightSkyBlue;
///
// public static bool TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO___257 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[257].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[257].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO___257
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_COMPLEMENT_IN_GT_SIMPLEX_YES_NO___257
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[257].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[257].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[258].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[258].Cells[1].Style.BackColor = Color.LightSteelBlue;
///
// public static bool TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO___258 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[258].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[258].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO___258
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO___258
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[258].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[258].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[259].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[259].Cells[1].Style.BackColor = Color.LightSteelBlue;
///
// public static bool TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO___259 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[259].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[259].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO___259
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO___259
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[259].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[259].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[260].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[260].Cells[1].Style.BackColor = Color.LightSteelBlue;
// public static bool TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO___260 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[260].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[260].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO___260
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_PERPENDICULAR_IN_GT_SIMPLEX_YES_NO___260
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[260].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[260].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[261].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[261].Cells[1].Style.BackColor = Color.LightSkyBlue;
///
// public static bool TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO___261 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[261].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[261].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO___261
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO___261
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[261].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[261].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[262].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[262].Cells[1].Style.BackColor = Color.LightSkyBlue;
// public static bool TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO___262 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[262].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[262].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO___262
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO___262
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[262].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[262].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[263].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[263].Cells[1].Style.BackColor = Color.LightSkyBlue;
///
// public static bool TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO___263 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[263].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[263].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO___263
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_BASE_IN_GT_SIMPLEX_YES_NO___263
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[263].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[263].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[264].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[264].Cells[1].Style.BackColor = Color.LightSteelBlue;
///
// public static bool TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO___264 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[264].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[264].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO___264
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO___264
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[264].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[264].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[265].Cells[1].Value = "Y";//"TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[265].Cells[1].Style.BackColor = Color.LightSteelBlue;
///
// public static bool TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO___265 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[265].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[265].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO___265
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO___265
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[265].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[265].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[266].Cells[1].Value = "Y";// "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[266].Cells[1].Style.BackColor = Color.LightSteelBlue;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
// public static bool TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO___266 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[266].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[266].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO___266
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_CUMUL_HYPOTENUSE_IN_GT_SIMPLEX_YES_NO___266
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[266].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[266].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[270].Cells[1].Value = "TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[270].Cells[1].Style.BackColor = Color.LightCyan;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// public static bool TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO___270 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[270].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[270].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO___270
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MIN_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO___270
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[270].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[270].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[271].Cells[1].Value = "TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[271].Cells[1].Style.BackColor = Color.LightCyan;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// public static bool TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO___271 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[271].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[271].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO___271
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_AVG_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO___271
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[271].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[270].Cells[1].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[272].Cells[1].Value = "TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO";
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[272].Cells[1].Style.BackColor = Color.LightCyan;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//public static bool TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO___272 = true;
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[272].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[272].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO___272
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.TO_SHOW_CENTRAL_MAX_CIRCLE_FOR_WHOLE_GTSIMPLEX_YES_NO___272
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[272].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[272].Cells[1].Value != null)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
//////////////////////////////////////////////////////////////////////////////////
/// for references
////////////// Calculate distances and print
////////////double[] distances_for_given = GenerateInterceptsAndDistances(given_x1, given_y1, given_x2, given_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_output = GenerateInterceptsAndDistances(output_x1, output_y1, output_x2, output_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_complement = GenerateInterceptsAndDistances(complement_x1, complement_y1, complement_x2, complement_y2, x_standard, y_standard, N_intercepts);
//////////////////// Calculate CUMULATIONS distances and print
////////////double[] distances_for_output_cumulations = GenerateInterceptsAndDistances(outputs_cumulations_x1, outputs_cumulations_y1, outputs_cumulations_x2, outputs_cumulations_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_complement_cumulations = GenerateInterceptsAndDistances(complements_cumulations_x1, complements_cumulations_y1, complements_cumulations_x2, complements_cumulations_y2, x_standard, y_standard, N_intercepts);
/////////////////////////////// CALCULATE CUMULATIONS
////////////double[] distances_for_hypotenuses_cumulations = GenerateInterceptsAndDistances(hypots_cumulations_x1, hypots_cumulations_y1, hypots_cumulations_x2, hypots_cumulations_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_bases_cumulations = GenerateInterceptsAndDistances(base_cumulations_x1, base_cumulations_y1, base_cumulations_x2, base_cumulations_y2, x_standard, y_standard, N_intercepts);
////////////double[] distances_for_perpendiculars_cumulations = GenerateInterceptsAndDistances(perps_cumulations_x1, perps_cumulations_y1, perps_cumulations_x2, perps_cumulations_y2, x_standard, y_standard, N_intercepts);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[1].Value = "N";// "CAUTION_DO_YOU_NEED_THE_WAV_FILES_SAMPLES_FOR_GTSTATES___YES_NO___300";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[1].Style.BackColor = Color.Red;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[1].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[1].Value = "1.01";// "CAUTION_FACTOR_GAINS___distances_for_given____NUMBER___301";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[0].Style.BackColor = Color.Red;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[0].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[1].Value = "1.01";//"CAUTION_FACTOR_GAINS___distances_for_output____NUMBER___302";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[0].Style.BackColor = Color.Red;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[0].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[1].Value = "1.01";// "CAUTION_FACTOR_GAINS___distances_for_complement____NUMBER___303";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[0].Style.BackColor = Color.Red;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[0].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 1].Cells[1].Value = "1.01";// "CAUTION_FACTOR_GAINS___distances_for_distances_for_output_cumulations____NUMBER___304";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 1].Cells[0].Style.BackColor = Color.Red;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 1].Cells[0].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 2].Cells[1].Value = "1.01";// "CAUTION_FACTOR_GAINS___distances_for_distances_for_complement_cumulations____NUMBER___305";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 2].Cells[0].Style.BackColor = Color.Red;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[303 + 2].Cells[0].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[1].Value = "1.01";//"CAUTION_FACTOR_GAINS___distances_for_hypotenuses_cumulations____NUMBER___306";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[0].Style.BackColor = Color.Red;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[0].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 1].Cells[1].Value = "1.01";// "CAUTION_FACTOR_GAINS___distances_for_bases_cumulations____NUMBER___307";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 1].Cells[0].Style.BackColor = Color.Red;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 1].Cells[0].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 2].Cells[1].Value = "1.01";//"CAUTION_FACTOR_GAINS___distances_for_perpendiculars_cumulations____NUMBER___308";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 2].Cells[0].Style.BackColor = Color.Red;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[306 + 2].Cells[0].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[1].Value = "33";// CAUTION_SAMPLE_POINTS_PER_HYPOTENUSE_IN_GT_SIMPLEX_SEGMENT____NUMBER___309";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[1].Style.BackColor = Color.PaleVioletRed;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[1].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[1].Value = "37";// "CAUTION_SAMPLE_POINTS_PER_PERPENDICULAR_IN_GT_SIMPLEX_SEGMENT____NUMBER___310";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[1].Style.BackColor = Color.PaleVioletRed;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[1].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[1].Value = "21";// "CAUTION_SAMPLE_POINTS_PER_BASE_IN_GT_SIMPLEX_SEGMENT____NUMBER___311";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[1].Style.BackColor = Color.PaleVioletRed;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[1].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///S
////// ///
////// ///
////// ///
////// ///
////// ///
////// ///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[1].Value = "11";// "CAUTION_SAMPLE_POINTS_PER_CUMULATIONS_SEGMENTS_IN____NUMBER___312";
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[1].Style.BackColor = Color.PaleVioletRed;
////// // dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[1].Style.ForeColor = Color.White;
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// ////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////public static bool CAUTION_DO_YOU_NEED_THE_WAV_FILES_SAMPLES_FOR_GTSTATES___YES_NO___300 = false;
///
///
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.CAUTION_DO_YOU_NEED_THE_WAV_FILES_SAMPLES_FOR_GTSTATES___YES_NO___300
= true;
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.CAUTION_DO_YOU_NEED_THE_WAV_FILES_SAMPLES_FOR_GTSTATES___YES_NO___300
=
false;
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[300].Cells[1].Value != null)
////////////public static double CAUTION_FACTOR_GAINS___distances_for_given____NUMBER___301 = 1.01;
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_given____NUMBER___301 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[301].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_given____NUMBER___301 = 1.01;
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
///
////////////public static double CAUTION_FACTOR_GAINS___distances_for_output____NUMBER___302 = 1.01;
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_output____NUMBER___302 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[302].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_output____NUMBER___302 = 1.01;
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
////////////public static double CAUTION_FACTOR_GAINS___distances_for_complement____NUMBER___303 = 1.01;
///
///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_complement____NUMBER___303 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[303].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_complement____NUMBER___303 = 1.01;
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
////////////public static double CAUTION_FACTOR_GAINS___distances_for_distances_for_output_cumulations____NUMBER___304 = 1.01;
///
///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[304].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_distances_for_output_cumulations____NUMBER___304 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[304].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[304].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_distances_for_output_cumulations____NUMBER___304 = 1.01;
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
////////////public static double CAUTION_FACTOR_GAINS___distances_for_distances_for_complement_cumulations____NUMBER___305 = 1.01;
///
///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[305].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_distances_for_complement_cumulations____NUMBER___305 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[305].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[305].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_distances_for_complement_cumulations____NUMBER___305 = 1.01;
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
////////////public static double CAUTION_FACTOR_GAINS___distances_for_hypotenuses_cumulations____NUMBER___306 = 1.01;
///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_hypotenuses_cumulations____NUMBER___306 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[306].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_hypotenuses_cumulations____NUMBER___306 = 1.01;
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
////////////public static double CAUTION_FACTOR_GAINS___distances_for_bases_cumulations____NUMBER___307 = 1.01;
///
///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[307].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_bases_cumulations____NUMBER___307 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[307].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[307].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_bases_cumulations____NUMBER___307 = 1.01;
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
////////////public static double CAUTION_FACTOR_GAINS___distances_for_perpendiculars_cumulations____NUMBER___308 = 1.01;
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[308].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_perpendiculars_cumulations____NUMBER___308 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[308].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[308].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_FACTOR_GAINS___distances_for_perpendiculars_cumulations____NUMBER___308 = 1.01;
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
////////////public static double CAUTION_SAMPLE_POINTS_PER_HYPOTENUSE_IN_GT_SIMPLEX_SEGMENT____NUMBER___309 = 22;
///
///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_SAMPLE_POINTS_PER_HYPOTENUSE_IN_GT_SIMPLEX_SEGMENT____NUMBER___309 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[309].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
/// take default
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
////////////public static double CAUTION_SAMPLE_POINTS_PER_PERPENDICULAR_IN_GT_SIMPLEX_SEGMENT____NUMBER___310 = 37;
///
///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_SAMPLE_POINTS_PER_PERPENDICULAR_IN_GT_SIMPLEX_SEGMENT____NUMBER___310 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[310].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
/// take default
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
////////////public static double CAUTION_SAMPLE_POINTS_PER_BASE_IN_GT_SIMPLEX_SEGMENT____NUMBER___311 = 21;
///
///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_SAMPLE_POINTS_PER_BASE_IN_GT_SIMPLEX_SEGMENT____NUMBER___311 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[311].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
/// take default
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
////////////public static double CAUTION_SAMPLE_POINTS_PER_CUMULATIONS_SEGMENTS_IN____NUMBER___312 = 11;
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_SAMPLE_POINTS_PER_CUMULATIONS_SEGMENTS_IN____NUMBER___312 =
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[312].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
/// take default
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
////////////////////////////////////////////////////////////////////////////////////////// to assign the data for patches //////////////////////////
////////////////////////////////////////////////////////////////////////////////////////// to assign the data for patches //////////////////////////
////////////////////////////////////////////////////////////////////////////////////////// to assign the data for patches //////////////////////////
////////////////////////////////////////////////////////////////////////////////////////// to assign the data for patches //////////////////////////
////////////////////////////////////////////////////////////////////////////////////////// to assign the data for patches //////////////////////////
////////////////////////////////////////////////////////////////////////////////////////// to assign the data for patches //////////////////////////
////////////////////////////////////////////////////////////////////////////////////////// to assign the data for patches //////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_2_GTMIDS_PATCH_1___320_DRUMS_1____20TH_TO_19TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_3_GTMIDS_PATCH_2___321_DRUMS_2____19TH_TO_18TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_4_GTMIDS_PATCH_3___322_DRUMS_3____18TH_TO_17TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_5_GTMIDS_PATCH_4___323_DRUMS_4____17TH_TO_16TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_6_GTMIDS_PATCH_5___324_DRUMS_5____16TH_TO_15TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_7_GTMIDS_PATCH_6___325_DRUMS_6____15TH_TO_14TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_8_GTMIDS_PATCH_7___326_DRUMS_7____14TH_TO_13TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_9_GTMIDS_PATCH_8___327_DRUMS_8____13TH_TO_12TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_10_GTMIDS_PATCH_9___328_DRUMS_9____12TH_TO_11TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_11_GTMIDS_PATCH_10___329_DRUMS_10____11TH_TO_10TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_12_GTMIDS_PATCH_11___330_DRUMS_11____10TH_TO_9TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_13_GTMIDS_PATCH_12___331_DRUMS_12____9TH_TO_8TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_14_GTMIDS_PATCH_13___332_DRUMS_13____9TH_TO_7TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_15_GTMIDS_PATCH_14___333_DRUMS_14____7TH_TO_6TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_16_GTMIDS_PATCH_15___334_DRUMS_15____6TH_TO_5TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_17_GTMIDS_PATCH_16___335_DRUMS_16____5TH_TO_4TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_18_GTMIDS_PATCH_17___336_DRUMS_17____4TH_TO_3RD = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_19_GTMIDS_PATCH_18___337_DRUMS_18____3RD_TO_2ND = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_20_GTMIDS_PATCH_19___338_DRUMS_19____2ND_TO_1ST = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_21_GTMIDS_PATCH_20___339_DRUMS_20____1ST_TO_0TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_22_GTMIDS_PATCH_21___340_STRINGS_1____20TH_TO_19TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_23_GTMIDS_PATCH_22___341_STRINGS_2____19TH_TO_18TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_24_GTMIDS_PATCH_23___342_STRINGS_3____18TH_TO_17TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_25_GTMIDS_PATCH_24___343_STRINGS_4____17TH_TO_16TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_26_GTMIDS_PATCH_25___344_STRINGS_5____16TH_TO_15TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_27_GTMIDS_PATCH_26___345_STRINGS_6____15TH_TO_14TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_28_GTMIDS_PATCH_27___346_STRINGS_7____14TH_TO_13TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_29_GTMIDS_PATCH_28___347_STRINGS_8____13TH_TO_12TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_30_GTMIDS_PATCH_29___348_STRINGS_9____12TH_TO_11TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_31_GTMIDS_PATCH_30___349_STRINGS_10____11TH_TO_10TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_32_GTMIDS_PATCH_31___350_STRINGS_11____10TH_TO_9TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_33_GTMIDS_PATCH_32___351_STRINGS_12____9TH_TO_8TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_34_GTMIDS_PATCH_33___352_STRINGS_13____8TH_TO_7TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_35_GTMIDS_PATCH_34___353_STRINGS_14____7TH_TO_6TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_36_GTMIDS_PATCH_35___354_STRINGS_15____6TH_TO_5TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_37_GTMIDS_PATCH_36___355_STRINGS_16____5TH_TO_4TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_38_GTMIDS_PATCH_37___356_STRINGS_17____4TH_TO_3RD = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_39_GTMIDS_PATCH_38___357_STRINGS_18____3RD_TO_2ND = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_40_GTMIDS_PATCH_39___358_STRINGS_19____2ND_TO_1ST = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_41_GTMIDS_PATCH_40___359_STRINGS_20____1ST_TO_0TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_42_GTMIDS_PATCH_41___360_WINDS_1____20TH_TO_19TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_43_GTMIDS_PATCH_42___361_WINDS_2____19TH_TO_18TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_44_GTMIDS_PATCH_43___362_WINDS_3____18TH_TO_17TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_45_GTMIDS_PATCH_44___363_WINDS_4____17TH_TO_16TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_46_GTMIDS_PATCH_45___364_WINDS_5____16TH_TO_15TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_47_GTMIDS_PATCH_46___365_WINDS_6____15TH_TO_14TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_48_GTMIDS_PATCH_47___366_WINDS_7____14TH_TO_13TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_49_GTMIDS_PATCH_48___367_WINDS_8____13TH_TO_12TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_50_GTMIDS_PATCH_49___368_WINDS_9____12TH_TO_11TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_51_GTMIDS_PATCH_50___369_WINDS_10____11TH_TO_10TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_52_GTMIDS_PATCH_51___370_WINDS_11____10TH_TO_9TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_54_GTMIDS_PATCH_53___372_WINDS_13____8TH_TO_7TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_55_GTMIDS_PATCH_54___373_WINDS_14____7TH_TO_6TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_56_GTMIDS_PATCH_55___374_WINDS_15____6TH_TO_5TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_57_GTMIDS_PATCH_56___375_WINDS_16____5TH_TO_4TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_58_GTMIDS_PATCH_57___376_WINDS_17____4TH_TO_3RD = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_59_GTMIDS_PATCH_58___377_WINDS_18____3RD_TO_2ND = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_60_GTMIDS_PATCH_59___378_WINDS_19____2ND_TO_1ST = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_61_GTMIDS_PATCH_60___379_WINDS_20____1ST_TO_0TH = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_62_GTMIDS_PATCH_61___380_LONG_NOTES_1 = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_63_GTMIDS_PATCH_62___381_LONG_NOTES_2 = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_64_GTMIDS_PATCH_63___382_LONG_NOTES_3 = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_65_GTMIDS_PATCH_64___383_LONG_NOTES_4 = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_66_GTMIDS_PATCH_65___384_LONG_NOTES_5 = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_67_GTMIDS_PATCH_66___385_LONG_NOTES_6 = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_68_GTMIDS_PATCH_67___386_LONG_NOTES_7 = 0;///flushing first the values are 0 to 128
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_69_GTMIDS_PATCH_68___387_LONG_NOTES_8 = 0;///flushing first the values are 0 to 128
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_2_GTMIDS_PATCH_1___320_DRUMS_1____20TH_TO_19TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_3_GTMIDS_PATCH_2___321_DRUMS_2____19TH_TO_18TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_4_GTMIDS_PATCH_3___322_DRUMS_3____18TH_TO_17TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_5_GTMIDS_PATCH_4___323_DRUMS_4____17TH_TO_16TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_6_GTMIDS_PATCH_5___324_DRUMS_5____16TH_TO_15TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_7_GTMIDS_PATCH_6___325_DRUMS_6____15TH_TO_14TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_8_GTMIDS_PATCH_7___326_DRUMS_7____14TH_TO_13TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_9_GTMIDS_PATCH_8___327_DRUMS_8____13TH_TO_12TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_10_GTMIDS_PATCH_9___328_DRUMS_9____12TH_TO_11TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_11_GTMIDS_PATCH_10___329_DRUMS_10____11TH_TO_10TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_12_GTMIDS_PATCH_11___330_DRUMS_11____10TH_TO_9TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_13_GTMIDS_PATCH_12___331_DRUMS_12____9TH_TO_8TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_14_GTMIDS_PATCH_13___332_DRUMS_13____9TH_TO_7TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_15_GTMIDS_PATCH_14___333_DRUMS_14____7TH_TO_6TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_16_GTMIDS_PATCH_15___334_DRUMS_15____6TH_TO_5TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_17_GTMIDS_PATCH_16___335_DRUMS_16____5TH_TO_4TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_18_GTMIDS_PATCH_17___336_DRUMS_17____4TH_TO_3RD =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_19_GTMIDS_PATCH_18___337_DRUMS_18____3RD_TO_2ND =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_20_GTMIDS_PATCH_19___338_DRUMS_19____2ND_TO_1ST =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_21_GTMIDS_PATCH_20___339_DRUMS_20____1ST_TO_0TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_22_GTMIDS_PATCH_21___340_STRINGS_1____20TH_TO_19TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_23_GTMIDS_PATCH_22___341_STRINGS_2____19TH_TO_18TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_24_GTMIDS_PATCH_23___342_STRINGS_3____18TH_TO_17TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_25_GTMIDS_PATCH_24___343_STRINGS_4____17TH_TO_16TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_26_GTMIDS_PATCH_25___344_STRINGS_5____16TH_TO_15TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_27_GTMIDS_PATCH_26___345_STRINGS_6____15TH_TO_14TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_28_GTMIDS_PATCH_27___346_STRINGS_7____14TH_TO_13TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_29_GTMIDS_PATCH_28___347_STRINGS_8____13TH_TO_12TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_30_GTMIDS_PATCH_29___348_STRINGS_9____12TH_TO_11TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_31_GTMIDS_PATCH_30___349_STRINGS_10____11TH_TO_10TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_32_GTMIDS_PATCH_31___350_STRINGS_11____10TH_TO_9TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_33_GTMIDS_PATCH_32___351_STRINGS_12____9TH_TO_8TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_34_GTMIDS_PATCH_33___352_STRINGS_13____8TH_TO_7TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_35_GTMIDS_PATCH_34___353_STRINGS_14____7TH_TO_6TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_36_GTMIDS_PATCH_35___354_STRINGS_15____6TH_TO_5TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_37_GTMIDS_PATCH_36___355_STRINGS_16____5TH_TO_4TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_38_GTMIDS_PATCH_37___356_STRINGS_17____4TH_TO_3RD =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_39_GTMIDS_PATCH_38___357_STRINGS_18____3RD_TO_2ND =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_40_GTMIDS_PATCH_39___358_STRINGS_19____2ND_TO_1ST =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_41_GTMIDS_PATCH_40___359_STRINGS_20____1ST_TO_0TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_42_GTMIDS_PATCH_41___360_WINDS_1____20TH_TO_19TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_43_GTMIDS_PATCH_42___361_WINDS_2____19TH_TO_18TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_44_GTMIDS_PATCH_43___362_WINDS_3____18TH_TO_17TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_45_GTMIDS_PATCH_44___363_WINDS_4____17TH_TO_16TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_46_GTMIDS_PATCH_45___364_WINDS_5____16TH_TO_15TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_47_GTMIDS_PATCH_46___365_WINDS_6____15TH_TO_14TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_48_GTMIDS_PATCH_47___366_WINDS_7____14TH_TO_13TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_49_GTMIDS_PATCH_48___367_WINDS_8____13TH_TO_12TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_50_GTMIDS_PATCH_49___368_WINDS_9____12TH_TO_11TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_51_GTMIDS_PATCH_50___369_WINDS_10____11TH_TO_10TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_52_GTMIDS_PATCH_51___370_WINDS_11____10TH_TO_9TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_54_GTMIDS_PATCH_53___372_WINDS_13____8TH_TO_7TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_55_GTMIDS_PATCH_54___373_WINDS_14____7TH_TO_6TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_56_GTMIDS_PATCH_55___374_WINDS_15____6TH_TO_5TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_57_GTMIDS_PATCH_56___375_WINDS_16____5TH_TO_4TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_58_GTMIDS_PATCH_57___376_WINDS_17____4TH_TO_3RD =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_59_GTMIDS_PATCH_58___377_WINDS_18____3RD_TO_2ND =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_60_GTMIDS_PATCH_59___378_WINDS_19____2ND_TO_1ST =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_61_GTMIDS_PATCH_60___379_WINDS_20____1ST_TO_0TH =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_62_GTMIDS_PATCH_61___380_LONG_NOTES_1 =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_63_GTMIDS_PATCH_62___381_LONG_NOTES_2 =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_64_GTMIDS_PATCH_63___382_LONG_NOTES_3 =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_65_GTMIDS_PATCH_64___383_LONG_NOTES_4 =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_66_GTMIDS_PATCH_65___384_LONG_NOTES_5 =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_67_GTMIDS_PATCH_66___385_LONG_NOTES_6 =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_68_GTMIDS_PATCH_67___386_LONG_NOTES_7 =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.PUBLIC_STATIC_INT___TRACK_69_GTMIDS_PATCH_68___387_LONG_NOTES_8 =
Convert.ToInt16(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
//////double Original_long_lines_x1
//////,double Original_long_lines_y1
//////, double Original_long_lines_z1
//////, double Original_long_lines_x2
//////, double Original_long_lines_y2
//////, double Original_long_lines_z2
///
///
/// /////////////////////////////////////////////////////////////
//////, double tolerance_after_which_breaking_starts
//////, double first_line_segment_length
//////, double common_difference_for_line_segment_length
//////, double first_rotation_angle_degrees_theta0
//////,double common_difference_rotation_angle_degrees_thetaDiff
//////,double left_side_offset_multiplier
//////,double right_side_offset_multiplier
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[400].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MIN_TOLERANCE_LENGTH_LONG_LINE_SPLITTER_400
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[400].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[400].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[401].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___FIRST_SMALL_SEGMENT_LENGTH_AP_TERMS_0_LONG_LINE_SPLITTER_401
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[401].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[401].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[402].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COMMN_DIFF_FOR_AP_LENGTH_LONG_LINE_SPLITTER_402
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[402].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[402].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[403].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___FIRST_ROT_ANG_DEG_FOR_AP_LONG_LINE_SPLITTER_403
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[403].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[403].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[404].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COMMN_DIFF_ROT_ANG_DEG_FOR_AP_LONG_LINE_SPLITTER_404
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[404].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[404].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[405].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___LEFT_SIDE_DIST_OFFSET_MULTIPLIER_LONG_LINE_SPLITTER_405
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[405].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[405].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[406].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___RIGHT_SIDE_DIST_OFFSET_MULTIPLIER_LONG_LINE_SPLITTER_406
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[406].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[406].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[407].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___LEFT_SIDE_DEGREE_ANGULAR_MULTIPLIER_LONG_LINE_SPLITTER_407
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[407].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[407].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
///
//////public static double = 0.68;
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[408].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___RIGHT_SIDE_DEGREE_ANGULAR_MULTIPLIER_LONG_LINE_SPLITTER_408
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[408].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[408].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[409].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___DEFAULT_2__LOGARITHMS_BASE_FOR_PITCH_BENDS_409
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[409].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
if
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___DEFAULT_2__LOGARITHMS_BASE_FOR_PITCH_BENDS_409
<=1
)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___DEFAULT_2__LOGARITHMS_BASE_FOR_PITCH_BENDS_409
= 2;
}
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[409].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
/////////////////////// FROM 409 TO 419 WE NEED TO ADD THE FEATURES FOR NEWER NEEDS
///CURRENTLY WE ARE WORKING WITH 420 TO 443 FOR THE CIRCLES SPLITTING NOTES GENERATIONS
/////////////////////// FROM 409 TO 419 WE NEED TO ADD THE FEATURES FOR NEWER NEEDS
///CURRENTLY WE ARE WORKING WITH 420 TO 443 FOR THE CIRCLES SPLITTING NOTES GENERATIONS///
/////////////////////// FROM 409 TO 419 WE NEED TO ADD THE FEATURES FOR NEWER NEEDS
///CURRENTLY WE ARE WORKING WITH 420 TO 443 FOR THE CIRCLES SPLITTING NOTES GENERATIONS
//////
/// <summary>
/// THESE ARE NEW VARIABLES FOR THE CIRCLE SPLITTING TO THE NOTES
/// </summary>
///
////420 MIN_CENTER_X_OFFSET_CIRCS_SPLITTER_NOTES___420 30
////421 MIN_CENTER_Y_OFFSET_CIRCS_SPLITTER_NOTES___421 30
////422 MIN_CENTER_Z_OFFSET_CIRCS_SPLITTER_NOTES___422 0
////423 MIN_RADIUS_TO_DO_CIRCS_SPLITTER_NOTES___423 100
////424 REF_ROTOR_CENTER_X_CIRCS_SPLITTER_NOTES___424 30
////425 REF_ROTOR_CENTER_Y_CIRCS_SPLITTER_NOTES___425 30
////426 TO_CHECK_NEAREST_OVERLAPS_OF_NOTES_CHORDS_IN_CIRC_SPLITTING___426 YES
////427 LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427 3,NOTE,CIRC
////428 PUSH_AWAY_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___428 1.1
////429 PULL_TOWARDS_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___429 1.6
////430 DO_YOU_NEED_CENTI_DEGREES_SNAPPING_OF_NOTES___430 YES
////431 FIRST_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___431 3
////432 COMMS_DIFFS_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___432 0.1
////433 FIRST_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___433 0.01
////434 COMMN_DIFFS_FOR_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___434 0.3
////435 LEFT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___435 6.1
////436 RIGHT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___436 6.8
////437 LEFT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___437 1.1
////438 RIGHT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___438 3.3
////439 MIN_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___439 68
////440 MAX_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___440 680
////441 DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441 1,2,3,4,5,6,7,8.9
////442 DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442 1,2,3,4,5,6,7,8.9
////443 DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443 1,2,3,4,5,6,7,8.9
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[420].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MIN_CENTER_X_OFFSET_CIRCS_SPLITTER_NOTES___420
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[420].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[420].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[421].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MIN_CENTER_Y_OFFSET_CIRCS_SPLITTER_NOTES___421
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[421].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[421].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[422].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MIN_CENTER_Z_OFFSET_CIRCS_SPLITTER_NOTES___422
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[422].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[422].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[423].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MIN_RADIUS_TO_DO_CIRCS_SPLITTER_NOTES___423
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[423].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[423].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[424].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___REF_ROTOR_CENTER_X_CIRCS_SPLITTER_NOTES___424
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[424].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[424].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[425].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___REF_ROTOR_CENTER_Y_CIRCS_SPLITTER_NOTES___425
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[425].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[425].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[426].Cells[1].Value != null)
{
if(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[426].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL___TO_CHECK_NEAREST_OVERLAPS_OF_NOTES_CHORDS_IN_CIRC_SPLITTING___426
= true;
}
else
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL___TO_CHECK_NEAREST_OVERLAPS_OF_NOTES_CHORDS_IN_CIRC_SPLITTING___426
= false;
}///this is for booleans
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[426].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
////////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/09/flutemodelingvibrato.html
///////// Specially calculating the velocity for the ///flutes and the Shanai
///////// https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/09/abstractmelodyandeargrammars.html
/////////
/////////
///https://drinkussions.blogspot.com/2024/09/sanjoynathsnafcaiamodel.html
try
{
string reportofpopulations = "";
reportofpopulations = System.DateTime.Now.ToString() + "\r\n";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[427].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427
=
// Convert.ToDouble
// this is string for layers names filters substrings of layers names to include for circs to notes constructions
(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[427].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
/////////////////////////////////////// this is special data populations for the circles layers filtering to split those to the notes line segments ///////
/////////////////////////////////////// this is special data populations for the circles layers filtering to split those to the notes line segments ///////
/////////////////////////////////////// this is special data populations for the circles layers filtering to split those to the notes line segments ///////
if (
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427
.TrimEnd().TrimStart().Trim().Length > 0
)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS___427
=
new List<string>();
//////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS___427
.Clear();
//////////////////////////////////////////////////////////////////////////////////////////////////
string[] ___temp_string_array_splitted_from_the_PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS =
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427
.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
if (___temp_string_array_splitted_from_the_PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS.Length > 0)
{
for (int rrr = 0; rrr < ___temp_string_array_splitted_from_the_PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS.Length; rrr++)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS___427
.Add
(
___temp_string_array_splitted_from_the_PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS[rrr]
);
}//for(int rrr=0;rrr< ___temp_string_array_splitted_from_the_PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS.Length;rrr++)
}// if(___temp_string_array_splitted_from_the_PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS.Length>0)
else
{
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS
}//end of else of if(___temp_string_array_splitted_from_the_PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS.Length>0)
////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
foreach (string ___str in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS___427
)
{
reportofpopulations += ___str+ "\r\n";
}
//////foreach (string ___str in
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS
////// )
}//end of if of
/////////////////////////////////////// this is special data populations for the circles layers filtering to split those to the notes line segments ///////
/////////////////////////////////////// this is special data populations for the circles layers filtering to split those to the notes line segments ///////
/////////////////////////////////////// this is special data populations for the circles layers filtering to split those to the notes line segments ///////
//////if (
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_STRING___LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427
//////.TrimEnd().TrimStart().Trim().Length > 0
////// )
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "logging_PUBLIC_STATIC_STRING___LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427.txt"
,
reportofpopulations
);
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[427].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[428].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___PUSH_AWAY_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___428
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[428].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[428].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[429].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___PULL_TOWARDS_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___429
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[429].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[429].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[430].Cells[1].Value != null)
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[430].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("Y"))
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL___DO_YOU_NEED_CENTI_DEGREES_SNAPPING_OF_NOTES___430
= true;
}
else
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_BOOL___DO_YOU_NEED_CENTI_DEGREES_SNAPPING_OF_NOTES___430
= false;
}///this is for booleans
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[430].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[431].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___FIRST_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___431
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[431].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[431].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[432].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COMMS_DIFFS_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___432
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[432].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[432].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[433].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___FIRST_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___433
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[433].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[433].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[434].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COMMN_DIFFS_FOR_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___434
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[434].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[434].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[435].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___LEFT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___435
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[435].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[435].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[436].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___RIGHT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___436
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[436].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[436].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[437].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___LEFT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___437
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[437].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[437].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[438].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___RIGHT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___438
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[438].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[438].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[439].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MIN_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___439
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[439].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[439].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[440].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MAX_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___440
=
Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[440].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[440].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[441].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
=
// Convert.ToDouble
(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[441].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
#region regions_to_populate_the_list_for_441
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
.TrimEnd().TrimStart().Trim()
.Length>0
)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
= new List<string>();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
= new List<double>();
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
string[] ___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
.TrimEnd().TrimStart().Trim()
.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441.Length>0)
{
for(int rrr=0;rrr< ___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441.Length;rrr++)
{
if( ___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441[rrr].TrimEnd().TrimStart().Trim().Length>0)
{
double ___temp_current_token_converted_to_double = 1;
try
{
___temp_current_token_converted_to_double
=
Math.Abs(
Convert.ToDouble
(
___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441[rrr].TrimEnd().TrimStart().Trim()
)
)
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////// obviously we are here since there is no error in the convertions ///////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (___temp_current_token_converted_to_double>0)
{
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////// we record the proper double data if there is no exceptions in the convertions///////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
.Add
(
___temp_current_token_converted_to_double.ToString().TrimEnd().TrimStart().Trim()
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
.Add
(
___temp_current_token_converted_to_double
);
}// if(___temp_current_token_converted_to_double>0)
}
catch (Exception ___excp_converting_to_double)
{
___temp_current_token_converted_to_double = 1.338;
}//catch(Exception ___excp_converting_to_double)
}// if(___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441[rrr].TrimEnd().TrimStart().Trim().Length>0)
}//for(int rrr=0;rrr< ___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441.Length;rrr++)
}// if(___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441.Length>0)
string reportofpopulations___441 = System.DateTime.Now.ToString() + "\r\n";
foreach(double ___dblsdivs in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
)
{
reportofpopulations___441 += (___dblsdivs.ToString()) + "\r\n";
}
//////foreach (double ___dblsdivs in
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
//////)
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "logging_PUBLIC_STATIC_STRING_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441.txt"
, reportofpopulations___441
);
}
//////if (
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
////// .TrimEnd().TrimStart().Trim()
////// .Length > 0
////// )
#endregion regions_to_populate_the_list_for_441
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[441].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[442].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
=
// Convert.ToDouble
(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[442].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
#region regions_to_populate_the_list_for_442
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
.TrimEnd().TrimStart().Trim()
.Length > 0
)
{
//////public static double PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_LONGLINES_SPLITTING = 0;
//////public static List<string> PUBLIC_STATIC_LIST_OF_STRINGS_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442 = new List<string>();
//////public static List<double> PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442 = new List<double>();
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
= new List<string>();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
= new List<double>();
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
string[] ___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___442
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
.TrimEnd().TrimStart().Trim()
.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___442.Length > 0)
{
for (int rrr = 0; rrr < ___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___442.Length; rrr++)
{
if (___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___442[rrr].TrimEnd().TrimStart().Trim().Length > 0)
{
double ___temp_current_token_converted_to_double = 1;
try
{
___temp_current_token_converted_to_double
=
Math.Abs(
Convert.ToDouble
(
___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___442[rrr].TrimEnd().TrimStart().Trim()
)
)
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////// obviously we are here since there is no error in the convertions ///////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (___temp_current_token_converted_to_double > 0)
{
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////// we record the proper double data if there is no exceptions in the convertions///////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
.Add
(
___temp_current_token_converted_to_double.ToString().TrimEnd().TrimStart().Trim()
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
.Add
(
___temp_current_token_converted_to_double
);
}// if(___temp_current_token_converted_to_double>0)
}
catch (Exception ___excp_converting_to_double)
{
___temp_current_token_converted_to_double = 1.338;
}//catch(Exception ___excp_converting_to_double)
}// if(___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___442[rrr].TrimEnd().TrimStart().Trim().Length>0)
}//for(int rrr=0;rrr< ___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___442.Length;rrr++)
}// if(___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___442.Length>0)
string reportofpopulations___442 = System.DateTime.Now.ToString() + "\r\n";
foreach (double ___dblsdivs in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
)
{
reportofpopulations___442 += (___dblsdivs.ToString()) + "\r\n";
}
//////foreach (double ___dblsdivs in
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
//////)
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "logging_PUBLIC_STATIC_STRING_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___442.txt"
, reportofpopulations___442
);
}
//////if (
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
////// .TrimEnd().TrimStart().Trim()
////// .Length > 0
////// )
#endregion regions_to_populate_the_list_for_442
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[442].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
try
{
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[443].Cells[1].Value != null)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
=
// Convert.ToDouble
(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[443].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart());
////////////public static double PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING = 0;
////////////public static List<string> PUBLIC_STATIC_LIST_OF_STRINGS_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443 = new List<string>();
////////////public static List<double> PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443 = new List<double>();
#region regions_to_populate_the_list_for_443
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
.TrimEnd().TrimStart().Trim()
.Length > 0
)
{
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
= new List<string>();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
= new List<double>();
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
string[] ___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___443
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
.TrimEnd().TrimStart().Trim()
.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___443.Length > 0)
{
for (int rrr = 0; rrr < ___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___443.Length; rrr++)
{
if (___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___443[rrr].TrimEnd().TrimStart().Trim().Length > 0)
{
double ___temp_current_token_converted_to_double = 1;
try
{
___temp_current_token_converted_to_double
=
Math.Abs(
Convert.ToDouble
(
___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___443[rrr].TrimEnd().TrimStart().Trim()
)
)
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////// obviously we are here since there is no error in the convertions ///////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (___temp_current_token_converted_to_double > 0)
{
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////// we record the proper double data if there is no exceptions in the convertions///////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
.Add
(
___temp_current_token_converted_to_double.ToString().TrimEnd().TrimStart().Trim()
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
.Add
(
___temp_current_token_converted_to_double
);
}// if(___temp_current_token_converted_to_double>0)
}
catch (Exception ___excp_converting_to_double)
{
___temp_current_token_converted_to_double = 1.338;
}//catch(Exception ___excp_converting_to_double)
}// if(___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___443[rrr].TrimEnd().TrimStart().Trim().Length>0)
}//for(int rrr=0;rrr< ___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___443.Length;rrr++)
}// if(___temp_splitted_string_for___PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___443.Length>0)
string reportofpopulations___443 = System.DateTime.Now.ToString() + "\r\n";
foreach (double ___dblsdivs in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
)
{
reportofpopulations___443 += (___dblsdivs.ToString()) + "\r\n";
}
//////foreach (double ___dblsdivs in
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
//////)
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "logging_PUBLIC_STATIC_STRING_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___443.txt"
, reportofpopulations___443
);
}
//////if (
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
////// .TrimEnd().TrimStart().Trim()
////// .Length > 0
////// )
///IF D THEN WE WILL TAKE THESE FACTORS DIVISIBILITY TO THE NOTES COUNTERS INCLUSIONS IF THERE IS N THEN WE WILL INCLUDE THE NOTES IF NOT DIVISIBLES
///// THIS WILL HAVE BETTER AND WILL INCLUDE SEVERAL OTHE KINDS OF RHYTHMS FOR THE NOTES CONDITIONS AND WE HAVE SEEN THAT FOR THE CASES OF DIVISIONS FILTERS
///WE ARE GETTING TOO SLOW AND LESS DENSER RHYTHMS FOR THE SYSTEMS OF WHOLES DISTRIBUTIONS OF THE SYSTEMS TO ARRANGE THE SOUNDS CONDITIONS
//////////////////___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////___can_i_take_this_short_splitted_zigzag_line REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
////////////public static string PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444 = "D";
////////////public static string PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445 = "D";
////////////public static string PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446 = "D";
//////////////////////////////___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////////////////___can_i_take_this_short_splitted_zigzag_line REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////////////////___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
///////////////IF D THEN WE WILL TAKE THESE FACTORS DIVISIBILITY TO THE NOTES COUNTERS INCLUSIONS IF THERE IS N THEN WE WILL INCLUDE THE NOTES IF NOT DIVISIBLES
///////////////// THIS WILL HAVE BETTER AND WILL INCLUDE SEVERAL OTHE KINDS OF RHYTHMS FOR THE NOTES CONDITIONS AND WE HAVE SEEN THAT FOR THE CASES OF DIVISIONS FILTERS
///////////////WE ARE GETTING TOO SLOW AND LESS DENSER RHYTHMS FOR THE SYSTEMS OF WHOLES DISTRIBUTIONS OF THE SYSTEMS TO ARRANGE THE SOUNDS CONDITIONS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[1].Value = "D";// "D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444";
////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[1].Style.BackColor = Color.LightCyan;
////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[1].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("D"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444
= "D";
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444
= "N";
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("D"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[444].Cells[1].Value != null)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////////////////___can_i_take_this_short_splitted_zigzag_line REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////////////////___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
///////////////IF D THEN WE WILL TAKE THESE FACTORS DIVISIBILITY TO THE NOTES COUNTERS INCLUSIONS IF THERE IS N THEN WE WILL INCLUDE THE NOTES IF NOT DIVISIBLES
///////////////// THIS WILL HAVE BETTER AND WILL INCLUDE SEVERAL OTHE KINDS OF RHYTHMS FOR THE NOTES CONDITIONS AND WE HAVE SEEN THAT FOR THE CASES OF DIVISIONS FILTERS
///////////////WE ARE GETTING TOO SLOW AND LESS DENSER RHYTHMS FOR THE SYSTEMS OF WHOLES DISTRIBUTIONS OF THE SYSTEMS TO ARRANGE THE SOUNDS CONDITIONS
//////////////////////////////___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////////////////___can_i_take_this_short_splitted_zigzag_line REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
//////////////////////////////___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS REFER THESE VARIABLES FOR THE D AND N CASES AND ALSO FOR THE FILES NAMES
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[1].Value = "D";// "D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445";
////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[1].Style.BackColor = Color.LightCyan;
////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[1].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("D"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445
= "D";
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445
= "N";
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("D"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[445].Cells[1].Value != null)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////IF D THEN WE WILL TAKE THESE FACTORS DIVISIBILITY TO THE NOTES COUNTERS INCLUSIONS IF THERE IS N THEN WE WILL INCLUDE THE NOTES IF NOT DIVISIBLES
///////////////// THIS WILL HAVE BETTER AND WILL INCLUDE SEVERAL OTHE KINDS OF RHYTHMS FOR THE NOTES CONDITIONS AND WE HAVE SEEN THAT FOR THE CASES OF DIVISIONS FILTERS
///////////////WE ARE GETTING TOO SLOW AND LESS DENSER RHYTHMS FOR THE SYSTEMS OF WHOLES DISTRIBUTIONS OF THE SYSTEMS TO ARRANGE THE SOUNDS CONDITIONS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[1].Value = "D";//"D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446";
////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[1].Style.BackColor = Color.LightCyan;
////////////dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[1].Style.ForeColor = Color.Black;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[1].Value != null)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("D"))
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446
= "D";
}
else
{
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446
= "N";
}//else case of if (dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart().ToUpper().Contains("D"))
}// if (dataGridViewFOR_GT_PRESETS_DATA.Rows[446].Cells[1].Value != null)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#endregion regions_to_populate_the_list_for_443
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[443].Cells[1].Value != null)
}
catch (Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)
{
//////take_default_as_zero_initialized_while_flushing
}//catch(Exception excp_dontknow_why_next_data_are_not_reflecting_in_output_screens)///
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class
//////public static double PUBLIC_STATIC_DOUBLE___PUSH_AWAY_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___428 = 1.1;//
//////public static double PUBLIC_STATIC_DOUBLE___PULL_TOWARDS_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___429 = 1.6;//
//////public static bool PUBLIC_STATIC_BOOL___DO_YOU_NEED_CENTI_DEGREES_SNAPPING_OF_NOTES___430 = true;//
//////public static double PUBLIC_STATIC_DOUBLE___FIRST_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___431 = 3;//
//////public static double PUBLIC_STATIC_DOUBLE___COMMS_DIFFS_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___432 = 0.1;//
//////public static double PUBLIC_STATIC_DOUBLE___FIRST_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___433 = 0.01;//
//////public static double PUBLIC_STATIC_DOUBLE___COMMN_DIFFS_FOR_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___434 = 0.3;//
//////public static double PUBLIC_STATIC_DOUBLE___LEFT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___435 = 6.1;//
//////public static double PUBLIC_STATIC_DOUBLE___RIGHT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___436 = 6.8;//
//////public static double PUBLIC_STATIC_DOUBLE___LEFT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___437 = 1.1;
//////public static double PUBLIC_STATIC_DOUBLE___RIGHT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___438 = 3.3;//
//////public static double PUBLIC_STATIC_DOUBLE___MIN_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___439 = 61;//
//////public static double PUBLIC_STATIC_DOUBLE___MAX_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___440 = 680;//
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441 = "1,2,3,4,5,6,7,8.9";//
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442 = "1,2,3,4,5,6,7,8.9";//
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443 = "1,2,3,4,5,6,7,8.9";//
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
////////////////////////////////////////////////////////////////////////////// UPTO THIS THE VARIABLES ASSIGNMENTS ARE DONE //////////////////////////
//////if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
////// {
////// //////this.button_PLAY_0_360.BackColor = Color.Blue;
////// this.buttonSCAN_0_360.BackColor = Color.Blue;
////// this.buttonSCAN_0_360.Refresh();
////// }
//////else
////// {
////// //////this.button_PLAY_0_360.BackColor = Color.Blue;
////// this.buttonSCAN_0_360.BackColor = Color.Red;
////// this.buttonSCAN_0_360.Refresh();
////// }//else cases of if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
//NEW VARIABLE ADDED AFTER THE CHAINS ARE ALSO CHECKED IN THE GIF FILES GENERATIONS current_seeds_angle_supplied_to_updater_functions
//TO MAKE THINGS FASTER FOR NON GRAPHICS UPDATED LOOPING WE HAVE ADDED THIS NEW VARIABLE IN THE FUNCTIONS FOR UPDATIONS
// ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.
////// GT_SEED_ANGLES_DEGREES = Convert.ToDouble(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value);
//CALLING CONVENTION IS (FOR THIS PLACE IT IS DUMMY CALLING ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.GT_SEED_ANGLES_DEGREES
//YES TESTED WORKING
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.update_ALL_GTSIMPLEX_OBJECTS_EVERYTIME_REFRESH_whole_array_with_command_string___PUBLIC_STATIC_MANDATORY_MULTIPLIE_GTSIMPLEX_array_of_multiplicative_recursive_lines___TO_FORM_SINGLE_GTSIMPLEX_ONLY(ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.GT_SEED_ANGLES_DEGREES);
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//THIS IS IMPORTANT CALL THIS DOES ALL CALCULATIONS FOR GT SIMPLEX WITH DATA COORDINATES
//i am trying to do this to keep the data preserved inside the public static variables of the 0 to 360 scanning
//i have seen that the rendering is not getting teh data from the public static list of list objects for PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
////////i am confused here why after calling this the data flush after 0 to 360 scanning is done
//////this._runtimes_global_object_of___PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC
////// .push_current_objects_list_data_to___global_public_static_list_data______public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt();
}
else
{
//i tried to call this update function here and i have seen that the global list of 0 to 360 vanish its contents
}//if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
return;
}//public static void reset_simulations_data_to_fresh_read_data_from_grids_and_regenerate_redraw_all()
private void dataGridViewFOR_GT_PRESETS_DATA_CellClick(object sender, DataGridViewCellEventArgs e)
{
FORMS_DATA_PUSHER_reset_simulations_data_to_fresh_read_data_from_grids_and_regenerate_redraw_all();
this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
}//private void dataGridViewFOR_GT_PRESETS_DATA_CellClick(object sender, DataGridViewCellEventArgs e)
private void dataGridViewFOR_GT_PRESETS_DATA_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
//showing error on loading FORMS_DATA_PUSHER_reset_simulations_data_to_fresh_read_data_from_grids_and_regenerate_redraw_all();
// i am doing this to get the real time geometry updates whenever the cell value is changed
/// this is added after the machine learning data preperation coding startedstarted
/// /// we needed to check the automated updations reflections when the orientations are changed
try
{
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
}
catch (Exception ___excp_for_cell_value_changed)
{
///////
/////// I AM FINDING THAT SOR SEVERAL CASES THERE ARE ISSUES
/////// BUT WHEN WE PUT TRY CATCH HERE THEN WE CANNOT CHECK THE THINGS PROPERLY
/////// SOME CULPRITS ARE THERE IN I J K M WE NEED TO CORRECT THESE
////// this is found for I J K M when the things dont work we have seen that
///////// this is found for I J K M when the things dont work we have seen that
///////// this is found for I J K M when the things dont work we have seen that
System.IO.File.AppendAllText
(ExcelFormulaParser_GT_PARSERSample
.Program.public_static_string_GT_folder
+ "TROUBLE_SHOOTING_EXCEPTIONS.log_REPORT"
,
"\r\n" + System.DateTime.Now.ToString() + "\r\n" +
" private void dataGridViewFOR_GT_PRESETS_DATA_CellValueChanged(object sender, DataGridViewCellEventArgs e)"
/// + "\r\n GT_SEED_ANGLES_DEGREES = " + GT_SEED_ANGLES_DEGREES.ToString()
+ "\r\n___excp_for___get_length_of_line details = "
+ ___excp_for_cell_value_changed.Message + "\r\n" + ___excp_for_cell_value_changed.StackTrace.ToString()
//////+ "\r\ncommand_string="
//////+ command_string
//////+ "\r\n x1= " + x1.ToString()
//////+ "\r\n y1= " + x1.ToString()
//////+ "\r\n x2= " + x1.ToString()
//////+ "\r\n y2= " + x1.ToString()
//////+ "\r\n length_calculated= " + length_calculated.ToString()
//////+ "\r\n EPSILON_FOR_CALCULATIONS_APPROXIMATIONS___DOUBLE_TYPES = " + EPSILON_FOR_CALCULATIONS_APPROXIMATIONS___DOUBLE_TYPES.ToString()
);
}//catch(Exception ___excp_for_cell_value_changed)
}//private void dataGridViewFOR_GT_PRESETS_DATA_CellValueChanged(object sender, DataGridViewCellEventArgs e)
private void ExcelFormulaTokensGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
//////private void button_PLAY_0_360_Click(object sender, EventArgs e)
//////{
////// for (int rrr = 0; rrr < 360; rrr++)
////// {
////// try
////// {
////// // public static List<Bitmap> PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX = new List<Bitmap>();
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
////// PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Clear();
////// this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value = rrr.ToString().Trim().TrimEnd().TrimStart();
////// this.dataGridViewFOR_GT_PRESETS_DATA.Refresh();
////// this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
////// this.pictureBox_FOR_GT_DISPLAYS.Refresh();
////// // Bitmap _tempBitmap = (Bitmap)this.pictureBox_FOR_GT_DISPLAYS.Image;
////// Bitmap _tempBitmap = new Bitmap(this.pictureBox_FOR_GT_DISPLAYS.Width, this.pictureBox_FOR_GT_DISPLAYS.Height);//working but we need the monochromes
////// _tempBitmap.SetResolution(13000, 13000);
////// var gg = Graphics.FromImage(_tempBitmap);
////// var rect = this.pictureBox_FOR_GT_DISPLAYS.RectangleToScreen(this.pictureBox_FOR_GT_DISPLAYS.ClientRectangle);
////// gg.CopyFromScreen(rect.Location, Point.Empty, this.pictureBox_FOR_GT_DISPLAYS.Size);
////// //yes tested that the files of 37 kb formed for proper filenames and in the gif animator things are sorting saving ok
////// // _tempBitmap.Save("d:\\bitmapfrompbox_" + (new String('0', 13 - (rrr.ToString().Length)) + rrr.ToString()) + ".bmp");
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
////// PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Add(_tempBitmap);
////// //we have seen that the processing time is dependent on the processor
////// //the threads sleep takes effect if the time is long setting done
////// // System.Threading.Thread.Sleep(3);
////// }
////// catch (Exception excpthreadflows) { }
////// //accumulations in the list of bitmaps done we think we need to set separate button for that
////// try
////// {
////// }
////// catch (Exception excpthreadflowsanimatinggenerators) { }
////// }//for (int rrr = 0; rrr < 360; rrr++)
//////}// private void button_PLAY_0_360_Click(object sender, EventArgs e)
//////private void buttonSCAN_0_360_Click(object sender, EventArgs e)
////// {
//////////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
////////////PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Add(_tempBitmap);
////// //accumulations in the list of bitmaps done we think we need to set separate button for that
////// try
////// {
////// /* create Gif */
////// //you should replace filepath
////// //String[] imageFilePaths = new String[] { "d:\\01.png", "d:\\02.png", "d:\\03.png" };
////// // String[] imageFilePaths = new String[] { "d:\\01.bmp", "d:\\02.bmp", "d:\\03.bmp" };
////// List<Bitmap> LIST_OF_BITMAPS = PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX;
////// Bitmap[] ARRAY_OF___LIST_OF_BITMAPS = LIST_OF_BITMAPS.ToArray<Bitmap>();
////// String outputFilePath = "D:\\test_LIST_OF_BITMAPS_SAAN_GIF.gif";
////// AnimatedGifEncoder e_for_animated_gif_encoders = new AnimatedGifEncoder();
////// e_for_animated_gif_encoders.Start(outputFilePath);
////// e_for_animated_gif_encoders.SetDelay(500);
////// //-1:no repeat,0:always repeat
////// e_for_animated_gif_encoders.SetRepeat(0);
////// this.progressBarFOR_ANIMATIONS_SAVING.Maximum = ARRAY_OF___LIST_OF_BITMAPS.Length + 3;
////// for (int i = 0, count = ARRAY_OF___LIST_OF_BITMAPS.Length; i < count; i++)
////// {
////// // e.AddFrame(Image.FromFile(imageFilePaths[i]));
////// //https://www.bing.com/search?q=CS1061++C%23+does+not+contain+a+definition+for+and+no+accessible+extension+method+accepting+a+first+argument+of+type+could+be+found+(are+you+missing+a+using+directive+or+an+assembly+reference%3f)&form=VSHELP
////// // e.AddFrame((Image)LIST_OF_BITMAPS.ElementAt<Bitmap>(i));
////// e_for_animated_gif_encoders.AddFrame( (Bitmap)ARRAY_OF___LIST_OF_BITMAPS[i]);
////// this.progressBarFOR_ANIMATIONS_SAVING.Value = i;
////// this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
////// this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
////// // e_for_animated_gif_encoders
////// }
////// e_for_animated_gif_encoders.Finish();
////// }
////// catch (Exception excpthreadflowsanimatinggenerators) { }
////// }//private void buttonSCAN_0_360_Click(object sender, EventArgs e)
//how to write good for maths
//to follow these series
/// <summary>
/// ///http://libgen.is/search.php?req=Mircea+Pitici&lg_topic=libgen&open=0&view=simple&res=100&phrase=1&column=author
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button_PLAY_0_360_Click_1(object sender, EventArgs e)
{
//////0 X1 0
//////1 Y1 0
//////2 Z1 0
//////3 X2 - 743.144825477392
//////4 Y2 669.130606358857
//////5 Z2 0
//////6 L_OF_FIRST_LINE 999.999999999997
//////7 INITIAL_LOCKED_SET_POSITIONS_THETA_DEGREE 138 CHANGE IT TO 0
//////8 INITIAL_LOCKED_SET_POSITIONS_THETA_RADIAN 2.40855436775217
/// for safe sides of data generations we will always put the initial L to x axis such that we dont do mistakes
///
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[0].Cells[1].Value = "0";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[1].Cells[1].Value = "0";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[2].Cells[1].Value = "0";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value != null)
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3].Cells[1].Value =
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value.ToString();// "1000";
}
else
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3].Cells[1].Value = "1000";
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value!=null)
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3 + 1].Cells[1].Value = "0";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3 + 2].Cells[1].Value = "0";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[1].Value = "0";/// rotations angle degrees
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[8].Cells[1].Value = "0";/// rotations angle radians
//tooooo important for the group theory for trigonometry
//////''''''http://www.cs.cornell.edu/courses/cs422/2008sp/A6/Ellipse.pdf
//////''''''https://en.wikipedia.org/wiki/Completing_the_square
//////''''''https://www.jstor.org/stable/pdf/1967305.pdf
//////https://www.jstor.org/stable/pdf/2971207.pdf?refreqid=excelsior%3A0091e49147e6f0029a97cf3a6f6f96a2&ab_segments=0%2FSYC-6490%2Fcontrol&origin=&acceptTC=1
////////////// System.IO.File.AppendAllText
//////////////(ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder.Program.public_static_string_GT_folder
//////////////
//////////////+ "UPDATING_MACHINE_LEARNING_DATA.FOR_ML_THEOREMS"
//////////////,
//////////////_tempCheckingStringBuilder.ToString()
//////////////.ToString()
//////////////.Replace("\r\n\r\n", "\r\n")
//////////////);
//THESE ARE FOR TEXTS SETTING AND WE DONT WANT THESE TO COME IN THE ANIMATIONS TIMES
//THESE ARE SETTING THINGS TO JUNGLE LIKE THINGS
dataGridViewFOR_GT_PRESETS_DATA.Rows[59].Cells[1].Value = "N";// SHOW_OUTPUT_LINES_ADDRESS_TEXTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[60].Cells[1].Value = "N";// "SHOW_COMPLEMENT_LINES_ADDRESS_TEXTS";
///////// token DO
////// System.IO.File.WriteAllText("D:\\checking_filenames_for_gif_gt.txt", "\r\n" + "flushing at the start of the functions of button simulations\r\n");
////// System.IO.File.WriteAllText("d:\\tripple_checks_from_the_filenames_saving_inside_button_play_0_360_click.txt", "\r\n" + "flushing at the start of the functions of button simulations\r\n");
////// System.IO.File.WriteAllText("D:\\from_the_filenames_saving_inside_button_play_0_360_click.txt", "\r\n" + "flushing at the start of the functions of button simulations\r\n");
////// //i have set the append all text inside the recalculate functions such that we can get the all data for all the seeds angles there
////// //such that we can read that data and do the analysis there
////// System.IO.File.WriteAllText("d:\\sbuilderforreportingdrawingsketches.txt", "\r\nFLUSHING AT THE START OF THE BUTTON AND WE WILL LOG THIS FROM THE RECALCULATE RELOADS sbuilderforreportingdrawingsketches.ToString()\r\n");
/// token DO
System.IO.File.WriteAllText(ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder + "checking_filenames_for_gif_gt.txt", "\r\n" + "flushing at the start of the functions of button simulations\r\n");
System.IO.File.WriteAllText(ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder + "tripple_checks_from_the_filenames_saving_inside_button_play_0_360_click.txt", "\r\n" + "flushing at the start of the functions of button simulations\r\n");
System.IO.File.WriteAllText(ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder + "from_the_filenames_saving_inside_button_play_0_360_click.txt", "\r\n" + "flushing at the start of the functions of button simulations\r\n");
//i have set the append all text inside the recalculate functions such that we can get the all data for all the seeds angles there
//such that we can read that data and do the analysis there
System.IO.File.WriteAllText(ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder + "sbuilderforreportingdrawingsketches.txt", "\r\nFLUSHING AT THE START OF THE BUTTON AND WE WILL LOG THIS FROM THE RECALCULATE RELOADS sbuilderforreportingdrawingsketches.ToString()\r\n");
//TOO IMPORTANT LINE OF CODES HERE
//TOO IMPORTANT LINE OF CODES HERE
//TOO IMPORTANT LINE OF CODES HERE
//////NOW TRYING TO GENERATE THE MIDI FILES HERE
///
///////////////// <summary>
///////////////// Creates a new MIDI note instance
///////////////// </summary>
///////////////// <param name="position">The position</param>
///////////////// <param name="channel">The channel (0-15)</param>
///////////////// <param name="noteId">The note id (0-127)</param>
///////////////// <param name="velocity">The velocity (0-127)</param>
///////////////// <param name="length">The length</param>
//////////////public MidiNote(int position, byte channel, byte noteId, byte velocity, int length)
////////////// {
////////////// //yes i have seen that this part opens when we open the files
////////////// Position = position;
////////////// Channel = unchecked((byte)(channel & 0x0F));
////////////// NoteId = unchecked((byte)(noteId & 0x7F));
////////////// Velocity = unchecked((byte)(velocity & 0x7F));
////////////// Length = length;
////////////// //i have set these data
////////////// System.IO.File.AppendAllText("D:\\SAAN_DATA_MIDI_CHECKING.txt", "\r\n THE MidiNote CALL " + System.DateTime.Now.ToString() + " MIDI_NOTE Channel= " + Channel.ToString() + " NoteId = " + NoteId.ToString() + " noteId = " + noteId.ToString() + " channel = " + channel.ToString() + " velocity=" + velocity.ToString() + " Velocity = " + Velocity.ToString() + " Length=" + Length.ToString());
////////////// }//public MidiNote(int position,byte channel, byte noteId, byte velocity, int length)
List<MidiNote> SAAN_Sketching_NoteMap = new List<MidiNote>();
SAAN_Sketching_NoteMap.Clear();
//////var file = _CreateMidiFile();
//////file.WriteTo(SaveMidiFile.FileName);
///
var file = new MidiFile();
var multitrack_file = new MidiFile();
// we'll need a track 0 for our tempo map
var track0 = new MidiSequence();
// set the tempo at the first position
double _saan_temp = 133;
track0.Events.Add(new MidiEvent(0, new MidiMessageMetaTempo((double)_saan_temp)));
// compute the length of our loop
// var len = ((int)BarsUpDown.Value) * 4 * file.TimeBase;
//////var len =
////// (
////// (int)ExcelFormulaParser_GT_PARSERSample.PUBLIC_STATIC_CLASS_FOR_GRAPHICS_HANDLING._public_static_list_SKETCH_1_PEN_TRACES_______POINT_SET_FOR_SKETCHING_PRESERVING.Count
////// ) * 4 * file.TimeBase;
///
//i have taken 360 here we will decide later
var len =
(360
// (int)ExcelFormulaParser_GT_PARSERSample.PUBLIC_STATIC_CLASS_FOR_GRAPHICS_HANDLING._public_static_list_SKETCH_1_PEN_TRACES_______POINT_SET_FOR_SKETCHING_PRESERVING.Count
) * 4 * file.TimeBase;
// add an end of track marker just so all
// of our tracks will be the loop length
track0.Events.Add(new MidiEvent(len, new MidiMessageMetaEndOfTrack()));
// here we need a track end with an
// absolute position for the MIDI end
// of track meta message. We'll use this
// later to set the length of the track
var trackEnd = new MidiSequence();
trackEnd.Events.Add(new MidiEvent(len, new MidiMessageMetaEndOfTrack()));
// add track 0 (our tempo map)
file.Tracks.Add(track0);
// create track 1 (our drum track)
var track1 = new MidiSequence();
var track_for_multi_tracks = new MidiSequence();
// we're going to create a new sequence for
// each one of the drum sequencer tracks in
// the UI
//////var trks = new List<MidiSequence>(BeatsPanel.Controls.Count);
var trks = new List<MidiSequence>(8);//direction wise tracks to plan North South East West NorthEast NorthWest,SouthWest,SouthEast
double _lines_counter = 0;
multitrack_file = file.Clone();
////////////////////////////////////////////
//WE FLUSH THESE VALUES ONLY AT THE STARING OF THE SIMULATIONS BUTTON NOT IN THE MIDDLE OF THE PROCESS
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MIN_X = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:13
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MIN_Y = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:14
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MAX_X = Double.MinValue;//-600000 // Variables.VarTable_GT_CALCULATIONS:15
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MAX_Y = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:16
//THESE ARE CSHARPS ADDITIONS
//WE FLUSH THESE VALUES ONLY AT THE STARING OF THE SIMULATIONS BUTTON NOT IN THE MIDDLE OF THE PROCESS
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_WIDTH_AFTER_GENERATIONS = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:13
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_HEIGHT_AFTER_GENERATIONS = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:14
//WE FLUSH THESE VALUES ONLY AT THE STARING OF THE SIMULATIONS BUTTON NOT IN THE MIDDLE OF THE PROCESS
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_AREA_AFTER_GENERATIONS = 0;
//we will create these bitmaps with pbox width and height with pixels formats predefined
//calling conventions PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BITMAP___SINGLE_BITMAP_FOR_0_TO_360_FLOWS___TO_SHOW_DYNAMICS_OF_PIVOT_STRETCH_NODAL_POINTS_MOVEMENTS
// public static Bitmap PUBLIC_STATIC_BITMAP___SINGLE_BITMAP_FOR_0_TO_360_FLOWS___TO_SHOW_DYNAMICS_OF_PIVOT_STRETCH_NODAL_POINTS_MOVEMENTS;// we will flush and create this when simulations button is clicked
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BITMAP___SINGLE_BITMAP_FOR_0_TO_360_FLOWS___TO_SHOW_DYNAMICS_OF_PIVOT_STRETCH_NODAL_POINTS_MOVEMENTS = null;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BITMAP___SINGLE_BITMAP_FOR_0_TO_360_FLOWS___TO_SHOW_DYNAMICS_OF_PIVOT_STRETCH_NODAL_POINTS_MOVEMENTS
=
new Bitmap(this.pictureBox_FOR_GT_DISPLAYS.Width, this.pictureBox_FOR_GT_DISPLAYS.Height, PixelFormat.Format24bppRgb);
//this is flushed here and we will populate this every time inside the updater
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST____SINGLE_UPDATED_OBJECT_OF_BITMAP_FOR_PIVOT_STRETCH_NODAL___POINTS_FLOW.Clear();
//calling conventions PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST____SINGLE_UPDATED_OBJECT_OF_BITMAP_FOR_PIVOT_STRETCH_NODAL___POINTS_FLOW
// public static List<Bitmap> PUBLIC_STATIC_LIST____SINGLE_UPDATED_OBJECT_OF_BITMAP_FOR_PIVOT_STRETCH_NODAL___POINTS_FLOW = new List<Bitmap>();//we will clear this at start of simulations button click
//TOO IMPORTANT LINE OF CODES ABOVE
//TOO IMPORTANT LINE OF CODES ABOVE
//TOO IMPORTANT LINE OF CODES ABOVE
//this works but disturbs when errors are there
//this.TopMost = true;//this is necessary to get right gif outputs
// public static List<Bitmap> PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX = new List<Bitmap>();
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Clear();
//THIS IS NEW EXPERIMENT
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Clear();
//for false cases
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Clear();
//for true cases
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Clear();
//CAUTION CAUTION CAUTION these are taken inside THIS LOOP
//CAUTION CAUTION CAUTION these are taken inside THIS LOOP
//CAUTION CAUTION CAUTION these are taken inside THIS LOOP
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___PIVOT___AFTER_ADJUSTMENTS.Clear();// = new List<PointF>();
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___STRETCH___AFTER_ADJUSTMENTS.Clear();// = new List<PointF>();
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___NODAL___AFTER_ADJUSTMENTS.Clear();// = new List<PointF>();
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___CG___AFTER_ADJUSTMENTS.Clear();
////// //CALL WITH Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.PUBLIC_STATIC_INT_FRAMES_ITERATOR_UPDATED_FROM_FORMS_SIMULATORS_BUTTON
//////public static int PUBLIC_STATIC_INT_FRAMES_ITERATOR_UPDATED_FROM_FORMS_SIMULATORS_BUTTON = 0;
////////calling with Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names
//////public static List<string> public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names = new List<string>();
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.PUBLIC_STATIC_INT_FRAMES_ITERATOR_UPDATED_FROM_FORMS_SIMULATORS_BUTTON = 0;
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names.Clear();
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_ONLY_INFOLDERS_file_names_to_store_frames_bitmaps_files_names.Clear();
this.progressBarFOR_ANIMATIONS_SAVING.Maximum = 360;// ARRAY_OF___LIST_OF_BITMAPS.Length + 3;
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
//////Bitmap _tempBitmap;
//////Bitmap _temp_of_another_Bitmaps;
///
//for references public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360
//for references public_static_class_simulations_CONTROLLER_for_gt_Class.SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360
//we are inside the simulations button
//we are inside the simulations button
//we are inside the simulations button
double incrementor_of_angles = 33;// 3;// 2.5;
//this is newly introduced in the row of [133+1+1] of the interfaces datagrids
//such that we can control this from there and we dont need to control from the codes for that
incrementor_of_angles =
public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360;
int incrementor_of_frames = 0;
for (double rrr = 0; rrr < 360; rrr += incrementor_of_angles)
{
try
{
////// PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX
//we will add this after all additions done
// incrementor_of_frames
//ha ha ha this is the mistakes we were clearing that inside the for loops
//////// public static List<Bitmap> PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX = new List<Bitmap>();
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
//////PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Clear();
//this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30] IS THE SEEDS ANGLE IN DEGREES
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value
= rrr.ToString().Trim().TrimEnd().TrimStart();
this.dataGridViewFOR_GT_PRESETS_DATA.Refresh();
this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
this.pictureBox_FOR_GT_DISPLAYS.Refresh();
// Bitmap _tempBitmap = (Bitmap)this.pictureBox_FOR_GT_DISPLAYS.Image;
//caution caution caution THIS WORKS WHEN THE YES OPTION IS CHOSEN
//this is newly added thing to set the systems with faster simulations and not to save all simulations every times
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO)
{
//when i kept these outside we were getting only some or single bitmaps output with different files names
Bitmap _tempBitmap = null;
Bitmap _temp_of_another_Bitmaps = null;
//defined out of the for loops Bitmap _tempBitmap
_tempBitmap = new Bitmap(this.pictureBox_FOR_GT_DISPLAYS.Width, this.pictureBox_FOR_GT_DISPLAYS.Height);//working but we need the monochromes
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations
// int wwwidth = (int)PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes.VisibleClipBounds.Width;
// int hhheight = (int)PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes.VisibleClipBounds.Height;
//saying the parameter is not valid in the exceptions
// Bitmap _temp_of_another_Bitmaps = new Bitmap(this.pictureBox_FOR_GT_DISPLAYS.Width+6, this.pictureBox_FOR_GT_DISPLAYS.Height+6, PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes);
// Bitmap _temp_of_another_Bitmaps = new Bitmap(wwwidth, hhheight, PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes);
Graphics gggggg = PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes;
if (gggggg != null)
{
// _temp_of_another_Bitmaps = new Bitmap(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations.Width, PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations.Height, gggggg);
}// if (gggggg != null)
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes
// _tempBitmap.SetResolution(13000, 13000);
//I AM STOPPING THIS SINCE WE ARE USING NEW NIMATOR CLASSES i have seen that gif files generation stopped WHEN WE STOP THIS
var gg = Graphics.FromImage(_tempBitmap);
// var rect = this.pictureBox_FOR_GT_DISPLAYS.RectangleToScreen(this.pictureBox_FOR_GT_DISPLAYS.ClientRectangle);
//I AM STOPPING THIS SINCE WE ARE USING NEW NIMATOR CLASSES i have seen that animations in gif file did not work after that
var rect = this.pictureBox_FOR_GT_DISPLAYS.RectangleToScreen(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations.ClientRectangle);
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations
// gg.CopyFromScreen(rect.Location, Point.Empty, this.pictureBox_FOR_GT_DISPLAYS.Size);
//I AM STOPPING THIS SINCE WE ARE USING NEW ANIMATOR CLASSES
gg.CopyFromScreen(rect.Location, Point.Empty, PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations.Size);
//yes tested that the files of 37 kb formed for proper filenames and in the gif animator things are sorting saving ok
//
//
//_tempBitmap.Save("d:\\bitmapfrompbox_" + (new String('0', 13 - (rrr.ToString().Length)) + rrr.ToString()) + ".bmp");
System.Threading.Thread.Sleep(13);
//no exceptions still the gif animations generations dont work (i have seen that the Bitmaps are not saving into the List
//oh ho we were clearing inside the for loops
goto_resetADDFrames:
// ////I AM STOPPING THIS SINCE WE ARE USING NEW NIMATOR CLASSES
//WE ARE INSIDE PLAY_0_TO_360_CLICK_1 BUTTON THIS NEED TO STORE THE GIF FILES OF THE SIMULATIONS
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Add((Bitmap)(_tempBitmap));
try
{
//we will try to use this in future https://stackoverflow.com/questions/17781180/how-to-create-a-gif-image-with-c-sharp
// ((Bitmap)(_tempBitmap)).SaveAdd
//this is working line
// string _temp_filesnames_for_frames = "d:\\" + ((new String('0', 13 - incrementor_of_frames.ToString().Trim().TrimEnd().TrimStart().Length)) + incrementor_of_frames.ToString().Trim().TrimEnd().TrimStart()).ToString() +".bmp";
string _temp_filesnames_for_frames = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder + ((new String('0', 13 - incrementor_of_frames.ToString().Trim().TrimEnd().TrimStart().Length)) + incrementor_of_frames.ToString().Trim().TrimEnd().TrimStart()).ToString() + incrementor_of_frames.ToString().Trim().TrimEnd().TrimStart() + ".bmp";
////calling conventions ASAANSOL_AnimatedGif.ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
///
((Bitmap)(_tempBitmap)).Save(_temp_filesnames_for_frames);
//i have added this to get double surity
//THIS DONT ENTER WHILE RUNNING SIMULATIONS BUTTON 0 TO 360
// Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names.Add(_temp_filesnames_for_frames);
System.IO.File.AppendAllText
(ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+
"from_the_filenames_saving_inside_button_play_0_360_click.txt"
, "\r\n" + _temp_filesnames_for_frames);
}
catch (Exception excpforbmpsavingfromplaybuttons)
{
}//catch(Exception excpforbmpsavingfromplaybuttons)
//this next line dont work so we have taken this inside the paint of the pbox
//this dont work here Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names.Add(_temp_filesnames_for_frames);
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Count < incrementor_of_frames)
{
goto goto_resetADDFrames;
}
else
{
incrementor_of_frames++;
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.PUBLIC_STATIC_INT_FRAMES_ITERATOR_UPDATED_FROM_FORMS_SIMULATORS_BUTTON = incrementor_of_frames;
////Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.PUBLIC_STATIC_INT_FRAMES_ITERATOR_UPDATED_FROM_FORMS_SIMULATORS_BUTTON = 0;
////Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names.Clear();
try
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Add(_temp_of_another_Bitmaps);
this.progressBarFOR_ANIMATIONS_SAVING.Value = (int)rrr;// incrementor_of_frames;
}
catch (Exception excpdisturbingwhilerecordinggiffiles)
{
// incrementor_of_frames--;
// goto goto_resetADDFrames;
} //catch(Exception excpdisturbingwhilerecordinggiffiles)
}//else case of if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class. PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Count < incrementor_of_frames)
//NO ISSUE
//i have taken this to the else case of above loops
//////////////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
////////////// PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Add(_temp_of_another_Bitmaps);
//DISTURBING System.Threading.Thread.Sleep(13);
//we have seen that the processing time is dependent on the processor
//the threads sleep takes effect if the time is long setting done
//
//wrongly typed here
//////MessageBox.Show("Frames Accumulations done");
//////Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.CALLING_GIFS_GENERATORS_Main(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names, "d:\\gif_from_list_of_filenames.gif",37);
//caution caution caution when the gif generations options are chosen then only the inside things work
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO)
try
{
this.progressBarFOR_ANIMATIONS_SAVING.Value = (int)rrr;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
}
catch (Exception excpdisturbingwhilerecordinggiffiles)
{
} //catch(Exception excpdisturbingwhilerecordinggiffiles)
}
catch (Exception excpthreadflows)
{
MessageBox.Show("TRYING TO UNDERSTAND THE PROBLEMS OF SAVING BITMAPS " + excpthreadflows.Message + excpthreadflows.StackTrace.ToString());
}
//accumulations in the list of bitmaps done we think we need to set separate button for that
try
{
}
catch (Exception excpthreadflowsanimatinggenerators) { }
}//for (int rrr = 0; rrr < 360; rrr++)
//to do after for loop is complete yes tested that it is working fine
//to do after for loop is complete yes tested that it is working fine
//to do after for loop is complete yes tested that it is working fine
MessageBox.Show("Frames Accumulations done");
//caution caution caution THIS WORKS WHEN THE YES OPTION IS CHOSEN
//this is newly added thing to set the systems with faster simulations and not to save all simulations every times
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO)
{
// yes this works
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF
.CALLING_GIFS_GENERATORS_Main
(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF
.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names
, ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "HARDCODES_NAMES_gif_from_list_of_filenames.gif", 138);
//we are calling this since this shows progress bar also
//THIS WAS DISTURBING +"\\"+
string the_simulations_filesnames =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string +
System.DateTime.Now.ToString().Replace(" ", "_").Replace("/", "_").Replace("\\", "_").Replace(":", "_").Replace(";", "_")
+ "_gif_from_list_of_filenames.gif";
the_simulations_filesnames = the_simulations_filesnames.Replace("\\", "\\\\");
MessageBox.Show("the_simulations_filesnames = " + the_simulations_filesnames);
FORMS_OWN_GIFS_GENERATORS_WITH_PROGRESSBARS_HANDLING(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names, the_simulations_filesnames, 138);
//we will try with another systems also
//trying with new Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Add(bmp);
MessageBox.Show("To generates new gif with separate styles " + the_simulations_filesnames.Replace(".gif", "_list_of_control_saves_bitmaps.gif"));
FORMS_OWN_GIFS_GENERATORS_WITH____LIST_OF_BITMAPS___PROGRESSBARS_HANDLING(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES, the_simulations_filesnames.Replace(".gif", "_list_of_control_saves_bitmaps.gif"), 338);
//ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
//I DONT THINK THE GIF ANIMATIONS TO GENERATE AT THIS STAGE
//I DONT THINK THE GIF ANIMATIONS TO GENERATE AT THIS STAGE
//I DONT THINK THE GIF ANIMATIONS TO GENERATE AT THIS STAGE
//now we are using after 03082020plus Program.public_static_string_GT_folder
// FORMS_OWN_GIFS_GENERATORS_WITH_PROGRESSBARS_HANDLING(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names, "d:\\" + the_simulations_filesnames, 138);
//now we are using after 03082020plus Program.public_static_string_GT_folder
//NEW WAYS OF TRYING TO GENERATE GIF FILES ANIMATIONS WITH NEW LIST OF FILE NAMES
//////FORMS_OWN_GIFS_GENERATORS_WITH_PROGRESSBARS_HANDLING(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_ONLY_INFOLDERS_file_names_to_store_frames_bitmaps_files_names, Program.public_static_string_GT_folder + the_simulations_filesnames, 138);
FORMS_OWN_GIFS_GENERATORS_WITH_PROGRESSBARS_HANDLING(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_ONLY_INFOLDERS_file_names_to_store_frames_bitmaps_files_names, the_simulations_filesnames, 138);
//THIS IS NEW KIND OF GIF FILES GENERATORS LIST
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_ONLY_INFOLDERS_file_names_to_store_frames_bitmaps_files_names.Clear();
//caution caution caution THIS WORKS WHEN THE YES OPTION IS CHOSEN
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO)
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Clear();
//this is specially writen function for gif generations for any cases
//this is specially writen function for gif generations for any cases
//this is specially writen function for gif generations for any cases
//reading from this file for data (to do) "d:\\sbuilderforreportingdrawingsketches.txt"
//reading from this file of paths of bmp files // d:\\checking_filenames_for_gif_gt.txt
List<string> _local_copy_of_filenames_of_bmp_loaded_from__the______d___checking_filenames_for_gif_gt = new List<string>();
_local_copy_of_filenames_of_bmp_loaded_from__the______d___checking_filenames_for_gif_gt.Clear();
if (System.IO.File.Exists(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "checking_filenames_for_gif_gt.txt")
)
{
string[] _temp_strings_array_loading_files_data_for_paths
= System.IO.File.ReadAllLines
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+
"checking_filenames_for_gif_gt.txt");
for (int r = 0; r < _temp_strings_array_loading_files_data_for_paths.Length; r++)
{
if (_temp_strings_array_loading_files_data_for_paths[r].TrimEnd().TrimStart().Trim().Length > 0)
{
if (_temp_strings_array_loading_files_data_for_paths[r].TrimEnd().TrimStart().ToUpper().EndsWith(".BMP"))
{
_local_copy_of_filenames_of_bmp_loaded_from__the______d___checking_filenames_for_gif_gt
.Add
(
_temp_strings_array_loading_files_data_for_paths[r].TrimEnd().TrimStart().Replace("\\", "\\\\")
);
// convert the note map to a sequence
// and add it to our working tracks
trks.Add((MidiSequence.FromNoteMap(SAAN_Sketching_NoteMap)));
// now we merge the sequences into one
var t = MidiSequence.Merge(trks);
// we merge everything down to track 1
track1 = MidiSequence.Merge(track1, t, trackEnd);
// .. and add it to the file
// file.Tracks.Add(track1);
file.Tracks.Add(track1);
}//if (_temp_strings_array_loading_files_data_for_paths[r].TrimEnd().TrimStart().ToUpper().EndsWith(".BMP") )
}// if(_temp_strings_array_loading_files_data_for_paths[r].Length>0)
}// for(int r=0;r< _temp_strings_array_loading_files_data_for_paths.Length;r++)
if (_local_copy_of_filenames_of_bmp_loaded_from__the______d___checking_filenames_for_gif_gt.Count<string>() > 3)
{
if (dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value != null)
{
//dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value
string _generating_gif_files_names = "";
_generating_gif_files_names
=
// Program.public_static_string_GT_folder + "_simply_log_file_reading_gif.gif"
Program.public_static_string_GT_folder + dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().TrimEnd().TrimStart().Trim() + ".gif";
dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Style.BackColor = Color.LightCyan;
//now we are using after 03082020plus Program.public_static_string_GT_folder
//NEW WAYS OF TRYING TO GENERATE GIF FILES ANIMATIONS WITH NEW LIST OF FILE NAMES
FORMS_OWN_GIFS_GENERATORS_WITH_PROGRESSBARS_HANDLING(_local_copy_of_filenames_of_bmp_loaded_from__the______d___checking_filenames_for_gif_gt, _generating_gif_files_names, 138);
//yes tested that it is working
System.Windows.Forms.MessageBox.Show(_generating_gif_files_names + " generated with \r\n\r\n\r\n" + "file names of d:\\checking_filenames_for_gif_gt.txt log bmp grouped to gif file generated at \r\n\r\n\r\n" + _generating_gif_files_names);
}//if(dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value!=null)
//end of if (else starts) if(_local_copy_of_filenames_of_bmp_loaded_from__the______d___checking_filenames_for_gif_gt.Count<string>()>3)
}
else
{
System.Windows.Forms.MessageBox.Show("_local_copy_of_filenames_of_bmp_loaded_from__the______d___checking_filenames_for_gif_gt.Count<string>() = " + _local_copy_of_filenames_of_bmp_loaded_from__the______d___checking_filenames_for_gif_gt.Count<string>().ToString() + "\r\n so not preparing the gif files");
}//else of if(_local_copy_of_filenames_of_bmp_loaded_from__the______d___checking_filenames_for_gif_gt.Count<string>()>3)
}// if(System.IO.File.Exists("d:\\checking_filenames_for_gif_gt.txt"))
string _generating_midi_files_names = "";
_generating_midi_files_names
=
// Program.public_static_string_GT_folder + "_simply_log_file_reading_gif.gif"
Program.public_static_string_GT_folder + dataGridViewFOR_GT_PRESETS_DATA.Rows[18].Cells[1].Value.ToString().TrimEnd().TrimStart().Trim() + ".mid";
//yes tested that it is working
System.Windows.Forms.MessageBox.Show(_generating_midi_files_names + " generated with \r\n\r\n\r\n" + "file names of d:\\checking_filenames_for_gif_gt.txt log bmp grouped to the midi file generated at \r\n\r\n\r\n" + _generating_midi_files_names);
file.WriteTo(_generating_midi_files_names);
//this is tooooo heavy files
multitrack_file.WriteTo(_generating_midi_files_names + "_several_tracks_saan.mid");
System.Windows.Forms.MessageBox.Show("MIDI_FILE_SAVED " + _generating_midi_files_names);
//CAUTION CAUTION CAUTION we need to use some separate things
//i have tested with high end systems and found that this generated the gif file which is heavy upto 3.8 megabytes and the data accumulation was fast but generating this took half an hour
//i have tested with high end systems and found that this generated the gif file which is heavy upto 3.8 megabytes and the data accumulation was fast but generating this took half an hour
//i have tested with high end systems and found that this generated the gif file which is heavy upto 3.8 megabytes and the data accumulation was fast but generating this took half an hour
////////we will try with another systems also which will show the flow of pivots stretches and the nodal systems flows of the 0 to 360 simulations
////////trying with new Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Add(bmp);
//////MessageBox.Show("To generates new gif flow of pivot stretches and nodal points " + "d:\\" + the_simulations_filesnames.Replace(".gif", "_list_of_control_saves_bitmaps.gif"));
//////FORMS_OWN_GIFS_GENERATORS_WITH____LIST_OF_BITMAPS___PROGRESSBARS_HANDLING(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST____SINGLE_UPDATED_OBJECT_OF_BITMAP_FOR_PIVOT_STRETCH_NODAL___POINTS_FLOW, "d:\\" + the_simulations_filesnames.Replace(".gif", "_list_of_pivots_stretches_nodals_bitmaps.gif"), 37);
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
//we will clear this list after the gif is prepered
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST____SINGLE_UPDATED_OBJECT_OF_BITMAP_FOR_PIVOT_STRETCH_NODAL___POINTS_FLOW.Clear();
if (public_static_class_simulations_CONTROLLER_for_gt_Class.DO_YOU_NEED_PDF_REPORTING_FOR_THE_DATA_______137)
{
// KSS_FILE_CORRECTOR.SAAN_PDF.PUBLICOTHEREXAMPLES_Class
//////KSS_FILE_CORRECTOR.SAAN_PDF.OtherExample oethis = new KSS_FILE_CORRECTOR.SAAN_PDF.OtherExample();
//NOT USING THIS SAAN_PDF.OtherExample oethis = new SAAN_PDF.OtherExample();//this object is forming
//yes need to keep all the images and files
//
//TestSAANPDF
//I AM USING THIS NOW
TestSAANPDF.OtherExample_USING_THIS_IN_GT oethis = new TestSAANPDF.OtherExample_USING_THIS_IN_GT();//this object is forming
// oethis.TestOtherExample(false, "D:\\fromksscorrector.pdf");//this is called and the problem is that it needs the images and other things in right paths
//to do this for images
//
oethis.Test_TO_GENERATE_PDF_FILE_FROM_GENERATED_IMAGES_IN_GT(false, Program.public_static_string_GT_folder + "fromksscorrector.pdf");//this is called and the problem is that it needs the images and other things in right paths
// PrintExample PE = new PrintExample();
// PE.Test(DebugCheckBox.Checked, "D:\\PrintExample.pdf");
TestSAANPDF.PrintExample printexamplesthis = new TestSAANPDF.PrintExample();//this object is forming
printexamplesthis.Test(false, Program.public_static_string_GT_folder + "PrintExample.pdf");
TestSAANPDF.ChartExample chartexamplesthis = new TestSAANPDF.ChartExample();//this object is forming
chartexamplesthis.Test(false, Program.public_static_string_GT_folder + "ChartExample.pdf");
SAANPDFMINING.SAANPDFMINING _new_forms = new SAANPDFMINING.SAANPDFMINING();
_new_forms.Show();
// Application.EnableVisualStyles();
// Application.SetCompatibleTextRenderingDefault(false);
// Application.Run(new TestSAANPDF.TestSAANPDF());
//////yes tested ok
//yes the form opens TestSAANPDF.TestSAANPDF _testsaanpdfobject = new TestSAANPDF.TestSAANPDF();
//////yes tested ok
//yes the form opens T _testsaanpdfobject.Show();
}// if(public_static_class_simulations_CONTROLLER_for_gt_Class.DO_YOU_NEED_PDF_REPORTING_FOR_THE_DATA_______137)
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
////////////////////////////////// here we will generate the pdf files /////////////////////////////////
//https://my.mech.utah.edu/~brannon/public/curvilinear.pdf
//we had to set this true in start of this function to get the right gif files
this.TopMost = false;
}// private void button_PLAY_0_360_Click_1(object sender, EventArgs e)
//THIS BUTTONS PURPOSE IS CHANGED NOW
private void buttonSCAN_0_360_Click_1(object sender, EventArgs e)
{
//////0 X1 0
//////1 Y1 0
//////2 Z1 0
//////3 X2 - 743.144825477392
//////4 Y2 669.130606358857
//////5 Z2 0
//////6 L_OF_FIRST_LINE 999.999999999997
//////7 INITIAL_LOCKED_SET_POSITIONS_THETA_DEGREE 138 CHANGE IT TO 0
//////8 INITIAL_LOCKED_SET_POSITIONS_THETA_RADIAN 2.40855436775217
/// for safe sides of data generations we will always put the initial L to x axis such that we dont do mistakes
///
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[0].Cells[1].Value = "0";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[1].Cells[1].Value = "0";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[2].Cells[1].Value = "0";
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value != null)
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3].Cells[1].Value =
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value.ToString();// "1000";
}
else
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3].Cells[1].Value = "1000";
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value!=null)
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3 + 1].Cells[1].Value = "0";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[3 + 2].Cells[1].Value = "0";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[1].Value = "0";/// rotations angle degrees
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[8].Cells[1].Value = "0";/// rotations angle radians
//CAUTION , THIS IS NOT THE SAVING ANIMATIONS NOW
//THIS IS TO SCAN ALL THE VALUES OF SEEDS ANGLES AND TO POPULATE THE DATA FOR ALL THE SEEDS TRIANGLES
//THROUGH UPDATER FUNCTIONS
//TESTED THAT IT IS WORKING
// SCAN_0_360
try
{
//THESE ARE FOR TEXTS SETTING AND WE DONT WANT THESE TO COME IN THE ANIMATIONS TIMES
//THESE ARE SETTING THINGS TO JUNGLE LIKE THINGS
dataGridViewFOR_GT_PRESETS_DATA.Rows[59].Cells[1].Value = "N";// SHOW_OUTPUT_LINES_ADDRESS_TEXTS";
dataGridViewFOR_GT_PRESETS_DATA.Rows[60].Cells[1].Value = "N";// "SHOW_COMPLEMENT_LINES_ADDRESS_TEXTS";
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "checking_filenames_for_gif_gt.txt", "\r\n" + "flushing at the start of the functions of button simulations\r\n");
System.IO.File.WriteAllText
(ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+
"tripple_checks_from_the_filenames_saving_inside_button_play_0_360_click.txt", "\r\n" + "flushing at the start of the functions of button simulations\r\n");
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "from_the_filenames_saving_inside_button_play_0_360_click.txt", "\r\n" + "flushing at the start of the functions of button simulations\r\n");
//i have set the append all text inside the recalculate functions such that we can get the all data for all the seeds angles there
//such that we can read that data and do the analysis there
System.IO.File.WriteAllText(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "sbuilderforreportingdrawingsketches.txt"
,
"\r\nFLUSHING AT THE START OF THE BUTTON AND WE WILL LOG THIS FROM THE RECALCULATE RELOADS sbuilderforreportingdrawingsketches.ToString()\r\n");
StringBuilder _temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360 = new StringBuilder();
_temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.Clear();
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MIN_X = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:13
public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MIN_Y = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:14
public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MAX_X = Double.MinValue;//-600000 // Variables.VarTable_GT_CALCULATIONS:15
public_static_class_simulations_CONTROLLER_for_gt_Class.FRAMES_MAX_Y = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:16
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
//CAUTION resetting these values only when the previous commandstring is not same as the current commandstring
public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MIN_X = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:13
public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MIN_Y = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:14
public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MAX_X = Double.MinValue;//-600000 // Variables.VarTable_GT_CALCULATIONS:15
public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MAX_Y = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:16
////////////////this is for safe sides such that we can get the fresh data for scanning
////////////////this is for safe sides such that we can get the fresh data for scanning
////////////////this is for safe sides such that we can get the fresh data for scanning
//////////////Array.Clear
////////////// (public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt,
////////////// 0,
////////////// public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Length
////////////// );
//since the array above did not work so we are using this
//calling conventions are public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
////// public static List<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>> public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt = new List<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>;
//we clear this here (And also when the command string is changed)
//we clear this here (And also when the command string is changed)
//we clear this here (And also when the command string is changed)
//i have added this condition here
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//dont clear the lists here
}
else
{
//this is for safe sides such that we can get the fresh data for scanning
//this is for safe sides such that we can get the fresh data for scanning
//this is for safe sides such that we can get the fresh data for scanning
Array.Clear
(public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt,
0,
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Length
);
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Clear();
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Clear();
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Clear();
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
MessageBox.Show("Size of this after clearing public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Count<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>().ToString()\r\n\r\n\r\n after clearing data\r\n\r\n\r\n" +
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Count<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>().ToString()
);
//we have specially designed this non static class to keep the list persistent for a single gt command string after the scanning 0 to 360 is done
this
.
_runtimes_global_object_of___PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC
.fetch_and_store_data_inside_this_class______PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC();
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE = false;//INITIALLY FALSE WHEN THE ARRAY OF LIST OF GT TRIANGLES IS NOT POPULATED
//i have tested that tghese logs give correct outputs and when the scan is done the data is there properly
_temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.AppendLine
(
"public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt cleared"
+
"now length is public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Length\r\n = "
+
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Length.ToString()
+
"\r\n\r\n\r\nPUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE= " + PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE.ToString()
);
//this is for safe sides such that we can get the fresh data for scanning
//this is for safe sides such that we can get the fresh data for scanning
//this is for safe sides such that we can get the fresh data for scanning
// for (double _trials_seeds_iterator=0; _trials_seeds_iterator<=360; _trials_seeds_iterator+= 1)
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO = false;
this.progressBarFOR_ANIMATIONS_SAVING.Maximum = 360;
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
//for references public_static_class_simulations_CONTROLLER_for_gt_Class.SIMULATIONS_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360
//for references public_static_class_simulations_CONTROLLER_for_gt_Class.SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360
double _trials_seeds_iterator___incrementor = 0;
_trials_seeds_iterator___incrementor
=
public_static_class_simulations_CONTROLLER_for_gt_Class.SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360;
//this variable is now newly defined and taken from the interface
//_trials_seeds_iterator___incrementor
//through the
// public_static_class_simulations_CONTROLLER_for_gt_Class.SCANNING_FOR_PROVERS_DATA_STEP_DEGREES_DOUBLE_TYPES_FOR_ITERATIONS_AND_GIF_IMAGES_SAVING_0_TO_360;
for (double _trials_seeds_iterator = 0; _trials_seeds_iterator <= 360; _trials_seeds_iterator += _trials_seeds_iterator___incrementor)
{
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO = false;
//trying to do this (non gif states)
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value = _trials_seeds_iterator.ToString().Trim().TrimEnd().TrimStart(); //i think the problems are not with data populations
FORMS_DATA_PUSHER_reset_simulations_data_to_fresh_read_data_from_grids_and_regenerate_redraw_all();
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO = false;
//////this.dataGridViewFOR_GT_PRESETS_DATA.Refresh();
//////this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
//////this.pictureBox_FOR_GT_DISPLAYS.Refresh();
//this is special kind of list of data generated with new scanner facilities
//this is called inside the datasets of the scan_0_360 buttons
//calling conventions
//calling convention for this
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.update_whole_array_with_command_string___TOO_MUCH_MANDATORY_PUBLIC__STATIC_ARRAY_OF_GLUABLE_TRIANGLES_TO_FORM_MULTIPLE_GTSIMPLEX_the_2D_PUBLIC_STATIC_MANDATORY_MULTIPLIE_GTSIMPLEX_array_of_multiplicative_recursive_lines___STORES_ALL_GTSIMPLEX_CHAINS___TO_FORM_SINGLE_GTSIMPLEX_ONLY();
//////this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value = _trials_seeds_iterator.ToString().Trim().TrimEnd().TrimStart();
//////this.dataGridViewFOR_GT_PRESETS_DATA.Refresh();
//////this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
//////this.pictureBox_FOR_GT_DISPLAYS.Refresh();
//the function is newly changed with seeds_angles as the argument of double types
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.update_ALL_GTSIMPLEX_OBJECTS_EVERYTIME_REFRESH_whole_array_with_command_string___PUBLIC_STATIC_MANDATORY_MULTIPLIE_GTSIMPLEX_array_of_multiplicative_recursive_lines___TO_FORM_SINGLE_GTSIMPLEX_ONLY(_trials_seeds_iterator);
//I HAVE SET THE SIZE TO 368 TO AVOID THE OVERFLOWS ERRORS
//i have checked the debug screen to see that the data is getting into there
//public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
//we will nullify the data first then repopulate public static List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>[] public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt = new List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>[360];
if (((int)_trials_seeds_iterator) <= 360)
{
//flushing the previous data first 3 TIMES
//flushing the previous data first 3 TIMES
//flushing the previous data first 3 TIMES
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator] = null;
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator] = null;
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator] = null;
_temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.AppendLine
(
"(It is to show null here (int)_trials_seeds_iterator= " + ((int)_trials_seeds_iterator).ToString()
+
" public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator].Count<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>().ToString() =\r\n"
//////+
//////( public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator].Count<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>()).ToString()
);
// public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[degrees_iterator]
//yes tested with debug steps that it is working and getting data into the list data of the array cells
//yes tested with debug steps that it is working and getting data into the list data of the array cells
//yes tested with debug steps that it is working and getting data into the list data of the array cells
//we have already populated this list data inside the above function call
//we have to call this
//FOR SAFESIDES WE ARE DOING THIS
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Clear();
try
{
//UNTIL THIS FUNCTION IS CALLED WE CANNOT GENERATE DATA FOR THE LIST OF GT_SIMPLEX WHICH POPULATES DATA FOR THE
//PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt (SINGLE GT_SIMPLEX DATA)
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.update_ALL_GTSIMPLEX_OBJECTS_EVERYTIME_REFRESH_whole_array_with_command_string___PUBLIC_STATIC_MANDATORY_MULTIPLIE_GTSIMPLEX_array_of_multiplicative_recursive_lines___TO_FORM_SINGLE_GTSIMPLEX_ONLY(_trials_seeds_iterator);
}
catch (Exception excp_i_think_update_functions_has_some_issues)
{
//i have debugged and seen that this exception did not occur
MessageBox.Show("excp_i_think_update_functions_has_some_issues\r\n\r\n\r\n" + excp_i_think_update_functions_has_some_issues.Message + "\r\n" + excp_i_think_update_functions_has_some_issues.StackTrace.ToString());
}
//we had to check special checking to check that the data of seeds angle of current gt simplex is same as the scanning iterator angles
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>(0).GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE
==
_trials_seeds_iterator)
{
//i think adding the static list is culprit
//so we are taking safe sides
List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt> _temp_List_SINGLE_SEEDS_ANGLE_SINGLE_GT_SIMPLEX______copy_of___PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
= new List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>();
_temp_List_SINGLE_SEEDS_ANGLE_SINGLE_GT_SIMPLEX______copy_of___PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Clear();//safe side thinking
//this is to ensure that the copy is done to the temp list
GOTO_RECOPY:;
//direct assigning the data to the temporary list here
//fresh temp list is prepared for one single gt simplex for single seeds angles
_temp_List_SINGLE_SEEDS_ANGLE_SINGLE_GT_SIMPLEX______copy_of___PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
=
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt;//this is generated for single GT Simplex while updating for one seeds angles cases calculations
if (
_temp_List_SINGLE_SEEDS_ANGLE_SINGLE_GT_SIMPLEX______copy_of___PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Last<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>().GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE
!=
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Last<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>().GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE
)
{
//i have seen in debug that this dont enter which means this population works ok in first chances
goto GOTO_RECOPY;
}//end of if cases
////////////if (
//////////// _temp_List_SINGLE_SEEDS_ANGLE_SINGLE_GT_SIMPLEX______copy_of___PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Last<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>().GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE
//////////// !=
//////////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Last<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>().GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE
//////////// )
//////public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]
////// =
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt;
//this is to ensure that the data is properly assigned to the array cells
goto_reassign_data_to_array_cells:;
//this population is not the static list
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]
=
_temp_List_SINGLE_SEEDS_ANGLE_SINGLE_GT_SIMPLEX______copy_of___PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt;
if (public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]
!= null)
{
//ok the data is copied to the array cells
}
else
{
//checked that when the array is showing null cell then also this part of conditions dont enter
goto goto_reassign_data_to_array_cells;
}
//////if (public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]
//////!= null)
//WITH THE DEBUG WINDOW WE HAVE SEEN THAT THE ARRAY HAS 368 ROWS EACH HAVING THE DATA OF LISTS OF GT SEED TRIANGLES(class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt) AS DESIGNED HERE
//STAGEWISE I HAVE CHECKED AND I HAVE SEEN THAT THE INITIALLY NULL DATA ARE THERE IN THE ROWS AND AFTER EACH STAGES THE DATA POPULATIONS ARE WORKING OK
//SO WE ARE SURE THAT THE DATA ARE POPULATING INSIDE THIS ARRAY THAT MEANS WE DONT NEED TO WORRY FOR THE DATA POPULATIONS AND WE CAN FOCUS ON THE RENDERING PARTS OF THE GRAPHICS
//rechecking if the seeds angles are updated properly in the public static array or not (after the assigning of the list is done while scanning
//this confirms that the [[(int)_trials_seeds_iterator] position of the array has the list of objects of the
if (
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]
.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>
(public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator].Count<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>() - 1)
.GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE
==
_trials_seeds_iterator
)
{
//since we have seen that the scanning button dont show any error message nor the message of the else cases
//we are sure that the seeds angles updations to each of the items of the list (inside the rows of the public static array are properly populated
//we will reverify the same kind of things while we retrieve the data to the two dimensional array of class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
//in the graphics redraw functions to check the conditions of the status of the data and these data of two dimensional array is very important
//to do the analysis of geometrifying trigonometry theorems generators and also for the conjectures verifications systems
//we have big planning to get the database logging of the whole systems and also for the auomated designs generations for the architectures and steel detailing things
// CAUTION WHEN I WROTE THIS PROGRAM AND THIS PART OF THE CODES AT THAT TIME THE LOGS IN D DRIVES FOR RELOAD_REDRAW WAS NOT GIVING ANY DATA FOR 0 TO 360 SCANS WHILE
//STILL WE ARE SURE FROM THIS PART OF THE CODE THAT THE DATA UPDATION TO THE PUBLIC STATIC ARRAY IS WORKING PROPERLY
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//THIS IS A SPECIAL KIND OF DATA POPULATION WHERE WE ARE POPULATING THE DATA FROM THE ARRAY (PREVIOUSLY POPULATED)
//THIS IS TO CHECK THE STATES OF THE ARRAY CELLS ALSO
//////public_static_class_simulations_CONTROLLER_for_gt_Class.
//////public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
////// .Add
////// (
////// public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]
////// );
///
//BEFORE ADDING THE DATA TO THE PUBLIC STATIC LIST WE ARE TRYING TO CHECK THE STATES OF THE TEMPORARY LIST WHICH WE WILL ADD TO THE PUBLIC STATIC LIST
//////_temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.AppendLine
////// (
////// "\r\n _temp_List_SINGLE_SEEDS_ANGLE_SINGLE_GT_SIMPLEX______copy_of___PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt data\r\n"+
////// _temp_List_SINGLE_SEEDS_ANGLE_SINGLE_GT_SIMPLEX______copy_of___PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>
////// (_temp_List_SINGLE_SEEDS_ANGLE_SINGLE_GT_SIMPLEX______copy_of___PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Count<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>() -1))
////// .
////// );
//this is to get safe side population of non static lists additions to the lists
//this is to get safe side population of non static lists additions to the lists
//this is to get safe side population of non static lists additions to the lists
public_static_class_simulations_CONTROLLER_for_gt_Class.
public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
.Add
(
_temp_List_SINGLE_SEEDS_ANGLE_SINGLE_GT_SIMPLEX______copy_of___PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
);
//////public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
////// .Add
////// (
////// _temp_List_SINGLE_SEEDS_ANGLE_SINGLE_GT_SIMPLEX______copy_of___PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
////// );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//ihave tested that the data populations are proper and logging is ok
_temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.AppendLine
(
"(data populated now (int)_trials_seeds_iterator= " + ((int)_trials_seeds_iterator).ToString()
+
" public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]\r\n.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>\r\n ( public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator].Count<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>() -1 ) \r\n.SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES= "
+
"Element at 0 (for single gt simplex ) " +
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]
.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>
(0)
.GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE
.ToString()
+ " element at last (for single gt simplex ) " +
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]
.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>
(public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator].Count<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>() - 1)
.GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE
.ToString()
+
"\r\n _trials_seeds_iterator = " + _trials_seeds_iterator.ToString()
+ "\r\n" +
"Checking updations of public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Last<List< class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>().Count< class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>().ToString() "
+ "\r\n" +
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Last<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>().Count<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>().ToString()
+ "\r\n" +
"public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Last<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>().ElementAt< class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>(0).GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE.ToString() = "
+ "\r\n" +
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Last<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>().ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>(0).GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE.ToString()
+ "\r\n\r\n\r\n forces checking output_lines_segments_x2 \r\n" +
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Last<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>()
.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>(1)
.output_lines_segments_x2.ToString()
+ "\r\n\r\n\r\n forces checking output_lines_segments_y2 \r\n" +
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Last<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>()
.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>(1)
.output_lines_segments_y2.ToString()
);
}
else
{
// we have tested with the scanning and we have seen that the data updations working OK to the public static arrays
//so we can get sure that the redraw need to plot the chains of the outlines for each character positions columnwise with the slider controls
//when testing previously with the d drives logs we have seen that the data was not coming for the seeds angles wise conditions rowwise and we were getting same values of seeds angles for all the rows
//whereas we have designed the systems to get different seeds angles 0 to 360 for every different rows of the systems
//there is no exceptions also
MessageBox.Show("mismatch of seeds angles in the iterator and in the list of objects inside public static array for\r\n" +
"_trials_seeds_iterator = " + _trials_seeds_iterator.ToString() +
" public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]\r\n" +
".ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>\r\n" +
"(public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator].Count<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>() - 1)\r\n" +
".GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE \r\n=\r\n" +
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]
.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>
(public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator].Count<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>() - 1)
.GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE.ToString()
+
"\r\n\r\n\r\n\r\n for verifications of data loading done (when there is wrong data updations to public static arrays");
}
//else case of confirmation codes
//the if condition completes here //////if (
//////public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]
//////.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>
//////(public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator].Count<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>() - 1)
//////.GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE
//////==
//////_trials_seeds_iterator
//////)
//very tricky checking to see that the right list of right seds angles data are coming there or not
//tested that the thing is getting rightly populated
//TESTED THAT THE DATA POPULATIONS ARE WORKING FINE INSIDE THE ARRAY
//////MessageBox.Show("checking updated seeds 0 to 360 scanns \r\n\r\n\r\nPUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt\r\n\r\n\r\n" +
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Count<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>() - 1).GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE.ToString()
////// +"\r\n the populated lists lengths ="+ PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Count<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>().ToString()
////// );
///
}
else
{
// +
// " \r\n not equals \r\n PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>(0).GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE \r\n\"
if (public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator] == null)
{
MessageBox.Show("public static array has null values for\r\n\r\n\r\n (else case entered) \r\n\r\n\r\n _trials_seeds_iterator = " + _trials_seeds_iterator.ToString());
}
else
{
MessageBox.Show("non null in the array (else case entered) \r\n\r\n\r\n _trials_seeds_iterator = " + _trials_seeds_iterator.ToString() + "\r\n not equals \r\n"
+
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator]
.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>
(public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator].Count<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>() - 1)
.GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE.ToString()
+ "r\n\r\n \r\n\r\n\r\n Checking if the seeds angles updation are not working\r\nif this messagebox dont come then we can sure that the seeds angles are updated inside the list of objects of the gt triangles(line segments)"
);
}//if (public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator] == null)
// if (public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_array_of__360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt[(int)_trials_seeds_iterator] == null)
}
//if(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.ElementAt<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>(0).GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE
// ==
// _trials_seeds_iterator)
//yet there is no direct drawing function for PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
//so the screens are not showing the data there
}// if(((int)_trials_seeds_iterator)<= 359)
try
{
this.progressBarFOR_ANIMATIONS_SAVING.Value = (int)_trials_seeds_iterator;
//this runs very fast since the graphics updations is not required
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
}
catch (Exception excpforwrongdataforprogressbars)
{
}//catch(Exception excpforwrongdataforprogressbars)
//THIS DONT UPDATE THE PICTURE BOX NOR SAVES THE DATA OF BITMAPS SO IT IS VERY FAST FOR ANALYSIS OF THE DATA
//THIS DONT UPDATE THE PICTURE BOX NOR SAVES THE DATA OF BITMAPS SO IT IS VERY FAST FOR ANALYSIS OF THE DATA
//THIS DONT UPDATE THE PICTURE BOX NOR SAVES THE DATA OF BITMAPS SO IT IS VERY FAST FOR ANALYSIS OF THE DATA
}//for(double _trials_seeds_iterator=0; _trials_seeds_iterator<=360; _trials_seeds_iterator+= 1)
//AFTER THE SCANNING IS DONE WE WILL SET THE HANDLING FOR THESE CASES FOR RENDERING AND OTHER KINDS OF ANALYSIS
//PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_
//CALLING CONVENTIONS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_SEEDS_TRIANGLES_FOR_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES
//CAUTIONS THE VALUE IS SET INSIDE THE SCANNER BUTTON AND IS RESET TO FALSE AFTER THE COMMAND CHARACTER IS CHANGED
//CALLING CONVENTIONS PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE
//////public static bool IS_0_TO_360_SCANNING_DONE = false;//THIS CHECKING IS NECESSARY FOR THE CONDITIONS TO USE THE BELOW VARIABLES TO ACT PROPERLY
//this variable is flushed to false when command string is changed
//this variable is flushed to false when command string is changed
//this variable is flushed to false when command string is changed
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_SEEDS_TRIANGLES_FOR_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES = true;
//this variable is flushed to false when command string is changed
//this variable is flushed to false when command string is changed
//this variable is flushed to false when command string is changed
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE = true;
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
_temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.AppendLine("\r\n\r\n\r\n for loop completes here so scanning dones \r\nPUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE= " + PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE.ToString());
//this is very important code to avoid errors of wrong sliding
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Maximum = public_static_class_simulations_CONTROLLER_for_gt_Class.current_commands_array_size_int;
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Value = Math.Max(0, this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Maximum - 1);
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Invalidate();
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Refresh();
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//////this.button_PLAY_0_360.BackColor = Color.Blue;
this.buttonSCAN_0_360.BackColor = Color.Blue;
this.buttonSCAN_0_360.Invalidate();
this.buttonSCAN_0_360.Refresh();
}
else
{
//////this.button_PLAY_0_360.BackColor = Color.Blue;
this.buttonSCAN_0_360.BackColor = Color.Red;
this.buttonSCAN_0_360.Invalidate();
this.buttonSCAN_0_360.Refresh();
}//else cases of if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
_temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.AppendLine("(TO CHECK WHY DATA CLEARS)REVERIFICATION STARTED INSIDE SCANNING BUTTON 0 TO 360 WHEN FOR LOOP COMPLETES");
_temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.AppendLine("(TO CHECK WHY DATA CLEARS)REVERIFICATION STARTED INSIDE SCANNING BUTTON 0 TO 360 WHEN FOR LOOP COMPLETES");
_temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.AppendLine("(TO CHECK WHY DATA CLEARS)REVERIFICATION STARTED INSIDE SCANNING BUTTON 0 TO 360 WHEN FOR LOOP COMPLETES");
for (
int reverification_after_for_loop_completes = 0;
reverification_after_for_loop_completes
<
(public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Count<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>() - 1);
reverification_after_for_loop_completes++
)
{
_temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.AppendLine("REVERIFYING(after population completes) reverification_after_for_loop_completes =" + reverification_after_for_loop_completes.ToString()
+
" data of seeds angles inside (public static global list last element )= "
+
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.ElementAt<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>(reverification_after_for_loop_completes)
.Last<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>().GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE.ToString()
+
" FIRST ELEMENT ="
+
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.ElementAt<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>(reverification_after_for_loop_completes)
.First<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>().GLOBAL___SEED_ANGLE_OF_CURRENT_SEED_TRIANGLE_DEGREES___NEW_VARIABLE.ToString()
);
}
//////for (
////// int reverification_after_for_loop_completes = 0;
////// reverification_after_for_loop_completes
////// <
//////(public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Count<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>() - 1);
//////reverification_after_for_loop_completes++
////// )
////public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
////
////public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt
//????????????doubts on clearing objects data (i dont know why after calling this line we get list is clear)
//i had to stop this line (otherwise the global list is also getting flushed)this._runtimes_global_object_of___PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC.clear_data_inside_this_class______PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC();
this._runtimes_global_object_of___PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC.fetch_and_store_data_inside_this_class______PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC();
MessageBox.Show("Size of this after complete populating public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Count<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>().ToString()\r\n\r\n\r\n after populating data data\r\n\r\n\r\n" +
public_static_class_simulations_CONTROLLER_for_gt_Class.public_static_list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Count<List<class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt>>().ToString()
+
"\r\n this._runtimes_global_object_of___PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC.fetch_and_store_data_inside_this_class______PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC() done \r\n"
+ "\r\n Count of inside list public_NONSTATIC_CLASS____PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC_______list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt=\r\n"
+
this._runtimes_global_object_of___PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC.public_NONSTATIC_CLASS____PUBLIC_NON_STATIC_CLASS_DATA_STORAGES_FOR_DATA_INTERCHANGE_NON_STATIC_______list_of__possibly_360_rows______list_of______class_NEW_FRESH_GLUABLE_TRIANGLE_with_three_linesegment_set_for_gt.Count().ToString()
);
// System.IO.File.WriteAllText("D:\\scanning_0_360_______temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.txt", _temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.ToString());
//using this now Program.public_static_string_GT_folder
System.IO.File.WriteAllText(Program.public_static_string_GT_folder + "scanning_0_360_______temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.txt", _temp_stringbuilder_to_log_array_objects_data___populations_while_doing_scanning_0_360.ToString());
}
catch (Exception excp_for_the_calculations_of_non_graphics_updations_of_data)
{
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE = false;
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
//CAUTION CAUTION CAUTION this value is set to true here and is set to false if there is any exceptions FOR SCANNING 0 TO 360
MessageBox.Show("excp_for_the_calculations_of_non_graphics_updations_of_data\r\n" + excp_for_the_calculations_of_non_graphics_updations_of_data.Message + "\r\n" + excp_for_the_calculations_of_non_graphics_updations_of_data.StackTrace.ToString());
}//catch(Exception excp_for_the_calculations_of_non_graphics_updations_of_data)
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
//////PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Add(_tempBitmap);
//accumulations in the list of bitmaps done we think we need to set separate button for that
//////try
////// {
////// /* create Gif */
////// //you should replace filepath
////// //String[] imageFilePaths = new String[] { "d:\\01.png", "d:\\02.png", "d:\\03.png" };
////// // String[] imageFilePaths = new String[] { "d:\\01.bmp", "d:\\02.bmp", "d:\\03.bmp" };
////// List<Bitmap> LIST_OF_BITMAPS = PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX;
////// Bitmap[] ARRAY_OF___LIST_OF_BITMAPS = LIST_OF_BITMAPS.ToArray<Bitmap>();
////// String outputFilePath = "D:\\test_LIST_OF_BITMAPS_SAAN_GIF"+ System.DateTime.Now.ToString().Replace(" ", "_").Replace("/", "_").Replace("\\", "_").Replace(":", "_").Replace(";", "_")+".gif";
////// AnimatedGifEncoder e_for_animated_gif_encoders = new AnimatedGifEncoder();
////// e_for_animated_gif_encoders.Start(outputFilePath);
////// e_for_animated_gif_encoders.SetDelay(30);
////// //-1:no repeat,0:always repeat
////// e_for_animated_gif_encoders.SetRepeat(0);
////// this.progressBarFOR_ANIMATIONS_SAVING.Maximum = ARRAY_OF___LIST_OF_BITMAPS.Length + 3;
////// this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
////// System.Windows.Forms.MessageBox.Show("Started saving files with length of frames(ARRAY_OF___LIST_OF_BITMAPS) ="+ ARRAY_OF___LIST_OF_BITMAPS.Length.ToString());
////// for (int i = 0, count = ARRAY_OF___LIST_OF_BITMAPS.Length; i < count; i++)
////// {
////// // e.AddFrame(Image.FromFile(imageFilePaths[i]));
////// //https://www.bing.com/search?q=CS1061++C%23+does+not+contain+a+definition+for+and+no+accessible+extension+method+accepting+a+first+argument+of+type+could+be+found+(are+you+missing+a+using+directive+or+an+assembly+reference%3f)&form=VSHELP
////// goto_adding_frames:
////// // e.AddFrame((Image)LIST_OF_BITMAPS.ElementAt<Bitmap>(i));
////// e_for_animated_gif_encoders.AddFrame((Bitmap)ARRAY_OF___LIST_OF_BITMAPS[i]);
//use this Program.public_static_string_GT_folder
//to use public_static_string_GT_folder
////// ((Bitmap)ARRAY_OF___LIST_OF_BITMAPS[i]).Save("D:\\" + i.ToString() + ".bmp");
////// if (e_for_animated_gif_encoders.saans_additions_total_frames_added < i)
////// {
////// goto goto_adding_frames;
////// }
////// else
////// {
////// this.progressBarFOR_ANIMATIONS_SAVING.Value = i;
////// this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
////// this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
////// }// if (e_for_animated_gif_encoders.saans_additions_total_frames_added < i)
////// // e_for_animated_gif_encoders
////// }
////// e_for_animated_gif_encoders.Finish();
////// }
//////catch (Exception excpthreadflowsanimatinggenerators)
////// {
////// MessageBox.Show("excpthreadflowsanimatinggenerators\r\n" + excpthreadflowsanimatinggenerators.Message + excpthreadflowsanimatinggenerators.StackTrace.ToString());
////// }
//THIS IS NOT SAVING THE ANIMATIONS NOW (SAVING ANIMATIONS IS DONE IN OTHER BUTTON) System.Windows.Forms.MessageBox.Show("Completes saving files");
}// private void buttonSCAN_0_360_Click_1(object sender, EventArgs e)
private void progressBarFOR_ANIMATIONS_SAVING_Click(object sender, EventArgs e)
{
}
private void panelFORHOLDINGGRIDS_Paint(object sender, PaintEventArgs e)
{
}
// private void dataGridViewFOR_GT_PRESETS_DATA_CellValueChanged(object sender, DataGridViewCellEventArgs e)
public void FORMS_OWN_GIFS_GENERATORS_WITH_PROGRESSBARS_HANDLING(List<string> list_of_filenames, string gif_filesnames_given, int delay_of_frames)
{
//we will try with another systems also
//trying with new Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Add(bmp);
// 33ms delay (~30fps)
using (var gif = ASAANSOL_AnimatedGif.ASAANSOL_AnimatedGif.Create(gif_filesnames_given, delay_of_frames))
{
//////var img1 = Image.FromFile("d:\\img1.png");
//////gif.AddFrame(img1, delay: -1, quality: GifQuality.Bit8);
//////var img2 = Image.FromFile("d:\\img2.png");
//////gif.AddFrame(img2, delay: -1, quality: GifQuality.Bit8);
//////var img3 = Image.FromFile("d:\\img3.png");
//////gif.AddFrame(img3, delay: -1, quality: GifQuality.Bit8);
///
string[] array_of_strings_of_list_of_filenames = list_of_filenames.ToArray<string>();
this.progressBarFOR_ANIMATIONS_SAVING.Maximum = array_of_strings_of_list_of_filenames.Length;
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
try
{
for (int rrr = 0; rrr < array_of_strings_of_list_of_filenames.Length; rrr++)
{
var img1 = Image.FromFile(array_of_strings_of_list_of_filenames[rrr]);
gif.AddFrame(img1, delay: -1, quality: GifQuality.Bit8);
this.progressBarFOR_ANIMATIONS_SAVING.Value = rrr;
}// for (int rrr=0;rrr< array_of_strings_of_list_of_filenames.Length; rrr++)
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
for (int iteratetofilecleans = 0; iteratetofilecleans < array_of_strings_of_list_of_filenames.Length; iteratetofilecleans++)
{
if (System.IO.File.Exists(array_of_strings_of_list_of_filenames[iteratetofilecleans]))
{
System.IO.File.Delete(array_of_strings_of_list_of_filenames[iteratetofilecleans]);
this.progressBarFOR_ANIMATIONS_SAVING.Value = iteratetofilecleans;
}//if (System.IO.File.Exists(array_of_strings_of_list_of_filenames[iteratetofilecleans]))
}//for (int iteratetofilecleans = 0; iteratetofilecleans < array_of_strings_of_list_of_filenames.Length; iteratetofilecleans++)
//TRYING AGAIN
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
for (int iteratetofilecleans_AGAIN = 0; iteratetofilecleans_AGAIN < array_of_strings_of_list_of_filenames.Length; iteratetofilecleans_AGAIN++)
{
if (System.IO.File.Exists(array_of_strings_of_list_of_filenames[iteratetofilecleans_AGAIN]))
{
System.IO.File.Delete(array_of_strings_of_list_of_filenames[iteratetofilecleans_AGAIN]);
this.progressBarFOR_ANIMATIONS_SAVING.Value = iteratetofilecleans_AGAIN;
}//if (System.IO.File.Exists(array_of_strings_of_list_of_filenames[iteratetofilecleans]))
}//for (int iteratetofilecleans_AGAIN = 0; iteratetofilecleans_AGAIN < array_of_strings_of_list_of_filenames.Length; iteratetofilecleans_AGAIN++)
}
catch (Exception excpGIFFRAMING)
{
}//catch(Exception excpGIFFRAMING)
}//using (var gif = ASAANSOL_AnimatedGif.ASAANSOL_AnimatedGif.Create(gif_filesnames_given, delay_of_frames))
//to check lines 9658 12841
//too much disturbing MessageBox.Show("GifGeneration Done FILES CLEANING DONE");
}// public static void FORMS_OWN_GIFS_GENERATORS_WITH_PROGRESSBARS_HANDLING(List<string> list_of_filenames, string gif_filesnames_given, int delay_of_frames)
//we will try with another systems also
//trying with new Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Add(bmp);
public void FORMS_OWN_GIFS_GENERATORS_WITH____LIST_OF_BITMAPS___PROGRESSBARS_HANDLING(List<Bitmap> list_of_bitmaps, string gif_filesnames_given, int delay_of_frames)
{
//we will try with another systems also
//trying with new Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Add(bmp);
// 33ms delay (~30fps)
using (var gif = ASAANSOL_AnimatedGif.ASAANSOL_AnimatedGif.Create(gif_filesnames_given, delay_of_frames))
{
//////var img1 = Image.FromFile("d:\\img1.png");
//////gif.AddFrame(img1, delay: -1, quality: GifQuality.Bit8);
//////var img2 = Image.FromFile("d:\\img2.png");
//////gif.AddFrame(img2, delay: -1, quality: GifQuality.Bit8);
//////var img3 = Image.FromFile("d:\\img3.png");
//////gif.AddFrame(img3, delay: -1, quality: GifQuality.Bit8);
///
// string[] array_of_strings_of_list_of_filenames = list_of_filenames.ToArray<string>();
Bitmap[] array_of_bitmaps___of___list_of_bitmaps = list_of_bitmaps.ToArray<Bitmap>();
this.progressBarFOR_ANIMATIONS_SAVING.Maximum = array_of_bitmaps___of___list_of_bitmaps.Length;
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
try
{
for (int rrr = 0; rrr < array_of_bitmaps___of___list_of_bitmaps.Length; rrr++)
{
//////var img1 = Image.FromFile(array_of_strings_of_list_of_filenames[rrr]);
var img1 = (Image)array_of_bitmaps___of___list_of_bitmaps[rrr];
// array_of_bitmaps___of___list_of_bitmaps
gif.AddFrame(img1, delay: -1, quality: GifQuality.Bit8);
this.progressBarFOR_ANIMATIONS_SAVING.Value = rrr;
}// for (int rrr=0;rrr< array_of_strings_of_list_of_filenames.Length; rrr++)
}
catch (Exception excpGIFFRAMING)
{
}//catch(Exception excpGIFFRAMING)
}//using (var gif = ASAANSOL_AnimatedGif.ASAANSOL_AnimatedGif.Create(gif_filesnames_given, delay_of_frames))
//TOO MUCH DISTURBING MessageBox.Show("GifGeneration Done WITH LIST OF BITMAPS");
}// public void FORMS_OWN_GIFS_GENERATORS_WITH____LIST_OF_BITMAPS___PROGRESSBARS_HANDLING(List<Bitmap> list_of_bitmaps, string gif_filesnames_given, int delay_of_frames)
private void hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS_Scroll(object sender, ScrollEventArgs e)
{
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
FORMS_DATA_PUSHER_reset_simulations_data_to_fresh_read_data_from_grids_and_regenerate_redraw_all();
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Maximum = Math.Max(this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Maximum, ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.current_commands_array_size_int);
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Refresh();
//commandstring
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
//PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_
//CALLING CONVENTIONS
//CALLING CONVENTION (NOTE THERE IS INTEGER ALSO)
//PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_INT___THE_CURRENT_VALUE_OF_R___IN_SLIDER_CONTROLLER WITH VALUES CHANGING EVENTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_SEEDS_TRIANGLES_FOR_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES
//CAUTIONS THE VALUE IS SET INSIDE THE SCANNER BUTTON AND IS RESET TO FALSE AFTER THE COMMAND CHARACTER IS CHANGED
//CALLING CONVENTIONS PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE
//CALLING CONVENTION PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_INT___THE_CURRENT_VALUE_OF_R___IN_SLIDER_CONTROLLER WITH VALUES CHANGING EVENTS
//////public static int PUBLIC_STATIC_INT___THE_CURRENT_VALUE_OF_R___IN_SLIDER_CONTROLLER = 0;
//////public static bool IS_0_TO_360_SCANNING_DONE = false;//THIS CHECKING IS NECESSARY FOR THE CONDITIONS TO USE THE BELOW VARIABLES TO ACT PROPERLY
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_SEEDS_TRIANGLES_FOR_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES = true;
//caution we have already set the value of the thing upto the commands strings lengths
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_INT___THE_CURRENT_VALUE_OF_R___IN_SLIDER_CONTROLLER = Math.Max(0, this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Value);
this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
this.pictureBox_FOR_GT_DISPLAYS.Refresh();
}//private void hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS_Scroll(object sender, ScrollEventArgs e)
private void hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS_ValueChanged(object sender, EventArgs e)
{
//PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_
//CALLING CONVENTIONS
//CALLING CONVENTION (NOTE THERE IS INTEGER ALSO)
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
FORMS_DATA_PUSHER_reset_simulations_data_to_fresh_read_data_from_grids_and_regenerate_redraw_all();
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Maximum = Math.Max(this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Maximum, ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.current_commands_array_size_int);
this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Refresh();
//commandstring
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
//CAUTION WE ALWAYS GET THE SETTING SUCH THAT THE USER CANNOT DO MISTAKES
//PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_INT___THE_CURRENT_VALUE_OF_R___IN_SLIDER_CONTROLLER WITH VALUES CHANGING EVENTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_SEEDS_TRIANGLES_FOR_R_TH_CHARACTER_COMMANDS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES
////// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES
//CAUTIONS THE VALUE IS SET INSIDE THE SCANNER BUTTON AND IS RESET TO FALSE AFTER THE COMMAND CHARACTER IS CHANGED
//CALLING CONVENTIONS PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE
//CALLING CONVENTION PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_INT___THE_CURRENT_VALUE_OF_R___IN_SLIDER_CONTROLLER WITH VALUES CHANGING EVENTS
//////public static int PUBLIC_STATIC_INT___THE_CURRENT_VALUE_OF_R___IN_SLIDER_CONTROLLER = 0;
//////public static bool IS_0_TO_360_SCANNING_DONE = false;//THIS CHECKING IS NECESSARY FOR THE CONDITIONS TO USE THE BELOW VARIABLES TO ACT PROPERLY
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_L_UPTO_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360__TRACES_Z_UPTO_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_SEEDS_TRIANGLES_FOR_R_TH_CHARACTER_COMMANDS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PIVOT_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_STRETCH_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_NODAL_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_CG_POINTS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_PERPENDICULARS = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_HYPOTENUSES = true;
//////public static bool PUBLIC_STATIC_BOOL___TO_SHOW_0_TO_360_TRACES_FOR_R_TH_CHARS_BASES = true;
//this is important line to render
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_INT___THE_CURRENT_VALUE_OF_R___IN_SLIDER_CONTROLLER = Math.Max(0, this.hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS.Value);
this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
}//private void hScrollBar_FORRENDERING_R_TH_CHARACTER_OF_0_TO_360_SCANS_ValueChanged(object sender, EventArgs e)
private void SampleForm_Paint(object sender, PaintEventArgs e)
{
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
{
//////this.button_PLAY_0_360.BackColor = Color.Blue;
//////this.buttonSCAN_0_360.BackColor = Color.Blue;
}
else
{
//////this.button_PLAY_0_360.BackColor = Color.Blue;
//////this.buttonSCAN_0_360.BackColor = Color.Red;
}//else cases of if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.IS_0_TO_360_SCANNING_DONE)
}// private void SampleForm_Paint(object sender, PaintEventArgs e)
private void hScrollBarFOR_DEGREES_CHANGERS_ValueChanged(object sender, EventArgs e)
{
//TOO IMPORTANT LINE OF CODES HERE
//TOO IMPORTANT LINE OF CODES HERE
//TOO IMPORTANT LINE OF CODES HERE
//since we are adding the stagewise constructions rendering also after 28062020plus these few lines are added
//since we are adding the stagewise constructions rendering also after 28062020plus these few lines are added
//since we are adding the stagewise constructions rendering also after 28062020plus these few lines are added
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Minimum = 0;
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum
= ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string.Length;
//this is done such that default values are changed
//simulations are disturbed//so stopped this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Value = this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum;
//this is newly added to get the same value into the row 30 SEEDs angle data in the flexgrids auto updated from the hscrolbar values
//sorins code to set ClassTypeFilter
////// this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value = this.hScrollBarFOR_DEGREES_CHANGERS.Value;
//this is newly added to get the same value into the row 30 SEEDs angle data in the flexgrids auto updated from the hscrolbar values
//sorins code to set ClassTypeFilter we had to set the both sides calculations from the datagrids to the angles changers hscrollbars value and from the angle changers hscrollbars values to the data grids
//////this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value
////// = (Convert.ToDouble(this.hScrollBarFOR_DEGREES_CHANGERS.Value)/10);
/// i have made this precission to get circle theorems checking
///
double fractional_part_in_the_current_seeds_angle_in_row_30 = 0;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value != null)
{
fractional_part_in_the_current_seeds_angle_in_row_30
=
Convert.ToDouble
(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value.ToString().TrimEnd().TrimStart().Trim()
)
-
(int)
(
Convert.ToDouble
(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value.ToString().TrimEnd().TrimStart().Trim()
)
);
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value!=null)
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value
=
(
Convert.ToDouble(this.hScrollBarFOR_DEGREES_CHANGERS.Value)
+
fractional_part_in_the_current_seeds_angle_in_row_30
)
.ToString()
;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value
= this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Value;
this.dataGridViewFOR_GT_PRESETS_DATA.Refresh();
//since we are adding the stagewise constructions rendering also after 28062020plus these few lines are added
//since we are adding the stagewise constructions rendering also after 28062020plus these few lines are added
//since we are adding the stagewise constructions rendering also after 28062020plus these few lines are added
//WE FLUSH THESE VALUES ONLY AT THE STARING OF THE SIMULATIONS BUTTON NOT IN THE MIDDLE OF THE PROCESS
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MIN_X = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:13
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MIN_Y = (+1) * Double.MaxValue; // Variables.VarTable_GT_CALCULATIONS:14
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MAX_X = Double.MinValue;//-600000 // Variables.VarTable_GT_CALCULATIONS:15
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_MAX_Y = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:16
//THESE ARE CSHARPS ADDITIONS
//WE FLUSH THESE VALUES ONLY AT THE STARING OF THE SIMULATIONS BUTTON NOT IN THE MIDDLE OF THE PROCESS
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_WIDTH_AFTER_GENERATIONS = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:13
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_HEIGHT_AFTER_GENERATIONS = Double.MinValue;//- 600000; // Variables.VarTable_GT_CALCULATIONS:14
//WE FLUSH THESE VALUES ONLY AT THE STARING OF THE SIMULATIONS BUTTON NOT IN THE MIDDLE OF THE PROCESS
public_static_class_simulations_CONTROLLER_for_gt_Class.
SIMULATIONS_0_TO_360_GLOBAL___FRAMES_AREA_AFTER_GENERATIONS = 0;
//we will create these bitmaps with pbox width and height with pixels formats predefined
//calling conventions PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BITMAP___SINGLE_BITMAP_FOR_0_TO_360_FLOWS___TO_SHOW_DYNAMICS_OF_PIVOT_STRETCH_NODAL_POINTS_MOVEMENTS
// public static Bitmap PUBLIC_STATIC_BITMAP___SINGLE_BITMAP_FOR_0_TO_360_FLOWS___TO_SHOW_DYNAMICS_OF_PIVOT_STRETCH_NODAL_POINTS_MOVEMENTS;// we will flush and create this when simulations button is clicked
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BITMAP___SINGLE_BITMAP_FOR_0_TO_360_FLOWS___TO_SHOW_DYNAMICS_OF_PIVOT_STRETCH_NODAL_POINTS_MOVEMENTS = null;
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BITMAP___SINGLE_BITMAP_FOR_0_TO_360_FLOWS___TO_SHOW_DYNAMICS_OF_PIVOT_STRETCH_NODAL_POINTS_MOVEMENTS
=
new Bitmap(this.pictureBox_FOR_GT_DISPLAYS.Width, this.pictureBox_FOR_GT_DISPLAYS.Height, PixelFormat.Format24bppRgb);
//this is flushed here and we will populate this every time inside the updater
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST____SINGLE_UPDATED_OBJECT_OF_BITMAP_FOR_PIVOT_STRETCH_NODAL___POINTS_FLOW.Clear();
//calling conventions PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST____SINGLE_UPDATED_OBJECT_OF_BITMAP_FOR_PIVOT_STRETCH_NODAL___POINTS_FLOW
// public static List<Bitmap> PUBLIC_STATIC_LIST____SINGLE_UPDATED_OBJECT_OF_BITMAP_FOR_PIVOT_STRETCH_NODAL___POINTS_FLOW = new List<Bitmap>();//we will clear this at start of simulations button click
//TOO IMPORTANT LINE OF CODES ABOVE
//TOO IMPORTANT LINE OF CODES ABOVE
//TOO IMPORTANT LINE OF CODES ABOVE
//this works but disturbs when errors are there
//this.TopMost = true;//this is necessary to get right gif outputs
// public static List<Bitmap> PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX = new List<Bitmap>();
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Clear();
//THIS IS NEW EXPERIMENT
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Clear();
//for false cases
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Clear();
//for true cases
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Clear();
//CAUTION CAUTION CAUTION these are taken inside THIS LOOP
//CAUTION CAUTION CAUTION these are taken inside THIS LOOP
//CAUTION CAUTION CAUTION these are taken inside THIS LOOP
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___PIVOT___AFTER_ADJUSTMENTS.Clear();// = new List<PointF>();
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___STRETCH___AFTER_ADJUSTMENTS.Clear();// = new List<PointF>();
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___NODAL___AFTER_ADJUSTMENTS.Clear();// = new List<PointF>();
//TO CLEAR CAUTIONS THIS IS DONE FIRST SINCE WE KNOW THAT WHEN WE PRESERVE THESE LISTS WITH CONFIGS VARIABLES TRUE FALSE THEN SOME POINT IS TO SET WHEN TO FLUSH THESE
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST_OF_POINTS___CG___AFTER_ADJUSTMENTS.Clear();
////// //CALL WITH Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.PUBLIC_STATIC_INT_FRAMES_ITERATOR_UPDATED_FROM_FORMS_SIMULATORS_BUTTON
//////public static int PUBLIC_STATIC_INT_FRAMES_ITERATOR_UPDATED_FROM_FORMS_SIMULATORS_BUTTON = 0;
////////calling with Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names
//////public static List<string> public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names = new List<string>();
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.PUBLIC_STATIC_INT_FRAMES_ITERATOR_UPDATED_FROM_FORMS_SIMULATORS_BUTTON = 0;
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names.Clear();
this.progressBarFOR_ANIMATIONS_SAVING.Maximum = 360;// ARRAY_OF___LIST_OF_BITMAPS.Length + 3;
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
//////Bitmap _tempBitmap;
//////Bitmap _temp_of_another_Bitmaps;
double incrementor_of_angles = 0; // 2.5;
int incrementor_of_frames = 0;
double h_scrollbars_value = this.hScrollBarFOR_DEGREES_CHANGERS.Value;// (now we have set this maximum to 360 instead of 3600) /10;
for (double rrr = h_scrollbars_value; rrr <= h_scrollbars_value; rrr += 1)
{
try
{
//we will add this after all additions done
// incrementor_of_frames
//ha ha ha this is the mistakes we were clearing that inside the for loops
//////// public static List<Bitmap> PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX = new List<Bitmap>();
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
//////PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Clear();
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value = rrr.ToString().Trim().TrimEnd().TrimStart();
this.dataGridViewFOR_GT_PRESETS_DATA.Refresh();
this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
this.pictureBox_FOR_GT_DISPLAYS.Refresh();
// Bitmap _tempBitmap = (Bitmap)this.pictureBox_FOR_GT_DISPLAYS.Image;
//caution caution caution THIS WORKS WHEN THE YES OPTION IS CHOSEN
//this is newly added thing to set the systems with faster simulations and not to save all simulations every times
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO)
{
//when i kept these outside we were getting only some or single bitmaps output with different files names
Bitmap _tempBitmap = null;
Bitmap _temp_of_another_Bitmaps = null;
//defined out of the for loops Bitmap _tempBitmap
_tempBitmap = new Bitmap(this.pictureBox_FOR_GT_DISPLAYS.Width, this.pictureBox_FOR_GT_DISPLAYS.Height);//working but we need the monochromes
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations
// int wwwidth = (int)PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes.VisibleClipBounds.Width;
// int hhheight = (int)PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes.VisibleClipBounds.Height;
//saying the parameter is not valid in the exceptions
// Bitmap _temp_of_another_Bitmaps = new Bitmap(this.pictureBox_FOR_GT_DISPLAYS.Width+6, this.pictureBox_FOR_GT_DISPLAYS.Height+6, PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes);
// Bitmap _temp_of_another_Bitmaps = new Bitmap(wwwidth, hhheight, PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes);
Graphics gggggg = PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes;
if (gggggg != null)
{
// _temp_of_another_Bitmaps = new Bitmap(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations.Width, PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations.Height, gggggg);
}// if (gggggg != null)
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_graphics_for_GT_DRAWING_on_picture_boxes
// _tempBitmap.SetResolution(13000, 13000);
//I AM STOPPING THIS SINCE WE ARE USING NEW ANIMATOR CLASSES i have seen that gif files generation stopped
var gg = Graphics.FromImage(_tempBitmap);
// var rect = this.pictureBox_FOR_GT_DISPLAYS.RectangleToScreen(this.pictureBox_FOR_GT_DISPLAYS.ClientRectangle);
//I AM STOPPING THIS SINCE WE ARE USING NEW NIMATOR CLASSES i have seen that animations in gif file did not work after that
var rect = this.pictureBox_FOR_GT_DISPLAYS.RectangleToScreen(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations.ClientRectangle);
// PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations
// gg.CopyFromScreen(rect.Location, Point.Empty, this.pictureBox_FOR_GT_DISPLAYS.Size);
//I AM STOPPING THIS SINCE WE ARE USING NEW ANIMATOR CLASSES
gg.CopyFromScreen(rect.Location, Point.Empty, PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.public_static_picturebox_to_store_animations.Size);
//yes tested that the files of 37 kb formed for proper filenames and in the gif animator things are sorting saving ok
// _tempBitmap.Save("d:\\bitmapfrompbox_" + (new String('0', 13 - (rrr.ToString().Length)) + rrr.ToString()) + ".bmp");
System.Threading.Thread.Sleep(13);
//no exceptions still the gif animations generations dont work (i have seen that the Bitmaps are not saving into the List
//oh ho we were clearing inside the for loops
goto_resetADDFrames:
// ////I AM STOPPING THIS SINCE WE ARE USING NEW NIMATOR CLASSES
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Add((Bitmap)(_tempBitmap));
try
{
//we will try to use this in future https://stackoverflow.com/questions/17781180/how-to-create-a-gif-image-with-c-sharp
// ((Bitmap)(_tempBitmap)).SaveAdd
//this is working line
//
// string _temp_filesnames_for_frames = "d:\\" + ((new String('0', 13 - incrementor_of_frames.ToString().Trim().TrimEnd().TrimStart().Length)) + incrementor_of_frames.ToString().Trim().TrimEnd().TrimStart()).ToString() + ".bmp";
//now we are using this Program.public_static_string_GT_folder
string _temp_filesnames_for_frames = Program.public_static_string_GT_folder + ((new String('0', 13 - incrementor_of_frames.ToString().Trim().TrimEnd().TrimStart().Length)) + incrementor_of_frames.ToString().Trim().TrimEnd().TrimStart()).ToString() + ".bmp";
((Bitmap)(_tempBitmap)).Save(_temp_filesnames_for_frames);
//CHECKED THIS THAT IT DONT ENTER WHILE SIMULATING FOR GIF FILES
//i have added this to get tripple surity
//THIS DONT ENTER WHILE RUNNING SIMULATIONS BUTTON 0 TO 360 WHEN N IS THERE IN 97
//////
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names.Add(_temp_filesnames_for_frames);
//THIS DONT ENTER WHILE RUNNING SIMULATIONS BUTTON 0 TO 360 WHEN N IS THERE IN 97
//////
System.IO.File.AppendAllText(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+
"tripple_checks_from_the_filenames_saving_inside_button_play_0_360_click.txt", "\r\n" + _temp_filesnames_for_frames);
}
catch (Exception excp_forbmpsaving)
{
}//catch(Exception excp_forbmpsaving)
//this next line dont work so we have taken this inside the paint of the pbox
//this dont work here Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names.Add(_temp_filesnames_for_frames);
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Count < incrementor_of_frames)
{
goto goto_resetADDFrames;
}
else
{
incrementor_of_frames++;
Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.PUBLIC_STATIC_INT_FRAMES_ITERATOR_UPDATED_FROM_FORMS_SIMULATORS_BUTTON = incrementor_of_frames;
////Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.PUBLIC_STATIC_INT_FRAMES_ITERATOR_UPDATED_FROM_FORMS_SIMULATORS_BUTTON = 0;
////Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names.Clear();
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Add(_temp_of_another_Bitmaps);
this.progressBarFOR_ANIMATIONS_SAVING.Value = (int)rrr;// incrementor_of_frames;
}//else case of if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class. PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Count < incrementor_of_frames)
//NO ISSUE
//i have taken this to the else case of above loops
//////////////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
////////////// PUBLIC_STATIC_LIST_OF____Bitmap______FOR_GIF_PREPERATION_SINGLE_GT_SIMPLEX.Add(_temp_of_another_Bitmaps);
//DISTURBING System.Threading.Thread.Sleep(13);
//we have seen that the processing time is dependent on the processor
//the threads sleep takes effect if the time is long setting done
//
//now we are using after 03082020plus Program.public_static_string_GT_folder
//wrongly typed here
//////MessageBox.Show("Frames Accumulations done");
//////Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.CALLING_GIFS_GENERATORS_Main(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names, "d:\\gif_from_list_of_filenames.gif",37);
//caution caution caution when the gif generations options are chosen then only the inside things work
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO)
this.progressBarFOR_ANIMATIONS_SAVING.Value = (int)rrr;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
}
catch (Exception excpthreadflows)
{
MessageBox.Show("TRYING TO UNDERSTAND THE PROBLEMS OF SAVING BITMAPS " + excpthreadflows.Message + excpthreadflows.StackTrace.ToString());
}
//accumulations in the list of bitmaps done we think we need to set separate button for that
try
{
}
catch (Exception excpthreadflowsanimatinggenerators) { }
}//for (int rrr = 0; rrr < 360; rrr++)
//to do after for loop is complete yes tested that it is working fine
//to do after for loop is complete yes tested that it is working fine
//to do after for loop is complete yes tested that it is working fine
// MessageBox.Show("Frames Accumulations done");
//caution caution caution THIS WORKS WHEN THE YES OPTION IS CHOSEN
//this is newly added thing to set the systems with faster simulations and not to save all simulations every times
if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO)
{
//now we are using after 03082020plus Program.public_static_string_GT_folder
// yes this works Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.CALLING_GIFS_GENERATORS_Main(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names, "d:\\gif_from_list_of_filenames.gif", 138);
//we are calling this since this shows progress bar also
string the_simulations_filesnames =
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class.command_string +
System.DateTime.Now.ToString().Replace(" ", "_").Replace("/", "_").Replace("\\", "_").Replace(":", "_").Replace(";", "_")
+ "_gif_from_list_of_filenames.gif";
////// //I DONT THINK THE GIF ANIMATIONS TO GENERATE AT THIS STAGE
////// //I DONT THINK THE GIF ANIMATIONS TO GENERATE AT THIS STAGE
////// //I DONT THINK THE GIF ANIMATIONS TO GENERATE AT THIS STAGE
////// //now we are using after 03082020plus Program.public_static_string_GT_folder
////// // FORMS_OWN_GIFS_GENERATORS_WITH_PROGRESSBARS_HANDLING(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names, "d:\\" + the_simulations_filesnames, 138);
////// //now we are using after 03082020plus Program.public_static_string_GT_folder
////// FORMS_OWN_GIFS_GENERATORS_WITH_PROGRESSBARS_HANDLING(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_ONLY_INFOLDERS_file_names_to_store_frames_bitmaps_files_names, Program.public_static_string_GT_folder + the_simulations_filesnames, 138);
////// //SPECIALLY DONE FOR SPECIAL GIF FILES GENERATIONS
////////////THIS IS DONE AT LINE NUMBER 203 Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_ONLY_INFOLDERS_file_names_to_store_frames_bitmaps_files_names.Add(filename);
////// FORMS_OWN_GIFS_GENERATORS_WITH_PROGRESSBARS_HANDLING(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_strings_of_file_names_to_store_frames_bitmaps_files_names, Program.public_static_string_GT_folder + the_simulations_filesnames, 138);
////// //now we are using after 03082020plus Program.public_static_string_GT_folder
////// //we will try with another systems also
////// //trying with new Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Add(bmp);
////// //too much disturbing MessageBox.Show("To generates new gif with separate styles " + "d:\\" + the_simulations_filesnames.Replace(".gif", "_list_of_control_saves_bitmaps.gif"));
////// //we are avoiding d drive now FORMS_OWN_GIFS_GENERATORS_WITH____LIST_OF_BITMAPS___PROGRESSBARS_HANDLING(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES, "d:\\" + the_simulations_filesnames.Replace(".gif", "_list_of_control_saves_bitmaps.gif"), 338);
////// //now we are using after 03082020plus Program.public_static_string_GT_folder instead of D:\\
////// FORMS_OWN_GIFS_GENERATORS_WITH____LIST_OF_BITMAPS___PROGRESSBARS_HANDLING(Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES, Program.public_static_string_GT_folder + the_simulations_filesnames.Replace(".gif", "_list_of_control_saves_bitmaps.gif"), 338);
//Program.public_static_string_GT_folder
//caution caution caution THIS WORKS WHEN THE YES OPTION IS CHOSEN
}// if (PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_BOOL___DO_YOU_WANT_TO_STORE_GIF_FILES_YES_NO)
//////Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Clear();
//CAUTION CAUTION CAUTION we need to use some separate things
//i have tested with high end systems and found that this generated the gif file which is heavy upto 3.8 megabytes and the data accumulation was fast but generating this took half an hour
//i have tested with high end systems and found that this generated the gif file which is heavy upto 3.8 megabytes and the data accumulation was fast but generating this took half an hour
//i have tested with high end systems and found that this generated the gif file which is heavy upto 3.8 megabytes and the data accumulation was fast but generating this took half an hour
////////we will try with another systems also which will show the flow of pivots stretches and the nodal systems flows of the 0 to 360 simulations
////////trying with new Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Add(bmp);
//////MessageBox.Show("To generates new gif flow of pivot stretches and nodal points " + "d:\\" + the_simulations_filesnames.Replace(".gif", "_list_of_control_saves_bitmaps.gif"));
//////FORMS_OWN_GIFS_GENERATORS_WITH____LIST_OF_BITMAPS___PROGRESSBARS_HANDLING(PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST____SINGLE_UPDATED_OBJECT_OF_BITMAP_FOR_PIVOT_STRETCH_NODAL___POINTS_FLOW, "d:\\" + the_simulations_filesnames.Replace(".gif", "_list_of_pivots_stretches_nodals_bitmaps.gif"), 37);
////////we will clear this list after the gif is prepered
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.PUBLIC_STATIC_LIST____SINGLE_UPDATED_OBJECT_OF_BITMAP_FOR_PIVOT_STRETCH_NODAL___POINTS_FLOW.Clear();
}// private void hScrollBarFOR_DEGREES_CHANGERS_ValueChanged(object sender, EventArgs e)
private void hScrollBarFOR_DEGREES_CHANGERS_Scroll(object sender, ScrollEventArgs e)
{
//////this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value
//////= (Convert.ToDouble(this.hScrollBarFOR_DEGREES_CHANGERS.Value) / 10);
///
double fractional_part_in_the_current_seeds_angle_in_row_30 = 0;
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value != null)
{
fractional_part_in_the_current_seeds_angle_in_row_30
=
Convert.ToDouble
(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value.ToString().TrimEnd().TrimStart().Trim()
)
-
(int)
(
Convert.ToDouble
(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value.ToString().TrimEnd().TrimStart().Trim()
)
);
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value!=null)
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value
=
(
Convert.ToDouble(this.hScrollBarFOR_DEGREES_CHANGERS.Value)
+
fractional_part_in_the_current_seeds_angle_in_row_30
)
.ToString()
;
}//private void hScrollBarFOR_DEGREES_CHANGERS_Scroll(object sender, ScrollEventArgs e)
private void hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT_Scroll(object sender, ScrollEventArgs e)
{
/// i have made this precission to get circle theorems checking
}// private void hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT_Scroll(object sender, ScrollEventArgs e)
private void hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT_ValueChanged(object sender, EventArgs e)
{
//this.dataGridViewFOR_GT_PRESETS_DATA.Rows[30].Cells[1].Value = rrr.ToString().Trim().TrimEnd().TrimStart();
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Minimum = 0;
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Maximum
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.command_string.Length;
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int
=
this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Value;
//this is for the max data for filtering renders
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value =
ExcelFormulaParser_GT_PARSER.GT_PARSERS.public_static_class_simulations_CONTROLLER_for_gt_Class
.maximum_cutoff_visualizer____upto_which__visualization_to_start___renderer______current_commands_array_size_int
.ToString();
//this.hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT.Value;
//this is for gap data checking and filling the min data to the data grid
if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value != null)
{
if (Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart()) > 0)
{
if ((Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart())
-
Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart()))
>= 0
)
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 3].Cells[1].Value
=
(Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart())
-
Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart()))
.ToString();
}//endif case
////// if ((Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[96 + 2].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart())
//////-
//////Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value.ToString().Trim().TrimEnd().TrimStart()))
//////>= 0
//////)
}//if (Convert.ToInt32(this.dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value .ToString().Trim().TrimEnd().TrimStart())>0)
}// if (this.dataGridViewFOR_GT_PRESETS_DATA.Rows[100].Cells[1].Value != null)
this.dataGridViewFOR_GT_PRESETS_DATA.Refresh();
this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
this.pictureBox_FOR_GT_DISPLAYS.Refresh();
}//private void hScrollBarFOR_STAGEWISECONSTRUCTIONSINSIDEGT_SIMPLEX_OBJECT_ValueChanged(object sender, EventArgs e)
private void ExcelFormulaTextBox_TextChanged(object sender, EventArgs e)
{
bool _temp_checking_wellformed_or_not = false;
_temp_checking_wellformed_or_not =
GPT_well_formed_formula_analysis_of_syntax_Program
.IsWellFormed(this.ExcelFormulaTextBox.Text.ToString());
if (!_temp_checking_wellformed_or_not)
{
this.ExcelFormulaTextBox.BackColor = Color.PaleVioletRed;
this.ExcelFormulaTextBox.ForeColor = Color.White;
this.ExcelFormulaTextBox.Invalidate();
this.ExcelFormulaTextBox.Refresh();
}// if(!_temp_checking_wellformed_or_not)
else
{
this.ExcelFormulaTextBox.BackColor = Color.LightBlue;
this.ExcelFormulaTextBox.ForeColor = Color.Black;
this.ExcelFormulaTextBox.Invalidate();
this.ExcelFormulaTextBox.Refresh();
} // end of else case // if(!_temp_checking_wellformed_or_not)
}//private void ExcelFormulaTextBox_TextChanged(object sender, EventArgs e)
private void ExcelFormulaTextBox_TabStopChanged(object sender, EventArgs e)
{
bool _temp_checking_wellformed_or_not = false;
_temp_checking_wellformed_or_not =
GPT_well_formed_formula_analysis_of_syntax_Program
.IsWellFormed(this.ExcelFormulaTextBox.Text.ToString());
if (!_temp_checking_wellformed_or_not)
{
this.ExcelFormulaTextBox.BackColor = Color.PaleVioletRed;
this.ExcelFormulaTextBox.ForeColor = Color.White;
this.ExcelFormulaTextBox.Invalidate();
this.ExcelFormulaTextBox.Refresh();
}// if(!_temp_checking_wellformed_or_not)
else
{
this.ExcelFormulaTextBox.BackColor = Color.LightBlue;
this.ExcelFormulaTextBox.ForeColor = Color.Black;
this.ExcelFormulaTextBox.Invalidate();
this.ExcelFormulaTextBox.Refresh();
} // end of else case // if(!_temp_checking_wellformed_or_not)
}//private void ExcelFormulaTextBox_TabStopChanged(object sender, EventArgs e)
private void dataGridViewFOR_GT_PRESETS_DATA_CellStyleContentChanged(object sender, DataGridViewCellStyleContentChangedEventArgs e)
{
////// too disturbing MessageBox.Show(e.ToString());
}// private void dataGridViewFOR_GT_PRESETS_DATA_CellStyleContentChanged(object sender, DataGridViewCellStyleContentChangedEventArgs e)
private void hScrollBar_FOR_L_GIVEN_LINE_SEGMENTS_ROTATIONS_ValueChanged(object sender, EventArgs e)
{
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[7].Cells[1].Value = this.hScrollBar_FOR_L_GIVEN_LINE_SEGMENTS_ROTATIONS.Value.ToString();
}// private void hScrollBar_FOR_L_GIVEN_LINE_SEGMENTS_ROTATIONS_ValueChanged(object sender, EventArgs e)
private void button_NAUDS_MIDI_TO_ANALYSIS_GEOMETRY_Click(object sender, EventArgs e)
{
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES
// to generate linier data also
try
{
System.Windows.Forms.MessageBox.Show("layers prefers NOTE_trknos_chnlsnos_patchnos_velocity");
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
/////
///
///
///
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.
PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
();
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
//////SAANAUDSFRESH.MidiUtils.MidiConverter
////// _saan_checking_MidiFile_Converter = new SAANAUDSFRESH.MidiUtils.MidiConverter();
//////SAANAUDSFRESH.MidiUtils.MainForm _to_chk_main_form = new SAANAUDSFRESH.MidiUtils.MainForm();
//////_to_chk_main_form.Show();
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
=
new List<double>();
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "mid/mid Files (.mid)|*.mid|GEOMETRIFYING_TRIGONOMETRY MIDI/MIDI Files (.midi)|*.midi|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_midi_files_name = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
///////////////yes running
///////////////
//////////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID", false);
///////////////yes running
/////////////// _midf.Describe()
///////////////
////////////System.IO.File.WriteAllText("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID.txt", _midf.ToString());
////////////////////////////////////// yessssssssssssssssssssss worked
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///
if (___temp_midi_files_name.TrimEnd().TrimStart().Trim().Length > 0)
{
try
{
////////////////////////////////////////////////////////////////////////
///
/// using (Stream stm = File.OpenRead(MidiFileBox.Text))
///
////////////////SAAN_FRESH_MIDSLCSMIDI.MidiStream _play___able_SAAN_FRESH_MIDSLCSMIDI_MidiStream;
////////////////SAAN_FRESH_MIDSLCSMIDI.MidiFile _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile;
////////////////SAAN_FRESH_MIDSLCSMIDI.MidiFile _processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile;
////////////////SAAN_FRESH_MIDSLCSMIDI.MidiDevice SAAN_FRESH_MIDSLCSMIDI_mididevices_0_devs;
StringBuilder ___tempstrbldr = new StringBuilder();
___tempstrbldr.Clear();
using (System.IO.Stream stm = System.IO.File.OpenRead(___temp_midi_files_name))
{
_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile = SAAN_FRESH_MIDSLCSMIDI.MidiFile.ReadFrom(stm);
}// using (System.IO.Stream stm = System.IO.File.OpenRead(___temp_midi_files_name))
var i = 0;
foreach (SAAN_FRESH_MIDSLCSMIDI.MidiSequence trk in _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.Tracks)
{
string s = trk.Name;
if (string.IsNullOrEmpty(s))
{
s = "Track #" + i.ToString();
___tempstrbldr.AppendLine(s);
}// if (string.IsNullOrEmpty(s))
// will do TrackList.Items.Add(s, true);
++i;
}//foreach (SAAN_FRESH_MIDSLCSMIDI.MidiSequence trk in _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.Tracks)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
SAAN_FRESH_MIDSLCSMIDI.MidiFile mf = _ProcessFile();
using (System.IO.Stream stm = System.IO.File.OpenWrite(___temp_midi_files_name + "_bts_" + mf.LENGTH_IN_THE_BEATS_VALUE_FOUND___DECIMAL + "_tks_" + mf.LENGTH_IN_THE_TICKS_VALUE_FOUND___DECIMAL + "_SAAN_FRESH_MIDSLCSMIDI.mid"))
{
stm.SetLength(0);
mf.WriteTo(stm);
}// using (System.IO.Stream stm = System.IO.File.OpenWrite(___temp_midi_files_name+ "_SAAN_FRESH_MIDSLCSMIDI.mid"))
System.Windows.Forms.MessageBox.Show("SAAN_FRESH_MIDSLCSMIDI to ___tempstrbldr for tracks\r\n\r\n\r\n" + ___tempstrbldr.ToString() + "\r\n\r\n\r\nwill start SAANAUDS.Midi.MidiFile");
////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___Excp_to_readthemidswithsaansnewmidslcsrs)
{
System.Windows.Forms.MessageBox.Show("___Excp_to_readthemidswithsaansnewmidslcsrs = " + ___Excp_to_readthemidswithsaansnewmidslcsrs.Message + "\r\n" + ___Excp_to_readthemidswithsaansnewmidslcsrs.StackTrace.ToString());
}//catch(Exception ___Excp_to_readthemidswithsaansnewmidslcsrs)
SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile(___temp_midi_files_name, false);
////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile(___temp_midi_files_name, true);
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("Complete midi file reading done\r\n\r\n\r\nnow logging to dxf file starts");
//////////////////////// CAUTION CAUTION CAUTION THIS LOGGING NECESSARY public_static_void___read_the_midi_file_and_report
///IF WE DONT CALL THIS THEN WE WILL NOT GET THE GLOBAL CALCULATIONS OF STATISTICS FOR THE WHOLE THINGS AND THIS IS VERY NECESSARY TO CALL///
///THIS FUNCTION DOES GLOBAL ANALYSIS ON THE WHOLE PROCESS OF DATA CALCULATIONS IN THE MIDI FILES ///////////////////////////////////////////////
StringBuilder _another_sbldr = new StringBuilder();
_another_sbldr.Clear();
_another_sbldr
=
SAANAUDS
.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.public_static_void___read_the_midi_file_and_report
(___temp_midi_files_name);
///////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
=
new List<double>();
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
//////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
///SAAN_Log_tracks_channels_events
/// //////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
//////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
///SAAN_Log_tracks_channels_events
/// //////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
//////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
///SAAN_Log_tracks_channels_events
/// //////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
//////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
///SAAN_Log_tracks_channels_events
/// //////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
/// /// /// ///
StringBuilder _again___another_sbldr
=
_midf.SAAN_Log_tracks_channels_events();///////////////////// yes this is working (but for rabindrasangeet there are notes on exceptions)
/// i had to save the midi files with midieditor before running this tool
/// i had to save the midi files with midieditor before running this tool
/// i had to save the midi files with midieditor before running this tool
///
///
///
///
///
///
//////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
///SAAN_Log_tracks_channels_events
/// //////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
//////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
///SAAN_Log_tracks_channels_events
/// //////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
//////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
///SAAN_Log_tracks_channels_events
/// //////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
//////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
///SAAN_Log_tracks_channels_events
/// //////////////////////////////////////////// THIS FUNCTION ITERATES THROUGH ALL EVENTS ///////////////
/// /// /// ///
///
//////////////// WANT TO SEE SAANAUDS TOSTRING() FRESH REPORT ///////////
//////////////// WANT TO SEE SAANAUDS TOSTRING() FRESH REPORT ///////////
//////////////// WANT TO SEE SAANAUDS TOSTRING() FRESH REPORT ///////////
System.IO.File.WriteAllText(
___temp_midi_files_name + ".SAANAUDSTOSTRING.txt"
,
_midf.ToString()
);
//////////////// WANT TO SEE SAANAUDS TOSTRING() FRESH REPORT ///////////
//////////////// WANT TO SEE SAANAUDS TOSTRING() FRESH REPORT ///////////
//////////////// WANT TO SEE SAANAUDS TOSTRING() FRESH REPORT ///////////
/////////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText(
___temp_midi_files_name + ".sngtmidinauds.txt"
,
"SAANAUDS_MIDIFILES_ToString()\r\n\r\n\r\n" +
_midf.ToString()
+ "\r\npublic_static_void___read_the_midi_file_and_report\r\n"
+ "\r\npublic_static_void___read_the_midi_file_and_report\r\n"
+ "\r\npublic_static_void___read_the_midi_file_and_report\r\n" +
_another_sbldr.ToString()
+ "\r\n_again___another_sbldr\r\n" +
_again___another_sbldr.ToString()
);
// System.Diagnostics.Process.Start("notepad.exe", ___temp_midi_files_name + ".sngtmidinaudstxt");
System.IO.File.WriteAllText(
___temp_midi_files_name + ".ONLY____midf.txt"
,
_midf.ToString()
);
System.IO.File.WriteAllText(
___temp_midi_files_name + "._another_sbldr.txt"
,
_another_sbldr.ToString()
);
System.IO.File.WriteAllText(
___temp_midi_files_name + "._again___another_sbldr.txt"
,
_again___another_sbldr.ToString()
);
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
StringBuilder PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here
= new StringBuilder();
PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here.Clear();
double ___counter_for_event = 0;
//////foreach (MidiEvent _log_midi_event in _midf.events)
////// {
////// /// SAANAUDS.Midi.
////// PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here
////// .AppendLine
////// (
////// ___counter_for_event
////// + ",saan_checking," +
////// _log_midi_event.ToString()
////// );
////// ___counter_for_event++;
////// }// foreach(MidiEvent _log_midi_event in events)
foreach (
var
_log_midi_event
in
_midf
.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
)
{
/// SAANAUDS.Midi.
try
{
PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here
.AppendLine
(
___counter_for_event
+ ",saan_checking," +
// _log_midi_event.ToString()
////////////////////////// THIS FUNCTION DOES GREAT WORKS FOR THE CALCULATED DATA GENERATIONS INSIDE TOSTRING() FLOWS ///////
////////////////////////// THIS FUNCTION DOES GREAT WORKS FOR THE CALCULATED DATA GENERATIONS INSIDE TOSTRING() FLOWS ///////
////////////////////////// THIS FUNCTION DOES GREAT WORKS FOR THE CALCULATED DATA GENERATIONS INSIDE TOSTRING() FLOWS ///////
_log_midi_event
.RETURN_TO_STRING_REPORT_FOR_CURRENT_SAANS_OBJECT()
////////////////////////// THIS FUNCTION DOES GREAT WORKS FOR THE CALCULATED DATA GENERATIONS INSIDE TOSTRING() FLOWS ///////
////////////////////////// THIS FUNCTION DOES GREAT WORKS FOR THE CALCULATED DATA GENERATIONS INSIDE TOSTRING() FLOWS ///////
////////////////////////// THIS FUNCTION DOES GREAT WORKS FOR THE CALCULATED DATA GENERATIONS INSIDE TOSTRING() FLOWS ///////
);
___counter_for_event++;
}
catch (Exception ___excp_to_log)
{
PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here
.AppendLine
(
___counter_for_event
+ ",saan_checking," +
// _log_midi_event.ToString()
___counter_for_event
+ "\r\n ___excp_to_log RETURN_TO_STRING_REPORT_FOR_CURRENT_SAANS_OBJECT= \r\n" +
___excp_to_log.Message + "\r\n" + ___excp_to_log.StackTrace.ToString()
);
}//catch(Exception ___excp_to_log)
}// foreach(MidiEvent _log_midi_event in events)
/////////////////////////////////////////////////////////////////
___counter_for_event = 0;
double ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations = 1000;
double ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes = 6666000;
double ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes = 100;
double z_calulated_for_tracks_channels_frequencies = 0;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
//////.
//////public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//////=
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// .
////// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// .OrderBy(SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING => SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ)
////// .ThenBy(SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING => SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_OFF_FREQUENCY_IN_HERTZ)
////// .Reverse()
////// .ToList();
double ___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius = 0;
___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
=
//////SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
//////.
//////public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// .Last()
////// .PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ;
///
///
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.
PUBLIC_STATIC_SIMPLES_TRANSIENT______DOUBLE___OVERALL_MAXIMUM_FREQUENCY_FOUND_HERTZ
;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////// AGAIN SORTING TO GET MAX DURATION OF WHOLE MIDI //////////////////////////////////////////////////////////////////////////
/////////////////////////////////// AGAIN SORTING TO GET MAX DURATION OF WHOLE MIDI //////////////////////////////////////////////////////////////////////////
/////////////////////////////////// AGAIN SORTING TO GET MAX DURATION OF WHOLE MIDI //////////////////////////////////////////////////////////////////////////
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.OrderBy(SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING => SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND)
.ThenBy(SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING => SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.PUBLIC_INT_SAAN___TRACK_NUMBER)
.ToList();
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///
long ___temp_total_length___of_the_song = 0;
___temp_total_length___of_the_song
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.Last()
.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND;
//////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
#region THE_REGION_TO_PREPARE_DXF_FOR_MIDI_NOTES_WITH_LARGER_SCALES
/////////////////// we will calculate the degrees now /////////////////
/////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.initialize_dxf_for_sbuilder_for_dxf();
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Sort();
double large_radius_to_use_for_gridding =
___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
*
___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
+ 3000;
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
foreach (
double six_digit_radian_in_list
in
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
)
{
double six_digit_radian
= 0;
// in previous loop we have already found this
/// ___temp_total_length___of_the_song
///
six_digit_radian = Math.Round(six_digit_radian_in_list, 6);
string ___GRIDS_TIMES_TEXT_DATA = "";
___GRIDS_TIMES_TEXT_DATA
=
(System.Math.Round(___temp_total_length___of_the_song * six_digit_radian, 0)).ToString();
///////////////////////////////////////////////////////////////////////////////////////////////////
double ___temp_x1_for_grids_end
= large_radius_to_use_for_gridding * System.Math.Cos(six_digit_radian);
double ___temp_y1_for_grids_end
= large_radius_to_use_for_gridding * System.Math.Sin(six_digit_radian);
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_circle_WITH_BLOCK_LEVEL_COLOR
(0, 0, 0,
large_radius_to_use_for_gridding, "LAYER_GRIDS_CIRCLE", "XDATA", 6
);
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
0, 0, -600000,
___temp_x1_for_grids_end
,
___temp_y1_for_grids_end
,
-600000,
"LAYER_GRIDS_CIRCLE", "XDATA", 6
);
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_ON_TOP_VIEW_WITH_BLOCK_LEVEL_COLOR
(
___temp_x1_for_grids_end
,
___temp_y1_for_grids_end
,
-600000, 0, 60,
"LAYER_GRIDS_CIRCLE",
___GRIDS_TIMES_TEXT_DATA
,
"XDATA", 6
);
}
//////foreach (
//////double six_digit_radian_in_list
//////in
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
//////.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
//////)
///////////////////////// WE WILL LOG ALL THESE INSIDE THE PUBLIC STATIC CLASS AND WE ARE ACCESSING THE DATA FROM THE GLOBAL PUBLIC STATIC CLASS HERE //////
///////////////////////// WE WILL LOG ALL THESE INSIDE THE PUBLIC STATIC CLASS AND WE ARE ACCESSING THE DATA FROM THE GLOBAL PUBLIC STATIC CLASS HERE //////
//////////////////////////// WE WILL LOG ALL THESE INSIDE THE PUBLIC STATIC CLASS AND WE ARE ACCESSING THE DATA FROM THE GLOBAL PUBLIC STATIC CLASS HERE //////
foreach (
// var _log_midi_event
SAANAUDS.Midi
.SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
_log_midi_event
in
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
)
{
/// SAANAUDS.Midi.
try
{
///kkk
z_calulated_for_tracks_channels_frequencies
=
(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100);
PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here
.AppendLine
(
___counter_for_event
+ ",from_public_static_list____checking," +
// _log_midi_event.ToString()
_log_midi_event
.RETURN_TO_STRING_REPORT_FOR_CURRENT_SAANS_OBJECT()
);
___counter_for_event++;
/////////////////////////// this is to draw the linear notes data //////////////////////
///notes_top_line
///// WE WILL TAKE THE NOTES TOP LINES DATA ONLY FOR THE TRANSMITTABLE DATA
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.LINIER_X1,
_log_midi_event.LINIER_Y1 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
+
___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes,
0,
//(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
_log_midi_event.LINIER_X2,
_log_midi_event.LINIER_Y2 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
+ ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
,
// (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
0
,
"NOTE_"
+
_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_" +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
+ "_" +
_log_midi_event
.
PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
// not taking the pitch bends in the layers names
+ "_" +
_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
,
"XDATA",
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
);
///notes_bottoms_line
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.LINIER_X1,
_log_midi_event.LINIER_Y1 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
+ ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
- 6
,
0,
//(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
_log_midi_event.LINIER_X2,
_log_midi_event.LINIER_Y2 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
+ ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
- 6
,
// (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
0,
_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_" +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString(),
"XDATA",
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
);
///notes_left_line
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.LINIER_X1,
_log_midi_event.LINIER_Y1 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
+ ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
,
0,
//(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
////// IF WE DONT PUT THE "NOTE_" IN THE LAYERS NAME THEN IT WILL NOT READ THE DATA FOR THE RECONSTRUCTIONS
_log_midi_event.LINIER_X1,
_log_midi_event.LINIER_Y2 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
+ ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
- 6
,
// (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
0,
_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_" +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString(),
"XDATA",
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
);
///notes_right_line
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.LINIER_X2,
_log_midi_event.LINIER_Y1 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
+ ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
,
0,
//(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
_log_midi_event.LINIER_X2,
_log_midi_event.LINIER_Y2 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
+ ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
- 6
,
// (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
0,
_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_" +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString(),
"XDATA",
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
);
///////////////// WRITE TEXT ON THE LINEAR DATA
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.LINIER_X1,
_log_midi_event.LINIER_Y1 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
+ ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
- 6
,
0
,
0.00
,
/// 1.1
0.06
,
"LAYER_LINEAR_DESCRIPTIONS_TEXT"
,
"START_NOTE_" +
"TRACK= " + _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_CHANNEL= " +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
+ "_NOTE= " +
_log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NUMBER_FOUND
+ "_" +
_log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
+ "_Hz= " +
_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ.ToString()
+ "_NOTE_NAMES= " +
_log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
+ "_START_time= " +
(Math.Round((double)_log_midi_event.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND, 3)).ToString()
+ "_DURATION= " +
(Math.Round((double)_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_DURATION___IS___NOTE_LENGTH, 1)).ToString()
,
"XDATA"
,
///6 WE NEED COLORS AS CHANNEL NUMBERS
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
);
////////////////////////////////////////////////////////////////////////////////////
///////////// above are for linear plotting //////////////////////////////////
/////////////////////////////////////////// below are for circular plotting ////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.X1 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
_log_midi_event.Y1 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
_log_midi_event.X2 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
_log_midi_event.Y2 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_" +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString(),
"XDATA",
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
);
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.X1 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
_log_midi_event.Y1 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100)
,
0.00
,
6
,
"LAYER_DESCRIPTIONS_TEXT"
,
"START_NOTE_" +
"TRACK= " + _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_CHANNEL= " +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
+ "_NOTE= " +
_log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NUMBER_FOUND
+ "_" +
_log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
+ "_Hz= " +
_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ.ToString()
+ "_degrees= " +
(Math.Round(_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_DEGREES_0_TO_360, 3)).ToString()
+ "_time= " +
(Math.Round((double)_log_midi_event.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND, 3)).ToString()
,
"XDATA"
,
6
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.X2 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
_log_midi_event.Y2 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100)
,
0.00
,
6
,
"LAYER_DESCRIPTIONS_TEXT"
,
"FINAL_NOTE_" +
"TRACK= " + _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_CHANNEL= " +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
+ "_NOTE= " +
_log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NUMBER_FOUND
+ "_" +
_log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
+ "_Hz= " +
_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ.ToString()
+ "_degrees= " +
(Math.Round(_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_OFF_DEGREES_0_TO_360, 3)).ToString()
+ "_time= " +
(Math.Round((double)
(
_log_midi_event.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND
+
_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_DURATION___IS___NOTE_LENGTH
)
, 3)).ToString()
,
"XDATA"
,
6
);
}
catch (Exception ___excp_to_log)
{
PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here
.AppendLine
(
___counter_for_event
+ ",saan_checking," +
// _log_midi_event.ToString()
___counter_for_event
+ "\r\n ___excp_to_log RETURN_TO_STRING_REPORT_FOR_CURRENT_SAANS_OBJECT= \r\n" +
___excp_to_log.Message + "\r\n" + ___excp_to_log.StackTrace.ToString()
);
}//catch(Exception ___excp_to_log)
}//
//////foreach (
////// var _log_midi_event
////// in
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// .
////// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// )
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
0
,
0
,
0
,
0
,
108
,
"LAYER_DESCRIPTIONS_TEXT",
System.IO.Path.GetFileNameWithoutExtension(___temp_midi_files_name)
,
"XDATA"
,
6
);
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.finalizer_dxf_for_sbuilder_for_dxf();
System.IO.File.WriteAllText
(
//////___temp_midi_files_name + "_strct_chk_" + strictChecking + "_cnt_" + _midf.events.Count().ToString() + "_saan.log_reads_events.txt"
___temp_midi_files_name + "_cnt_"
+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
+ "_saan.log_reads_events.DXF"
,
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.sbuilder_for_dxf
.ToString()
);
System.IO.File.WriteAllText
(
//////___temp_midi_files_name + "_strct_chk_" + strictChecking + "_cnt_" + _midf.events.Count().ToString() + "_saan.log_reads_events.txt"
___temp_midi_files_name + "_cnt_"
+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
+ "_saan.log_reads_events.TXT"
,
PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here.ToString()
+ "\r\n\r\n\r\n the _midf.___public_stringbuilder_for_midievent_adding_snap___data\r\n\r\n\r\n"
+ _midf.___public_stringbuilder_for_midievent_adding_snap___data.ToString()
);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////this variable has stored the snaps of public static variables of states at every stages while loading data//////
/////////records of rows for every events are stored as snaps while loading and populated the public static variables then loaded to event objects ///
//////this.___public_stringbuilder_for_midievent_adding_snap___data
////// .AppendLine
////// (
////// midiEvent.PUBLIC_NONSTATIC_SIMPLES_TRANSIENT______STRING___CURRENT_STATUS_OF___THIS_WHOLE_DATA
////// );
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////this variable has stored the snaps of public static variables of states at every stages while loading data//////
/////////from the midi file when opening the file streams to the data structure here to get the data handling for reporting///
/// to do to do to do
///https://www.tagorebeyondboundaries.org/index.php?p=downloads
System.Diagnostics.Process.Start("notepad.exe", ___temp_midi_files_name
+ "_cnt_"
+ _midf
.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.Count().ToString()
+ "_saan.log_reads_events.TXT");
System.Windows.Forms.MessageBox.Show("report generated at = " +
___temp_midi_files_name + "_cnt_"
+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
+ "_saan.log_reads_events.TXT"
+ "\r\n\r\n\r\n" +
"and the dxf file is prepared at " +
___temp_midi_files_name + "_cnt_"
+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
+ "_saan.log_reads_events.DXF"
);
#endregion THE_REGION_TO_PREPARE_DXF_FOR_MIDI_NOTES_WITH_LARGER_SCALES
////// FIRST LARGER SCALES CIRCLES DONE
////// FIRST LARGER SCALES CIRCLES DONE
////// FIRST LARGER SCALES CIRCLES DONE
#region to_generate_dxf_and_csv_like_data_from_midi_files
/////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
///
///
///////////////////////////////////////////////////////////////////////////////// THE CIRCULAR RENDERING COMPLETES /////////////////
///////////////////////////////////////////////////////////////////////////////// THE CIRCULAR RENDERING COMPLETES /////////////////
///////////////////////////////////////////////////////////////////////////////// THE CIRCULAR RENDERING COMPLETES /////////////////
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.OrderBy(SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING => SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.PUBLIC_INT_SAAN___TRACK_NUMBER)
.ThenBy(SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING => SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.PUBLIC_INT_SAAN___CHANNEL_NUMBER)
.ThenBy(SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING => SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER)
.ThenBy(SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING => SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND)
.ToList();
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.sbuilder_for_dxf
.Clear();
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.initialize_dxf_for_sbuilder_for_dxf()
;
/////////////////////////////////////////////////////////////////////////////////////////
double ___temp___inst_patch_number_found = 0;
double ___temp___nones_pitchbends_number_found = 0;
StringBuilder ___temp_stringbuilder_for_csv_like_data_for_layers_dxf___BETTER_SCALES_STILL___NO_PROPER_PATCH_NUMBERS = new StringBuilder();
___temp_stringbuilder_for_csv_like_data_for_layers_dxf___BETTER_SCALES_STILL___NO_PROPER_PATCH_NUMBERS.Clear();
___temp_stringbuilder_for_csv_like_data_for_layers_dxf___BETTER_SCALES_STILL___NO_PROPER_PATCH_NUMBERS
.AppendLine
(
"track,channel,patch_number,patch_name,pitch_bend_number,note_frequency_linier_y_start_data,note_frequency_linier_y_final_data,note_name,note_start_time_from_linier_x_data,note_final_time_from_linier_x_data,note_duration,note_velocity,grabbed_lyrics_text,grabbed_lyrics_Absolute_times"
);
foreach (
// var _log_midi_event
SAANAUDS.Midi
.SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
_log_midi_event___for_true_scaled_notes_on_dxf___linier
in
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
)
{
/// SAANAUDS.Midi.
int iterator_on______PUBLIC_STATIC_GLOBAL_LIST_OF______SAAN_CLASS_FOR_LYRIC_STORAGE_AND_TO_ANALYSE_THAT_ON_TIMELINES
= -1;
foreach (
SAANAUDS.Midi.SAAN_CLASS_FOR_LYRIC_STORAGE_AND_TO_ANALYSE_THAT_ON_TIMELINES
_temp_lyrics_objects
in
SAANAUDS
.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_GLOBAL_LIST_OF______SAAN_CLASS_FOR_LYRIC_STORAGE_AND_TO_ANALYSE_THAT_ON_TIMELINES
)
{
iterator_on______PUBLIC_STATIC_GLOBAL_LIST_OF______SAAN_CLASS_FOR_LYRIC_STORAGE_AND_TO_ANALYSE_THAT_ON_TIMELINES
++;
if (
(
Math.Abs(
_temp_lyrics_objects
.PUBLIC_LONG_LYRIC_STRING_FOUND_AT_MIDITICK_POSITION
-
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_X1
)
< 100
)
||
(
Math.Abs(
_temp_lyrics_objects
.PUBLIC_LONG_LYRIC_STRING_FOUND_AT_MIDITICK_POSITION
-
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_X2
)
< 100
)
)
{
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.ElementAt<SAANAUDS.Midi.SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING>
(
iterator_on______PUBLIC_STATIC_GLOBAL_LIST_OF______SAAN_CLASS_FOR_LYRIC_STORAGE_AND_TO_ANALYSE_THAT_ON_TIMELINES
)
.PUBLIC_STRING_SAAN___LYRIC_TEXT
=
_temp_lyrics_objects
.PUBLIC_STRING_LYRIC_STRING_FOUND;
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.ElementAt<SAANAUDS.Midi.SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING>
(
iterator_on______PUBLIC_STATIC_GLOBAL_LIST_OF______SAAN_CLASS_FOR_LYRIC_STORAGE_AND_TO_ANALYSE_THAT_ON_TIMELINES
)
.PUBLIC_LONG_SAAN___LYRIC_FOUND_AT_ABSOLUTE_TIME
=
_temp_lyrics_objects
.PUBLIC_LONG_LYRIC_STRING_FOUND_AT_MIDITICK_POSITION;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_LONG_SAAN___LYRIC_FOUND_AT_ABSOLUTE_TIME
=
_temp_lyrics_objects
.PUBLIC_LONG_LYRIC_STRING_FOUND_AT_MIDITICK_POSITION;
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_STRING_SAAN___LYRIC_TEXT
=
_temp_lyrics_objects
.PUBLIC_STRING_LYRIC_STRING_FOUND;
}
//////if (
////// (
////// Math.Abs(
////// _temp_lyrics_objects
////// .PUBLIC_LONG_LYRIC_STRING_FOUND_AT_MIDITICK_POSITION
////// -
////// _log_midi_event___for_true_scaled_notes_on_dxf___linier
////// .LINIER_X1
////// )
////// < 100
////// )
////// ||
////// (
////// Math.Abs(
////// _temp_lyrics_objects
////// .PUBLIC_LONG_LYRIC_STRING_FOUND_AT_MIDITICK_POSITION
////// -
////// _log_midi_event___for_true_scaled_notes_on_dxf___linier
////// .LINIER_X2
////// )
////// < 100
////// )
////// )
}
//////foreach (
//////SAANAUDS.Midi.SAAN_CLASS_FOR_LYRIC_STORAGE_AND_TO_ANALYSE_THAT_ON_TIMELINES
//////_temp_lyrics_objects
//////in
//////SAANAUDS
//////.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
//////.PUBLIC_STATIC_GLOBAL_LIST_OF______SAAN_CLASS_FOR_LYRIC_STORAGE_AND_TO_ANALYSE_THAT_ON_TIMELINES
//////)
//////if(_log_midi_event___for_true_scaled_notes_on_dxf___linier.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER>0)
////// {
////// ___temp___inst_patch_number_found = 0; //////////////// flushing first
////// // continue this patch number
////// ___temp___inst_patch_number_found
////// =
////// _log_midi_event___for_true_scaled_notes_on_dxf___linier
////// .PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER
////// ;
////// }// if(_log_midi_event___for_true_scaled_notes_on_dxf___linier.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER>0)
//////if (_log_midi_event___for_true_scaled_notes_on_dxf___linier.PUBLIC_DOUBLE_SAAN___MIDI_PITCH_BEND_NUMBER > 0)
////// {
////// // continue this current pitch bend number
////// ___temp___nones_pitchbends_number_found = 0; //////////////// flushing first
////// ___temp___nones_pitchbends_number_found
////// =
////// _log_midi_event___for_true_scaled_notes_on_dxf___linier
////// .PUBLIC_DOUBLE_SAAN___MIDI_PITCH_BEND_NUMBER
////// ;
////// }// if(_log_midi_event___for_true_scaled_notes_on_dxf___linier.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER>0)
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_X1
,
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_Y1
,
0,
//(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_X2
,
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_Y2
,
// (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
0
,
"NOTE_" +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_" +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////// double ___temp___inst_patch_number_found = 0;
//////double ___temp___nones_pitchbends_number_found = 0;
+ "_" +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
// .PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
//////.PUBLIC_CURRENT_SNAP_OF___ACCUMULATING_MIDI_EVENT_OBJECT
//////.PUBLIC_NONSTATIC_SIMPLES_TRANSIENT______INT___CURRENT_PATCH_INSTRUMENT_NUMBER
//////.ToString()
.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString()
//////no it is not changing
//////+
////// _log_midi_event___for_true_scaled_notes_on_dxf___linier
//////// .PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
//////.PUBLIC_CURRENT_SNAP_OF___ACCUMULATING_MIDI_EVENT_OBJECT
//////.PUBLIC_NONSTATIC_SIMPLES_TRANSIENT______STRING___CURRENT_NOTE_NAME
////// /// ___temp___inst_patch_number_found.ToString()
/// we will not store the pitch bends here in this files
////// + "_" +
////////////_log_midi_event___for_true_scaled_notes_on_dxf___linier
////////////.PUBLIC_DOUBLE_SAAN___MIDI_PITCH_BEND_NUMBER.ToString()
//////___temp___nones_pitchbends_number_found.ToString()
+ "_" +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
,
"XDATA",
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_INT_SAAN___CHANNEL_NUMBER
);
//////___temp_stringbuilder_for_csv_like_data_for_layers_dxf___BETTER_SCALES_STILL___NO_PROPER_PATCH_NUMBERS
////// .AppendLine
////// (
////// "track" +
////// ",channel" +
////// ",patch_number" +
////// ",patch_name" +
////// ",pitch_bend_number" +
////// ",note_frequency_linier_y_start_data" +
///////// ",note_frequency_linier_y_final_data" +
////// ",note_name" +
////// ",note_start_time_from_linier_x_data" +
////// ",note_final_time_from_linier_x_data" +
////// ",note_duration,note_velocity"
////// );
___temp_stringbuilder_for_csv_like_data_for_layers_dxf___BETTER_SCALES_STILL___NO_PROPER_PATCH_NUMBERS
.AppendLine
(
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "," +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
+ "," +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
//.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString()
//////.PUBLIC_CURRENT_SNAP_OF___ACCUMULATING_MIDI_EVENT_OBJECT
////// .PUBLIC_NONSTATIC_SIMPLES_TRANSIENT______INT___CURRENT_PATCH_INSTRUMENT_NUMBER
////// .ToString()
.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString()
+ "," +
///instrument_name+ track_name + channel name
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_STRING_SAAN___TRACK_NAME_FOUND.ToString().Replace(",", "___")
+ "___" +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_INT_SAAN___CHANNEL_NAME.ToString().Replace(",", "___")
+ "," +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_DOUBLE_SAAN___MIDI_PITCH_BEND_NUMBER.ToString()
+ "," +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_Y1.ToString()
+ "," +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_Y2.ToString()
+ "," +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND.ToString()
+ "," +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_X1.ToString()
+ "," +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_X2.ToString()
+ "," +
/// this is calculating the durations
/// /// this is calculating the durations
/// /// this is calculating the durations
(
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_X2
-
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_X1
)
.ToString()
//////+"_TO_CHECK_DELTA_TIME="+ _log_midi_event___for_true_scaled_notes_on_dxf___linier.PUBLIC_CURRENT_SNAP_OF___ACCUMULATING_MIDI_EVENT_OBJECT.DeltaTime.ToString()
////// delta time is not going to help for this data differences
////// delta time is not going to help for this data differences
///////// delta time is not going to help for this data differences
+ "," +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
+ "," +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_STRING_SAAN___LYRIC_TEXT.ToString().Replace(",", "_")
+ "," +
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_LONG_SAAN___LYRIC_FOUND_AT_ABSOLUTE_TIME.ToString()
);
if
(
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_LONG_SAAN___LYRIC_FOUND_AT_ABSOLUTE_TIME
> 0
)
{
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.LINIER_X1
,
(
0
- 300
-
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_INT_SAAN___LYRIC_COUNTER_THAT_COMES_NEAR_THIS_POSITION
* 8
)
,
0, 0, 8, "LYR_TEXT_STRING_GRABBED",
_log_midi_event___for_true_scaled_notes_on_dxf___linier
.PUBLIC_STRING_SAAN___LYRIC_TEXT
, "XDATA",
6
);
}
//////if
//////(
//////_log_midi_event___for_true_scaled_notes_on_dxf___linier
//////.PUBLIC_LONG_SAAN___LYRIC_FOUND_AT_ABSOLUTE_TIME
//////> 0
//////)
//////////////////////////////////////////////////////////////////////////////////////////////////////
}
//////////////foreach (
////////////// // var _log_midi_event
////////////// SAANAUDS.Midi
////////////// .SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////////////// _log_midi_event___for_true_scaled_notes_on_dxf___linier
////////////// in
////////////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////////////// .
////////////// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////////////// )
/////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.finalizer_dxf_for_sbuilder_for_dxf();
System.IO.File.WriteAllText
(
//////___temp_midi_files_name + "_strct_chk_" + strictChecking + "_cnt_" + _midf.events.Count().ToString() + "_saan.log_reads_events.txt"
___temp_midi_files_name + "_cnt_"
+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
+ "_saan.TRUE_SCALED_notes(BUTTON_FORMS_BETTER_SCALES_WRONG_PATCH_NUMBERS).DXF"
,
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.sbuilder_for_dxf
.ToString()
);
///////////////___temp_stringbuilder_for_csv_like_data_for_layers_dxf___BETTER_SCALES_STILL___NO_PROPER_PATCH_NUMBERS
///////////////////////////////////////// WE WILL HAVE THE SPECIAL SYSTEMS TO GENERATE THE IMPORTER OF THIS FILES TO CONVERT INTO LINIER DXF FILES ////////
System.IO.File.WriteAllText
(
//////___temp_midi_files_name + "_strct_chk_" + strictChecking + "_cnt_" + _midf.events.Count().ToString() + "_saan.log_reads_events.txt"
___temp_midi_files_name + "_cnt_"
+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
+ "_saan.TRUE_SCALED_notes(BUTTON_FORMS_BETTER_SCALES_NO_PATCH_NUMBERS)_CAUTIONS.SAANOWNCSVLINIERSCALEDDXFFORMIDI"
,
___temp_stringbuilder_for_csv_like_data_for_layers_dxf___BETTER_SCALES_STILL___NO_PROPER_PATCH_NUMBERS
.ToString()
);
/////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
/// /////////////////we will regenerate the true scaled dxf for data import again //////////////
///
System.Windows.Forms.MessageBox.Show("_saan.TRUE_SCALED_notes.SAAN_OWN_CSV_REPORT.TXT saved dxf with true scale saved");
#endregion to_generate_dxf_and_csv_like_data_from_midi_files
///////////////////////////////////////// ALL THE LARGER SCALED DATA DXF GENERATED NOW///////////////
///WE WILL NOW GENERATE THE TRUE SCALED DXF FILES FOR OTHER KIND OF EDITING
///
///////////////////////////////////////// ALL THE LARGER SCALED DATA DXF GENERATED NOW///////////////
///WE WILL NOW GENERATE THE TRUE SCALED DXF FILES FOR OTHER KIND OF EDITING
///
///////////////////////////////////////// ALL THE LARGER SCALED DATA DXF GENERATED NOW///////////////
///WE WILL NOW GENERATE THE TRUE SCALED DXF FILES FOR OTHER KIND OF EDITING
///
///////////////////////////////////////// ALL THE LARGER SCALED DATA DXF GENERATED NOW///////////////
///WE WILL NOW GENERATE THE TRUE SCALED DXF FILES FOR OTHER KIND OF EDITING
///
///////////////////////////////////////// ALL THE LARGER SCALED DATA DXF GENERATED NOW///////////////
///WE WILL NOW GENERATE THE TRUE SCALED DXF FILES FOR OTHER KIND OF EDITING
///
///////////////////////////////////////// ALL THE LARGER SCALED DATA DXF GENERATED NOW///////////////
///WE WILL NOW GENERATE THE TRUE SCALED DXF FILES FOR OTHER KIND OF EDITING
///
///////////////////////////////////////// ALL THE LARGER SCALED DATA DXF GENERATED NOW///////////////
///WE WILL NOW GENERATE THE TRUE SCALED DXF FILES FOR OTHER KIND OF EDITING
///
#region THE_REGION_TO_PREPARE_DXF_FOR_MIDI_NOTES_WITH_ORIGINAL_SCALES___CIRCULAR___JUNKFREE_CLEAN
/// System.Windows.Forms.MessageBox.Show("layers prefers NOTE_trknos_chnlsnos_patchnos_velocity");
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
/////////////////// we will calculate the degrees now /////////////////
/////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.initialize_dxf_for_sbuilder_for_dxf();
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes = 1;
/// THIS IS THE OFFSET FROM THE 0,0,0 TO GET CLARITY ON THE CIRCULAR TRUE SCALE AND LINEAR TRUE SCALES
___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes = 600000;/// TOP LINE OF NOTE TO BOTTOM LINE OF NOTE ARE ALL IN ONE LINE NO DOUBLE LINE NOW FOR TRUE SCALES 600000;
___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations = 1;/// CIRCULAR NOTES TRUE SCALE SO PRESET TO 1
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Sort();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// double large_radius_to_use_for_gridding =
//////already defined
large_radius_to_use_for_gridding =
___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
*
___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
///PRESET TO 1 FOR TRUE SCALES
///+ 3000
;
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
foreach (
double six_digit_radian_in_list
in
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
)
{
// // // double six_digit_radian
// // // = 0;
// // // // in previous loop we have already found this
// // // /// ___temp_total_length___of_the_song
// // // ///
// // // six_digit_radian = Math.Round(six_digit_radian_in_list, 6);
// // // string ___GRIDS_TIMES_TEXT_DATA = "";
// // // ___GRIDS_TIMES_TEXT_DATA
// // // =
// // // (System.Math.Round(___temp_total_length___of_the_song * six_digit_radian, 0)).ToString();
// // // ///////////////////////////////////////////////////////////////////////////////////////////////////
// // // double ___temp_x1_for_grids_end
// // // = large_radius_to_use_for_gridding * System.Math.Cos(six_digit_radian);
// // // double ___temp_y1_for_grids_end
// // // = large_radius_to_use_for_gridding * System.Math.Sin(six_digit_radian);
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_circle_WITH_BLOCK_LEVEL_COLOR
// // // (0, 0, 0,
// // // large_radius_to_use_for_gridding, "LAYER_GRIDS_CIRCLE", "XDATA", 6
// // // );
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // 0, 0, -600000,
// // // ___temp_x1_for_grids_end
// // // ,
// // // ___temp_y1_for_grids_end
// // // ,
// // // -600000,
// // // "LAYER_GRIDS_CIRCLE", "XDATA", 6
// // // );
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_text_ON_TOP_VIEW_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // ___temp_x1_for_grids_end
// // // ,
// // // ___temp_y1_for_grids_end
// // // ,
// // // -600000, 0, 60,
// // // "LAYER_GRIDS_CIRCLE",
// // // ___GRIDS_TIMES_TEXT_DATA
// // // ,
// // // "XDATA", 6
// // // );
}
//////foreach (
//////double six_digit_radian_in_list
//////in
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
//////.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
//////)
///////////////////////// WE WILL LOG ALL THESE INSIDE THE PUBLIC STATIC CLASS AND WE ARE ACCESSING THE DATA FROM THE GLOBAL PUBLIC STATIC CLASS HERE //////
///////////////////////// WE WILL LOG ALL THESE INSIDE THE PUBLIC STATIC CLASS AND WE ARE ACCESSING THE DATA FROM THE GLOBAL PUBLIC STATIC CLASS HERE //////
//////////////////////////// WE WILL LOG ALL THESE INSIDE THE PUBLIC STATIC CLASS AND WE ARE ACCESSING THE DATA FROM THE GLOBAL PUBLIC STATIC CLASS HERE //////
foreach (
// var _log_midi_event
SAANAUDS.Midi
.SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
_log_midi_event
in
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
)
{
/// SAANAUDS.Midi.
try
{
///kkk
z_calulated_for_tracks_channels_frequencies
=
// // // (
// // // _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER
// // // * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// // // * 1000
// // // +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
// // // *
// // // ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// // // * 100
// // // );
0;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// // // PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here
// // // .AppendLine
// // // (
// // // ___counter_for_event
// // // + ",TRUE SCALE CASE from_public_static_list____checking," +
// // // // _log_midi_event.ToString()
// // // _log_midi_event
// // // .RETURN_TO_STRING_REPORT_FOR_CURRENT_SAANS_OBJECT()
// // // );
///////////////////////////////////////// WE HAVE ALREADY LOGGED THE DATA IN PREVIOUS LOOPS///////////////
___counter_for_event++;
/////////////////////////// this is to draw the linear notes data //////////////////////
///notes_top_line FOR LINEAR CASES TRUE SCALE AND FOR TRUE SCALES WE DRAW SINGLE LINES ONLY
///// WE WILL TAKE THE NOTES TOP LINES DATA ONLY FOR THE TRANSMITTABLE DATA
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
////// (
////// _log_midi_event.LINIER_X1,
////// _log_midi_event.LINIER_Y1
////// *
////// ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
////// +
////// ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
////// ,
////// 0,
////// //(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
////// _log_midi_event.LINIER_X2,
////// _log_midi_event.LINIER_Y2
////// * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
////// + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
////// ,
////// // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
////// 0
////// ,
////// "NOTE_"
////// +
////// _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////// + "_" +
////// _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////// + "_" +
////// _log_midi_event
////// .
////// PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////// // not taking the pitch bends in the layers names
////// + "_" +
////// _log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
////// ,
////// "XDATA",
////// _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
////// );
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///notes_bottoms_line
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // _log_midi_event.LINIER_X1,
// // // _log_midi_event.LINIER_Y1
// // // * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // - 6
// // // ,
// // // 0,
// // // //(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // _log_midi_event.LINIER_X2,
// // // _log_midi_event.LINIER_Y2
// // // * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // - 6
// // // ,
// // // // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // 0,
// // // _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
// // // + "_" +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString(),
// // // "XDATA",
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
// // // );
// // // ///notes_left_line
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // _log_midi_event.LINIER_X1,
// // // _log_midi_event.LINIER_Y1 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // ,
// // // 0,
// // // //(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // ////// IF WE DONT PUT THE "NOTE_" IN THE LAYERS NAME THEN IT WILL NOT READ THE DATA FOR THE RECONSTRUCTIONS
// // // _log_midi_event.LINIER_X1,
// // // _log_midi_event.LINIER_Y2
// // // * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // - 6
// // // ,
// // // // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // 0,
// // // _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
// // // + "_" +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString(),
// // // "XDATA",
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
// // // );
// // // ///notes_right_line
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // _log_midi_event.LINIER_X2,
// // // _log_midi_event.LINIER_Y1
// // // * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // ,
// // // 0,
// // // //(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // _log_midi_event.LINIER_X2,
// // // _log_midi_event.LINIER_Y2 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // - 6
// // // ,
// // // // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // 0,
// // // _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
// // // + "_" +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString(),
// // // "XDATA",
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
// // // );
// // // ///////////////// WRITE TEXT ON THE LINEAR DATA
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // _log_midi_event.LINIER_X1,
// // // _log_midi_event.LINIER_Y1 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // - 6
// // // ,
// // // 0
// // // ,
// // // 0.00
// // // ,
// // // /// 1.1
// // // 0.06
// // // ,
// // // "LAYER_LINEAR_DESCRIPTIONS_TEXT"
// // // ,
// // // "START_NOTE_" +
// // // "TRACK= " + _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
// // // + "_CHANNEL= " +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
// // // + "_NOTE= " +
// // // _log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NUMBER_FOUND
// // // + "_" +
// // // _log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
// // // + "_Hz= " +
// // // _log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ.ToString()
// // // + "_NOTE_NAMES= " +
// // // _log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
// // // + "_START_time= " +
// // // (Math.Round((double)_log_midi_event.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND, 3)).ToString()
// // // + "_DURATION= " +
// // // (Math.Round((double)_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_DURATION___IS___NOTE_LENGTH, 1)).ToString()
// // // ,
// // // "XDATA"
// // // ,
// // // ///6 WE NEED COLORS AS CHANNEL NUMBERS
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
// // // );
/// System.Windows.Forms.MessageBox.Show("layers prefers NOTE_trknos_chnlsnos_patchnos_velocity");
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
////////////////// circular radial data ////////////////////////////
////////////////// circular radial data ////////////////////////////
////////////////// circular radial data ////////////////////////////
////////////////// circular radial data ////////////////////////////
////////////////// circular radial data ////////////////////////////
////////////////// circular radial data ////////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.X1
*
___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// it is 1 preset for this loop
,
_log_midi_event.Y1
* ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// it is 1 preset for this loop
,
// // // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000
// // // + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100)
0
,
_log_midi_event.X2
* ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// it is 1 preset for this loop
,
_log_midi_event.Y2
* ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// it is 1 preset for this loop
,
//(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100)
0
,
"NOTE_"+
_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_" +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
+ "_" +
_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
+ "_" +
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
,
"XDATA",
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.X1
*
___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
,
_log_midi_event.Y1
* ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
,
/// (
//////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER
//////*
//////___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
///////// it is 1 now
//////* 1000
//////+ _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
//////* ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
//////* 100
//////)
0
///z is taken as zero
,
0.00
,
0.006
,
"LAYER_DESCRIPTIONS_TEXT"
,
"START_NOTE_" +
"TRACK= " + _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_CHANNEL= " +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
+ "_NOTE= " +
_log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NUMBER_FOUND
+ "_" +
_log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
+ "_Hz= " +
_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ.ToString()
+ "_degrees= " +
(Math.Round(_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_DEGREES_0_TO_360, 3)).ToString()
+ "_time= " +
(Math.Round((double)_log_midi_event.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND, 3)).ToString()
,
"XDATA"
,
6
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // _log_midi_event.X2 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
// // // _log_midi_event.Y2 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
// // // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100)
// // // ,
// // // 0.00
// // // ,
// // // 6
// // // ,
// // // "LAYER_DESCRIPTIONS_TEXT"
// // // ,
// // // "FINAL_NOTE_" +
// // // "TRACK= " + _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
// // // + "_CHANNEL= " +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
// // // + "_NOTE= " +
// // // _log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NUMBER_FOUND
// // // + "_" +
// // // _log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
// // // + "_Hz= " +
// // // _log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ.ToString()
// // // + "_degrees= " +
// // // (Math.Round(_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_OFF_DEGREES_0_TO_360, 3)).ToString()
// // // + "_time= " +
// // // (Math.Round((double)
// // // (
// // // _log_midi_event.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND
// // // +
// // // _log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_DURATION___IS___NOTE_LENGTH
// // // )
// // // , 3)).ToString()
// // // ,
// // // "XDATA"
// // // ,
// // // 6
// // // );
}
catch (Exception ___excp_to_log)
{
PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here
.AppendLine
(
___counter_for_event
+ ",TRUE SCALES CASES saan_checking," +
// _log_midi_event.ToString()
___counter_for_event
+ "\r\n ___excp_to_log RETURN_TO_STRING_REPORT_FOR_CURRENT_SAANS_OBJECT= \r\n" +
___excp_to_log.Message + "\r\n" + ___excp_to_log.StackTrace.ToString()
);
}//catch(Exception ___excp_to_log)
}//
//////foreach (
////// var _log_midi_event
////// in
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// .
////// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// )
////// at the center it writes the files names for identifications
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
0
,
0
,
0
,
0
,
///108
1.08
,
"LAYER_DESCRIPTIONS_TEXT",
System.IO.Path.GetFileNameWithoutExtension(___temp_midi_files_name)
,
"XDATA"
,
6
);
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.finalizer_dxf_for_sbuilder_for_dxf();
/////////////////////////////////////////////////////////// FOR TRUE SCALES //////////////
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
///
System.IO.File.WriteAllText
(
//////___temp_midi_files_name + "_strct_chk_" + strictChecking + "_cnt_" + _midf.events.Count().ToString() + "_saan.log_reads_events.txt"
___temp_midi_files_name + "_cnt_"
+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
+"_dur="+ ___temp_total_length___of_the_song
+ "_saan.log_reads_events_TRUE_SCALES_CIRCULAR_cleans_junks.DXF"
,
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.sbuilder_for_dxf
.ToString()
);
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
////// System.IO.File.WriteAllText
////// (
////////////___temp_midi_files_name + "_strct_chk_" + strictChecking + "_cnt_" + _midf.events.Count().ToString() + "_saan.log_reads_events.txt"
//////___temp_midi_files_name + "_cnt_"
//////+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
//////+ "_saan.log_reads_events___TRUE_SCALES.TXT"
////// ,
////// PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here.ToString()
////// + "\r\n\r\n\r\n the _midf.___public_stringbuilder_for_midievent_adding_snap___data\r\n\r\n\r\n"
////// + _midf.___public_stringbuilder_for_midievent_adding_snap___data.ToString()
////// );
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////this variable has stored the snaps of public static variables of states at every stages while loading data//////
/////////records of rows for every events are stored as snaps while loading and populated the public static variables then loaded to event objects ///
//////this.___public_stringbuilder_for_midievent_adding_snap___data
////// .AppendLine
////// (
////// midiEvent.PUBLIC_NONSTATIC_SIMPLES_TRANSIENT______STRING___CURRENT_STATUS_OF___THIS_WHOLE_DATA
////// );
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////this variable has stored the snaps of public static variables of states at every stages while loading data//////
/////////from the midi file when opening the file streams to the data structure here to get the data handling for reporting///
/// to do to do to do
///https://www.tagorebeyondboundaries.org/index.php?p=downloads
////// System.Diagnostics.Process.Start("notepad.exe", ___temp_midi_files_name
////// + "_cnt_"
////// + _midf
////// .public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// .Count().ToString()
////// + "_saan.log_reads_events.TXT");
////// System.Windows.Forms.MessageBox.Show("report generated at = " +
////// ___temp_midi_files_name + "_cnt_"
////// + _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
////// + "_saan.log_reads_events.TXT"
////// + "\r\n\r\n\r\n" +
////// "and the dxf file is prepared at " +
//////___temp_midi_files_name + "_cnt_"
//////+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
//////+ "_saan.log_reads_events___TRUE_SCALES.DXF"
////// );
#endregion THE_REGION_TO_PREPARE_DXF_FOR_MIDI_NOTES_WITH_ORIGINAL_SCALES___CIRCULAR___JUNKFREE_CLEAN
/////////////////////////////////////////////////////// CIRCULAR RADIAL TRUE SCALED DXF GENERATIONS DONE NEED TO SAVE IN HIGHER VERSIONS////////////
///
#region THE_REGION_TO_PREPARE_DXF_FOR_MIDI_NOTES_WITH_ORIGINAL_SCALES___LINEAR___JUNKFREE_CLEAN
/////////////////// we will calculate the degrees now /////////////////
/////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
////////////////////// WE HAVE CALCULATED EVERY THING IN THE TOSTRING FUNCTIONS INSIDE MIDIFILE CLASS /////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.initialize_dxf_for_sbuilder_for_dxf();
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
/////////////////////////////////////////// UNTIL TOSTRING DONE ON THE EVENTS THESE OBJECTS DONT GET POPULATED TO PUBLIC STATIC LIST //////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes = 1;
/// THIS IS THE OFFSET FROM THE 0,0,0 TO GET CLARITY ON THE CIRCULAR TRUE SCALE AND LINEAR TRUE SCALES
___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes = 600000;/// TOP LINE OF NOTE TO BOTTOM LINE OF NOTE ARE ALL IN ONE LINE NO DOUBLE LINE NOW FOR TRUE SCALES 600000;
___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations = 1;/// CIRCULAR NOTES TRUE SCALE SO PRESET TO 1
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
////// THESE ARE DONE FOR THE TRUE SCALES CIRCLES NOTES RENDERING WITH SEPERATE FILES
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Sort();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// double large_radius_to_use_for_gridding =
//////already defined
large_radius_to_use_for_gridding =
___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
*
___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
///PRESET TO 1 FOR TRUE SCALES
///+ 3000
;
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
foreach (
double six_digit_radian_in_list
in
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
)
{
// // // double six_digit_radian
// // // = 0;
// // // // in previous loop we have already found this
// // // /// ___temp_total_length___of_the_song
// // // ///
// // // six_digit_radian = Math.Round(six_digit_radian_in_list, 6);
// // // string ___GRIDS_TIMES_TEXT_DATA = "";
// // // ___GRIDS_TIMES_TEXT_DATA
// // // =
// // // (System.Math.Round(___temp_total_length___of_the_song * six_digit_radian, 0)).ToString();
// // // ///////////////////////////////////////////////////////////////////////////////////////////////////
// // // double ___temp_x1_for_grids_end
// // // = large_radius_to_use_for_gridding * System.Math.Cos(six_digit_radian);
// // // double ___temp_y1_for_grids_end
// // // = large_radius_to_use_for_gridding * System.Math.Sin(six_digit_radian);
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_circle_WITH_BLOCK_LEVEL_COLOR
// // // (0, 0, 0,
// // // large_radius_to_use_for_gridding, "LAYER_GRIDS_CIRCLE", "XDATA", 6
// // // );
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // 0, 0, -600000,
// // // ___temp_x1_for_grids_end
// // // ,
// // // ___temp_y1_for_grids_end
// // // ,
// // // -600000,
// // // "LAYER_GRIDS_CIRCLE", "XDATA", 6
// // // );
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_text_ON_TOP_VIEW_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // ___temp_x1_for_grids_end
// // // ,
// // // ___temp_y1_for_grids_end
// // // ,
// // // -600000, 0, 60,
// // // "LAYER_GRIDS_CIRCLE",
// // // ___GRIDS_TIMES_TEXT_DATA
// // // ,
// // // "XDATA", 6
// // // );
}
//////foreach (
//////double six_digit_radian_in_list
//////in
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
//////.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
//////)
///////////////////////// WE WILL LOG ALL THESE INSIDE THE PUBLIC STATIC CLASS AND WE ARE ACCESSING THE DATA FROM THE GLOBAL PUBLIC STATIC CLASS HERE //////
///////////////////////// WE WILL LOG ALL THESE INSIDE THE PUBLIC STATIC CLASS AND WE ARE ACCESSING THE DATA FROM THE GLOBAL PUBLIC STATIC CLASS HERE //////
//////////////////////////// WE WILL LOG ALL THESE INSIDE THE PUBLIC STATIC CLASS AND WE ARE ACCESSING THE DATA FROM THE GLOBAL PUBLIC STATIC CLASS HERE //////
foreach (
// var _log_midi_event
SAANAUDS.Midi
.SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
_log_midi_event
in
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
)
{
/// SAANAUDS.Midi.
try
{
///kkk
z_calulated_for_tracks_channels_frequencies
=
// // // (
// // // _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER
// // // * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// // // * 1000
// // // +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
// // // *
// // // ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// // // * 100
// // // );
0;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// // // PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here
// // // .AppendLine
// // // (
// // // ___counter_for_event
// // // + ",TRUE SCALE CASE from_public_static_list____checking," +
// // // // _log_midi_event.ToString()
// // // _log_midi_event
// // // .RETURN_TO_STRING_REPORT_FOR_CURRENT_SAANS_OBJECT()
// // // );
///////////////////////////////////////// WE HAVE ALREADY LOGGED THE DATA IN PREVIOUS LOOPS///////////////
___counter_for_event++;
/////////////////////////// this is to draw the linear notes data //////////////////////
///notes_top_line FOR LINEAR CASES TRUE SCALE AND FOR TRUE SCALES WE DRAW SINGLE LINES ONLY
///// WE WILL TAKE THE NOTES TOP LINES DATA ONLY FOR THE TRANSMITTABLE DATA
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
////// (
////// _log_midi_event.LINIER_X1,
////// _log_midi_event.LINIER_Y1
////// *
////// ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
////// +
////// ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
////// ,
////// 0,
////// //(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
////// _log_midi_event.LINIER_X2,
////// _log_midi_event.LINIER_Y2
////// * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
////// + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
////// ,
////// // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
////// 0
////// ,
////// "NOTE_"
////// +
////// _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////// + "_" +
////// _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////// + "_" +
////// _log_midi_event
////// .
////// PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////// // not taking the pitch bends in the layers names
////// + "_" +
////// _log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
////// ,
////// "XDATA",
////// _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
////// );
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///notes_bottoms_line
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // _log_midi_event.LINIER_X1,
// // // _log_midi_event.LINIER_Y1
// // // * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // - 6
// // // ,
// // // 0,
// // // //(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // _log_midi_event.LINIER_X2,
// // // _log_midi_event.LINIER_Y2
// // // * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // - 6
// // // ,
// // // // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // 0,
// // // _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
// // // + "_" +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString(),
// // // "XDATA",
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
// // // );
// // // ///notes_left_line
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // _log_midi_event.LINIER_X1,
// // // _log_midi_event.LINIER_Y1 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // ,
// // // 0,
// // // //(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // ////// IF WE DONT PUT THE "NOTE_" IN THE LAYERS NAME THEN IT WILL NOT READ THE DATA FOR THE RECONSTRUCTIONS
// // // _log_midi_event.LINIER_X1,
// // // _log_midi_event.LINIER_Y2
// // // * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // - 6
// // // ,
// // // // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // 0,
// // // _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
// // // + "_" +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString(),
// // // "XDATA",
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
// // // );
// // // ///notes_right_line
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // _log_midi_event.LINIER_X2,
// // // _log_midi_event.LINIER_Y1
// // // * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // ,
// // // 0,
// // // //(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // _log_midi_event.LINIER_X2,
// // // _log_midi_event.LINIER_Y2 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // - 6
// // // ,
// // // // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
// // // 0,
// // // _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
// // // + "_" +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString(),
// // // "XDATA",
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
// // // );
// // // ///////////////// WRITE TEXT ON THE LINEAR DATA
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // _log_midi_event.LINIER_X1,
// // // _log_midi_event.LINIER_Y1 * ___double_vertical_scale_for_notes_drawing___linear_maps_rectangles_notes
// // // + ___double_vertical_offsets_for_notes_drawing___linear_maps_rectangles_notes
// // // - 6
// // // ,
// // // 0
// // // ,
// // // 0.00
// // // ,
// // // /// 1.1
// // // 0.06
// // // ,
// // // "LAYER_LINEAR_DESCRIPTIONS_TEXT"
// // // ,
// // // "START_NOTE_" +
// // // "TRACK= " + _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
// // // + "_CHANNEL= " +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
// // // + "_NOTE= " +
// // // _log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NUMBER_FOUND
// // // + "_" +
// // // _log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
// // // + "_Hz= " +
// // // _log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ.ToString()
// // // + "_NOTE_NAMES= " +
// // // _log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
// // // + "_START_time= " +
// // // (Math.Round((double)_log_midi_event.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND, 3)).ToString()
// // // + "_DURATION= " +
// // // (Math.Round((double)_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_DURATION___IS___NOTE_LENGTH, 1)).ToString()
// // // ,
// // // "XDATA"
// // // ,
// // // ///6 WE NEED COLORS AS CHANNEL NUMBERS
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
// // // );
////////////////////////////////////////////////////////////////////////////////////
///////////// above are for linear plotting //////////////////////////////////
/////////////////////////////////////////// below are for circular plotting ////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.LINIER_X1
*
___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// it is 1 preset for this loop
,
_log_midi_event.LINIER_Y1
* ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// it is 1 preset for this loop
,
// // // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000
// // // + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100)
0
,
_log_midi_event.LINIER_X2
* ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// it is 1 preset for this loop
,
_log_midi_event.LINIER_Y2
* ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
// it is 1 preset for this loop
,
//(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100)
0
,
//////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////// + "_" +
//////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
"NOTE_" +
_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_" +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
+ "_" +
_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
+ "_" +
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
,
"XDATA",
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
_log_midi_event.LINIER_X1
*
___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
,
_log_midi_event.LINIER_Y1
* ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
,
/// (
//////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER
//////*
//////___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
///////// it is 1 now
///// 1000
//////+ _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER
///// ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
///// 100
//////)
0
///z is taken as zero
,
90
,
0.0006
,
"LAYER_DESCRIPTIONS_TEXT"
,
"START_NOTE_" +
"TRACK= " + _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_CHANNEL= " +
_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
+ "_NOTE= " +
_log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NUMBER_FOUND
+ "_" +
_log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
+ "_Hz= " +
_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ.ToString()
+ "_degrees= " +
(Math.Round(_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_DEGREES_0_TO_360, 3)).ToString()
+ "_time= " +
(Math.Round((double)_log_midi_event.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND, 3)).ToString()
,
"XDATA"
,
6
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
// // // ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
// // // .draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
// // // (
// // // _log_midi_event.X2 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
// // // _log_midi_event.Y2 * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations,
// // // (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100)
// // // ,
// // // 0.00
// // // ,
// // // 6
// // // ,
// // // "LAYER_DESCRIPTIONS_TEXT"
// // // ,
// // // "FINAL_NOTE_" +
// // // "TRACK= " + _log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
// // // + "_CHANNEL= " +
// // // _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
// // // + "_NOTE= " +
// // // _log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NUMBER_FOUND
// // // + "_" +
// // // _log_midi_event.PUBLIC_STRING_SAAN___EVENT_NOTE_NAME_FOUND
// // // + "_Hz= " +
// // // _log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ.ToString()
// // // + "_degrees= " +
// // // (Math.Round(_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_OFF_DEGREES_0_TO_360, 3)).ToString()
// // // + "_time= " +
// // // (Math.Round((double)
// // // (
// // // _log_midi_event.PUBLIC_LONG_SAAN___ABSOLUTE_MICROSECOND_TIME_FOUND
// // // +
// // // _log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_DURATION___IS___NOTE_LENGTH
// // // )
// // // , 3)).ToString()
// // // ,
// // // "XDATA"
// // // ,
// // // 6
// // // );
}
catch (Exception ___excp_to_log)
{
PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here
.AppendLine
(
___counter_for_event
+ ",TRUE SCALES CASES saan_checking," +
// _log_midi_event.ToString()
___counter_for_event
+ "\r\n ___excp_to_log RETURN_TO_STRING_REPORT_FOR_CURRENT_SAANS_OBJECT= \r\n" +
___excp_to_log.Message + "\r\n" + ___excp_to_log.StackTrace.ToString()
);
}//catch(Exception ___excp_to_log)
}//
//////foreach (
////// var _log_midi_event
////// in
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// .
////// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// )
////// at the center it writes the files names for identifications
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
0
,
0
,
0
,
0
,
///108
1.08
,
"LAYER_DESCRIPTIONS_TEXT",
System.IO.Path.GetFileNameWithoutExtension(___temp_midi_files_name)
,
"XDATA"
,
6
);
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.finalizer_dxf_for_sbuilder_for_dxf();
/////////////////////////////////////////////////////////// FOR TRUE SCALES //////////////
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
///
System.IO.File.WriteAllText
(
//////___temp_midi_files_name + "_strct_chk_" + strictChecking + "_cnt_" + _midf.events.Count().ToString() + "_saan.log_reads_events.txt"
___temp_midi_files_name + "_cnt_"
+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
+ "_dur=" + ___temp_total_length___of_the_song
+ "_saan.log_reads_events_TRUE_SCALES_LINEAR_cleans_junks.DXF"
,
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.sbuilder_for_dxf
.ToString()
);
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
/////////////////////////////////////////////////////// this writes the circular radial notes dxf files true scaled///////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
////// System.IO.File.WriteAllText
////// (
////////////___temp_midi_files_name + "_strct_chk_" + strictChecking + "_cnt_" + _midf.events.Count().ToString() + "_saan.log_reads_events.txt"
//////___temp_midi_files_name + "_cnt_"
//////+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
//////+ "_saan.log_reads_events___TRUE_SCALES.TXT"
////// ,
////// PUBLIC_STATIC_STRINGBUILDER_FOR_SAAN___here.ToString()
////// + "\r\n\r\n\r\n the _midf.___public_stringbuilder_for_midievent_adding_snap___data\r\n\r\n\r\n"
////// + _midf.___public_stringbuilder_for_midievent_adding_snap___data.ToString()
////// );
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////this variable has stored the snaps of public static variables of states at every stages while loading data//////
/////////records of rows for every events are stored as snaps while loading and populated the public static variables then loaded to event objects ///
//////this.___public_stringbuilder_for_midievent_adding_snap___data
////// .AppendLine
////// (
////// midiEvent.PUBLIC_NONSTATIC_SIMPLES_TRANSIENT______STRING___CURRENT_STATUS_OF___THIS_WHOLE_DATA
////// );
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////this variable has stored the snaps of public static variables of states at every stages while loading data//////
/////////from the midi file when opening the file streams to the data structure here to get the data handling for reporting///
/// to do to do to do
///https://www.tagorebeyondboundaries.org/index.php?p=downloads
////// System.Diagnostics.Process.Start("notepad.exe", ___temp_midi_files_name
////// + "_cnt_"
////// + _midf
////// .public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// .Count().ToString()
////// + "_saan.log_reads_events.TXT");
////// System.Windows.Forms.MessageBox.Show("report generated at = " +
////// ___temp_midi_files_name + "_cnt_"
////// + _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
////// + "_saan.log_reads_events.TXT"
////// + "\r\n\r\n\r\n" +
////// "and the dxf file is prepared at " +
//////___temp_midi_files_name + "_cnt_"
//////+ _midf.public_nonstatic_list___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.Count().ToString()
//////+ "_saan.log_reads_events___TRUE_SCALES.DXF"
////// );
///
#endregion THE_REGION_TO_PREPARE_DXF_FOR_MIDI_NOTES_WITH_ORIGINAL_SCALES___LINEAR___JUNKFREE_CLEAN
} // if(___temp_midi_files_name.TrimEnd().TrimStart().Trim().Length>0)
}
catch (Exception _excp_to_read_or_prepare_log_the_midi_files)
{
System.Windows.Forms.MessageBox.Show
("_excp_to_read_or_prepare_log_the_midi_files" + _excp_to_read_or_prepare_log_the_midi_files.Message + "\r\n\r\n\r\n"
+ _excp_to_read_or_prepare_log_the_midi_files.StackTrace.ToString()
);
}//catch(Exception _excp_to_read_or_prepare_log_the_midi_files)
}// private void button_NAUDS_MIDI_TO_ANALYSIS_GEOMETRY_Click(object sender, EventArgs e)
private void buttonTOREADDXFTOGENERATEMIDI_Click(object sender, EventArgs e)
{
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
, System.DateTime.Now.ToString() + "\r\n"
);
///////// we will append the file in other places to log the conditions of calculations
//////this part of the code looks good and now i want to make a system where i will supply the file(text file) where the columns will have the data
//////start_millisecond, durations_in milliseconds, frequency_to_play i will save that data in a text file where the columns are ###### separated columns in a file input_selected_files_names.flutes_melody_data and place the necessary waves samples there. if i put dash in the frequency or 0 in the frequency columns then generate pure silence there
////// these are three columns only and read that text file using the below styles generate a complete mono single channel wav file 8000 samples per second 16 bit depth float(highest possible quality with 16 bit depth float(dont use short data types) save the wav file in input_selected_files_names.flutes_melody_data_mono_8000_16pcms.wav
StringBuilder ___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
= new StringBuilder();
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.Clear();
StringBuilder ___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
= new StringBuilder();
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.Clear();
/////////////////////WE NEED TO RESET THESE NOTES COUNTER WHEN WE ENTER THE BUTTON CLICKS SINCE WE NEED TO DIVIDE THIS COUNTER TO GET THE NOTES FOR INCLUSIONS///
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_CIRCLES_SPLITTING_FOR_441 = 0;
/////////////////////WE NEED TO RESET THESE NOTES COUNTER WHEN WE ENTER THE BUTTON CLICKS SINCE WE NEED TO DIVIDE THIS COUNTER TO GET THE NOTES FOR INCLUSIONS///
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_LONGLINES_SPLITTING_FOR_442 = 0;
/////////////////////WE NEED TO RESET THESE NOTES COUNTER WHEN WE ENTER THE BUTTON CLICKS SINCE WE NEED TO DIVIDE THIS COUNTER TO GET THE NOTES FOR INCLUSIONS///
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443 = 0;
////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
string reportofpopulations___persistences_checking = "";
reportofpopulations___persistences_checking = System.DateTime.Now.ToString() + "\r\n";
foreach (
string ___str in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS___427
)
{
reportofpopulations___persistences_checking += ___str + "\r\n";
}
////// foreach (string ___str in
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS
////// )
string reportofpopulations___441___inside_buttonsclick = System.DateTime.Now.ToString() + "\r\n";
foreach (double ___dblsdivs in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
)
{
reportofpopulations___441___inside_buttonsclick += (___dblsdivs.ToString()) + "\r\n";
}
//////foreach (double ___dblsdivs in
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
//////)
string reportofpopulations___442___inside_buttonsclick = System.DateTime.Now.ToString() + "\r\n";
foreach (double ___dblsdivs in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
)
{
reportofpopulations___442___inside_buttonsclick += (___dblsdivs.ToString()) + "\r\n";
}
//////foreach (double ___dblsdivs in
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
//////)
string reportofpopulations___443___inside_buttonsclick = System.DateTime.Now.ToString() + "\r\n";
foreach (double ___dblsdivs in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
)
{
reportofpopulations___443___inside_buttonsclick += (___dblsdivs.ToString()) + "\r\n";
}
//////foreach (double ___dblsdivs in
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
//////)
System.Windows.Forms.MessageBox.Show
(
"reportofpopulations___persistences_checking= " + reportofpopulations___persistences_checking
+ "\r\n will log the layers for circle splitter chooser at(for the layers of circles or arc splitters)\r\n" +
"reportofpopulations___441___inside_buttonsclick\r\n" + reportofpopulations___441___inside_buttonsclick
+ "\r\nreportofpopulations___442___inside_buttonsclick\r\n" + reportofpopulations___442___inside_buttonsclick
+ "\r\nreportofpopulations___443___inside_buttonsclick\r\n" + reportofpopulations___443___inside_buttonsclick
+ "\r\n" + "logged in seperate files\r\n" +
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "check_button_dxfmids_PUBLIC_STATIC_STRING___LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427.txt"
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "withins_buttonclks_PUBLIC_STATIC_STRING___LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427.txt"
,
reportofpopulations___persistences_checking
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "withins_buttonclks_PUBLIC_STATIC_STRING_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441.txt"
, reportofpopulations___441___inside_buttonsclick
);
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "withins_buttonclks_PUBLIC_STATIC_STRING_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___442.txt"
, reportofpopulations___442___inside_buttonsclick
);
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "withins_buttonclks_PUBLIC_STATIC_STRING_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___443.txt"
, reportofpopulations___443___inside_buttonsclick
);
//////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/07/choosingcorrectinstrumentsfornotes.html
/// THESE ARE NEW VARIABLES
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class
//////public static double PUBLIC_STATIC_DOUBLE___PUSH_AWAY_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___428 = 1.1;//
//////public static double PUBLIC_STATIC_DOUBLE___PULL_TOWARDS_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___429 = 1.6;//
//////public static bool PUBLIC_STATIC_BOOL___DO_YOU_NEED_CENTI_DEGREES_SNAPPING_OF_NOTES___430 = true;//
//////public static double PUBLIC_STATIC_DOUBLE___FIRST_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___431 = 3;//
//////public static double PUBLIC_STATIC_DOUBLE___COMMS_DIFFS_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___432 = 0.1;//
//////public static double PUBLIC_STATIC_DOUBLE___FIRST_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___433 = 0.01;//
//////public static double PUBLIC_STATIC_DOUBLE___COMMN_DIFFS_FOR_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___434 = 0.3;//
//////public static double PUBLIC_STATIC_DOUBLE___LEFT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___435 = 6.1;//
//////public static double PUBLIC_STATIC_DOUBLE___RIGHT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___436 = 6.8;//
//////public static double PUBLIC_STATIC_DOUBLE___LEFT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___437 = 1.1;
//////public static double PUBLIC_STATIC_DOUBLE___RIGHT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___438 = 3.3;//
//////public static double PUBLIC_STATIC_DOUBLE___MIN_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___439 = 61;//
//////public static double PUBLIC_STATIC_DOUBLE___MAX_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___440 = 680;//
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441 = "1,2,3,4,5,6,7,8.9";//
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442 = "1,2,3,4,5,6,7,8.9";//
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443 = "1,2,3,4,5,6,7,8.9";//
/// tones and note are not same thing in the systems of the sounds sequences. The aesthetic parameter is tone and the note are numerical parameters.
/// pitch is the perceptions dependent systems and the frequency is the measurable systems for the analysis things. We We know that experts can distinguish 3 cents to 6 cents of frequency gaps and ordinary ears can only distinguish from 14 cents to 20 cents change in the frequency.
///
string string_for_filesnames_the_pitch_bends_controller_linear_freqs_diffs_or_log_2_with_freq_ratios = "";
string string_for_filesnames_the_velocity_chosen_states_controller_fixed_or_changed_with_sin_theta_or_128_misus_sin_theta_states = "";
double TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER = 0;
double DOUBLE___AUTOCALCULATED_SLOPE_IN_DEGREES_FROM_THE_ARC_SIN_OF___FREQ_DIFF_TO_LINE_SEGMENTS_LENGTH = 0;
//////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
//////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
//////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
double ___double_MINIMUM_LENGTH_AFTER_WHICH_TO_BREAK_THE_LINE_SEGMENT = 30;// 60000;
double ___double_FIRST_TERMS_LENGTH_OF_LINE_SEGMENT_AFTER_BREAKING_OF_THE_LONG_LINE_SEGMENT = 30;
double ___double_COMMON_DIFFERENCE_LENGTH_OF_THE_LINE_sEGMENT_FOR_BREAKING_THE_LONG_LINE_SEGMENT = 20;
int ______INT_NUMBER_OF_SMALLER_LINE_SEGMENTS_FORMED_FROM_THIS_LONG_LINE_SEGMENT = 0;
double ___double_TEMP_CURRENT_OFFSET_DISTANCE_TOWARDS_LEFT_ALONG_START_TO_END_OF_LONG_LINE_SEGMENT = 0;
double ___double_TEMP_CURRENT_OFFSET_DISTANCE_TOWARDS_RIGHT_ALONG_START_TO_END_OF_LONG_LINE_SEGMENT = 0;
double ___double_TEMP_CURRENT_CENTER_X_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
double ___double_TEMP_CURRENT_CENTER_Y_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
double ___double_TEMP_CURRENT_DEGREES_START_FIRST_TERMS_CALCULATED_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
double ___double_TEMP_CURRENT_DEGREES_COMMON_DIFFERENCE_CALCULATED_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
double ___double_TEMP_CURRENT_RADIANS_START_FIRST_TERMS_CALCULATED_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
double ___double_TEMP_CURRENT_RADIANS_COMMON_DIFFERENCE_CALCULATED_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___x1 = 0;
double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___y1 = 0;
double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___z1 = 0;
double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___x2 = 0;
double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___y2 = 0;
double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___z2 = 0;
//////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
//////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
//////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
///col 0 TRACK NUMBER
///COL 1 COUNT OF NOTES ASSIGNED TO THIS TRACK
///COL 2 TOTAL MIDITIKS ASSIGNED TO THIS TRACK
///COL 3 TOTAL MILLISECONDS ASSIGNED TO THIS TRACK
///COL 3+1 PERCENTAGE OF TOTAL NOTES ASSIGNED TO THIS TRACK
///COL 3+2 PERCENTAGE OF MILLISECONDS ASSIGNED TO THIS TRACK
///COL 6 TOTAL NOTE VELOCITY ASSIGNED TO THIS TRACK
///COL 6+1 CUMULATIVE PERCENTAGE OF NOTE VELOCITY UPTO NOW ASSIGNED TO THIS TRACK
///COL 8 THE PATCH NUMBER ASSIGNED TO THIS TRACK
///COL 9 TOTAL_CENTI_DEGREES_USED_FOR_THIS_TRACK
///COL 10 PERCENTAGE_CENTI_DEGREES_USED_FOR_THIS_TRACK
///COL 11 TO COL 11+128 ARE THE NOTES ASSIGNED THAT IS 11+ NOTE_NUMBER_ASSIGNED_FOR THIS_TRACK INSTRUMENTS FOR THE TRACK ARE FIXED
///COL 140 TO COL 140 + 128 = 268 ARE THE TOTAL CENTI DEGREES ASSIGNED FOR THE NOTES ASSIGNED THAT IS 11+NOTE_NUMBER_ASSIGNED_FOR THIS_TRACK INSTRUMENTS FOR THE TRACK ARE FIXED
///COL 269 PERCENTAGE OF MIDITIK USED IN THIS TRACK
double[,] TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
= new double[100, 300];
Array.Clear
(
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
,
0
, TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS.Length
);
string string_for_filesnames_the_tagging_of_instruments_counts_for_each_note___for_columns_in___SAANOWNCSVLINIERSCALEDDXFFORMIDI = "";
int int_counter_for_drums_instruments_patch_enters = 0;
int int_counter_for_strings_instruments_patch_enters = 0;
int int_counter_for_wind_instruments_patch_enters = 0;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//we will take 0 to 127 as the index as in the midi systems which helps us direct assignments of the counts and the durations total
//that will save time to store the data there directly to 30 different columns and we dont have to bother the calculations while storing the data
// and we can easily generate the notes assigning reports and the patches assigning reports to the array directly
/// TO DEFINE THE COLUMNS PURPOSE FOR THIS ARRAY
/// TO DEFINE THE COLUMNS PURPOSE FOR THIS ARRAY
/// TO DEFINE THE COLUMNS PURPOSE FOR THIS ARRAY
///START INDEX IS 0
/////COL 0 IS PRE FILLED WITH THE NOTE NUMBER INTEGER ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
//COL 1 INSTRUMENT NUMBERS SUMS FOR THE NOTES ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
//COL 2 NOTE_COUNT ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
//COL 3 TOTAL DURATIONS MILLISECONDS ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
//COL 3+ SUM OF VELOCITIES ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
//COL 3++ MIN OF VELOCITIES ASSIGNED ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
//COL 6 MAX OF VELOCITIES ASSIGNED ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
//COL 6+ TOTAL BEATS INTRUMENTS ASSIGNED TO THIS NOTES NUMBER ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
//COL 8 TOTAL STRINGS INTRUMENTS ASSIGNED TO THIS NOTES NUMBER ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
//COL 9 TOTAL WIND INTRUMENTS ASSIGNED TO THIS NOTES NUMBER ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
// i have taken 300 instead of 128 rows to avoid the natures of overflows and we have plans to store several other informations for the notes allocations
double[,] ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers = new double[300, 30];
/// TO DEFINE THE COLUMNS PURPOSE FOR THIS ARRAY
/// TO DEFINE THE COLUMNS PURPOSE FOR THIS ARRAY
/// TO DEFINE THE COLUMNS PURPOSE FOR THIS ARRAY
///
///
///
/// /////COL 0 IS PRE FILLED WITH THE INSTRUMENTS PATCH NUMBER INTEGER ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_instruments_numbers
/// /////COL 1 THE COUNT FOR THE ASSIGNED INSTRUMENTS ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_instruments_numbers
/// /////COL 2 THE DURATION IN MILLIS SUM FOR THE ASSIGNED INSTRUMENTS ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_instruments_numbers
/// /////COL 3 SUM OF VELOCITIES FOR THE ASSIGNED INSTRUMENTS ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_instruments_numbers
/// /////COL 3+ MIN OF VELOCITIES FOR THE ASSIGNED INSTRUMENTS ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_instruments_numbers
/// /////COL 3++ MAX OF VELOCITIES FOR THE ASSIGNED INSTRUMENTS ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_instruments_numbers
double[,] ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_instruments_numbers = new double[300, 30];
/// TO DEFINE THE COLUMNS PURPOSE FOR THIS ARRAY 6000 MILLIS RECORDS ARE KEPT AND IF THERE IS ANY HIGHER DATA THEN IT IS TAKEN IN 6000 TH ROW
/// TO DEFINE THE COLUMNS PURPOSE FOR THIS ARRAY 6000 MILLIS RECORDS ARE KEPT AND IF THERE IS ANY HIGHER DATA THEN IT IS TAKEN IN 6000 TH ROW
/// TO DEFINE THE COLUMNS PURPOSE FOR THIS ARRAY 6000 MILLIS RECORDS ARE KEPT AND IF THERE IS ANY HIGHER DATA THEN IT IS TAKEN IN 6000 TH ROW
///COLUMN 0 is with DEGREES * 100 DATA PREFILLED 0 TO 36000 ALREADY DATA FILLED
///COLUMN 1 is with NOTES ALLOCATED AND FILLED COUNTER ALREADY DATA FILLED
///COLUMN 2 is with NOTES START GLITCH COUNTER ALLOCATED AND FILLED COUNTER ALREADY DATA FILLED
///COLUMN 3 is with NOTES FINALIZED GLITCH COUNTER ALLOCATED AND FILLED COUNTER ALREADY DATA FILLED
double[,] ___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS = new double[36800, 30];
Array.Clear
(
___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
,
0
,
___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers.Length
);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Array.Clear
(
___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_instruments_numbers
,
0
,
___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_instruments_numbers.Length
);
Array.Clear
(
___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS
,
0
,
___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS.Length
);
try
{
/// this is important for the data filling for the milliseconds recording with the counters and the data necessary for the other analysis regarding the pivot tables like reports
/// which grabs the geometry constructions and geometry data retrievals for the ear grammars constructions purposes.
for (int rrrclearerfordurations = 0; rrrclearerfordurations < ___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS.GetLength(0); rrrclearerfordurations++)
{
___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS
[rrrclearerfordurations, 0]
= rrrclearerfordurations;
}// for(int rrrclearerfordurations=0;rrrclearerfordurations< ___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS.GetLength(0);rrrclearerfordurations++)
}
catch (Exception _excp_to_fill_the_milliseconds_records)
{
}//catch(Exception _excp_to_fill_the_milliseconds_records)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THESE TWO ARRAYS HAVE SAME ROW COUNTS FOR THE NOTES NUMBERS AND FOR THE PATCH NUMBERS
for (int rrr_filler = 0; rrr_filler < ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers.GetLength(0); rrr_filler++)
{
/// first columns are filled with the data as 0 to 127 which are common for all these
___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_notes_numbers
[rrr_filler, 0] = rrr_filler;
///////////////////////////////////////////////////////////////////////////////////////////////////////////
/// first columns are filled with the data as 0 to 127 which are common for all these
___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_instruments_numbers
[rrr_filler, 0] = rrr_filler;
}// for(int rrr_filler=0; rrr_filler< ___temp_inside_buttons_click___double_array_2d_to_store_counts_total_durations_for_notes_numbers.GetLength(0); rrr_filler++)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
load_necessary_array_for_notes_frequency_mapping___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER();
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
load___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_PROGRAMS_PATCHES_INSTRUMENTS_NAMES_MAPPER();
///references public static string[,] PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER = null;
///references public static string[,] PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_PROGRAMS_PATCHES_INSTRUMENTS_NAMES_MAPPER = null;
///////////////////////////////////////////////////////////////////////////////////
///
/// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
StringBuilder ___stringbuilder_to_track_instruments_assigned_pitch_assigned_notes_assigned_durations_assigned_pitch_bent_assigned_track_assigned_channel_assigned
= new StringBuilder();
///////////////////////////////////////////////////////
try
{
//////Row Patch No.Instrument Name Min Duration(ms) Max Duration(ms) Min Velocity Max Velocity Suggested Note Range
//////0 0 Acoustic Grand Piano 100 5000 30 127 21 - 108
//////1 1 Bright Acoustic Piano 100 4500 35 127 21 - 108
//////2 2 Electric Grand Piano 100 4500 35 127 21 - 108
//////3 3 Honky - tonk Piano 100 4000 40 127 21 - 108
//////4 4 Electric Piano 1(Rhodes Piano) 150 4000 40 127 33 - 96
//////5 5 Electric Piano 2(Chorused Piano) 150 4000 40 127 33 - 96
//////6 6 Harpsichord 100 3500 45 127 36 - 96
//////7 7 Clavinet 100 3500 50 127 33 - 96
//////8 8 Celesta 100 3000 55 127 60 - 96
//////9 9 Glockenspiel 100 3000 60 127 60 - 108
//////10 10 Music Box 100 3000 60 127 48 - 96
//////11 11 Vibraphone 100 4500 35 127 48 - 84
//////12 12 Marimba 100 4000 45 127 45 - 84
//////13 13 Xylophone 100 3000 50 127 60 - 96
//////14 14 Tubular Bells 200 5000 40 127 60 - 84
//////15 15 Dulcimer(Santur) 200 4000 45 127 36 - 84
//////16 16 Drawbar Organ(Hammond) 100 8000 20 127 33 - 96
//////17 17 Percussive Organ 100 8000 20 127 33 - 96
//////18 18 Rock Organ 100 8000 25 127 33 - 96
//////19 19 Church Organ 100 9000 20 127 21 - 96
//////20 20 Reed Organ 100 7000 20 127 33 - 96
//////21 21 Accordion(French) 150 7000 30 127 36 - 84
//////22 22 Harmonica 100 5000 25 127 48 - 72
//////23 23 Tango Accordion(Bandoneon) 150 6000 30 127 36 - 84
//////24 24 Acoustic Guitar(nylon) 150 5000 30 127 40 - 84
//////25 25 Acoustic Guitar(steel) 150 5000 35 127 40 - 84
//////26 26 Electric Guitar(jazz) 150 4000 35 127 40 - 84
//////27 27 Electric Guitar(clean) 150 4000 40 127 40 - 84
//////28 28 Electric Guitar(muted) 100 4000 45 127 40 - 84
//////29 29 Overdriven Guitar 100 3500 50 127 40 - 84
//////30 30 Distortion Guitar 100 3500 55 127 40 - 84
//////31 31 Guitar harmonics 100 3000 60 127 52 - 84
//////32 32 Acoustic Bass 100 5000 30 127 28 - 60
//////33 33 Electric Bass(fingered) 100 5000 35 127 28 - 60
//////34 34 Electric Bass(picked) 100 5000 35 127 28 - 60
//////35 35 Fretless Bass 100 5000 35 127 28 - 60
//////36 36 Slap Bass 1 100 4000 40 127 28 - 60
//////37 37 Slap Bass 2 100 4000 40 127 28 - 60
//////38 38 Synth Bass 1 100 5000 35 127 28 - 72
//////39 39 Synth Bass 2 100 5000 35 127 28 - 72
//////40 40 Violin 100 6000 20 127 55 - 103
//////41 41 Viola 100 6000 20 127 48 - 84
//////42 42 Cello 100 7000 20 127 36 - 72
//////43 43 Contrabass 100 7000 25 127 28 - 60
//////44 44 Tremolo Strings 100 5000 25 127 40 - 84
//////45 45 Pizzicato Strings 50 3000 50 127 40 - 84
//////46 46 Orchestral Harp 100 5000 35 127 24 - 84
//////47 47 Timpani 50 4000 50 127 36 - 60
//////48 48 String Ensemble 1(strings) 100 6000 20 127 40 - 84
//////49 49 String Ensemble 2(slow strings) 100 6000 20 127 40 - 84
//////50 50 SynthStrings 1 100 7000 20 127 40 - 84
//////51 51 SynthStrings 2 100 7000 20 127 40 - 84
//////52 52 Choir Aahs 100 8000 20 127 48 - 84
//////53 53 Voice Oohs 100 8000 20 127 48 - 84
//////54 54 Synth Voice 100 8000 20 127 48 - 84
//////55 55 Orchestra Hit 100 3000 45 127 36 - 84
//////56 56 Trumpet 100 4000 30 127 55 - 84
//////57 57 Trombone 100 4000 35 127 40 - 72
//////58 58 Tuba 100 5000 35 127 28 - 55
//////59 59 Muted Trumpet 100 4000 35 127 55 - 84
//////60 60 French Horn 100 5000 35 127 48 - 72
//////61 61 Brass Section 100 5000 35 127 40 - 72
//////62 62 SynthBrass 1 100 5000 35 127 40 - 72
//////63 63 SynthBrass 2 100 5000 35 127 40 - 72
//////64 64 Soprano Sax 100 4000 35 127 55 - 84
//////65 65 Alto Sax 100 4000 35 127 48 - 84
//////66 66 Tenor Sax 100 4000 35 127 40 - 84
//////67 67 Baritone Sax 100 4000 35 127 28 - 72
//////68 68 Oboe 100 5000 30 127 55 - 84
//////69 69 English Horn 100 5000 30 127 48 - 84
//////70 70 Bassoon 100 5000 30 127 33 - 60
//////71 71 Clarinet 100 5000 30 127 40 - 84
//////72 72 Piccolo 100 3000 40 127 72 - 108
//////73 73 Flute 100 3000 40 127 60 - 96
//////74 74 Recorder 100 3000 40 127 60 - 84
//////75 75 Pan Flute 100 4000 35 127 55 - 96
//////76 76 Blown Bottle 100 4000 35 127 48 - 72
//////77 77 Shakuhachi 100 4000 35 127 55 - 84
//////78 78 Whistle 100 3000 40 127 60 - 96
//////79 79 Ocarina 100 3000 40 127 48 - 72
//////80 80 Lead 1(square) 100 5000 30 127 40 - 84
//////81 81 Lead 2(sawtooth) 100 5000 30 127 40 - 84
//////82 82 Lead 3(calliope lead) 100 4000 35 127 40 - 84
//////83 83 Lead 4(chiffer lead) 100 4000 35 127 40 - 84
//////84 84 Lead 5(charang) 100 4000 35 127 40 - 84
//////85 85 Lead 6(voice lead) 100 5000 30 127 40 - 84
//////86 86 Lead 7(fifths lead) 100 4000 35 127 40 - 84
//////87 87 Lead 8(bass + lead) 100 5000 30 127 28 - 72
//////88 88 Pad 1(new age) 100 8000 20 127 40 - 84
//////89 89 Pad 2(warm) 100 8000 20 127 40 - 84
//////90 90 Pad 3(polysynth) 100 8000 20 127 40 - 84
//////91 91 Pad 4(choir) 100 8000 20 127 40 - 84
//////92 92 Pad 5(bowed) 100 8000 20 127 40 - 84
//////93 93 Pad 6(metallic) 100 8000 20 127 40 - 84
//////94 94 Pad 7(halo) 100 8000 20 127 40 - 84
//////95 95 Pad 8(sweep) 100 8000 20 127 40 - 84
//////96 96 FX 1(rain) 100 8000 20 127 40 - 84
//////97 97 FX 2(soundtrack) 100 8000 20 127 40 - 84
//////98 98 FX 3(crystal) 100 8000 20 127 40 - 84
//////99 99 FX 4(atmosphere) 100 8000 20 127 40 - 84
//////100 100 FX 5(brightness) 100 8000 20 127 40 - 84
//////101 101 FX 6(goblins) 100 8000 20 127 40 - 84
//////102 102 FX 7(echoes) 100 8000 20 127 40 - 84
//////103 103 FX 8(sci - fi) 100 8000 20 127 40 - 84
//////104 104 Sitar 100 3000 45 127 52 - 72
//////105 105 Banjo 100 3000 45 127 48 - 72
//////106 106 Shamisen 100 3000 45 127 40 - 64
//////107 107 Koto 100 3000 45 127 48 - 72
//////108 108 Kalimba 100 3000 45 127 48 - 84
//////109 109 Bag pipe 100 4000 35 127 55 - 72
//////110 110 Fiddle 100 4000 35 127 48 - 84
//////111 111 Shanai 100 4000 35 127 55 - 84
//////112 112 Tinkle Bell 100 2000 50 127 72 - 108
//////113 113 Agogo 100 3000 45 127 60 - 84
//////114 114 Steel Drums 100 4000 35 127 55 - 84
//////115 115 Woodblock 100 2000 50 127 72 - 96
//////116 116 Taiko Drum 100 2000 50 127 40 - 60
//////117 117 Melodic Tom 100 3000 45 127 40 - 72
//////118 118 Synth Drum 100 2000 50 127 40 - 72
//////119 119 Reverse Cymbal 100 1000 60 127 72 - 84
//////120 120 Guitar Fret Noise 100 2000 50 127 28 - 52
//////121 121 Breath Noise 100 2000 50 127 28 - 52
//////122 122 Seashore 100 2000 50 127 28 - 52
//////123 123 Bird Tweet 100 2000 50 127 28 - 52
//////124 124 Telephone Ring 100 2000 50 127 28 - 52
//////125 125 Helicopter 100 2000 50 127 28 - 52
//////126 126 Applause 100 2000 50 127 28 - 52
//////127 127 Gunshot 100 2000 50 127 28 - 52
___stringbuilder_to_track_instruments_assigned_pitch_assigned_notes_assigned_durations_assigned_pitch_bent_assigned_track_assigned_channel_assigned
.Clear();
//////track,channel,patch_number,patch_name,pitch_bend_number,note_frequency_linier_y_start_data,note_frequency_linier_y_final_data,note_name,note_start_time_from_linier_x_data,note_final_time_from_linier_x_data,note_duration,note_velocity
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,2880,3360,480,88
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,3360,3600,240,79
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,3600,4080,480,89
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,4080,4320,240,76
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,4320,4800,480,86
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,4800,5040,240,79
//////3,3,0,___,0,41.2,41.2,NON_PERCUSSION_E2,5040,5268,228,79
//////3,3,0,___,0,32.7,32.7,NON_PERCUSSION_C2,5280,5520,240,79
//////3,3,0,___,0,34.65,34.65,NON_PERCUSSION_C#2,5520,5760,240,77
//////3,3,0,___,0,36.71,36.71,NON_PERCUSSION_D2,5760,6480,720,89
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,6480,7200,720,78
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,7200,7920,720,78
//////3,3,0,___,0,61.74,61.74,NON_PERCUSSION_B2,7920,8640,720,79
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,8640,9120,480,86
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,9120,9360,240,79
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,9360,9840,480,86
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,9840,10080,240,77
if (checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked)
{
string_for_filesnames_the_pitch_bends_controller_linear_freqs_diffs_or_log_2_with_freq_ratios
=
"log_" +
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___DEFAULT_2__LOGARITHMS_BASE_FOR_PITCH_BENDS_409
.ToString().TrimEnd().TrimStart().Trim()
+
"_st_"
+
checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked.ToString()
;
}
else
{
string_for_filesnames_the_pitch_bends_controller_linear_freqs_diffs_or_log_2_with_freq_ratios
= "linear_chosen_chkstate_"
+ checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked.ToString();
}//end of else if(checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked)
System.Windows.Forms.MessageBox.Show
(
"checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked state = " + checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked
+ "\r\n\r\n\r\n" +
"READS DXF FILES AND WRITES 14 COLUMNS MIN ( col 0 to col 10+3 ) \r\n\r\n\r\n (ATLEAST THESE COLS ) \r\nWITHOTHER OPTIONAL DATA FOR ANALYSIS" +
"\r\nWRITES THE FILES ALSO (FIRST SCAN, SECOND SCAN ... CNTDS ALL STAGES SEPERATE FILES) FOR FUTURE CORRECTIONS AND ANALYSIS (.SAANOWNCSVLINIERSCALEDDXFFORMIDI files) SAANOWNCSVLINIERSCALEDDXFFORMIDI FILES " +
"\r\n\r\n\r\n GENERATES SMART NOTES DATA LIST WITH ANALYSIS TO RECONSTRUCT NOTES ALSO WHICHEVER REQUIRED STAGEWISE" +
"\r\n\r\n\r\n NEIGHBOURHOOD NOTES WITH DURATIONS ARE ALSO CALCULATED AND PLACES THE ANALYSIS CALCULATIONS ALSO" +
"\r\n col 0 track(number categorizing like dxf layers)" +
"\r\n col 1 ,channel(9 for percussions only 0 to 15 only)" +
"\r\n col 2 ,patch_number(0 to 127)" +
"\r\n col 3 ,patch_name" +
"\r\n col 3+ ,pitch_bend_number(0 to 8190(now 8192) to 16368 original note has no change frequency at 8190(now 8192))" +
"\r\n col 3++ ,note_frequency_linier_y_start_data_OR_START_RADIUS(0,0,0 has zero frequency)" +
"\r\n col 6 ,note_frequency_linier_y_final_data_OR_FINAL_RADIUS(0,0,0 has zero frequency)" +
"\r\n col 7 ,note_name_FOUND_FROM_START_SIDES_FREQUENCY" +
"\r\n col 8 ,note_start_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE" +
"\r\n col 9 ,note_final_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE" +
"\r\n col 10 ,note_duration_IN_MIDITICKS_CALCULATED_FROM_THE_DEGREES_AND_TOTAL_DURATIONS_MICROSECONDS" +
"\r\n col 10+1 ,note_velocity_TRICKY_CALCULATION_OR_FROM_LAYERS" +
"\r\n col 10+2 ,grabbed_lyrics_text_FROM_LAYERS_NAMES_DATA" +
"\r\n col 10+3 ,grabbed_lyrics_Absolute_times_IN_LAYERS_DATA_FOR_TRACK_ZERO_WITH_MIDITICKS" +
"\r\n col 10+3+1 ,OPTIONAL_MILLISECONDS_DATA_FOR_START" +
"\r\n col 10+3+2 ,OPTIONAL_MILLISECONDS_DATA_FOR_FINAL" +
"\r\n col 10+3+3 ,OPTIONAL_MILLISECONDS_DATA_FOR_DURATIONS(normally 100 to 4300)" +
"\r\n col 10+3+3 +1 ,OPTIONAL_NOTE_OR_OTHER_CONTROLLER_LIKE_PITCH_BEND(DECIDER_TO_PROCESS)" +
"\r\n col 10+3+3 +2 ,OPTIONAL_THE_RAW_MIDI_EVENT_COUNTER_PRESERVED_FOR_SORTING_WHILE_EXPORTING" +
"\r\n col 10+3+3 +3 ,OPTIONAL_SIN_THETA_ADJUSTED_SLOPE_FOR_VELOCITY_CONTROLLER" +
"\r\n col 10+3+3 +3+1 ,DEGREE_DIFF_TO_TRACK_BLANK_REGIONS" +
"\r\n col 21 ,DEGREE_START" +
"\r\n col 22 ,DEGREE_FINAL"
);
// THIS IS THE HEADER FOR THE DATA
___stringbuilder_to_track_instruments_assigned_pitch_assigned_notes_assigned_durations_assigned_pitch_bent_assigned_track_assigned_channel_assigned
.AppendLine
(
"TRACK,CHANNEL,PATCH_NUMBER,PATCH_NAME,PITCH_BEND_NUMBER,NOTE_FREQUENCY_START,NOTE_FREQUENCY_FINAL,NOTE_NUMBER_FROM_START_SIDE_FREQUENCY,NOTES_START_TIMES(TKS),NOTES_FINAL_TIMES(TKS),NOTES_DURATIONS(TKS),NOTES_VELOCITIES,LYRS_STRINGS,LYR_START_TIMES_TKS,OPTIONAL_MILLIS_START,OPTIONAL_MILLIS_FINAL,OPTIONAL_DURATIONS_MILLIS,OPTIONAL_COMMAND_SEGGREGATOR_NOT_OR_PITCH_BEND_OR_CONTROLER,PRESERVED_RAW_EVENT_COUNTER_FOR_SORTING,ARC_SIN_THETA_DEGREES_FREQUENCY_DIFF_TO_LENGTH_OF_SEGMENT,DEGREE_DIFF_TO_TRACK_BLANK_REGIONS,DEGREE_START,DEGREE_FINAL"
);
/////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("layers prefers NOTE_trknos_chnlsnos_patchnos_velocity");
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
//D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.
PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
();
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////SAANAUDSFRESH.MidiUtils.MidiConverter
////// _saan_checking_MidiFile_Converter = new SAANAUDSFRESH.MidiUtils.MidiConverter();
//////SAANAUDSFRESH.MidiUtils.MainForm _to_chk_main_form = new SAANAUDSFRESH.MidiUtils.MainForm();
//////_to_chk_main_form.Show();
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
=
new List<double>();
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
////// System.Windows.Forms.MessageBox.Show("THE FIRST RUN DOES DIFFERENT THING(EXPERIMENTING)\r\n THE SECOND RUN GENERATES THE MIDI WITH THE PITCH BETS ON THE NOTES FROM STARTING");
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "DXF Files (.dxf)|*.dxf|All Files (*.*)|*.*";
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
////// string ___temp_dxf_file_to_read_for_mids
////// =
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////// ////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
////// ///////////////yes running
////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile(___temp_dxf_file_to_read_for_mids, false);
////// /// / yes running
//////// _midf.Describe();
////// System.IO.File.WriteAllText(___temp_dxf_file_to_read_for_mids+ "TO ADD THIS _midf.Describe().TXT", _midf.ToString());
////// ////////////////////////////////////// yessssssssssssssssssssss worked
////// System.Windows.Forms.MessageBox.Show(___temp_dxf_file_to_read_for_mids);
}
catch (Exception _excp_to_read_or_prepare_log_the_midi_files)
{
System.Windows.Forms.MessageBox.Show
("_excp_to_read_or_prepare_log_the_midi_files" + _excp_to_read_or_prepare_log_the_midi_files.Message + "\r\n\r\n\r\n"
+ _excp_to_read_or_prepare_log_the_midi_files.StackTrace.ToString()
);
}//catch(Exception _excp_to_read_or_prepare_log_the_midi_files)
////////////////////////////////////////////////////////////////////////////////////////////
///doing with the new kind of converting
///
try
{
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.
PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
();
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.
PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
();
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
// TO DO TO PLAY MIDI NOTES
//////https://stackoverflow.com/questions/30349066/cannot-play-a-note-with-naudio-midi
///
////////////using System;
////////////using System.Collections.Generic;
////////////using System.ComponentModel;
////////////using System.Data;
////////////using System.Drawing;
////////////using System.Linq;
////////////using System.Text;
////////////using System.Windows.Forms;
////////////using NAudio.Midi;
////////////using System.Threading;
////////////namespace SoundVision10
//////////// {
//////////// public partial class Form1 : Form
//////////// {
//////////// public Form1()
//////////// {
//////////// InitializeComponent();
//////////// }
//////////// private void Form1_Load(object sender, EventArgs e)
//////////// {
//////////// }
//////////// private void button1_Click(object sender, EventArgs e)
//////////// {
//////////// //Thread.Sleep inside GUI is just for example
//////////// using (MidiOut midiOut = new MidiOut(0))
//////////// {
//////////// midiOut.Volume = 65535;
//////////// midiOut.Send(MidiMessage.StartNote(60, 127, 0).RawData);
//////////// MessageBox.Show("Sent");
//////////// Thread.Sleep(1000);
//////////// midiOut.Send(MidiMessage.StopNote(60, 0, 0).RawData);
//////////// Thread.Sleep(1000);
//////////// }
//////////// }
//////////// }
//////////// }
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
RECALCULATE_THE_MIDI_DATA_MICROSECONDS_NOTES_ETC();
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///
////////////////////////////////////////////////////////////////////////// WE ARE NOW READING CIRCLES AND THE ARCS ALSO FOR NOTES //////
////////////////////////////////////////////////////////////////////////// WE ARE NOW READING CIRCLES AND THE ARCS ALSO FOR NOTES //////
////////////////////////////////////////////////////////////////////////// WE ARE NOW READING CIRCLES AND THE ARCS ALSO FOR NOTES //////
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.initialize_dxf_for_sbuilder_for_dxf();
public_list_of_6_digit_double_precission_unique_slopes_found
= new List<double>();
public_list_of_6_digit_double_precission_unique_slopes_found
.Clear();
public_list_of_long_type_note_durations
= new List<long>();
public_list_of_long_type_note_durations
.Clear();
StringBuilder ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
= new StringBuilder();
___sbuilder_within_the_button_to_log_details_for_mid_event_notes.Clear();
//////http://www.synthfont.com/SFSPEC21.PDF
//////http://www.synthfont.com/SFSPEC21.PDF
/////////http://www.synthfont.com/SFSPEC21.PDF
//D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
//////https://markheath.net/category/naudio
///
////// ///TESTED IT IS WORKING AND PLAYING ALSO
////// string[] strs = {
////// "" +
////// "D:\\dekhte_haiisko___guitar.mid"
////// , "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
//////SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "DXF Files (.dxf)|*.dxf|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
///////////////yes running
///////////////
//////////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID", false);
///////////////yes running
/////////////// _midf.Describe()
///////////////
////////////System.IO.File.WriteAllText("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID.txt", _midf.ToString());
////////////////////////////////////// yessssssssssssssssssssss worked
///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
/// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
/// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
string[] strs = {
"" +
/// "D:\\dekhte_haiisko___guitar.mid"
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_HARDCODED_NOTES.MID"
, "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
System.Windows.Forms.MessageBox.Show(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
//https://github.com/GTMIDSDXFSAAGIRID/saandxf/discussions/420
// Create a Graphics object from the PictureBox
Graphics g = pictureBox_TO_TRY_SAANDXF.CreateGraphics();// // e.Graphics;
// Load the DXF file
SAANSDXF.DxfDocument SAAN_dxf = SAANSDXF.DxfDocument.Load(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
//////// Create a new DXF document
//////DxfDocument dxf_fresh = new DxfDocument();
//////// Create lines
//////SAANSDXF.Entities.Line line1 = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
//////SAANSDXF.Entities.Line line2 = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
/// DxfDocument dxf = new DxfDocument();
//////// Create lines
//////SAANSDXF.Entities.Line line1chk = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
//////SAANSDXF.Entities.Line line2chk = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
//////// Add lines to the model space
//////dxf.AddEntityToDocument(line1chk, true);
//////dxf.AddEntityToDocument(line2chk, true);
//////// Save the DXF file
//////dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_fresh_output.dxf");
////// // Add lines to the model space
////// dxf_fresh.AddEntity(line1);
////// dxf_fresh.AddEntity(line2);
//////// dxf_fresh
////// // Save the DXF file
////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_output.dxf");
double freq_found = -6;
int note_number_to_take_integer = -6;
string note_name_to_take_string = "";
//ok tested if ((freq_found >= 7.6892) && (freq_found <= 8.7466){ note_number_to_take_integer = 1; note_name_to_take_string = "NONE"; }
////// SAANSDXF.Entities.Line ___new_line = new SAANSDXF.Entities.Line();
////// ___new_line.StartPoint = new SAANSDXF.Vector3(-600000,-600000,0.003);
////// ___new_line.EndPoint = new SAANSDXF.Vector3(+600000, +600000, 0.003);
////// ___new_line.Color = new AciColor(0.3, 0.6, 0.8);
////// SAAN_dxf.AddEntityToDocument(___new_line, true);
///////// SAAN_dxf.AddEntityToDocument
////// SAAN_dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_SAANSDXF.DXF");
///DxfDocument doc = DxfDocument.Load("sample.dxf");
SAAN_dxf.Entities.ActiveLayout = SAANSDXF.Objects.Layout.ModelSpaceName;// works after it is saved with higher version with autocad
///
SAANSDXF.Collections.EntityCollection entities
= SAAN_dxf.Blocks[Block.DefaultModelSpaceName].Entities;
/////////////////////////////////////////////////////////////////////////////////////
///
/// SAANSDXF.Collections.EntityCollection entities___for_longer_line_segments = null;
///
SAANSDXF.Collections.EntityCollection entities___for_longer_line_segments
= new SAANSDXF.Collections.EntityCollection();
entities___for_longer_line_segments.Clear();
//////////////////////////////////////////// these are newly added for the process of the circles to line segments constructions //////
//////////////////////////////////////////// these are newly added for the process of the circles to line segments constructions //////
//////////////////////////////////////////// these are newly added for the process of the circles to line segments constructions //////
SAANSDXF.Collections.EntityCollection entities___for_circles_converts_to_line_segments = new SAANSDXF.Collections.EntityCollection();
entities___for_circles_converts_to_line_segments.Clear();
//////////////////////////////////////////// these are newly added for the process of the circles to line segments constructions //////
//////////////////////////////////////////// these are newly added for the process of the circles to line segments constructions //////
//////////////////////////////////////////// these are newly added for the process of the circles to line segments constructions //////
// i had to do this declared here otherwise it is not carrying the access to the other parts of the codes
List<SAAN_LONG_LineSegment> ___temp_list_of___CIRCLES_TO______SAAN_LONG_LineSegment = new List<SAAN_LONG_LineSegment>();
___temp_list_of___CIRCLES_TO______SAAN_LONG_LineSegment.Clear();
SAANSDXF.Collections.EntityCollection only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments
= new SAANSDXF.Collections.EntityCollection();
/// this is necessary i think to get the fresh populations fo only filtered data for the divisibility checkings
only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments
.Clear();
///new styles adopted to add smaller line segments
///
///
///
///
///
///
///
///
/// I THINK THIS IS DISTURBING SINCE THIS LIEN POPULATES ALL THE LINE SEGMENTS SO THE DIVISORS EFFECTS ARE NOT COMING THERE
/// I THINK THIS IS DISTURBING SINCE THIS LIEN POPULATES ALL THE LINE SEGMENTS SO THE DIVISORS EFFECTS ARE NOT COMING THERE
/// I THINK THIS IS DISTURBING SINCE THIS LIEN POPULATES ALL THE LINE SEGMENTS SO THE DIVISORS EFFECTS ARE NOT COMING THERE
//////only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments
////// .AddRange(
//////entities.OfType<SAANSDXF.Entities.Line>()
//////);
///= new SAANSDXF.Collections.EntityCollection().Of;
// = SAAN_dxf.Blocks[Block.DefaultModelSpaceName].Entities;
/////////////////////////////////////////////////////////////////////////////////////
int entitycount = -1;
entitycount = entities.Count;
int entitytimer = 0;
entitytimer = entitycount / 10000;
double vertsx = 0;
double vertsy = 0;
double vertsz = 0;
double vertex = 0;
double vertey = 0;
double vertez = 0;
int vertextcount = 0;
double vertx1 = 0;
double verty1 = 0;
double vertx2 = 0;
double verty2 = 0;
int roundamount = 16;
double totallength = 0;
double arclength = 0;
double linelength = 0;
double length_of_lines_2d_flattened = 0;
double startAngle;
double endAngle;
double bulge;
double theta;
double c;
double r;
double gamma;
double phi;
double holdangle;
Vector2 p1;
Vector2 p2;
Vector2 center;
double ___saan_x_for_angle_calculation = 0;
double ___saan_y_for_angle_calculation = 0;
/// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
long total_microsecond_of_whole_song
=
this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
;
double ___total_notes_found_in_the_dxf = 0;
___total_notes_found_in_the_dxf =
entities.Count;
//////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show
("Duration = " + total_microsecond_of_whole_song
+ "\r\n\r\n\r\ntotal notes= " + ___total_notes_found_in_the_dxf
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////
////////// SAAN IS ADDING THIS FOR SPECIAL PURPOSE NEEDS FOR THE PITCH CIRCLES
foreach (SAANSDXF.Entities.Circle CIRC_SAANS_ADDS in entities.OfType<SAANSDXF.Entities.Circle>())
{
double _circ_center_x = CIRC_SAANS_ADDS.Center.X;
double _circ_center_y = CIRC_SAANS_ADDS.Center.Y;
double _circ_center_z = CIRC_SAANS_ADDS.Center.Z;
double _circ_radius = CIRC_SAANS_ADDS.Radius;
string _circ_layer = CIRC_SAANS_ADDS.Layer.Name.ToString().TrimEnd().TrimStart().Trim();
double ___circ_circumference = 2 * (Math.PI) * _circ_radius;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
bool __temp_to_decide_if_we_can_include_this_circle_for_notes_generations = false;
foreach
(string _str_layersnames in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS___427
)
{
// System.Windows.Forms.MessageBox.Show("_str_layersnames = " + _str_layersnames + "\r\n_circ_layer = " + _circ_layer);
if (_str_layersnames == _circ_layer)
{
__temp_to_decide_if_we_can_include_this_circle_for_notes_generations = true;
goto gotohere_when_layers_validations_done;
}//if(_str_layersnames== _circ_layer)
}
////// foreach
////// (string _str_layersnames in
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS___427
//////)
gotohere_when_layers_validations_done:;
// System.Windows.Forms.MessageBox.Show("__temp_to_decide_if_we_can_include_this_circle_for_notes_generations = " + __temp_to_decide_if_we_can_include_this_circle_for_notes_generations);
////////////////////////////////////////////////////////////////// TOOOOO IMPORTANT PART OF THE CODES //////////////////////////////////////////
///
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_CIRCLES_SPLITTING_FOR_441
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_CIRCLES_SPLITTING_FOR_441
///
////420 MIN_CENTER_X_OFFSET_CIRCS_SPLITTER_NOTES___420 30
////421 MIN_CENTER_Y_OFFSET_CIRCS_SPLITTER_NOTES___421 30
////422 MIN_CENTER_Z_OFFSET_CIRCS_SPLITTER_NOTES___422 0
////423 MIN_RADIUS_TO_DO_CIRCS_SPLITTER_NOTES___423 100
////424 REF_ROTOR_CENTER_X_CIRCS_SPLITTER_NOTES___424 30
////425 REF_ROTOR_CENTER_Y_CIRCS_SPLITTER_NOTES___425 30
////426 TO_CHECK_NEAREST_OVERLAPS_OF_NOTES_CHORDS_IN_CIRC_SPLITTING___426 YES
////427 LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427 3,NOTE,CIRC
////428 PUSH_AWAY_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___428 1.1
////429 PULL_TOWARDS_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___429 1.6
////430 DO_YOU_NEED_CENTI_DEGREES_SNAPPING_OF_NOTES___430 YES
////431 FIRST_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___431 3
////432 COMMS_DIFFS_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___432 0.1
////433 FIRST_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___433 0.01
////434 COMMN_DIFFS_FOR_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___434 0.3
////435 LEFT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___435 6.1
////436 RIGHT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___436 6.8
////437 LEFT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___437 1.1
////438 RIGHT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___438 3.3
////439 MIN_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___439 68
////440 MAX_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___440 680
////441 DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441 1,2,3,4,5,6,7,8.9
////442 DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442 1,2,3,4,5,6,7,8.9
////443 DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443 1,2,3,4,5,6,7,8.9
//////public static double PUBLIC_STATIC_DOUBLE___MIN_CENTER_X_OFFSET_CIRCS_SPLITTER_NOTES___420 = 30;//
//////public static double PUBLIC_STATIC_DOUBLE___MIN_CENTER_Y_OFFSET_CIRCS_SPLITTER_NOTES___421 = 30;//
//////public static double PUBLIC_STATIC_DOUBLE___MIN_CENTER_Z_OFFSET_CIRCS_SPLITTER_NOTES___422 = 0;//
//////public static double PUBLIC_STATIC_DOUBLE___MIN_RADIUS_TO_DO_CIRCS_SPLITTER_NOTES___423 = 100;//
//////public static double PUBLIC_STATIC_DOUBLE___REF_ROTOR_CENTER_X_CIRCS_SPLITTER_NOTES___424 = 30;//
//////public static double PUBLIC_STATIC_DOUBLE___REF_ROTOR_CENTER_Y_CIRCS_SPLITTER_NOTES___425 = 30;//
//////public static bool PUBLIC_STATIC_BOOL___TO_CHECK_NEAREST_OVERLAPS_OF_NOTES_CHORDS_IN_CIRC_SPLITTING___426 = true;//"YES";//
//////public static string PUBLIC_STATIC_STRING___LAYERS_NAMES_SUBSTRING_TO_INCLUDE_IN_CIRC_SPLITTING___427 = "3,NOTE,CIRC";//
///////// <summary>
///////// this is necessary to handle everytime to create and update while handling the circles inclusions for the notes segments generations
///////// </summary>
//////public static List<string> PUBLIC_STATIC_LIST_OF_STRINGS_OF_VALID_LAYER_NAMES_TO_TAKE_FOR_CIRCLES_SPLITTINGS___427 = new List<string>();
////////https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/09/flutemodelingvibrato.html
///////// Specially calculating the velocity for the ///flutes and the Shanai
///////// https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/09/abstractmelodyandeargrammars.html
/////////
/////////
//////public static double PUBLIC_STATIC_DOUBLE___PUSH_AWAY_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___428 = 1.1;//
//////public static double PUBLIC_STATIC_DOUBLE___PULL_TOWARDS_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___429 = 1.6;//
//////public static bool PUBLIC_STATIC_BOOL___DO_YOU_NEED_CENTI_DEGREES_SNAPPING_OF_NOTES___430 = true;// // THESE ARE FOR THE PROPER SNAPPING OF THE DATA TO THE SYNCHRONIZED TMES ON THE CENTIDEGREES AND THE MILLISECONDS SNAP POINTS
//////public static double PUBLIC_STATIC_DOUBLE___FIRST_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___431 = 3;//
//////public static double PUBLIC_STATIC_DOUBLE___COMMS_DIFFS_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___432 = 0.1;//
//////public static double PUBLIC_STATIC_DOUBLE___FIRST_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___433 = 0.01;//
//////public static double PUBLIC_STATIC_DOUBLE___COMMN_DIFFS_FOR_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___434 = 0.3;//
//////public static double PUBLIC_STATIC_DOUBLE___LEFT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___435 = 6.1;//
//////public static double PUBLIC_STATIC_DOUBLE___RIGHT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___436 = 6.8;//
//////public static double PUBLIC_STATIC_DOUBLE___LEFT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___437 = 1.1;
//////public static double PUBLIC_STATIC_DOUBLE___RIGHT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___438 = 3.3;//
//////public static double PUBLIC_STATIC_DOUBLE___MIN_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___439 = 61;//
//////public static double PUBLIC_STATIC_DOUBLE___MAX_DISTANCE_FROM_THE_000_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___440 = 680;//
///////// <summary>
///////// /////////////////////////////////////////////////// THESE ARE THE SPECIAL KINDS OF VARIABLES FOR THE FILTERING OF THE NOTES THAT WE WILL TAKE INTO THE FINAL SEQUENCES
///////// </summary>
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441 = "11,13,23";//1,
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442 = "71,61,33";//1,
//////public static string PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443 = "1,111,41,51,97";//1,
if (__temp_to_decide_if_we_can_include_this_circle_for_notes_generations)
{
/////////////////////////////// I HAVE NOW ADDED THIS WITH THE FILTERS FOR THE CIRCLES TO SPLIT THE NOTES SEGMENTS GENERATIONS //////
///
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_CIRCLES_SPLITTING_FOR_441
//////List<SAAN_LONG_LineSegment> ___temp_list_of___CIRCLES_TO______SAAN_LONG_LineSegment
////// =
////// SAAN_LONG_LineSegment
////// .POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_CIRCLES_TO_LineSegment
////// (
////// ___circ_circumference
////// ,
////// _circ_center_x
////// ,
////// _circ_center_y
////// ,
////// _circ_center_z
////// ,
////// 3
////// ,
////// 3
////// ,
////// 3
////// ,
////// _circ_radius
////// ,
////// 30
////// ,
////// 30
////// ,
////// 30
////// ,
////// "chklayersubststofind"
////// ,
////// _circ_layer
////// ,
////// 3
////// ,
////// 6
////// ,
////// 1
////// ,
////// 0.01
////// ,
////// 0.001
////// ,
////// 0.01
////// ,
////// 1.1
////// ,
////// 1.1
////// ,
////// 1.1
////// ,
////// 1.1
////// );
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
// List<SAAN_LONG_LineSegment>
//////___temp_list_of___CIRCLES_TO______SAAN_LONG_LineSegment
////// =
///
//////___temp_list_of___CIRCLES_TO______SAAN_LONG_LineSegment
//////.AddRange(
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\nnow its before calling POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_CIRCLES_TO_LineSegment +_circ_radius = " + _circ_radius
//////"center_x = " + center_x
//////+ " radius_found = " + radius_found
//////+ " radius_min_to_filter_for_small_lines_generations = " + radius_min_to_filter_for_small_lines_generations
//////+ " CIRCUMFERENCE_CALCULATED = " + +CIRCUMFERENCE_CALCULATED
);
List<SAAN_LONG_LineSegment>
___temp____local___list_of___CIRCLES_TO______SAAN_LONG_LineSegment
=
SAAN_LONG_LineSegment
.POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_CIRCLES_TO_LineSegment
(
___circ_circumference
,
_circ_center_x
,
_circ_center_y
,
_circ_center_z
,
//3
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MIN_CENTER_X_OFFSET_CIRCS_SPLITTER_NOTES___420
,
//3
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MIN_CENTER_Y_OFFSET_CIRCS_SPLITTER_NOTES___421
,
//3
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MIN_CENTER_Z_OFFSET_CIRCS_SPLITTER_NOTES___422
,
_circ_radius
,
//30
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MIN_RADIUS_TO_DO_CIRCS_SPLITTER_NOTES___423
,
//30
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___REF_ROTOR_CENTER_X_CIRCS_SPLITTER_NOTES___424
,
// 30
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___REF_ROTOR_CENTER_Y_CIRCS_SPLITTER_NOTES___425
,
"chklayersubststofind"
//taken through the filters before coming here
,
_circ_layer
,
// 3
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___PUSH_AWAY_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___428
,
//6
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___PULL_TOWARDS_FROM_CENTER_SCALE_FACTOR_CIRC_SPLITTING___429
,
//1
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___FIRST_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___431
,
// 0.01
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COMMS_DIFFS_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___432
,
//0.001
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___FIRST_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___433
,
// 0.01
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COMMN_DIFFS_FOR_ROTATIONS_ANGLE_DEGREES_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___434
,
// 1.1
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___LEFT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___435
,
//1.1
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___RIGHT_SIDES_DIST_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___436
,
//1.1
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___LEFT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___437
,
//1.1
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___RIGHT_SIDES_DEGREES_OFFSETS_MULTIPLIER_FOR_LINE_SEGMENT_LENGTH_CIRC_SPLITTING___438
);
//)
;//i have added this returned data to add ranges
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\n after completions of POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_CIRCLES_TO_LineSegment +_circ_radius = " + _circ_radius
//////"center_x = " + center_x
//////+ " radius_found = " + radius_found
//////+ " radius_min_to_filter_for_small_lines_generations = " + radius_min_to_filter_for_small_lines_generations
//////+ " CIRCUMFERENCE_CALCULATED = " + +CIRCUMFERENCE_CALCULATED
);
//////if (___temp_list_of___CIRCLES_TO______SAAN_LONG_LineSegment.Count() > 0)
//////{
////// entities___for_circles_converts_to_line_segments
//////}// if(___temp_list_of___CIRCLES_TO______SAAN_LONG_LineSegment.Count()>0)
// System.Windows.Forms.MessageBox.Show(" ___temp____local___list_of___CIRCLES_TO______SAAN_LONG_LineSegment.Count = " + ___temp____local___list_of___CIRCLES_TO______SAAN_LONG_LineSegment.Count);
if (___temp____local___list_of___CIRCLES_TO______SAAN_LONG_LineSegment.Count > 0)
{
foreach (SAAN_LONG_LineSegment _smalllinepiece in ___temp____local___list_of___CIRCLES_TO______SAAN_LONG_LineSegment)
{
SAANSDXF.Vector3 _startpoint = new SAANSDXF.Vector3(_smalllinepiece.X1, _smalllinepiece.Y1, _smalllinepiece.Z1);
SAANSDXF.Vector3 _finalpoint = new SAANSDXF.Vector3(_smalllinepiece.X2, _smalllinepiece.Y2, _smalllinepiece.Z2);
/////////i will add new line entities for the longer lines
/// this works but the loop on revised entities disturbing
SAANSDXF.Entities.Line ___new_lines = new SAANSDXF.Entities.Line(_startpoint, _finalpoint);
/// this works but the loop on revised entities disturbing entities.Add(___new_lines);
///
entities___for_circles_converts_to_line_segments.Add(___new_lines);
//////vertsx = line.StartPoint.X;
//////vertsy = line.StartPoint.Y;
//////vertsz = line.StartPoint.Z;
//////vertex = line.EndPoint.X;
//////vertey = line.EndPoint.Y;
//////vertez = line.EndPoint.Z;
//CAUTION CAUTION CAUTION we dont have to do this here
//CAUTION CAUTION CAUTION we have already done this while populating the circles splitting
//CAUTION CAUTION CAUTION and populating ___temp____local___list_of___CIRCLES_TO______SAAN_LONG_LineSegment
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_CIRCLES_SPLITTING_FOR_441
////// ++;
//CAUTION CAUTION CAUTION we dont have to do this here
//CAUTION CAUTION CAUTION we have already done this while populating the circles splitting
//CAUTION CAUTION CAUTION and populating ___temp____local___list_of___CIRCLES_TO______SAAN_LONG_LineSegment
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
////// ++
////// ;
/// ///i have to handle this seperately
///tested this is working fine System.Windows.Forms.MessageBox.Show(_smalllinepiece.ToString() + " " + entities.Count.ToString());
///
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"CIRCLE_FOUND\r\n"
+ " center_x= " + _circ_center_x
+ " center_y= " + _circ_center_y
+ " center_z= " + _circ_center_z
+ " _circ_radius= " + _circ_radius
+ " _circ_layer= " + _circ_layer
+ " _circ_split_ines_counter = " +
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_CIRCLES_SPLITTING_FOR_441
+ " _overall_ines_counter = " +
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
+ " ___new_lines.X1 =" + ___new_lines.StartPoint.X
+ " ___new_lines.Y1 =" + ___new_lines.StartPoint.Y
+ " ___new_lines.X2 =" + ___new_lines.EndPoint.X
+ " ___new_lines.Y2 =" + ___new_lines.EndPoint.Y
);
///////////////we are doing these before we enter into real note preperations loops
only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments
.Add(___new_lines);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////TESTED OK ///////////////////////////////////////////////////////////////////////////////////////////
//////ExcelFormulaParser_GT_PARSER.SAANAUDS
//////.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
//////.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
//////(
////// ___new_lines.StartPoint.X, ___new_lines.StartPoint.Y, ___new_lines.StartPoint.Z, ___new_lines.EndPoint.X, ___new_lines.EndPoint.Y, ___new_lines.EndPoint.Z
////// , "NEW_NOTE_" + TrackNumber + "_" + ChannelNumber + "_" + note_number_found_from_the_nearest_frequency_Hertz + "_" + NoteVelocity
////// , "CHECKING_NOTES", 100 + TrackNumber
////// );
/////////////////////////TESTED OK ///////////////////////////////////////////////////////////////////////////////////////////
}//foreach(SAAN_LONG_LineSegment _smalllinepiece in ___temp_list_of___SAAN_LONG_LineSegment)
}//if(___temp_list_of___SAAN_LONG_LineSegment.Count>0)
}
catch (Exception ___excptosplitcircstolines)
{
System.Windows.Forms.MessageBox.Show("___excptosplitcircstolines = " + ___excptosplitcircstolines.Message + " " + ___excptosplitcircstolines.StackTrace.ToString());
}//catch(Exception ___excptosplitcircstolines)
}// if(__temp_to_decide_if_we_can_include_this_circle_for_notes_generations)
}// foreach (SAANSDXF.Entities.Circle CIRC_SAANS_ADDS in entities.OfType<SAANSDXF.Entities.Circle>())
////////// SAAN IS ADDING THIS FOR SPECIAL PURPOSE NEEDS FOR THE PITCH CIRCLES
foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
{
r = myarc.Radius;
startAngle = myarc.StartAngle;
endAngle = myarc.EndAngle;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_ARC_DETAIL_"
+ " radius = " + r
+ " startAngle = " + startAngle
+ " endAngle = " + endAngle
+ " holdangle = " + holdangle
+ " arclength = " + arclength
);
}// foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
//////////////////////////////////////////////////////////
//////string fileName_for_midi_from_the_dxf = "";
//////fileName_for_midi_from_the_dxf
////// =
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + ".mid";
/// public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
/// {
//////const int MidiFileType = 0;
//////const int BeatsPerMinute = 60;
//////const int TicksPerQuarterNote = 120;
//////const int TrackNumber = 0;
//////const int ChannelNumber = 1;
///
////// cant we take TicksPerQuarterNote as multiple of 60 ?
//////ChatGPT
//////In MIDI, TicksPerQuarterNote is often used as a multiple of 60 because it provides a convenient resolution for expressing tempo changes.However, it's not a strict requirement, and you can technically set TicksPerQuarterNote to any integer value based on your specific needs.
//////Using a multiple of 60, like 480(60 multiplied by 8), is common because it allows for easy tempo calculations in beats per minute(BPM) and makes it simple to represent note durations.It's a practical choice because it aligns well with common musical timing values.
//////That said, you can choose other values for TicksPerQuarterNote if your MIDI application requires different resolutions or if you have specific reasons to do so.Just be aware that using a value that's not a multiple of 60 may make it less intuitive when working with tempos in BPM and traditional musical notation.
//////public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
//////public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
//////public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
//////public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
//////public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
//////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
//////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
//////public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
//////public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
//////public double public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480 = 0;
int MidiFileType = 1;// 0;//////saan changes this to 1
int BeatsPerMinute =
(int)this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE;
//60;
int TicksPerQuarterNote =
(int)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480;
//120;////// too important /// multiple of 480
int TrackNumber = 0;
int ChannelNumber = 1;
int pitchBendRange___we_can_readjust_notewises = 12;
//////public PatchParser()
////// {
////// this.patchMap.Add("nylon", 25);
////// this.patchMap.Add("steel", 26);
////// this.patchMap.Add("jazz", 27);
////// this.patchMap.Add("clean", 28);
////// this.patchMap.Add("muted", 29);
////// this.patchMap.Add("distortion", 31);
////// this.patchMap.Add("bass", 33);
////// this.patchMap.Add("violin", 41);
////// this.patchMap.Add("viola", 42);
////// this.patchMap.Add("cello", 43);
////// this.patchMap.Add("sitar", 105);
////// this.patchMap.Add("banjo", 106);
////// this.patchMap.Add("fiddle", 111);
////// }//public PatchParser()
int Patch_number = 26;
long absoluteTime___start___midstksunits = 0;
long absoluteTime___final___midstksunits = 0;
//////long absoluteTime___start___millis_units = 0;
//////long absoluteTime___final___millis_units = 0;
///
double absoluteTime___start___millis_units = 0;
double absoluteTime___final___millis_units = 0;
int ___necessary_pitch_bend_to_put_at_start_side_of_note = 0;
// var collection
SAANAUDS.Midi.MidiEventCollection collection
= new
SAANAUDS.Midi.MidiEventCollection
(MidiFileType, TicksPerQuarterNote);
////////////////////////////////////////////////////////////////////////////////////////////
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " MID_COLLECTION_STARTS_FRESH collection = " + collection.ToString()
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " MidiFileType = " + MidiFileType
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " TicksPerQuarterNote = " + TicksPerQuarterNote
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " BeatsPerMinute = " + BeatsPerMinute
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " TrackNumber = " + TrackNumber
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " ChannelNumber = " + ChannelNumber
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " absoluteTime___start___midstksunits = " + absoluteTime___start___midstksunits
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " absoluteTime___final___midstksunits = " + absoluteTime___start___midstksunits
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// absoluteTime
////// ),
////// TrackNumber
////// );
//////++absoluteTime;
//////collection.AddEvent
//////(
////// new SAANAUDS.Midi.TempoEvent
//////(
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// absoluteTime
////// ),
////// TrackNumber
////// );
///
////// will do after some times
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"Note Stream LYRICS",
SAANAUDS.Midi.MetaEventType.TextEvent
,
// absoluteTime
(long)((absoluteTime___start___midstksunits + absoluteTime___final___midstksunits) / 6)
),
//TrackNumber
TrackNumber
);
/////////////////////////////// interesting styles ////////////////////
///
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"SanjoyNathGeometrifyingTrigonometry(C)"
,
SAANAUDS.Midi.MetaEventType.Copyright
,
// absoluteTime
(long)(absoluteTime___start___midstksunits)
),
//TrackNumber
// 0
TrackNumber
);
////////////////////////////////////////////////////////////////////////////////
////// will do after some times
// ++absoluteTime;
collection.AddEvent
(
new SAANAUDS.Midi.TempoEvent
(
Local_CalculateMicrosecondsPerQuaterNote
(
BeatsPerMinute
),
/// absoluteTime
absoluteTime___start___midstksunits
),
// TrackNumber
TrackNumber
);
////////////////////////////////////////////////
///
//////////////static void Main(string[] args)
////////////// {
////////////// string inputMidiFile = "input.mid"; // Replace with your MIDI file
////////////// string outputMidiFile = "output.mid"; // Replace with the output file
////////////// string copyrightText = "Copyright © 2023 Your Company"; // Your copyright notice
////////////// // Load the MIDI file
////////////// MidiFile midiFile = new MidiFile(inputMidiFile, false);
////////////// // Create a meta-event to set the copyright text
////////////// MetaEvent copyrightEvent = new MetaEvent(MetaType.Copyright, copyrightText);
////////////// // Locate the track where you want to insert the copyright event
////////////// int targetTrackIndex = 0; // Adjust as needed
////////////// if (targetTrackIndex < midiFile.Tracks.Count)
////////////// {
////////////// MidiTrack targetTrack = midiFile.Tracks[targetTrackIndex];
////////////// // Add the copyright event to the track
////////////// targetTrack.AddEvent(copyrightEvent);
////////////// }
////////////// else
////////////// {
////////////// Console.WriteLine("Invalid track index.");
////////////// return;
////////////// }
////////////// // Save the modified MIDI file
////////////// midiFile.Save(outputMidiFile);
////////////// Console.WriteLine("Copyright event added successfully.");
////////////// }
////////////// saan thinks it will work
////// ////////////// // Create a meta-event to set the copyright text
////// SAANAUDS.Midi.TextEvent copyrightEvent___SAAN
////// =
////// new
////// SAANAUDS.Midi.TextEvent
////// (
////// SAANAUDS.Midi.MetaEventType.Copyright
////// ,
////// 50
////// ,
////// absoluteTime___start___midstksunits
////// )
////// ;
////// //"SanjoyNathGeometrifyingTrigonometry(C)"
////// copyrightEvent___SAAN
////// .absoluteTime
////// collection.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
//////(
//////,
////// /// absoluteTime
////// ),
////// // TrackNumber
////// TrackNumber
////// );
////////////////////////////////////////////////
///
///WE ARE NOT LOGGING THESE THINGS SEPERATE ROWS IN THE TABULAR CSV FORMATS BECAUSE WE ARE REPEATING THESE DATA FOR EVERY OTHER EVENTS IN COLUMNS
///WE ARE NOT LOGGING THESE THINGS SEPERATE ROWS IN THE TABULAR CSV FORMATS BECAUSE WE ARE REPEATING THESE DATA FOR EVERY OTHER EVENTS IN COLUMNS
///WE ARE NOT LOGGING THESE THINGS SEPERATE ROWS IN THE TABULAR CSV FORMATS BECAUSE WE ARE REPEATING THESE DATA FOR EVERY OTHER EVENTS IN COLUMNS
var patchParser = new SAANAUDS_CHECKING.PatchParser();
int patchNumber = patchParser.Patch("steel");//////////////////// i will configure this from layers
string current_patch_name_found_from_patch_number = "";
string current_note_name_found_from_note_number = "";
// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/////////////////// first entries so absolute time is zero
collection.AddEvent(
new
SAANAUDS.Midi.PatchChangeEvent
(
0
,
ChannelNumber
, patchNumber
)
, TrackNumber
);
//////const int NoteVelocity = 100;
////// const int NoteDuration___with__midtks_units =
////// ///3 * TicksPerQuarterNote / 4;
////// const long SpaceBetweenNotes
////// = TicksPerQuarterNote;
////////////////////////////////////////////////////////////////////
current_patch_name_found_from_patch_number = "";
current_patch_name_found_from_patch_number
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING___RETURN_PATCH_NAME_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___PATCH_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_PROGRAMS_PATCHES_INSTRUMENTS_NAMES_MAPPER
(patchNumber);
////////////////////////////////////////////////////////////////////
int NoteVelocity = 122;// 100;/// i will change this customized to get the right feels instrument wise and also for the specific notes frequencies
double total_of_all_notes_velocities = 0;
if (this.checkBox_AUTO_SIN_THETA_ADJUST_VELOCITY_WITH_LENGTHS_SLOPES.Checked)
{
////// NoteVelocity at the time of notes patch calculations we will readjust
}
else
{
NoteVelocity = 122;
}//end of else of if(this.checkBox_AUTO_SIN_THETA_ADJUST_VELOCITY_WITH_LENGTHS_SLOPES.Checked)
long NoteDuration___with__midtks_units = 0;
/// long NoteDuration___with__millsecs_units = 0;
///
double NoteDuration___with__millsecs_units = 0;
double slope_in_linear_time___with__midtks_units = 0; ////// 16 different slopes in linear time calculated
double slope_in_linear_time___with__millsecs_units = 0; ////// 16 different slopes in linear time calculated
///3 * TicksPerQuarterNote / 4;
long SpaceBetweenNotes
= 0;// TicksPerQuarterNote;
////// absoluteTime += SpaceBetweenNotes;
////// foreach (var note in allNotes)
////// {
//////collection.AddEvent(new NoteOnEvent(absoluteTime, ChannelNumber, note.MidiValue, NoteVelocity, NoteDuration___with__midtks_units), TrackNumber);
//////collection.AddEvent(new NoteEvent(absoluteTime + NoteDuration___with__midtks_units, ChannelNumber, MidiCommandCode.NoteOff, note.MidiValue, 0), TrackNumber);
////// absoluteTime += SpaceBetweenNotes;
////// }//foreach (var note in allNotes)
////// collection.PrepareForExport();
////// /// MidiFile.Export(fileName, collection);
////// ///
////// SAANAUDS.Midi.MidiFile.Export(fileName_for_midi_from_the_dxf, collection);
///////// }//public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
double line_Segments_counter = 0;
double raw_real_dxf___line_Segments_count = 0;
double ___degrees_1 = 0;
double ___degrees_2 = 0;
double ___new_variable_degrees_differences_to_log = 0;
double ___dist_1 = 0;
double ___dist_2 = 0;
double freq_found_from_the_nearest = 0;
double freq_found_from_the_furthest = 0;
int ___delta___pitch___slabs_finder = 3;
double ___distance_of_current_line_segment_min_out_of_two = 0;
double ___distance_of_current_line_segment_max_out_of_two = 0;
int note_number_found_from_the_nearest_frequency_Hertz = 0;
int note_number_found_from_the_furthest_frequency_Hertz = 0;
string note_name_found_from_the_nearest_frequency_Hertz = "";
string note_name_found_from_the_furthest_frequency_Hertz = "";
////////////////////////// these are used to put the pitch bents
double start_side_of_line_segments_angle_with_x_axis = 0;
double final_side_of_line_segments_angle_with_x_axis = 0;
////////////////////////// these are used to put the pitch bents
double start_side_of_line_segments_frequency = 0;
double final_side_of_line_segments_frequency = 0;
double delta_pitch = 0;
double notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
double notes_finals___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
/// double ___miditks_unit___to___millisecond__units_converter = 1;
/// long ___miditks_unit___to___millisecond__units_converter = 1;
/// long divisions are like integer divisions so returns zero
double ___miditks_unit___to___millisecond__units_converter = 1;
double ___milliseconds_unit___to___miditks__units_converter = 1;
/// this.ref System.Windows.Forms.ProgressBar _to_update_progressbar
raw_real_dxf___line_Segments_count = entities.OfType<SAANSDXF.Entities.Line>().Count();
this.progressBarFOR_ANIMATIONS_SAVING.Maximum = (int)raw_real_dxf___line_Segments_count;
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
///WE HAVE TO DO THIS AGAIN SINCE NOW WE WILL INCREASE THE LIST WITH POPULATING THE LONGER LINE SEGMENTS TO SHORTER LINE SEGMENTS WITH TOLERANCES ___double_MINIMUM_LENGTH_AFTER_WHICH_TO_BREAK_THE_LINE_SEGMENT///
int ___total_original___line_segments_found_in_dxf = 0;
___total_original___line_segments_found_in_dxf = entities.OfType<SAANSDXF.Entities.Line>().Count();
int raw_line_Segments_counter = 0;
//////////////////////////////////////////////////////////////////////////
this.progressBarFOR_ANIMATIONS_SAVING.Maximum = (int)(entities.OfType<SAANSDXF.Entities.Line>().Count());
this.progressBarFOR_ANIMATIONS_SAVING.Value = raw_line_Segments_counter;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
///////////////////////////////////////////////////////////////////////////
foreach (SAANSDXF.Entities.Line line_first_length_checking_and_segmenting in entities.OfType<SAANSDXF.Entities.Line>())
{
raw_line_Segments_counter++;
//////////////////////////////////////////////////////////////////////////
this.progressBarFOR_ANIMATIONS_SAVING.Value = raw_line_Segments_counter;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
///////////////////////////////////////////////////////////////////////////
//////else of if(length_of_lines_2d_flattened<___double_MINIMUM_LENGTH_AFTER_WHICH_TO_BREAK_THE_LINE_SEGMENT)
///when we reached here means the current line segment is length_of_lines_2d_flattened >___double_MINIMUM_LENGTH_AFTER_WHICH_TO_BREAK_THE_LINE_SEGMENT
/// first length of first piece is t0 and total sum of all the small pieces equals the total length of the line segment
/// the number of small pieces forms is whole number only so we will readjust the last terms length of small piece of the line segment so formed
/// n= ((d-t0) + or - sqrt ((t0-d)^2 + 8 * total_length * d ) / 2d
/// n is to get the whole number we will take the smaller of the fraction and we will take the remaining length of the line segment after cumulative sums of the small pieces of line segments done
/// write a c sharp program where we have a long line segment from given point (x1,y1,z1) to (x2,y2,z2) and from that we have to get the length lambda. If lambda > given_tolerance_line_length then divide the whole line segment into small pieces in AP series such that sum of all the small pieces so formed is equal to the lambda (initial segment length is t0 and common difference is d( positive or negative d allowed)). The small pieces of these line segments are then having their own startpoint and their own end point. ) After getting all these small line segments we will reposition these small pieces of line segments in zig zag ways and we will rotate these small line segments with theta (where these theta are also varying in AP series from starting rotation angle theta_0 and common difference of these theta are theta_diffs) . The offsets of zig zagging are done perpendicularly from the line joining (x1,y1,z1) to(x2,y2,z2) . Code need to find unit vectors along (x1,y1,z1) to(x2,y2,z2) and code need to find the mid point of iterated small pieces in AP series. And then perpendicularly shift the small pieces towards left of the unit vector perpendicularly for odd terms and to shift rightward perpendicularly for even terms . And after shifting the small pieces , we need to rotate the small pieces anticlock wise for the odd terms and clock wise for even terms. Theta is also varying in AP series as we have mentioned. Write the c sharp code for this. Dont use tuple and lists.
//////////////////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
//////////////////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
//////////////////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
//////for references
////////////double ___double_MINIMUM_LENGTH_AFTER_WHICH_TO_BREAK_THE_LINE_SEGMENT = 60000;
////////////double ___double_FIRST_TERMS_LENGTH_OF_LINE_SEGMENT_AFTER_BREAKING_OF_THE_LONG_LINE_SEGMENT = 30;
////////////double ___double_COMMON_DIFFERENCE_LENGTH_OF_THE_LINE_sEGMENT_FOR_BREAKING_THE_LONG_LINE_SEGMENT = 20;
////////////int ______INT_NUMBER_OF_SMALLER_LINE_SEGMENTS_FORMED_FROM_THIS_LONG_LINE_SEGMENT = 0;
////////////double ___double_TEMP_CURRENT_OFFSET_DISTANCE_TOWARDS_LEFT_ALONG_START_TO_END_OF_LONG_LINE_SEGMENT = 0;
////////////double ___double_TEMP_CURRENT_OFFSET_DISTANCE_TOWARDS_RIGHT_ALONG_START_TO_END_OF_LONG_LINE_SEGMENT = 0;
////////////double ___double_TEMP_CURRENT_CENTER_X_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
////////////double ___double_TEMP_CURRENT_CENTER_Y_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
////////////double ___double_TEMP_CURRENT_DEGREES_START_FIRST_TERMS_CALCULATED_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
////////////double ___double_TEMP_CURRENT_DEGREES_COMMON_DIFFERENCE_CALCULATED_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
////////////double ___double_TEMP_CURRENT_RADIANS_START_FIRST_TERMS_CALCULATED_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
////////////double ___double_TEMP_CURRENT_RADIANS_COMMON_DIFFERENCE_CALCULATED_FOR_ROTATIONS_OF_SMALL_PIECE__OF_LONG_LINE_SEGMENT = 0;
////////////double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___x1 = 0;
////////////double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___y1 = 0;
////////////double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___z1 = 0;
////////////double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___x2 = 0;
////////////double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___y2 = 0;
////////////double _temp_current_small_piece_of_line_segments_constructed_from_long_segment___z2 = 0;
//////////////////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
//////////////////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
//////////////////////////////////////////////////////// NEW VARIABLES FOR THE NEW CONSTRUCTIONS OF LINE SEGMENTS FOR LONG LINE SEGMENTS TO SMALL SEGMENTS CONSTRUCTIONS //////
/// POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_LONG_LineSegment(double x1, double y1, double z1, double x2, double y2, double z2, double tolerance, double t0, double d, double theta0, double thetaDiff)
vertsx = line_first_length_checking_and_segmenting.StartPoint.X;
vertsy = line_first_length_checking_and_segmenting.StartPoint.Y;
vertsz = line_first_length_checking_and_segmenting.StartPoint.Z;
vertex = line_first_length_checking_and_segmenting.EndPoint.X;
vertey = line_first_length_checking_and_segmenting.EndPoint.Y;
vertez = line_first_length_checking_and_segmenting.EndPoint.Z;
List<SAAN_LONG_LineSegment> ___temp_list_of___SAAN_LONG_LineSegment
=
////SAAN_LONG_LineSegment
////.POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_LONG_LineSegment
////(
//// vertsx
//// ,
//// vertsy
//// ,
//// vertsz
//// ,
//// vertex
//// ,
//// vertey
//// ,
//// vertez
//// ,
//// 300,
//// 11,
//// 6, 3, 0.6
//// );
///
// public static List<SAAN_LONG_LineSegment> POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_LONG_LineSegment(double Original_long_lines_x1, double Original_long_lines_y1, double Original_long_lines_z1, double Original_long_lines_x2, double Original_long_lines_y2, double Original_long_lines_z2, double tolerance_after_which_breaking_starts, double first_line_segment_length, double common_difference_for_line_segment_length, double first_rotation_angle_degrees_theta0, double common_difference_rotation_angle_degrees_thetaDiff, double left_side_offset_multiplier, double right_side_offset_multiplier)
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
SAAN_LONG_LineSegment
.POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_LONG_LineSegment
(
vertsx
,
vertsy
,
vertsz
,
vertex
,
vertey
,
vertez
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___MIN_TOLERANCE_LENGTH_LONG_LINE_SPLITTER_400
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___FIRST_SMALL_SEGMENT_LENGTH_AP_TERMS_0_LONG_LINE_SPLITTER_401
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COMMN_DIFF_FOR_AP_LENGTH_LONG_LINE_SPLITTER_402
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___FIRST_ROT_ANG_DEG_FOR_AP_LONG_LINE_SPLITTER_403
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COMMN_DIFF_ROT_ANG_DEG_FOR_AP_LONG_LINE_SPLITTER_404
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___LEFT_SIDE_DIST_OFFSET_MULTIPLIER_LONG_LINE_SPLITTER_405
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___RIGHT_SIDE_DIST_OFFSET_MULTIPLIER_LONG_LINE_SPLITTER_406
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___LEFT_SIDE_DEGREE_ANGULAR_MULTIPLIER_LONG_LINE_SPLITTER_407
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___RIGHT_SIDE_DEGREE_ANGULAR_MULTIPLIER_LONG_LINE_SPLITTER_408
);
////// SAAN_LONG_LineSegment
//////.POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_LONG_LineSegment
//////(
////// vertsx
////// ,
////// vertsy
////// ,
////// vertsz
////// ,
////// vertex
////// ,
////// vertey
////// ,
////// vertez
////// ,
////// 30,
////// 60,
////// -0.1, 0, 0,
////// 0
////// , 0
////// );
if (___temp_list_of___SAAN_LONG_LineSegment.Count > 0)
{
foreach (SAAN_LONG_LineSegment _smalllinepiece in ___temp_list_of___SAAN_LONG_LineSegment)
{
SAANSDXF.Vector3 _startpoint = new SAANSDXF.Vector3(_smalllinepiece.X1, _smalllinepiece.Y1, _smalllinepiece.Z1);
SAANSDXF.Vector3 _finalpoint = new SAANSDXF.Vector3(_smalllinepiece.X2, _smalllinepiece.Y2, _smalllinepiece.Z2);
/////////i will add new line entities for the longer lines
/// this works but the loop on revised entities disturbing
SAANSDXF.Entities.Line ___new_lines = new SAANSDXF.Entities.Line(_startpoint, _finalpoint);
/// this works but the loop on revised entities disturbing entities.Add(___new_lines);
///
//i think this is not doing anythings
//i am stopping this entities___for_longer_line_segments.Add(___new_lines);// //i think this is not doing anythings
//i think this is not doing anythings
//we have already accumulated the longer lines into the ___temp_list_of___SAAN_LONG_LineSegment data while populating with tolerances
///we are doing these before we enter into real note preperations loops
only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments
.Add(___new_lines);
//////vertsx = line.StartPoint.X;
//////vertsy = line.StartPoint.Y;
//////vertsz = line.StartPoint.Z;
//////vertex = line.EndPoint.X;
//////vertey = line.EndPoint.Y;
//////vertez = line.EndPoint.Z;
///////////////////TESTED OK ///////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
___new_lines.StartPoint.X, ___new_lines.StartPoint.Y, ___new_lines.StartPoint.Z, ___new_lines.EndPoint.X, ___new_lines.EndPoint.Y, ___new_lines.EndPoint.Z
, "NEW_NOTE_" + TrackNumber + "_" + ChannelNumber + "_" + note_number_found_from_the_nearest_frequency_Hertz + "_" + NoteVelocity
, "CHECKING_NOTES", 100 + TrackNumber
);
///////////////////TESTED OK ///////////////////////////////////////////////////////////////////////////////////////////
/// ///i have to handle this seperately
///tested this is working fine System.Windows.Forms.MessageBox.Show(_smalllinepiece.ToString() + " " + entities.Count.ToString());
///
}//foreach(SAAN_LONG_LineSegment _smalllinepiece in ___temp_list_of___SAAN_LONG_LineSegment)
}//if(___temp_list_of___SAAN_LONG_LineSegment.Count>0)
////////////////////////////////////////////////////////////
//error is thrown
/// only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments
/// .AddRange(entities___for_longer_line_segments);
////////////////////////////////////////////////////////////
/// ___temp_list_of___SAAN_LONG_LineSegment.Clear();
///we cannot clear this here
///entities___for_longer_line_segments.Clear();
///else starts //if(length_of_lines_2d_flattened<___double_MINIMUM_LENGTH_AFTER_WHICH_TO_BREAK_THE_LINE_SEGMENT)
/////////i will add new line entities for the longer lines
//////SAANSDXF.Entities.Line ___new_lines = new SAANSDXF.Entities.Line();
//////entities.Add(___new_lines);
}// foreach (SAANSDXF.Entities.Line line_first_length_checking_and_segmenting in entities.OfType<SAANSDXF.Entities.Line>())
//entities___for_longer_line_segments
//we will populate the longer lines to smaller lines here before entering into this loop
//i have populated this in iterations stage with divisors checking
/////////////////////////////// these are special additions now /////////////////////
//////only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments
////// .AddRange
////// (
////// entities___for_circles_converts_to_line_segments
////// );
///////////////////////////////////// these are special additions now /////////////////////
this.progressBarFOR_ANIMATIONS_SAVING
.Maximum
=
(int)(only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments.Count());
/// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
foreach (SAANSDXF.Entities.Line line in only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments)
{
DOUBLE___AUTOCALCULATED_SLOPE_IN_DEGREES_FROM_THE_ARC_SIN_OF___FREQ_DIFF_TO_LINE_SEGMENTS_LENGTH = 0;
line_Segments_counter++;
//////////////////////////////////////////////////////////////////////////
this.progressBarFOR_ANIMATIONS_SAVING.Value = (int)line_Segments_counter;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
///////////////////////////////////////////////////////////////////////////
vertsx = line.StartPoint.X;
vertsy = line.StartPoint.Y;
vertsz = line.StartPoint.Z;
vertex = line.EndPoint.X;
vertey = line.EndPoint.Y;
vertez = line.EndPoint.Z;
linelength = arclength = Math.Sqrt((Math.Pow((vertex - vertsx), 2) + Math.Pow((vertey - vertsy), 2) + Math.Pow((vertez - vertsz), 2)));
totallength = totallength + linelength;
///this is newly added
length_of_lines_2d_flattened = Math.Sqrt((Math.Pow((vertex - vertsx), 2) + Math.Pow((vertey - vertsy), 2) + Math.Pow((0 - 0), 2)));
/// this part of conditional statements are done to handle the shorter line segments
if (length_of_lines_2d_flattened < ___double_MINIMUM_LENGTH_AFTER_WHICH_TO_BREAK_THE_LINE_SEGMENT)
{
#region REGION_TO_POPULATE_LINESEGMENT_TO_NOTES_FOR___SMALLER_LINE_SEGMENTS
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"\r\nSAANDXF___DXF_LINE_SEGMENTS_"
+ " line_Segments_counter = " + line_Segments_counter
+ " of raw line_Segments_count = " + raw_real_dxf___line_Segments_count
+ " vertsx = " + vertsx
+ " vertsy = " + vertsy
+ " vertsz = " + vertsz
+ " vertex = " + vertex
+ " vertey = " + vertey
+ " vertez = " + vertez
+ " linelength=" + linelength
);
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
if (vertsy >= 0 && vertsx > 0)
{
___saan_x_for_angle_calculation = vertsx;
___saan_y_for_angle_calculation = vertsy;
}
else if (vertsy >= 0 && vertsx < 0)
{
___saan_x_for_angle_calculation = (-1) * vertsx;
___saan_y_for_angle_calculation = vertsy;
}
else if (vertsy < 0 && vertsx < 0)
{
___saan_x_for_angle_calculation = (-1) * vertsx;
___saan_y_for_angle_calculation = (-1) * vertsy;
}
else if (vertsy < 0 && vertsx > 0)
{
___saan_x_for_angle_calculation = vertsx;
___saan_y_for_angle_calculation = (-1) * vertsy;
}
else
{
___saan_x_for_angle_calculation = 0.0000001;
___saan_y_for_angle_calculation = vertsy;
}
___degrees_1 = 0;
////// ___degrees_1
////// =
//////// Math.Abs
////// (
////// Math.Atan(Math.Abs(vertsy)/Math.Abs(Math.Max(0.0001,Math.Min(0.00001, vertsx)))
////// )
////// )
////// *360/Math.PI
////// ;
///
___degrees_1
=
// Math.Abs
(
// Math.Atan2(vertsy,vertsx)
Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
)
* 360 / Math.PI
;
___degrees_1 = Math.Abs(___degrees_1);
if (vertsy >= 0 && vertsx >= 0)
{
___degrees_1 = ___degrees_1;
}
else if (vertsy >= 0 && vertsx < 0)
{
___degrees_1 = 180 - ___degrees_1;
}
else if (vertsy < 0 && vertsx < 0)
{
___degrees_1 = 270 - ___degrees_1;
}
else if (vertsy < 0 && vertsx >= 0)
{
___degrees_1 = 360 - ___degrees_1;
}
else
{
___degrees_1 = 60;
}
___degrees_2 = 0;
//////___degrees_2
////// =
////// // Math.Abs
////// (
////// Math.Atan(Math.Abs(vertey) /Math.Abs( Math.Max(0.0001,Math.Min(0.00001, vertex)))
////// )
////// )
////// *( 360 / Math.PI)
////// ;
////// ___degrees_2
//////=
//////// Math.Abs
//////(
////// Math.Atan2(vertey,vertex)
////// )
////// * 360 / Math.PI
////// ;
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
if (vertey >= 0 && vertex > 0)
{
___saan_x_for_angle_calculation = vertex;
___saan_y_for_angle_calculation = vertey;
}
else if (vertey >= 0 && vertex < 0)
{
___saan_x_for_angle_calculation = (-1) * vertex;
___saan_y_for_angle_calculation = vertey;
}
else if (vertey < 0 && vertex < 0)
{
___saan_x_for_angle_calculation = (-1) * vertex;
___saan_y_for_angle_calculation = (-1) * vertey;
}
else if (vertey < 0 && vertex > 0)
{
___saan_x_for_angle_calculation = vertex;
___saan_y_for_angle_calculation = (-1) * vertey;
}
else
{
___saan_x_for_angle_calculation = 0.0000001;
___saan_y_for_angle_calculation = vertey;
}
___degrees_2
=
// Math.Abs
(
// Math.Atan2(vertsy,vertsx)
Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
)
* 360 / Math.PI
;
___degrees_2 = Math.Abs(___degrees_2);
if (vertsy >= 0 && vertsx >= 0)
{
___degrees_2 = ___degrees_2;
}
else if (vertsy >= 0 && vertsx < 0)
{
___degrees_2 = 180 - ___degrees_2;
}
else if (vertsy < 0 && vertsx < 0)
{
___degrees_2 = 270 - ___degrees_2;
}
else if (vertsy < 0 && vertsx >= 0)
{
___degrees_2 = 360 - ___degrees_2;
}
else
{
___degrees_2 = 60;
}
//////long absoluteTime___start___midstksunits = 0;
//////long absoluteTime___final___midstksunits = 0;
absoluteTime___start___midstksunits
=
(long)(
Math.Min
(
___degrees_1, ___degrees_2
)
*
(Math.PI / 180) *
// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
)
/// * (((long)freq_found_from_the_furthest + (long)freq_found_from_the_nearest) / (2 * (440 + 300)))
;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if
(
Math.Min
(
___degrees_1, ___degrees_2
)
== ___degrees_1
)
{
start_side_of_line_segments_angle_with_x_axis
= ___degrees_1;
final_side_of_line_segments_angle_with_x_axis
= ___degrees_2;
start_side_of_line_segments_frequency = ___dist_1;
final_side_of_line_segments_frequency = ___dist_2;
}
//////if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_1
////// )
if
(
Math.Min
(
___degrees_1, ___degrees_2
)
== ___degrees_2
)
{
start_side_of_line_segments_angle_with_x_axis
= ___degrees_2;
final_side_of_line_segments_angle_with_x_axis
= ___degrees_1;
start_side_of_line_segments_frequency = ___dist_2;
final_side_of_line_segments_frequency = ___dist_1;
}
//////if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_1
////// )
absoluteTime___final___midstksunits
=
(long)(
Math.Max
(
___degrees_1, ___degrees_2
)
*
(Math.PI / 180) *
// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
)
/// * (((long)freq_found_from_the_furthest + (long)freq_found_from_the_nearest) / (2 * (440 + 300)))
;
//////(long)
////// Math.Max
////// (
////// ___degrees_1, ___degrees_2
////// )
////// *
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// ;
////// will do after some times
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// ( ( absoluteTime___start___midstksunits + absoluteTime___final___midstksunits)/2)
////// ),
////// //TrackNumber
////// 0
////// );
////// will do after some times
// ++absoluteTime;
//////collection.AddEvent
//////(
////// new SAANAUDS.Midi.TempoEvent
//////(
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// /// absoluteTime
////// absoluteTime___start___midstksunits
////// ),
////// // TrackNumber
////// 0
////// );
////////////////////////////////////////////////
___dist_1
=
Math.Sqrt
(
(line.StartPoint.X * line.StartPoint.X)
+
(line.StartPoint.Y * line.StartPoint.Y)
);
___dist_2
=
Math.Sqrt
(
(line.EndPoint.X * line.EndPoint.X)
+
(line.EndPoint.Y * line.EndPoint.Y)
);
freq_found_from_the_nearest
=
Math.Min
(
___dist_1, ___dist_2
);
freq_found_from_the_furthest
=
Math.Max
(
___dist_1, ___dist_2
);
////// dxf_fresh.AddEntityToDocument(line,false);
// Add lines to the model space
// dxf_fresh.AddEntity(line1);
// dxf_fresh.AddEntity(line2);
// dxf_fresh
// Save the DXF file
//dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
////////////////////tooooo important ///////////////////////////
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
___distance_of_current_line_segment_min_out_of_two = 0;
___distance_of_current_line_segment_max_out_of_two = 0;
___distance_of_current_line_segment_min_out_of_two
=
freq_found_from_the_nearest;
___distance_of_current_line_segment_max_out_of_two
=
freq_found_from_the_furthest;
note_number_found_from_the_nearest_frequency_Hertz = 0;
note_number_found_from_the_furthest_frequency_Hertz = 0;
note_name_found_from_the_nearest_frequency_Hertz = "";
note_name_found_from_the_furthest_frequency_Hertz = "";
/// calling conventions
/// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
note_number_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_int_get_note_number_from_frequency_Hertz
(
freq_found_from_the_nearest
);
////// notes_starts___delta_pitch = 0;
////// notes_finals___delta_pitch = 0;
////// //////double notes_starts___delta_pitch = 0;
////// //////double notes_finals___delta_pitch = 0;
////// //////public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// //////public_static_double_get_note_number_ACTUAL_HIGHER_NEAREST_NOTES_frequency_Hertz
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// notes_starts___delta_pitch
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// (
////// freq_found_from_the_nearest
////// )
////// -
////// freq_found_from_the_nearest
////// ;
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
note_name_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_nearest
);
note_number_found_from_the_furthest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_int_get_note_number_from_frequency_Hertz
(
freq_found_from_the_furthest
);
note_name_found_from_the_furthest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_furthest
);
////////note_number_found_from_the_nearest_frequency_Hertz
//////if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_nearest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
//note_number_found_from_the_nearest_frequency_Hertz
if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 127)
{
note_number_found_from_the_nearest_frequency_Hertz = 69;
}//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
// long NoteDuration___with__midtks_units = 0;
////////note_number_found_from_the_furthest_frequency_Hertz
//////if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_furthest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
//note_number_found_from_the_furthest_frequency_Hertz
if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 127)
{
note_number_found_from_the_furthest_frequency_Hertz = 69;
}//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
// long NoteDuration___with__midtks_units = 0;
/////////////////////////////////////////////////////////
///
NoteDuration___with__midtks_units
=
Math.Abs(
Math.Max(
Math.Abs(absoluteTime___final___midstksunits)
,
Math.Abs(absoluteTime___start___midstksunits)
)
-
Math.Abs(
Math.Min(
Math.Abs(absoluteTime___final___midstksunits)
,
Math.Abs(absoluteTime___start___midstksunits)
)
)
)
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////NoteDuration___with__midtks_units
//// =
//// NoteDuration___with__midtks_units
//// * (((long)freq_found_from_the_furthest + (long)freq_found_from_the_nearest) / (2 * (440 + 300)))
//// ;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////THIS IS NEWLY ADDED TO CALCULATE THE DURATIONS IN THE MILLIS//////////////////////////////////////
absoluteTime___start___millis_units = 0;
absoluteTime___final___millis_units = 0;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___miditks_unit___to___millisecond__units_converter
=
(double)(
(double)
(
double)this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
/
(double)1000
/
(double)this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
)
;
/// i need to check the overlapping same miditks assigned to notes events and other events
/// this is necessary to plan the clarity for the sounds generated in the systems
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___milliseconds_unit___to___miditks__units_converter
=
(1 / ___miditks_unit___to___millisecond__units_converter);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
absoluteTime___start___millis_units
=
////// (
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// )
////// / 360
////// )
////// *
///////// not to do this ((freq_found_from_the_furthest+freq_found_from_the_nearest)/2)
///////// *
////// (
////// (long) this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// /
////// 1000
////// )
////// ;
(
(
Math.Min
(
___degrees_1, ___degrees_2
)
)
/ 360
)
// * ( ((long)freq_found_from_the_furthest +(long) freq_found_from_the_nearest) / ( 2 * (440 + 300)))
///////// not to do this ((freq_found_from_the_furthest+freq_found_from_the_nearest)/2)
*
((double)
(
(double)this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
/
(double)1000
)
)
;
absoluteTime___final___millis_units
=
(
(
Math.Max
(
___degrees_1, ___degrees_2
)
)
/ 360
)
// * (((long)freq_found_from_the_furthest + (long)freq_found_from_the_nearest) / (2 * (440 + 300)))
///////// not to do this ((freq_found_from_the_furthest+freq_found_from_the_nearest)/2)
/////
////// (
////// this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// /
////// 1000
////// )
///
*
((double)
(
(double)this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
/
(double)1000
)
)
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
NoteDuration___with__millsecs_units
= 0;
NoteDuration___with__millsecs_units
=
(double)
(Math.Min
(
Math.Abs(absoluteTime___final___millis_units - absoluteTime___start___millis_units)
,
0.0000000001
)
)
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
DOUBLE___AUTOCALCULATED_SLOPE_IN_DEGREES_FROM_THE_ARC_SIN_OF___FREQ_DIFF_TO_LINE_SEGMENTS_LENGTH
=
Math.Asin(Math.Abs(freq_found_from_the_furthest - freq_found_from_the_nearest) / Math.Max(0.0000001, Math.Abs(linelength)))
* (180 / Math.PI);
int ___temp_calibrated_data_found_int_for_velocity
=
(int)
(
(
DOUBLE___AUTOCALCULATED_SLOPE_IN_DEGREES_FROM_THE_ARC_SIN_OF___FREQ_DIFF_TO_LINE_SEGMENTS_LENGTH
/ 90
)
* 128
)
;
if (this.checkBox_AUTO_SIN_THETA_ADJUST_VELOCITY_WITH_LENGTHS_SLOPES.Checked)
{
////// NoteVelocity at the time of notes patch calculations we will readjust
///
NoteVelocity
=
Math.Max
(
30
, Math.Min
(
128
,
// (int)((DOUBLE___AUTOCALCULATED_SLOPE_IN_DEGREES_FROM_THE_ARC_SIN_OF___FREQ_DIFF_TO_LINE_SEGMENTS_LENGTH / ((double)90)) * 128
___temp_calibrated_data_found_int_for_velocity
)
);
string_for_filesnames_the_velocity_chosen_states_controller_fixed_or_changed_with_sin_theta_or_128_misus_sin_theta_states
= "custvles";
}
else
{
NoteVelocity = 122;
string_for_filesnames_the_velocity_chosen_states_controller_fixed_or_changed_with_sin_theta_or_128_misus_sin_theta_states
= "fxdsvels122";
}//end of else of if(this.checkBox_AUTO_SIN_THETA_ADJUST_VELOCITY_WITH_LENGTHS_SLOPES.Checked)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
slope_in_linear_time___with__millsecs_units
=
Math.Atan2((double)(freq_found_from_the_furthest - freq_found_from_the_nearest), (double)NoteDuration___with__millsecs_units);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// i need to log this because on the circumferences we need the compact notes and we need to know the missing locations
/// where the degrees are not allocated such that we can fill the blank times with relevant notes for the proper aesthetics
/// such that we can get the clarity regarding which of these data are to take care
___new_variable_degrees_differences_to_log = 0;
___new_variable_degrees_differences_to_log
=
Math.Abs(
Math.Max(___degrees_1, ___degrees_2)
-
Math.Min(___degrees_1, ___degrees_2)
);
if (NoteDuration___with__millsecs_units < 11)
{
absoluteTime___start___millis_units
=
(double)Math.Abs(absoluteTime___start___midstksunits)
*
(double)___miditks_unit___to___millisecond__units_converter
;
absoluteTime___final___millis_units
=
(double)Math.Abs(absoluteTime___final___midstksunits)
*
(double)___miditks_unit___to___millisecond__units_converter
;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
NoteDuration___with__millsecs_units
=
(absoluteTime___final___millis_units
-
absoluteTime___start___millis_units);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
NoteDuration___with__millsecs_units
= Math.Abs(NoteDuration___with__millsecs_units);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}//if (NoteDuration___with__millsecs_units==0)
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
///
/// double slope_in_linear_time___with__midtks_units = 0; ////// 16 different slopes in linear time calculated
slope_in_linear_time___with__midtks_units
= Math.Atan2((double)(freq_found_from_the_furthest - freq_found_from_the_nearest), (double)NoteDuration___with__midtks_units);
slope_in_linear_time___with__midtks_units
= slope_in_linear_time___with__midtks_units * 360 / Math.PI;/// taken 10 times the angles
slope_in_linear_time___with__midtks_units
= slope_in_linear_time___with__midtks_units * 100;
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
TrackNumber
=
///too slow ((int)slope_in_linear_time___with__midtks_units);//i want the raw data for different slopes integer values % 16;
((int)slope_in_linear_time___with__midtks_units) % 16;
ChannelNumber
= TrackNumber;
////// upto 18102020plusplusplus this was there to get a safe side data
///and i was getting too much of cleronets for long notes
//////patchNumber
////// =
////// TrackNumber;
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
if (
//((double)Math.Abs(absoluteTime___final___midstksunits - absoluteTime___start___midstksunits))
((double)NoteDuration___with__midtks_units)
<=
this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE)
{
patchNumber
=
SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
((int)slope_in_linear_time___with__midtks_units)
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
else
{
patchNumber
=
SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
((int)slope_in_linear_time___with__midtks_units)
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
///////// end of else case
///////// if(((double)Math.Abs(absoluteTime___final___midstksunits - absoluteTime___start___midstksunits))
////// <=
////// public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE )
////// for references variable names
////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////////////////////= new List<double>();
////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////////////////////.Clear();
if (public_list_of_6_digit_double_precission_unique_slopes_found
.Contains(Math.Round(slope_in_linear_time___with__midtks_units, 6)))
{
}
else
{
public_list_of_6_digit_double_precission_unique_slopes_found
.Add
(
Math.Round(slope_in_linear_time___with__midtks_units, 6)
);
}
//////if (public_list_of_6_digit_double_precission_unique_slopes_found
////// .Contains(Math.Round(slope_in_linear_time___with__midtks_units, 6)))
/////////////////////////////////////////////////////////////////////////
if (ChannelNumber >= 15)
{
ChannelNumber = 9;
TrackNumber = 9;
/// patchNumber = 26;/// upto 18102020plusplusplus this was there
}//if(ChannelNumber>=15)
if (ChannelNumber <= 0)
{
ChannelNumber = 6;
TrackNumber = 6;
/// patchNumber = 41;/// upto 18102020plusplusplus this was there
}//if (ChannelNumber <=0)
///////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
//////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
//////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
//////if (NoteDuration___with__midtks_units < 110)
//////{
////// note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
////// ChannelNumber = 9;
////// patchNumber = 115;
//////}// if(NoteDuration___with__midtks_units<300)
///////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
//////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
//////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
/////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
///
/////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////////
current_patch_name_found_from_patch_number = "";
current_patch_name_found_from_patch_number
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING___RETURN_PATCH_NAME_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___PATCH_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_PROGRAMS_PATCHES_INSTRUMENTS_NAMES_MAPPER
(patchNumber);
////////////////////////////////////////////////////////////////////
///
//////In MIDI, string instruments typically include:
//////Violin(Program Change 41)
//////Viola(Program Change 42)
//////Cello(Program Change 43)
//////Contrabass(Program Change 44)
//////Tremolo Strings(Program Change 45)
//////Pizzicato Strings(Program Change 46)
//////Orchestral Harp(Program Change 47)
//////Timpani(Program Change 48)
//////These instruments are part of the General MIDI(GM) sound set, which standardizes the mapping of instrument sounds to specific program change numbers for consistency across different devices and software.
//////In MIDI, percussion instruments are typically found on channel 10 and include a variety of drums and other percussive sounds. Some common percussion instruments in the General MIDI(GM) standard include:
//////Acoustic Bass Drum(35)
//////Bass Drum 1(36)
//////Side Stick(37)
//////Acoustic Snare(38)
//////Hand Clap(39)
//////Electric Snare(40)
//////Low Floor Tom(41)
//////Closed Hi-Hat(42)
//////High Floor Tom(43)
//////Pedal Hi-Hat(44)
//////Low Tom(45)
//////Open Hi-Hat(46)
//////Low - Mid Tom(47)
//////Hi - Mid Tom(48)
//////Crash Cymbal 1(49)
//////High Tom(50)
//////Ride Cymbal 1(51)
//////Chinese Cymbal(52)
//////Ride Bell(53)
//////Tambourine(54)
//////Splash Cymbal(55)
//////Cowbell(56)
//////Crash Cymbal 2(57)
//////Vibraslap(58)
//////Ride Cymbal 2(59)
//////Hi Bongo(60)
//////Low Bongo(61)
//////Mute Hi Conga(62)
//////Open Hi Conga(63)
//////Low Conga(64)
//////High Timbale(65)
//////Low Timbale(66)
//////High Agogo(67)
//////Low Agogo(68)
//////Cabasa(69)
//////Maracas(70)
//////Short Whistle(71)
//////Long Whistle(72)
//////Short Guiro(73)
//////Long Guiro(74)
//////Claves(75)
//////Hi Wood Block(76)
//////Low Wood Block(77)
//////Mute Cuica(78)
//////Open Cuica(79)
//////Mute Triangle(80)
//////Open Triangle(81)
//////These instruments are mapped to specific note numbers when played on channel 10 in a GM-compliant MIDI device.
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS = 30;//default
this.PUBLIC_DOUBLE_WINDS_TO_HIGHEST_SLABS_DURATIONS_MILLISECS = 30.3;//default
///PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied
this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS
=
Math.Abs
(
this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions
-
this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
);
////// this is newly added to get the equal distributions of the durations in the milliseconds to assign the patches for the strings instruments 20 different types
/// which is necessary to get the different kinds of strings instruments equally distributed to 20 equal divisions of the time slots in the milliseconds
/// to get the different kinds of feels for the deeper kinds of colors in the musical systems
this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS
=
this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 20;
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
//////string string_for_filesnames_the_tagging_of_instruments_counts_for_each_note___for_columns_in___SAANOWNCSVLINIERSCALEDDXFFORMIDI = "";
//////int int_counter_for_drums_instruments_patch_enters = 0;
//////int int_counter_for_strings_instruments_patch_enters = 0;
//////int int_counter_for_wind_instruments_patch_enters = 0;///
this.PUBLIC_DOUBLE_WINDS_TO_HIGHEST_SLABS_DURATIONS_MILLISECS
=
Math.Abs
(
/// 11000
/// 11000 milliseconds is too large for a note
60000
///since the array now supposrts this logging
//the array is declared at the start of this button clk functions
-
this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions
);
///THIS IS NEW VARIABLE USED TO GET THE EQUAL DISTRIBUTIONS OF THE CHANCES FOR THE DRUMS PATCHES
///OTHERWISE THERE WAS THE DIFFERENT CHANCES FOR DIFFERENT PATCHES OCCURED
this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions / 20);
////////300
////////150
////////100
////////75
////////60
////////50
////////42.85714286
////////37.5
////////33.33333333
////////30
////////27.27272727
////////25
////////23.07692308
////////21.42857143
////////20
////////18.75
////////17.64705882
////////16.66666667
////////15.78947368
////////15
////////14.28571429
///PREVIOUSLY THE MILLISECONDS WERE DISTRIBUTED LIKE ABOVE WHERE 300 (THE DRUMS DURATIONS MILLISECONDS WERE DISTRIBUTED NON EVENLY)
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
///we have taken the 20 equal divisions of time durations DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
if ((NoteDuration___with__millsecs_units >= 0) && (NoteDuration___with__millsecs_units <= this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
// patchNumber = 32; /// it sounds good like synthesizer
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_2_GTMIDS_PATCH_1___320_DRUMS_1____20TH_TO_19TH;
TrackNumber = 2;
}// if ((NoteDuration___with__millsecs_units >=0 ) && (NoteDuration___with__millsecs_units<= this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
///
//////In MIDI, percussion instruments are typically assigned to channel 10, which is actually the 10th channel(starting from 1). However, in programming languages like C#, MIDI channels are zero-indexed, meaning channel 10 is represented as channel 9 in code.
//////ALL DATA IN STRINGS ROW NUMBER, PATCH_INSTRUMENTS_NUMBER, MIDI_PATCH_INSTRUMENTS_NAMES
//////0,,
//////1,1,Acoustic Grand Piano
//////2,2,Bright Acoustic Piano
//////3,3,Electric Grand Piano
//////4,4,Honky - tonk Piano
//////5,5,Electric Piano 1(Rhodes Piano)
//////6,6,Electric Piano 2(Chorused Piano)
//////7,7,Harpsichord
//////8,8,Clavinet
//////9,9,Celesta
//////10,10,Glockenspiel
//////11,11,Music Box
//////12,12,Vibraphone
//////13,13,Marimba
//////14,14,Xylophone
//////15,15,Tubular Bells
//////16,16,Dulcimer(Santur)
//////17,17,Drawbar Organ(Hammond)
//////18,18,Percussive Organ
//////19,19,Rock Organ
//////20,20,Church Organ
//////21,21,Reed Organ
//////22,22,Accordion(French)
//////23,23,Harmonica
//////24,24,Tango Accordion(Band neon)
//////25,25,Acoustic Guitar(nylon)
//////26,26,Acoustic Guitar(steel)
//////27,27,Electric Guitar(jazz)
//////28,28,Electric Guitar(clean)
//////29,29,Electric Guitar(muted)
//////30,30,Overdriven Guitar
//////31,31,Distortion Guitar
//////32,32,Guitar harmonics
//////33,33,Acoustic Bass
//////34,34,Electric Bass(fingered)
//////35,35,Electric Bass(picked)
//////36,36,Fretless Bass
//////37,37,Slap Bass 1
//////38,38,Slap Bass 2
//////39,39,Synth Bass 1
//////40,40,Synth Bass 2
//////41,41,Violin
//////42,42,Viola
//////43,43,Cello
//////44,44,Contrabass
//////45,45,Tremolo Strings
//////46,46,Pizzicato Strings
//////47,47,Orchestral Harp
//////48,48,Timpani
//////49,49,String Ensemble 1(strings)
//////50,50,String Ensemble 2(slow strings)
//////51,51,SynthStrings 1
//////52,52,SynthStrings 2
//////53,53,Choir Aahs
//////54,54,Voice Oohs
//////55,55,Synth Voice
//////56,56,Orchestra Hit
//////57,57,Trumpet
//////58,58,Trombone
//////59,59,Tuba
//////60,60,Muted Trumpet
//////61,61,French Horn
//////62,62,Brass Section
//////63,63,SynthBrass 1
//////64,64,SynthBrass 2
//////65,65,Soprano Sax
//////66,66,Alto Sax
//////67,67,Tenor Sax
//////68,68,Baritone Sax
//////69,69,Oboe
//////70,70,English Horn
//////71,71,Bassoon
//////72,72,Clarinet
//////73,73,Piccolo
//////74,74,Flute
//////75,75,Recorder
//////76,76,Pan Flute
//////77,77,Blown Bottle
//////78,78,Shakuhachi
//////79,79,Whistle
//////80,80,Ocarina
//////81,81,Lead 1(square wave)
//////82,82,Lead 2(sawtooth wave)
//////83,83,Lead 3(calliope)
//////84,84,Lead 4(chiffer)
//////85,85,Lead 5(charang)
//////86,86,Lead 6(voice solo)
//////87,87,Lead 7(fifths)
//////88,88,Lead 8(bass + lead)
//////89,89,Pad 1(new age Fantasia)
//////90,90,Pad 2(warm)
//////91,91,Pad 3(polysynth)
//////92,92,Pad 4(choir space voice)
//////93,93,Pad 5(bowed glass)
//////94,94,Pad 6(metallic pro)
//////95,95,Pad 7(halo)
//////96,96,Pad 8(sweep)
//////97,97,FX 1(rain)
//////98,98,FX 2(soundtrack)
//////99,99,FX 3(crystal)
//////100,100,FX 4(atmosphere)
//////101,101,FX 5(brightness)
//////102,102,FX 6(goblins)
//////103,103,FX 7(echoes, drops)
//////104,104,FX 8(sci - fi, star theme)
//////105,105,Sitar
//////106,106,Banjo
//////107,107,Shamisen
//////108,108,Koto
//////109,109,Kalimba
//////110,110,Bag pipe
//////111,111,Fiddle
//////112,112,Shanai it takes 111
//////113,113,Tinkle Bell
//////114,114,Agogo
//////115,115,Steel Drums
//////116,116,Woodblock
//////117,117,Taiko Drum
//////118,118,Melodic Tom
//////119,119,Synth Drum
//////120,120,Reverse Cymbal
//////121,121,Guitar Fret Noise
//////122,122,Breath Noise
//////123,123,Seashore
//////124,124,Bird Tweet
//////125,125,Telephone Ring
//////126,126,Helicopter
//////127,127,Applause
//////128,128,Gunshot
//////int percussionChannel = 9; // Channel 10 in MIDI standard
//////So, when programming with C#, you should use channel 9 to access the percussion instruments in MIDI.
///
///
///
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 1 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 2 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
/// patchNumber = 33;
///
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_3_GTMIDS_PATCH_2___321_DRUMS_2____19TH_TO_18TH;
TrackNumber = 3;
}// else if ((NoteDuration___with__millsecs_units > 1* this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <=2* this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 2 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 3 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
////note_number_found_from_the_nearest_frequency_Hertz
//// =
//// 22;
ChannelNumber = 9;
/// patchNumber = 34;
///
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_4_GTMIDS_PATCH_3___322_DRUMS_3____18TH_TO_17TH;
TrackNumber = 3 + 1;
}// else if ((NoteDuration___with__millsecs_units > 2 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 3 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 3 * DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (3 + 1) * DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
////note_number_found_from_the_nearest_frequency_Hertz
//// =
//// 22;
ChannelNumber = 9;
// patchNumber = 34+1;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_5_GTMIDS_PATCH_4___323_DRUMS_4____17TH_TO_16TH;
TrackNumber = 3 + 2;
}// else if ((NoteDuration___with__millsecs_units > 3 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (3+1) * DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > (3 + 1) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (3 + 2) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
//////patchNumber = 33+2 +1;
///
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_6_GTMIDS_PATCH_5___324_DRUMS_5____16TH_TO_15TH;
TrackNumber = 6;
}// else if ((NoteDuration___with__millsecs_units > (3+1) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (3 + 2) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > (3 + 2) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 6 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
// patchNumber = 37;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_7_GTMIDS_PATCH_6___325_DRUMS_6____15TH_TO_14TH;
TrackNumber = 7;
}// else if ((NoteDuration___with__millsecs_units > (3 + 2) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 6 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
//////Here's a suggested mapping of the string instruments based on the given duration ranges:
//////50 to 100 milliseconds: Pizzicato Strings(Program Change 46) -Pizzicato playing can produce short, distinct notes that fit within this duration range.
//////100 to 140 milliseconds: Violin(Program Change 41) - Violin can produce slightly longer and sustained notes suitable for this range.
//////200 to 300 milliseconds: Cello(Program Change 43) - Cello produces deeper and more sustained notes, fitting well within this longer duration range.
/////////////////These assignments leverage the natural characteristics of each instrument to match the duration ranges.
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 6 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 7 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
/// patchNumber = 38;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_8_GTMIDS_PATCH_7___326_DRUMS_7____14TH_TO_13TH;
TrackNumber = 8;
}// else if ((NoteDuration___with__millsecs_units > 6 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <=7 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 7 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 8 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
////// patchNumber = 39;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_9_GTMIDS_PATCH_8___327_DRUMS_8____13TH_TO_12TH;
TrackNumber = 9;
}// else if ((NoteDuration___with__millsecs_units > 7 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 8 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 8 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 9 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
/// patchNumber = 40;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_10_GTMIDS_PATCH_9___328_DRUMS_9____12TH_TO_11TH;
TrackNumber = 10;
}// else if ((NoteDuration___with__millsecs_units > 8 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 9 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 9 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 10 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
/// patchNumber = 41;
///
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_11_GTMIDS_PATCH_10___329_DRUMS_10____11TH_TO_10TH;
TrackNumber = 11;
}// else if ((NoteDuration___with__millsecs_units > 9 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 10 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 10 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 11 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
/// patchNumber = 42;
///
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_12_GTMIDS_PATCH_11___330_DRUMS_11____10TH_TO_9TH;
TrackNumber = 12;
}// else if ((NoteDuration___with__millsecs_units > 10 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 11 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 11 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (11 + 1) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
////// patchNumber = 50;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_13_GTMIDS_PATCH_12___331_DRUMS_12____9TH_TO_8TH;
TrackNumber = 13;
}// else if ((NoteDuration___with__millsecs_units > 11 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (11+1) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 12 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 13 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
////// patchNumber = 51;
///
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_14_GTMIDS_PATCH_13___332_DRUMS_13____9TH_TO_7TH;
TrackNumber = 14;
}// else if ((NoteDuration___with__millsecs_units > 12 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 13 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 13 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (13 + 1) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
/// patchNumber = 52;
///
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_15_GTMIDS_PATCH_14___333_DRUMS_14____7TH_TO_6TH;
TrackNumber = 15;
}// else if ((NoteDuration___with__millsecs_units > 13 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (13+1) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > (13 + 1) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (13 + 2) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
////// patchNumber = 53;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_16_GTMIDS_PATCH_15___334_DRUMS_15____6TH_TO_5TH;
TrackNumber = 16;
}// else if ((NoteDuration___with__millsecs_units > (13+1) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (13 + 2) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > (13 + 2) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (13 + 3) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
////// patchNumber = 54;
///
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_17_GTMIDS_PATCH_16___335_DRUMS_16____5TH_TO_4TH;
TrackNumber = 17;
}// else if ((NoteDuration___with__millsecs_units > (13 + 2) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= (13 + 3) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > (13 + 3) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 17 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
/// patchNumber = 55;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_18_GTMIDS_PATCH_17___336_DRUMS_17____4TH_TO_3RD;
TrackNumber = 18;
}// else if ((NoteDuration___with__millsecs_units > (13 + 3) * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 17 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 17 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 18 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
/// patchNumber = 56;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_19_GTMIDS_PATCH_18___337_DRUMS_18____3RD_TO_2ND;
TrackNumber = 19;
}// else if ((NoteDuration___with__millsecs_units > 17 *this. DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 18 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 18 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 19 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
///patchNumber = 56+1;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_20_GTMIDS_PATCH_19___338_DRUMS_19____2ND_TO_1ST;
TrackNumber = 20;
}// else if ((NoteDuration___with__millsecs_units > 18 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 19 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
else if ((NoteDuration___with__millsecs_units > 19 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 20 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
{
//////note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
ChannelNumber = 9;
/// sounds
/// patchNumber = 58;
// patchNumber = 71;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_21_GTMIDS_PATCH_20___339_DRUMS_20____1ST_TO_0TH;
TrackNumber = 21;
}// else if ((NoteDuration___with__millsecs_units > 19 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT) && (NoteDuration___with__millsecs_units <= 20 * this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT))
//////////////////////////////////////////////////////////////////////drums category completes strings starts /////////////////////////////
//////////////////////////////////////////////////////////////////////drums category completes strings starts /////////////////////////////
//////////////////////////////////////////////////////////////////////drums category completes strings starts /////////////////////////////
// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions) && (NoteDuration___with__millsecs_units <= this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions))
//this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /10
/// previously i thought this but it was having issues with 1/2 to 1/1 where it was getting max nos of patchesTHE DELTA DIFFERENCES ARE NOT REQUIRED FOR THESE CASES BECAUSE THE MIN IS ZERO FOR DRUMS AND THE MAX IS THE RANGE OF DRUMS AND THE MIN OF STRINGS
/// SO THE PROPORTION ON THIS PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions IS OK TO TAKE AS THE INCREMENTER SLABS
/// TO TAKE AS THE DECIDERS FOR THE PATCHES
///we have taken the 20 equal divisions of time durations this.DOUBLE_TYPE___THE_MILLISECONDS_FOR_DRUMS_SLABS_FOR_PATCH_ASSIGNMENT
///which is 1/20 of the this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
///this is to equally divide the total drums assignments durations max transitions and then we take the equal 20 slabs to assign the patches
///this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS
///is used now and the strings instruments are also taken for 20 equal divisions instead of the 10 divisions
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 0 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 1 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
/// patchNumber = 14;// 30; ///6;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_22_GTMIDS_PATCH_21___340_STRINGS_1____20TH_TO_19TH;
TrackNumber = 22;
if (
note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
// note_number_found_from_the_nearest_frequency_Hertz >=94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
// 48;
(int)(note_number_found_from_the_nearest_frequency_Hertz * 1.6);
/// ChannelNumber = 9;
// patchNumber = 115;
ChannelNumber = 11;
} //
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
else if (
// note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
note_number_found_from_the_nearest_frequency_Hertz >= 94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
// 94;
// 22;
(int)(note_number_found_from_the_nearest_frequency_Hertz * 0.68);
// patchNumber = 38;
// ChannelNumber = 9;
ChannelNumber = 11;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
///
else
{
note_number_found_from_the_nearest_frequency_Hertz
=
(int)(note_number_found_from_the_nearest_frequency_Hertz
* 1.01);
ChannelNumber = 11;
}
}// if (NoteDuration___with__midtks_units < 600)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
//////Here's a suggested mapping of the string instruments based on the given duration ranges:
//////50 to 100 milliseconds: Pizzicato Strings(Program Change 46) -Pizzicato playing can produce short, distinct notes that fit within this duration range.
//////100 to 140 milliseconds: Violin(Program Change 41) - Violin can produce slightly longer and sustained notes suitable for this range.
//////200 to 300 milliseconds: Cello(Program Change 43) - Cello produces deeper and more sustained notes, fitting well within this longer duration range.
/////////////////These assignments leverage the natural characteristics of each instrument to match the duration ranges.
/////////////////////////////////// WE ARE PLANNING THE STRINGS INSTRUMENTS HERE //////////////////////////
/////////////////////////////////// WE ARE PLANNING THE STRINGS INSTRUMENTS HERE //////////////////////////
/////////////////////////////////// WE ARE PLANNING THE STRINGS INSTRUMENTS HERE //////////////////////////
/////////////////////////////////// WE ARE PLANNING THE STRINGS INSTRUMENTS HERE //////////////////////////
/////////////////////////////////// WE ARE PLANNING THE STRINGS INSTRUMENTS HERE //////////////////////////
/////////////////////////////////// WE ARE PLANNING THE STRINGS INSTRUMENTS HERE //////////////////////////
/////////////////////////////////// WE ARE PLANNING THE STRINGS INSTRUMENTS HERE //////////////////////////
/////////////////////////////////// WE ARE PLANNING THE STRINGS INSTRUMENTS HERE //////////////////////////
//////String Instrument Suggestions for Different Note Durations
//////Disclaimer: The choice of instrument for a specific note duration is subjective and depends largely on the desired musical effect.These suggestions are a general guideline.
//////Understanding MIDI Instrument Numbers
//////Before we delve into instrument suggestions, it's important to understand MIDI instrument numbers. These are standardized numbers used to represent different instruments in MIDI files.
//////Suggested String Instruments
//////Note Duration(ms) MIDI Instrument Number Instrument Name
//////100 24 Harp
//////150 48 Guitar
//////200 42 Violin
//////300 42 Viola
//////600 43 Cello
//////800 46 Double Bass
//////For shorter durations(100 - 200ms), instruments with a quick attack and decay like harp or guitar can be effective.
//////As the duration increases, instruments with a richer sustain like violin, viola, cello, and double bass become more suitable.
//////Additional Considerations
//////Experimentation: The best way to find the perfect instrument for your piece is to experiment with different options.MIDI software allows for easy changes, so try various combinations.
//////Musical Genre: The style of your music will influence your instrument choices.
//////Dynamic Range: Louder notes might feel shorter than softer ones.
//////Articulation: How you play the notes(legato, staccato) will affect the perceived duration.
//////Harmony and Melody: Consider the overall structure of your piece.
//////Remember: These are just suggestions. Feel free to explore other string instruments or experiment with different MIDI instrument numbers to find the perfect sound for your music.
//////MIDI uses specific program change numbers to represent different instruments. Below are the General MIDI(GM) program change numbers for various string instruments that you can use, along with suggestions for note durations:
//////Short Durations(100 ms, 150 ms, 200 ms)
//////Harpsichord: 6
//////Nylon Acoustic Guitar: 24
//////Steel Acoustic Guitar: 25
//////Mandolin: 40
//////Medium Durations(300 ms)
//////Violin(Pizzicato): 45(Note: General MIDI does not have a specific program for pizzicato, so you might use the regular Violin program and apply pizzicato via MIDI controller messages or sound font)
//////Viola(Pizzicato): 42(Similar to Violin, use regular Viola and apply pizzicato)
//////Cello(Pizzicato): 43(Similar to Violin, use regular Cello and apply pizzicato)
//////Long Durations(600 ms, 800 ms)
//////Violin: 40
//////Viola: 41
//////Cello: 42
//////Double Bass: 43
//////Orchestral Harp: 46
//////Summary with Instrument Numbers
//////100 ms, 150 ms, 200 ms:
//////Harpsichord(6)
//////Nylon Acoustic Guitar(24)
//////Steel Acoustic Guitar(25)
//////Mandolin(40)
//////300 ms:
//////Violin(45, use regular Violin program and apply pizzicato)
//////Viola(42, use regular Viola program and apply pizzicato)
//////Cello(43, use regular Cello program and apply pizzicato)
//////600 ms, 800 ms:
//////Violin(40)
//////Viola(41)
//////Cello(42)
//////Double Bass(43)
//////Orchestral Harp(46)
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 1 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 2 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
/// patchNumber = 25;// 45; ///6;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_23_GTMIDS_PATCH_22___341_STRINGS_2____19TH_TO_18TH;
TrackNumber = 23;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /10 ) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 9))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 2 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 3 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 26;// 24;
ChannelNumber = 2;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_24_GTMIDS_PATCH_23___342_STRINGS_3____18TH_TO_17TH;
TrackNumber = 23 + 1;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /9 ) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 8))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 3 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (3 + 1) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 27;// 25;
ChannelNumber = 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_25_GTMIDS_PATCH_24___343_STRINGS_4____17TH_TO_16TH;
TrackNumber = 23 + 2;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 8) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 7))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (3 + 1) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (3 + 2) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
/// patchNumber = 28;// 40;
ChannelNumber = 3 + 1;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_26_GTMIDS_PATCH_25___344_STRINGS_5____16TH_TO_15TH;
TrackNumber = 26;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 7) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 6))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (3 + 2) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (3 + 3) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 29;// 45;
ChannelNumber = 3 + 2;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_27_GTMIDS_PATCH_26___345_STRINGS_6____15TH_TO_14TH;
TrackNumber = 27;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /6) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 5))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (3 + 3) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 7 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
//////patchNumber = 30;// 42;
ChannelNumber = 7;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_28_GTMIDS_PATCH_27___346_STRINGS_7____14TH_TO_13TH;
TrackNumber = 28;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /5) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 4))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 7 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 8 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 31;// 43;
ChannelNumber = 6;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_29_GTMIDS_PATCH_28___347_STRINGS_8____13TH_TO_12TH;
TrackNumber = 29;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /4) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 3))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 8 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 9 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 32;// 24;
ChannelNumber = 8;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_30_GTMIDS_PATCH_29___348_STRINGS_9____12TH_TO_11TH;
TrackNumber = 30;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /3) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 2))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 9 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 10 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 41;// 25 ;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_31_GTMIDS_PATCH_30___349_STRINGS_10____11TH_TO_10TH;
TrackNumber = 31;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /2) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 1))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 10 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 11 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 42;// 25+1;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_32_GTMIDS_PATCH_31___350_STRINGS_11____10TH_TO_9TH;
TrackNumber = 32;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /2) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 1))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + 11 * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (11 + 1) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 43;// 25 + 1;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_33_GTMIDS_PATCH_32___351_STRINGS_12____9TH_TO_8TH;
TrackNumber = 33;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /2) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 1))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (11 + 1) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (11 + 2) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 44;// 25 + 1;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_34_GTMIDS_PATCH_33___352_STRINGS_13____8TH_TO_7TH;
TrackNumber = 34;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /2) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 1))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (11 + 2) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (11 + 3) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 45;// 25 + 1;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_35_GTMIDS_PATCH_34___353_STRINGS_14____7TH_TO_6TH;
TrackNumber = 35;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /2) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 1))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (14) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (15) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 46;// 25 + 1;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_36_GTMIDS_PATCH_35___354_STRINGS_15____6TH_TO_5TH;
TrackNumber = 36;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /2) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 1))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (15) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (15 + 1) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 47;// 25 + 1;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_37_GTMIDS_PATCH_36___355_STRINGS_16____5TH_TO_4TH;
TrackNumber = 37;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /2) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 1))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (15 + 1) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (15 + 2) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 48;// 25 + 1;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_38_GTMIDS_PATCH_37___356_STRINGS_17____4TH_TO_3RD;
TrackNumber = 38;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /2) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 1))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (17) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (18) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 49;// 25 + 1;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_39_GTMIDS_PATCH_38___357_STRINGS_18____3RD_TO_2ND;
TrackNumber = 39;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /2) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 1))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (18) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (19) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 50;// 25 + 1;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_40_GTMIDS_PATCH_39___358_STRINGS_19____2ND_TO_1ST;
TrackNumber = 40;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /2) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 1))
else if ((NoteDuration___with__millsecs_units > (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (19) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))) && (NoteDuration___with__millsecs_units <= (this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions + (20) * (this.PUBLIC_DOUBLE_SLABS_EQUALLY_DIVIDED_FOR___DRUMS_MAX_IS_STRINGS_MIN_TO_STRINGS_MAX_THAT_IS_WINDS_MIN______SLABS_DURATIONS_MILLISECS))))
{
////// patchNumber = 51;// 25 + 1;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_41_GTMIDS_PATCH_40___359_STRINGS_20____1ST_TO_0TH;
TrackNumber = 41;
}// else if ((NoteDuration___with__millsecs_units > this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS /2) && (NoteDuration___with__millsecs_units < this.PUBLIC_DOUBLE_STRINGS_TO_WINDS_SLABS_DURATIONS_MILLISECS / 1))
//52 is also good string
//////////////////////////////////////// 20 string instruments are assigned for equal divisions of milliseconds for strings min to strings max durations ranges
//////////////////////////////////////// 20 string instruments are assigned for equal divisions of milliseconds for strings min to strings max durations ranges
//////////////////////////////////////// 20 string instruments are assigned for equal divisions of milliseconds for strings min to strings max durations ranges
//////////////////////////////////////// 20 string instruments are assigned for equal divisions of milliseconds for strings min to strings max durations ranges
//////////////////////////////////////// 20 string instruments are assigned for equal divisions of milliseconds for strings min to strings max durations ranges
//////////////////////////////////////// 20 string instruments are assigned for equal divisions of milliseconds for strings min to strings max durations ranges
//////////////////////////////////////// 20 string instruments are assigned for equal divisions of milliseconds for strings min to strings max durations ranges
//////////////////////////////////////// 20 string instruments are assigned for equal divisions of milliseconds for strings min to strings max durations ranges
//////////////////////////////////////// 20 string instruments are assigned for equal divisions of milliseconds for strings min to strings max durations ranges
//////In MIDI, the wind instruments include:
//////Soprano Sax(Program Change 65)
//////Alto Sax(Program Change 66)
//////Tenor Sax(Program Change 67)
//////Baritone Sax(Program Change 68)
//////Oboe(Program Change 69)
//////English Horn(Program Change 70)
//////Bassoon(Program Change 71)
//////Clarinet(Program Change 72)
//////Piccolo(Program Change 73)
//////Flute(Program Change 74)
//////Recorder(Program Change 75)
//////Pan Flute(Program Change 76)
//////Blown Bottle(Program Change 77)
//////Shakuhachi(Program Change 78)
//////Whistle(Program Change 79)
//////Ocarina(Program Change 80)
///shanai 112 it takes 111
//////For the given duration ranges:
//////50 to 100 milliseconds: Flute(Program Change 74) - Flute can produce short, clear notes.
//////100 to 140 milliseconds: Clarinet(Program Change 72) - Clarinet produces slightly longer and more fluid notes.
//////200 to 300 milliseconds: Oboe(Program Change 69) - Oboe produces more sustained notes suitable for longer durations.
///
//////To choose wind instrument notes that play aesthetically and fit within specific millisecond durations, you might consider the natural characteristics of each instrument:
//////50 to 100 milliseconds: Piccolo(Program Change 73) or Flute(Program Change 74) -These instruments produce clear, sharp notes that are well - suited for short durations.
//////100 to 140 milliseconds: Clarinet(Program Change 72) or Alto Sax(Program Change 66) - These instruments offer a smooth, melodic sound for mid - length durations.
//////200 to 300 milliseconds: Oboe(Program Change 69) or English Horn(Program Change 70) - These instruments produce rich, sustained tones ideal for longer durations.
//////This selection aims to leverage the tonal qualities of each instrument to enhance the aesthetic appeal of the music.
//////Choosing aesthetically pleasing notes for wind instruments depends on both the context of the music and personal preference.Since you have an interest in creating software that ensures all notes are recognizable, here's a refined suggestion:
//////Soprano Sax(Program Change 65) and Flute(Program Change 74) for shorter durations (50 to 100 milliseconds). These instruments produce clear, crisp notes that can stand out even in short time frames.
//////Clarinet(Program Change 72) and Oboe(Program Change 69) for medium durations (100 to 140 milliseconds). These can provide a smooth transition with a slightly longer sustain.
//////English Horn(Program Change 70) and Bassoon(Program Change 71) for longer durations (200 to 300 milliseconds). Their rich, resonant sounds are better suited for more extended notes.
//////Since you are working on a sophisticated project like Geometrifying Trigonometry, focusing on these selections might help in achieving aesthetically balanced compositions while maintaining clarity and recognition in the notes.
//////Row Patch No.Instrument Name Min Duration(ms) Max Duration(ms) Min Velocity Max Velocity Suggested Note Range
//////0 0 Acoustic Grand Piano 100 5000 30 127 21 - 108
//////1 1 Bright Acoustic Piano 100 4500 35 127 21 - 108
//////2 2 Electric Grand Piano 100 4500 35 127 21 - 108
//////3 3 Honky - tonk Piano 100 4000 40 127 21 - 108
//////4 4 Electric Piano 1(Rhodes Piano) 150 4000 40 127 33 - 96
//////5 5 Electric Piano 2(Chorused Piano) 150 4000 40 127 33 - 96
//////6 6 Harpsichord 100 3500 45 127 36 - 96
//////7 7 Clavinet 100 3500 50 127 33 - 96
//////8 8 Celesta 100 3000 55 127 60 - 96
//////9 9 Glockenspiel 100 3000 60 127 60 - 108
//////10 10 Music Box 100 3000 60 127 48 - 96
//////11 11 Vibraphone 100 4500 35 127 48 - 84
//////12 12 Marimba 100 4000 45 127 45 - 84
//////13 13 Xylophone 100 3000 50 127 60 - 96
//////14 14 Tubular Bells 200 5000 40 127 60 - 84
//////15 15 Dulcimer(Santur) 200 4000 45 127 36 - 84
//////16 16 Drawbar Organ(Hammond) 100 8000 20 127 33 - 96
//////17 17 Percussive Organ 100 8000 20 127 33 - 96
//////18 18 Rock Organ 100 8000 25 127 33 - 96
//////19 19 Church Organ 100 9000 20 127 21 - 96
//////20 20 Reed Organ 100 7000 20 127 33 - 96
//////21 21 Accordion(French) 150 7000 30 127 36 - 84
//////22 22 Harmonica 100 5000 25 127 48 - 72
//////23 23 Tango Accordion(Bandoneon) 150 6000 30 127 36 - 84
//////24 24 Acoustic Guitar(nylon) 150 5000 30 127 40 - 84
//////25 25 Acoustic Guitar(steel) 150 5000 35 127 40 - 84
//////26 26 Electric Guitar(jazz) 150 4000 35 127 40 - 84
//////27 27 Electric Guitar(clean) 150 4000 40 127 40 - 84
//////28 28 Electric Guitar(muted) 100 4000 45 127 40 - 84
//////29 29 Overdriven Guitar 100 3500 50 127 40 - 84
//////30 30 Distortion Guitar 100 3500 55 127 40 - 84
//////31 31 Guitar harmonics 100 3000 60 127 52 - 84
//////32 32 Acoustic Bass 100 5000 30 127 28 - 60
//////33 33 Electric Bass(fingered) 100 5000 35 127 28 - 60
//////34 34 Electric Bass(picked) 100 5000 35 127 28 - 60
//////35 35 Fretless Bass 100 5000 35 127 28 - 60
//////36 36 Slap Bass 1 100 4000 40 127 28 - 60
//////37 37 Slap Bass 2 100 4000 40 127 28 - 60
//////38 38 Synth Bass 1 100 5000 35 127 28 - 72
//////39 39 Synth Bass 2 100 5000 35 127 28 - 72
//////40 40 Violin 100 6000 20 127 55 - 103
//////41 41 Viola 100 6000 20 127 48 - 84
//////42 42 Cello 100 7000 20 127 36 - 72
//////43 43 Contrabass 100 7000 25 127 28 - 60
//////44 44 Tremolo Strings 100 5000 25 127 40 - 84
//////45 45 Pizzicato Strings 50 3000 50 127 40 - 84
//////46 46 Orchestral Harp 100 5000 35 127 24 - 84
//////47 47 Timpani 50 4000 50 127 36 - 60
//////48 48 String Ensemble 1(strings) 100 6000 20 127 40 - 84
//////49 49 String Ensemble 2(slow strings) 100 6000 20 127 40 - 84
//////50 50 SynthStrings 1 100 7000 20 127 40 - 84
//////51 51 SynthStrings 2 100 7000 20 127 40 - 84
//////52 52 Choir Aahs 100 8000 20 127 48 - 84
//////53 53 Voice Oohs 100 8000 20 127 48 - 84
//////54 54 Synth Voice 100 8000 20 127 48 - 84
//////55 55 Orchestra Hit 100 3000 45 127 36 - 84
//////56 56 Trumpet 100 4000 30 127 55 - 84
//////57 57 Trombone 100 4000 35 127 40 - 72
//////58 58 Tuba 100 5000 35 127 28 - 55
//////59 59 Muted Trumpet 100 4000 35 127 55 - 84
//////60 60 French Horn 100 5000 35 127 48 - 72
//////61 61 Brass Section 100 5000 35 127 40 - 72
//////62 62 SynthBrass 1 100 5000 35 127 40 - 72
//////63 63 SynthBrass 2 100 5000 35 127 40 - 72
//////64 64 Soprano Sax 100 4000 35 127 55 - 84
//////65 65 Alto Sax 100 4000 35 127 48 - 84
//////66 66 Tenor Sax 100 4000 35 127 40 - 84
//////67 67 Baritone Sax 100 4000 35 127 28 - 72
//////68 68 Oboe 100 5000 30 127 55 - 84
//////69 69 English Horn 100 5000 30 127 48 - 84
//////70 70 Bassoon 100 5000 30 127 33 - 60
//////71 71 Clarinet 100 5000 30 127 40 - 84
//////72 72 Piccolo 100 3000 40 127 72 - 108
//////73 73 Flute 100 3000 40 127 60 - 96
//////74 74 Recorder 100 3000 40 127 60 - 84
//////75 75 Pan Flute 100 4000 35 127 55 - 96
//////76 76 Blown Bottle 100 4000 35 127 48 - 72
//////77 77 Shakuhachi 100 4000 35 127 55 - 84
//////78 78 Whistle 100 3000 40 127 60 - 96
//////79 79 Ocarina 100 3000 40 127 48 - 72
//////80 80 Lead 1(square) 100 5000 30 127 40 - 84
//////81 81 Lead 2(sawtooth) 100 5000 30 127 40 - 84
//////82 82 Lead 3(calliope lead) 100 4000 35 127 40 - 84
//////83 83 Lead 4(chiffer lead) 100 4000 35 127 40 - 84
//////84 84 Lead 5(charang) 100 4000 35 127 40 - 84
//////85 85 Lead 6(voice lead) 100 5000 30 127 40 - 84
//////86 86 Lead 7(fifths lead) 100 4000 35 127 40 - 84
//////87 87 Lead 8(bass + lead) 100 5000 30 127 28 - 72
//////88 88 Pad 1(new age) 100 8000 20 127 40 - 84
//////89 89 Pad 2(warm) 100 8000 20 127 40 - 84
//////90 90 Pad 3(polysynth) 100 8000 20 127 40 - 84
//////91 91 Pad 4(choir) 100 8000 20 127 40 - 84
//////92 92 Pad 5(bowed) 100 8000 20 127 40 - 84
//////93 93 Pad 6(metallic) 100 8000 20 127 40 - 84
//////94 94 Pad 7(halo) 100 8000 20 127 40 - 84
//////95 95 Pad 8(sweep) 100 8000 20 127 40 - 84
//////96 96 FX 1(rain) 100 8000 20 127 40 - 84
//////97 97 FX 2(soundtrack) 100 8000 20 127 40 - 84
//////98 98 FX 3(crystal) 100 8000 20 127 40 - 84
//////99 99 FX 4(atmosphere) 100 8000 20 127 40 - 84
//////100 100 FX 5(brightness) 100 8000 20 127 40 - 84
//////101 101 FX 6(goblins) 100 8000 20 127 40 - 84
//////102 102 FX 7(echoes) 100 8000 20 127 40 - 84
//////103 103 FX 8(sci - fi) 100 8000 20 127 40 - 84
//////104 104 Sitar 100 3000 45 127 52 - 72
//////105 105 Banjo 100 3000 45 127 48 - 72
//////106 106 Shamisen 100 3000 45 127 40 - 64
//////107 107 Koto 100 3000 45 127 48 - 72
//////108 108 Kalimba 100 3000 45 127 48 - 84
//////109 109 Bag pipe 100 4000 35 127 55 - 72
//////110 110 Fiddle 100 4000 35 127 48 - 84
//////111 111 Shanai 100 4000 35 127 55 - 84
//////112 112 Tinkle Bell 100 2000 50 127 72 - 108
//////113 113 Agogo 100 3000 45 127 60 - 84
//////114 114 Steel Drums 100 4000 35 127 55 - 84
//////115 115 Woodblock 100 2000 50 127 72 - 96
//////116 116 Taiko Drum 100 2000 50 127 40 - 60
//////117 117 Melodic Tom 100 3000 45 127 40 - 72
//////118 118 Synth Drum 100 2000 50 127 40 - 72
//////119 119 Reverse Cymbal 100 1000 60 127 72 - 84
//////120 120 Guitar Fret Noise 100 2000 50 127 28 - 52
//////121 121 Breath Noise 100 2000 50 127 28 - 52
//////122 122 Seashore 100 2000 50 127 28 - 52
//////123 123 Bird Tweet 100 2000 50 127 28 - 52
//////124 124 Telephone Ring 100 2000 50 127 28 - 52
//////125 125 Helicopter 100 2000 50 127 28 - 52
//////126 126 Applause 100 2000 50 127 28 - 52
//////127 127 Gunshot 100 2000 50 127 28 - 52
//this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 0 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 1 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 65;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_42_GTMIDS_PATCH_41___360_WINDS_1____20TH_TO_19TH;
TrackNumber = 42;
}//else if ( (NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 0* this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS )) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 1 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 1 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 2 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 66;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_43_GTMIDS_PATCH_42___361_WINDS_2____19TH_TO_18TH;
TrackNumber = 43;
}//else if ( (NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 1* this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS )) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 2 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 2 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 3 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 65+2;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_44_GTMIDS_PATCH_43___362_WINDS_3____18TH_TO_17TH;
TrackNumber = 44;
}//else if ( (NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 2* this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS )) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 3 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 3 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3 + 1) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 68;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_45_GTMIDS_PATCH_44___363_WINDS_4____17TH_TO_16TH;
TrackNumber = 45;
}//else if ( (NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 3* this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS )) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3+1) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3 + 1) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3 + 2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 69;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_46_GTMIDS_PATCH_45___364_WINDS_5____16TH_TO_15TH;
TrackNumber = 46;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3+1) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3 + 2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3 + 2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3 + 3) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 70;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_47_GTMIDS_PATCH_46___365_WINDS_6____15TH_TO_14TH;
TrackNumber = 47;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3+2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3 + 3) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3 + 3) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 7 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
/// patchNumber = 71;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_48_GTMIDS_PATCH_47___366_WINDS_7____14TH_TO_13TH;
TrackNumber = 48;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (3+3) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 7 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 7 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 8 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 72;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_49_GTMIDS_PATCH_48___367_WINDS_8____13TH_TO_12TH;
TrackNumber = 49;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 7 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 8 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 8 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 9 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 73;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_50_GTMIDS_PATCH_49___368_WINDS_9____12TH_TO_11TH;
TrackNumber = 50;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 8 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 9 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 9 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 10 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 74;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_51_GTMIDS_PATCH_50___369_WINDS_10____11TH_TO_10TH;
TrackNumber = 51;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 9 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 10 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 10 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 11 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 75;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_52_GTMIDS_PATCH_51___370_WINDS_11____10TH_TO_9TH;
TrackNumber = 52;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 10 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 11 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 11 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 1) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 76;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH;
TrackNumber = 53;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 11 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11+1) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 1) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 77;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_54_GTMIDS_PATCH_53___372_WINDS_13____8TH_TO_7TH;
TrackNumber = 54;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11+1) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11+2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 109;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_55_GTMIDS_PATCH_54___373_WINDS_14____7TH_TO_6TH;
TrackNumber = 55;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11+2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3 + 1) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
/// patchNumber = 110;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_56_GTMIDS_PATCH_55___374_WINDS_15____6TH_TO_5TH;
TrackNumber = 56;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3+1) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3 + 1) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3 + 2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 111;//shanai // 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_57_GTMIDS_PATCH_56___375_WINDS_16____5TH_TO_4TH;
TrackNumber = 57;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3 +1 ) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3 + 2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3 + 2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3 + 3) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 111;// 112;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_58_GTMIDS_PATCH_57___376_WINDS_17____4TH_TO_3RD;
TrackNumber = 58;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3 + 2) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + (11 + 3 + 3) * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 17 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 18 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 111;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_59_GTMIDS_PATCH_58___377_WINDS_18____3RD_TO_2ND;
TrackNumber = 59;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 17 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 18 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 18 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 19 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 111;// 25 + 1;
ChannelNumber = 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_60_GTMIDS_PATCH_59___378_WINDS_19____2ND_TO_1ST;
TrackNumber = 60;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 18 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 19 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 19 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 20 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
{
///winds instruments
////// patchNumber = 65;// 25 + 1;
ChannelNumber = 11 + 3;// 11 + 3;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_61_GTMIDS_PATCH_60___379_WINDS_20____1ST_TO_0TH;
TrackNumber = 61;
}// else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 19 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 20 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)))
/// we dont have any upper limits for these this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied onwards so we take proportions on this with the pitch bends durations for the winds cases
/// but the upper limits are too high for these wind instruments so it is better to use the percentages
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 20 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 1.0)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 1.3)))
{
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_62_GTMIDS_PATCH_61___380_LONG_NOTES_1;
TrackNumber = 62;
if (
note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
// note_number_found_from_the_nearest_frequency_Hertz >=94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
(int)(note_number_found_from_the_nearest_frequency_Hertz * 1.11);
ChannelNumber = 11;
/// patchNumber = 65;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_62_GTMIDS_PATCH_61___380_LONG_NOTES_1;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
if (
// note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
note_number_found_from_the_nearest_frequency_Hertz >= 94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
// 94;
//22;
(int)(note_number_found_from_the_nearest_frequency_Hertz * 0.68);
////// patchNumber = 66;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_62_GTMIDS_PATCH_61___380_LONG_NOTES_1;
ChannelNumber = 11;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
} // else if ( (NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied*1.0)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 1.6)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 20 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 1.3)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 1.6)))
{
ChannelNumber = 14;
////// patchNumber = 111;//shanai
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_63_GTMIDS_PATCH_62___381_LONG_NOTES_2;
TrackNumber = 63;
}
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 1.6)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 2.2)))
{
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_64_GTMIDS_PATCH_63___382_LONG_NOTES_3;
TrackNumber = 64;
if (
note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
// note_number_found_from_the_nearest_frequency_Hertz >=94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
(int)(note_number_found_from_the_nearest_frequency_Hertz * 1.11);
ChannelNumber = 14;
/// patchNumber = 74;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_64_GTMIDS_PATCH_63___382_LONG_NOTES_3;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
if (
// note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
note_number_found_from_the_nearest_frequency_Hertz >= 94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
// 94;
//22;
(int)(note_number_found_from_the_nearest_frequency_Hertz * 0.68);
/// patchNumber = 76;
ChannelNumber = 11;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_64_GTMIDS_PATCH_63___382_LONG_NOTES_3;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
} // else if ( (NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied*1.6)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 2.2)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 20 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 2.2)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 3)))
{
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_65_GTMIDS_PATCH_64___383_LONG_NOTES_4;
TrackNumber = 65;
if (
note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
// note_number_found_from_the_nearest_frequency_Hertz >=94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
(int)(note_number_found_from_the_nearest_frequency_Hertz * 1.11);
ChannelNumber = 13;
////// patchNumber = 68;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_65_GTMIDS_PATCH_64___383_LONG_NOTES_4;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
if (
// note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
note_number_found_from_the_nearest_frequency_Hertz >= 94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
// 94;
//22;
(int)(note_number_found_from_the_nearest_frequency_Hertz * 0.68);
///patchNumber = 66;
///
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_65_GTMIDS_PATCH_64___383_LONG_NOTES_4;
ChannelNumber = 13;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
} // else if ( (NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied*2.2)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 11)))
else if ((NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied + 20 * this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)) && (NoteDuration___with__millsecs_units >= (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 3)) && (NoteDuration___with__millsecs_units < (this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 11)))
{
ChannelNumber = 14;
/// patchNumber = 111;// 112;//shanai
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_66_GTMIDS_PATCH_65___384_LONG_NOTES_5;
TrackNumber = 66;
}
else
{
/// i think its covered
///
//////patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class.
//////PUBLIC_STATIC_INT___TRACK_67_GTMIDS_PATCH_66___385_LONG_NOTES_6;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_68_GTMIDS_PATCH_67___386_LONG_NOTES_7;
TrackNumber = 68;
if (
note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
// note_number_found_from_the_nearest_frequency_Hertz >=94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
(int)(note_number_found_from_the_nearest_frequency_Hertz * 1.11);
ChannelNumber = 15;
////// patchNumber = 74;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_69_GTMIDS_PATCH_68___387_LONG_NOTES_8;
TrackNumber = 69;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
if (
// note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
note_number_found_from_the_nearest_frequency_Hertz >= 94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
// 94;
//22;
(int)(note_number_found_from_the_nearest_frequency_Hertz * 0.68);
////// patchNumber = 76;
patchNumber = ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
PUBLIC_STATIC_INT___TRACK_69_GTMIDS_PATCH_68___387_LONG_NOTES_8;
TrackNumber = 69;
ChannelNumber = 15;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
}////// NoteDuration___with__millsecs_units related things done
//////Row Patch No.Instrument Name Min Duration(ms) Max Duration(ms) Min Velocity Max Velocity Suggested Note Range
//////0 0 Acoustic Grand Piano 100 5000 30 127 21 - 108
//////1 1 Bright Acoustic Piano 100 4500 35 127 21 - 108
//////2 2 Electric Grand Piano 100 4500 35 127 21 - 108
//////3 3 Honky - tonk Piano 100 4000 40 127 21 - 108
//////4 4 Electric Piano 1(Rhodes Piano) 150 4000 40 127 33 - 96
//////5 5 Electric Piano 2(Chorused Piano) 150 4000 40 127 33 - 96
//////6 6 Harpsichord 100 3500 45 127 36 - 96
//////7 7 Clavinet 100 3500 50 127 33 - 96
//////8 8 Celesta 100 3000 55 127 60 - 96
//////9 9 Glockenspiel 100 3000 60 127 60 - 108
//////10 10 Music Box 100 3000 60 127 48 - 96
//////11 11 Vibraphone 100 4500 35 127 48 - 84
//////12 12 Marimba 100 4000 45 127 45 - 84
//////13 13 Xylophone 100 3000 50 127 60 - 96
//////14 14 Tubular Bells 200 5000 40 127 60 - 84
//////15 15 Dulcimer(Santur) 200 4000 45 127 36 - 84
//////16 16 Drawbar Organ(Hammond) 100 8000 20 127 33 - 96
//////17 17 Percussive Organ 100 8000 20 127 33 - 96
//////18 18 Rock Organ 100 8000 25 127 33 - 96
//////19 19 Church Organ 100 9000 20 127 21 - 96
//////20 20 Reed Organ 100 7000 20 127 33 - 96
//////21 21 Accordion(French) 150 7000 30 127 36 - 84
//////22 22 Harmonica 100 5000 25 127 48 - 72
//////23 23 Tango Accordion(Bandoneon) 150 6000 30 127 36 - 84
//////24 24 Acoustic Guitar(nylon) 150 5000 30 127 40 - 84
//////25 25 Acoustic Guitar(steel) 150 5000 35 127 40 - 84
//////26 26 Electric Guitar(jazz) 150 4000 35 127 40 - 84
//////27 27 Electric Guitar(clean) 150 4000 40 127 40 - 84
//////28 28 Electric Guitar(muted) 100 4000 45 127 40 - 84
//////29 29 Overdriven Guitar 100 3500 50 127 40 - 84
//////30 30 Distortion Guitar 100 3500 55 127 40 - 84
//////31 31 Guitar harmonics 100 3000 60 127 52 - 84
//////32 32 Acoustic Bass 100 5000 30 127 28 - 60
//////33 33 Electric Bass(fingered) 100 5000 35 127 28 - 60
//////34 34 Electric Bass(picked) 100 5000 35 127 28 - 60
//////35 35 Fretless Bass 100 5000 35 127 28 - 60
//////36 36 Slap Bass 1 100 4000 40 127 28 - 60
//////37 37 Slap Bass 2 100 4000 40 127 28 - 60
//////38 38 Synth Bass 1 100 5000 35 127 28 - 72
//////39 39 Synth Bass 2 100 5000 35 127 28 - 72
//////40 40 Violin 100 6000 20 127 55 - 103
//////41 41 Viola 100 6000 20 127 48 - 84
//////42 42 Cello 100 7000 20 127 36 - 72
//////43 43 Contrabass 100 7000 25 127 28 - 60
//////44 44 Tremolo Strings 100 5000 25 127 40 - 84
//////45 45 Pizzicato Strings 50 3000 50 127 40 - 84
//////46 46 Orchestral Harp 100 5000 35 127 24 - 84
//////47 47 Timpani 50 4000 50 127 36 - 60
//////48 48 String Ensemble 1(strings) 100 6000 20 127 40 - 84
//////49 49 String Ensemble 2(slow strings) 100 6000 20 127 40 - 84
//////50 50 SynthStrings 1 100 7000 20 127 40 - 84
//////51 51 SynthStrings 2 100 7000 20 127 40 - 84
//////52 52 Choir Aahs 100 8000 20 127 48 - 84
//////53 53 Voice Oohs 100 8000 20 127 48 - 84
//////54 54 Synth Voice 100 8000 20 127 48 - 84
//////55 55 Orchestra Hit 100 3000 45 127 36 - 84
//////56 56 Trumpet 100 4000 30 127 55 - 84
//////57 57 Trombone 100 4000 35 127 40 - 72
//////58 58 Tuba 100 5000 35 127 28 - 55
//////59 59 Muted Trumpet 100 4000 35 127 55 - 84
//////60 60 French Horn 100 5000 35 127 48 - 72
//////61 61 Brass Section 100 5000 35 127 40 - 72
//////62 62 SynthBrass 1 100 5000 35 127 40 - 72
//////63 63 SynthBrass 2 100 5000 35 127 40 - 72
//////64 64 Soprano Sax 100 4000 35 127 55 - 84
//////65 65 Alto Sax 100 4000 35 127 48 - 84
//////66 66 Tenor Sax 100 4000 35 127 40 - 84
//////67 67 Baritone Sax 100 4000 35 127 28 - 72
//////68 68 Oboe 100 5000 30 127 55 - 84
//////69 69 English Horn 100 5000 30 127 48 - 84
//////70 70 Bassoon 100 5000 30 127 33 - 60
//////71 71 Clarinet 100 5000 30 127 40 - 84
//////72 72 Piccolo 100 3000 40 127 72 - 108
//////73 73 Flute 100 3000 40 127 60 - 96
//////74 74 Recorder 100 3000 40 127 60 - 84
//////75 75 Pan Flute 100 4000 35 127 55 - 96
//////76 76 Blown Bottle 100 4000 35 127 48 - 72
//////77 77 Shakuhachi 100 4000 35 127 55 - 84
//////78 78 Whistle 100 3000 40 127 60 - 96
//////79 79 Ocarina 100 3000 40 127 48 - 72
//////80 80 Lead 1(square) 100 5000 30 127 40 - 84
//////81 81 Lead 2(sawtooth) 100 5000 30 127 40 - 84
//////82 82 Lead 3(calliope lead) 100 4000 35 127 40 - 84
//////83 83 Lead 4(chiffer lead) 100 4000 35 127 40 - 84
//////84 84 Lead 5(charang) 100 4000 35 127 40 - 84
//////85 85 Lead 6(voice lead) 100 5000 30 127 40 - 84
//////86 86 Lead 7(fifths lead) 100 4000 35 127 40 - 84
//////87 87 Lead 8(bass + lead) 100 5000 30 127 28 - 72
//////88 88 Pad 1(new age) 100 8000 20 127 40 - 84
//////89 89 Pad 2(warm) 100 8000 20 127 40 - 84
//////90 90 Pad 3(polysynth) 100 8000 20 127 40 - 84
//////91 91 Pad 4(choir) 100 8000 20 127 40 - 84
//////92 92 Pad 5(bowed) 100 8000 20 127 40 - 84
//////93 93 Pad 6(metallic) 100 8000 20 127 40 - 84
//////94 94 Pad 7(halo) 100 8000 20 127 40 - 84
//////95 95 Pad 8(sweep) 100 8000 20 127 40 - 84
//////96 96 FX 1(rain) 100 8000 20 127 40 - 84
//////97 97 FX 2(soundtrack) 100 8000 20 127 40 - 84
//////98 98 FX 3(crystal) 100 8000 20 127 40 - 84
//////99 99 FX 4(atmosphere) 100 8000 20 127 40 - 84
//////100 100 FX 5(brightness) 100 8000 20 127 40 - 84
//////101 101 FX 6(goblins) 100 8000 20 127 40 - 84
//////102 102 FX 7(echoes) 100 8000 20 127 40 - 84
//////103 103 FX 8(sci - fi) 100 8000 20 127 40 - 84
//////104 104 Sitar 100 3000 45 127 52 - 72
//////105 105 Banjo 100 3000 45 127 48 - 72
//////106 106 Shamisen 100 3000 45 127 40 - 64
//////107 107 Koto 100 3000 45 127 48 - 72
//////108 108 Kalimba 100 3000 45 127 48 - 84
//////109 109 Bag pipe 100 4000 35 127 55 - 72
//////110 110 Fiddle 100 4000 35 127 48 - 84
//////111 111 Shanai 100 4000 35 127 55 - 84
//////112 112 Tinkle Bell 100 2000 50 127 72 - 108
//////113 113 Agogo 100 3000 45 127 60 - 84
//////114 114 Steel Drums 100 4000 35 127 55 - 84
//////115 115 Woodblock 100 2000 50 127 72 - 96
//////116 116 Taiko Drum 100 2000 50 127 40 - 60
//////117 117 Melodic Tom 100 3000 45 127 40 - 72
//////118 118 Synth Drum 100 2000 50 127 40 - 72
//////119 119 Reverse Cymbal 100 1000 60 127 72 - 84
//////120 120 Guitar Fret Noise 100 2000 50 127 28 - 52
//////121 121 Breath Noise 100 2000 50 127 28 - 52
//////122 122 Seashore 100 2000 50 127 28 - 52
//////123 123 Bird Tweet 100 2000 50 127 28 - 52
//////124 124 Telephone Ring 100 2000 50 127 28 - 52
//////125 125 Helicopter 100 2000 50 127 28 - 52
//////126 126 Applause 100 2000 50 127 28 - 52
//////127 127 Gunshot 100 2000 50 127 28 - 52
/////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
collection.AddEvent(
new
SAANAUDS.Midi.PatchChangeEvent
(
///saan puts this here
absoluteTime___start___midstksunits
,
ChannelNumber
,
patchNumber
)
, TrackNumber
);
/////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////////
current_patch_name_found_from_patch_number = "";
current_patch_name_found_from_patch_number
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING___RETURN_PATCH_NAME_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___PATCH_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_PROGRAMS_PATCHES_INSTRUMENTS_NAMES_MAPPER
(patchNumber);
////////////////////////////////////////////////////////////////////
///
current_note_name_found_from_note_number = "";
current_note_name_found_from_note_number
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING___RETURN_NOTE_NAME_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
(note_number_found_from_the_nearest_frequency_Hertz);
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.Append
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ "___new_variable_degrees_differences_to_log = " + ___new_variable_degrees_differences_to_log.ToString("F6")
+ " absoluteTime___start___midstksunits(min of two degrees) = " + absoluteTime___start___midstksunits
+ " absoluteTime___final___midstksunits(max of two degrees) = " + absoluteTime___final___midstksunits
+ " absoluteTime___start___millis_units = " + absoluteTime___start___millis_units
+ " absoluteTime___final___millis_units = " + absoluteTime___final___millis_units
+ " NoteDuration___with__midtks_units=" + NoteDuration___with__midtks_units
+ " NoteDuration___with__millsecs_units=" + NoteDuration___with__millsecs_units.ToString("F11")
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " Assigned ChannelNumber = " + ChannelNumber
+ " Assigned patchNumber = " + patchNumber
+ " Assigned NoteVelocity = " + NoteVelocity
+ "Assigned current_patch_name_found_from_patch_number = " + current_patch_name_found_from_patch_number
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time___with__midtks_units = " + slope_in_linear_time___with__midtks_units
+ " this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = " + this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
+ " ___miditks_unit___to___millisecond__units_converter = " + ___miditks_unit___to___millisecond__units_converter
);
if ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) > 100)
{
////////////////////// new things adding
////// will do after some times
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
//////"Note Stream LYRICS_"+ current_note_name_found_from_note_number,
"lyr_or_notes_names_" + current_note_name_found_from_note_number,
SAANAUDS.Midi.MetaEventType.TextEvent
,
// absoluteTime
(long)((absoluteTime___start___midstksunits + (absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / 6))
),
//TrackNumber
0
);
}//if((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits)>100)
/////////////////////////////////////////////////////////
///
///there was some errors so i had to do this
if (NoteVelocity < 30)
{
NoteVelocity = 30;
}//if(NoteVelocity<30)
if (NoteVelocity > 127)
{
NoteVelocity = 127;
}// if (NoteVelocity>127)
//////int velocity;
//////if (noteNumber < 60) // Lower range
//////{
////// velocity = 60 + (noteNumber % 20); // Softer velocities
//////}
//////else if (noteNumber < 100) // Middle range
//////{
////// velocity = 70 + (noteNumber % 20); // Moderate velocities
//////}
//////else // Higher range
//////{
////// velocity = 80 + (noteNumber % 20); // Stronger velocities
//////}
//////velocity = Math.Clamp(velocity, 0, 127);
//////velocityMap[noteNumber] = velocity;
//https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/09/flutemodelingvibrato.html
/// Specially calculating the velocity for the ///flutes and the Shanai
/// https://sanjoynathgeometrifyingtrigonometry.blogspot.com/2024/09/abstractmelodyandeargrammars.html
///
///
collection
.AddEvent
(new
ControlChangeEvent
(
absoluteTime___start___midstksunits
,
ChannelNumber
,
MidiController
.MidiController_RpnMsb__SAAN___ITS___101___FOR_PITCHBENDS_RANGE_CHANGES
, 0
)
, 0
); // 101 → MSB
collection
.AddEvent
(new
ControlChangeEvent
(
absoluteTime___start___midstksunits
,
ChannelNumber
,
MidiController
.MidiController_RpnLsb__SAAN___ITS___100___FOR_PITCHBENDS_RANGE_CHANGES
, 0
)
,
0
); // 100 → LSB
/////////////////////////////////////////////////////////////////////////////////////////
pitchBendRange___we_can_readjust_notewises = 12;
collection
.
AddEvent
(
new
ControlChangeEvent
(
absoluteTime___start___midstksunits
,
ChannelNumber
,
//THE CONTROLLER VALUE TO CHANGE THE pitchBendRange IS 6 THAT IS DONE MidiController_DataEntryMsb___is___6___HAHAHA
MidiController
.
MidiController_DataEntryMsb___is___6___HAHAHA
,
// saan is trying to put everything with 6 semitones ranges for ragas
//pitchBendRange = 6
pitchBendRange___we_can_readjust_notewises
)
,
TrackNumber); // 6 to change when it is the non default 6 semitones
//FOR REFERENCES midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_DataEntryMsb___is___6___HAHAHA, pitchBendRange), 0); // 6 to change
collection
.
AddEvent
(new
ControlChangeEvent
(
absoluteTime___start___midstksunits
,
ChannelNumber
,
MidiController
.
MidiController_DataEntryLsb__SAAN___FOR_PITCHBENDS_RANGE____ITS__38___CHANGES
,
0
)
,
TrackNumber);
// 38
///////////////////////////////////////////////////////// WE ARE ASSIGNING THE NOTE ON EVENT HERE /////////////////////////////////////
///////////////////////////////////////////////////////// WE ARE ASSIGNING THE NOTE ON EVENT HERE /////////////////////////////////////
///////////////////////////////////////////////////////// WE ARE ASSIGNING THE NOTE ON EVENT HERE /////////////////////////////////////
///////////////////////////////////////////////////////// WE ARE ASSIGNING THE NOTE ON EVENT HERE /////////////////////////////////////
///////////////////////////////////////////////////////// WE ARE ASSIGNING THE NOTE ON EVENT HERE /////////////////////////////////////
///////////////////////////////////////////////////////// WE ARE ASSIGNING THE NOTE ON EVENT HERE /////////////////////////////////////
collection.AddEvent
(
new SAANAUDS.Midi.NoteOnEvent
(
////// absoluteTime
absoluteTime___start___midstksunits
,
ChannelNumber
,
// note.MidiValue
note_number_found_from_the_nearest_frequency_Hertz
,
NoteVelocity
,
////// (int)Math.Min(NoteDuration___with__midtks_units, 1)
(int)Math.Max(NoteDuration___with__midtks_units, 1)
)
,
TrackNumber
);
/////////////////////////////////////////////////////////
//////absoluteTime___final___midstksunits
////// = Math.Min(30, absoluteTime___final___midstksunits);
//to implement this check
///////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
//////StringBuilder ___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// = new StringBuilder();
//////___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// .Clear();
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.AppendLine
(
(int) absoluteTime___start___millis_units
+ "######" +
// durationtoassigns_inmiditiks
(int)Math.Abs( absoluteTime___final___millis_units- absoluteTime___start___millis_units)
+ "######" +
//___temp_note_freq_found
freq_found_from_the_nearest
);
//////StringBuilder ___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// = new StringBuilder();
//////___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// .Clear();
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.AppendLine
(
(int)absoluteTime___start___millis_units
+ "######" +
// durationtoassigns_inmiditiks
(int)Math.Abs(absoluteTime___final___millis_units - absoluteTime___start___millis_units)
+ "######" +
// ___temp_note_freq_found
freq_found_from_the_nearest
+ "######" +
NoteVelocity
/
127
);
//////////////////////////////////////////////////////////////////
/////////////////////// THESE ARE JUST AFTER NOTES ON //////
collection
.
AddEvent
(new
ControlChangeEvent
(
absoluteTime___start___midstksunits
,
ChannelNumber
,
MidiController
.MainVolume
,
//the volumes value to put
// 127
// Math.Max(60, ((int)(THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 127))
127 - ((int)(TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER) % 20)
)
,
TrackNumber
);
///////////////////////////////////////////////////////////////////////////
/////////////////////// THESE ARE JUST AFTER NOTES ON //////
collection
.AddEvent(new ControlChangeEvent
(
absoluteTime___start___midstksunits
,
ChannelNumber
,
MidiController.Pan
,
// ((ptchbndsvals) % 122))
(int)((TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER) % 127))
,
TrackNumber
); //PANNING
///////////////////////////////////////////////////////////////////////////
//////// Expression (CC 11) - Crescendo and Decrescendo
//////for (int i = 0; i <= 127; i += 8)
//////{
////// collection
////// .AddEvent
////// (new
////// ControlChangeEvent
////// (
////// absoluteTime___start___midstksunits+ i * 2
////// ,
////// ChannelNumber
////// , MidiController.Expression
////// ,
////// i
////// )
////// ,
////// TrackNumber
////// );
//////}//for (int i = 0; i <= 127; i += 8)
//////for (int i = 127; i >= 0; i -= 8)
//////{
////// collection
////// .AddEvent
////// (
////// new
////// ControlChangeEvent
////// (
////// // 256 + (127 - i) * 2
////// absoluteTime___start___midstksunits+ 256 + (127 - i) * 2
////// ,
////// ChannelNumber
////// , MidiController.Expression
////// ,
////// i
////// )
////// ,
////// TrackNumber
////// );
//////}//for (int i = 127; i >= 0; i -= 8)
//it was not playing even i stopped this
// Vibrato (CC 21) - Oscillating values
for (int i = 0; i < 3; i++)
{
collection.AddEvent
(
new ControlChangeEvent
(
// 600 + i * 120
absoluteTime___start___midstksunits + i * 120
, ChannelNumber
,
// (MidiController)21 // THIS ALSO WORKS
MidiController.SAANS_VIBRATO
//THIS ALSO WORKS MidiController.SAANS_VIBRATO
, 64
)
, TrackNumber
);
//////////////////
collection.AddEvent
(new
ControlChangeEvent
(
//660 + i * 120
absoluteTime___start___midstksunits + i * 120
,
ChannelNumber
,
// (MidiController)21 THIS WAS WORKING
MidiController.SAANS_VIBRATO
,
0
)
,
TrackNumber
);
}// for (int i = 0; i < 3; i++)
//it was not playing even i stopped this
// Modulation (CC 1) - Sweep
for (int i = 0; i <= 127; i += 10)
{
collection
.AddEvent
(new ControlChangeEvent
(
// 1000 + i * 2
absoluteTime___start___midstksunits+ i*2
,
ChannelNumber
,
MidiController.Modulation
,
i
)
,
TrackNumber);
}//for (int i = 0; i <= 127; i += 10)
//////vertsx = line.StartPoint.X;
//////vertsy = line.StartPoint.Y;
//////vertsz = line.StartPoint.Z;
//////vertex = line.EndPoint.X;
//////vertey = line.EndPoint.Y;
//////vertez = line.EndPoint.Z;
///////////////////TESTED OK ///////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
vertsx, vertsy, vertsz, vertex, vertey, vertez
, "NOTE_" + TrackNumber + "_" + ChannelNumber + "_" + Patch_number + "_" + note_number_found_from_the_nearest_frequency_Hertz + "_" + NoteVelocity
, "CHECKING_NOTES", TrackNumber
);
///////////////////TESTED OK ///////////////////////////////////////////////////////////////////////////////////////////
try
{
total_of_all_notes_velocities
=
total_of_all_notes_velocities
+
NoteVelocity;
////////////////////////////////////////////////////////////////////////////////////////////////////////
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 0]
=
TrackNumber;
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 1]
=
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 1]
+ 1
;
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 2]
=
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 2]
+
(int)Math.Max(NoteDuration___with__midtks_units, 1)
;
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 3]
=
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 3]
+
NoteDuration___with__millsecs_units
;
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 3 + 1]
=
(
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 1]
/
(double)___total_original___line_segments_found_in_dxf
) * 100
;
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 3 + 2]
=
(
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 3]
/
//TOT_MICROSECONDS_DURATION_NX480_OR_N_X_TPQN
// (double)(this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS/1000)
(double)((double)this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS / 1000)
) * 100
;
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 6]
=
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 6]
+
NoteVelocity
;
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 6 + 1]
=
(
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 6]
/
total_of_all_notes_velocities
) * 100
;
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 6 + 2]
=
patchNumber
;
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
///total centidegrees logged here this is the cumulative sum of the total centi degrees assigned in the track and the instruments
///while the whole composition is completes which gives the clarity for the understanding of the geometry of the distributions of the music forms
///the absolute music or the abstract melody structures are understood with the geometry symmetries that is important for the next compositions
///
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 6 + 3]
=
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 6 + 3]
+
Math.Abs((int)(Math.Abs(final_side_of_line_segments_angle_with_x_axis - start_side_of_line_segments_angle_with_x_axis) * 100))
;
///this is the summation of all centi degrees allocated for this track
///which is the measurement of the tracks density out of the total songs durations 36000 centi degrees which is good to understand the
///natures of notes and the natures of instruments used here for the aesthetics measures of the sounds sequences
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
///total centidegrees logged here this is the cumulative sum of the total centi degrees assigned in the track and the instruments
///while the whole composition is completes which gives the clarity for the understanding of the geometry of the distributions of the music forms
///the absolute music or the abstract melody structures are understood with the geometry symmetries that is important for the next compositions
///
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 6 + 3 + 1]
=
(
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 6 + 3]
/
///whatever the song we design that is distributed in 360*100 centi degrees
36000
) * 100
;
///this is the summation of all centi degrees allocated for this track
///which is the measurement of the tracks density out of the total songs durations 36000 centi degrees which is good to understand the
///natures of notes and the natures of instruments used here for the aesthetics measures of the sounds sequences
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///col 0 TRACK NUMBER
///COL 1 COUNT OF NOTES ASSIGNED TO THIS TRACK
///COL 2 TOTAL MIDITIKS ASSIGNED TO THIS TRACK
///COL 3 TOTAL MILLISECONDS ASSIGNED TO THIS TRACK
///COL 3+1 PERCENTAGE OF TOTAL NOTES ASSIGNED TO THIS TRACK
///COL 3+2 PERCENTAGE OF MILLISECONDS ASSIGNED TO THIS TRACK
///COL 6 TOTAL NOTE VELOCITY ASSIGNED TO THIS TRACK
///COL 6+1 CUMULATIVE PERCENTAGE OF NOTE VELOCITY UPTO NOW ASSIGNED TO THIS TRACK
///COL 8 THE PATCH NUMBER ASSIGNED TO THIS TRACK
///COL 9 TOTAL_CENTI_DEGREES_USED_FOR_THIS_TRACK
///COL 10 PERCENTAGE_CENTI_DEGREES_USED_FOR_THIS_TRACK
///COL 11 TO COL 11+128 ARE THE NOTES ASSIGNED THAT IS 11+ NOTE_NUMBER_ASSIGNED_FOR THIS_TRACK INSTRUMENTS FOR THE TRACK ARE FIXED
///COL 140 TO COL 140 + 128 = 268 ARE THE TOTAL CENTI DEGREES ASSIGNED FOR THE NOTES ASSIGNED THAT IS 11+NOTE_NUMBER_ASSIGNED_FOR THIS_TRACK INSTRUMENTS FOR THE TRACK ARE FIXED
////////////////////////////////////////////////////////////////////////////////////////////////////////
//////patch numbers are 0 to 127 so 11 + 0 = column 11 and 11+127 = columns 139
///this means the final column is less than 300
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 11 + note_number_found_from_the_nearest_frequency_Hertz]
=
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 11 + note_number_found_from_the_nearest_frequency_Hertz]
+
1
;
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
//////patch numbers are 0 to 127 so 11 + 0 = column 11 and 11+127 = columns 138
///this means the final column is less than 300
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 140 + note_number_found_from_the_nearest_frequency_Hertz]
=
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 140 + note_number_found_from_the_nearest_frequency_Hertz]
+
Math.Abs((int)(Math.Abs(final_side_of_line_segments_angle_with_x_axis - start_side_of_line_segments_angle_with_x_axis) * 100))
;
////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////
//////COL 269 IS FOR PERCENTAGE OF MIDITIK USED IN THIS TRACK WHICH IS TO MEASURE THE DENSITY OF THE TRACK AND INSTRUMENT
///IN THE WHOLE SONG WE KNOW TOTAL MICROSECONDS AND THE MICROSECONDS PER MIDITIK
///TOT MIDITIK IS ALREADY CALCULATED
///this means the final column is less than 300
///
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 269]
=
(
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[TrackNumber, 2]
/
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
)
* 100
;
////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_store_tracks_data_to_tracks_array)
{
}//catch(Exception ___excp_to_store_tracks_data_to_tracks_array)
// THIS IS THE HEADER FOR THE DATA
// THIS IS THE HEADER FOR THE DATA
//////___stringbuilder_to_track_instruments_assigned_pitch_assigned_notes_assigned_durations_assigned_pitch_bent_assigned_track_assigned_channel_assigned
////// .AppendLine
////// (
////// "TRACK,CHANNEL,PATCH_NUMBER,PATCH_NAME,PITCH_BEND_NUMBER,NOTE_FREQUENCY_START,NOTE_FREQUENCY_FINAL,NOTE_NUMBER_FROM_START_SIDE_FREQUENCY,NOTES_START_TIMES(TKS),NOTES_FINAL_TIMES(TKS),NOTES_DURATIONS(TKS),NOTES_VELOCITIES,LYRS_STRINGS,LYR_START_TIMES_TKS,OPTIONAL_MILLIS_START,OPTIONAL_MILLIS_FINAL,OPTIONAL_DURATIONS_MILLIS,OPTIONAL_COMMAND_SEGGREGATOR_NOT_OR_PITCH_BEND_OR_CONTROLER,PRESERVED_RAW_EVENT_COUNTER_FOR_SORTING,ARC_SIN_THETA_DEGREES_FREQUENCY_DIFF_TO_LENGTH_OF_SEGMENT"
////// );
TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER++;
//////for references
////////////NoteDuration___with__millsecs_units
//////////// =
//////////// (absoluteTime___final___millis_units
//////////// -
//////////// absoluteTime___start___millis_units);
// THIS IS THE HEADER FOR THE DATA
___stringbuilder_to_track_instruments_assigned_pitch_assigned_notes_assigned_durations_assigned_pitch_bent_assigned_track_assigned_channel_assigned
.AppendLine
(
TrackNumber + "," +
ChannelNumber + "," +
patchNumber + "," +
current_patch_name_found_from_patch_number + "," +
// "8190(now 8192)," +
"8192," +
start_side_of_line_segments_frequency + "," +
final_side_of_line_segments_frequency + "," +
note_number_found_from_the_nearest_frequency_Hertz + "," +
absoluteTime___start___midstksunits + "," +
absoluteTime___final___midstksunits + "," +
// (int)Math.Min(NoteDuration___with__midtks_units, 1) +"," +
(int)Math.Max(NoteDuration___with__midtks_units, 1) + "," +
NoteVelocity + "," +
"LYR_AND_" + current_note_name_found_from_note_number + "," +
start_side_of_line_segments_frequency + "," +
absoluteTime___start___millis_units + "," +
absoluteTime___final___millis_units + "," +
NoteDuration___with__millsecs_units + "," +
"NOTE_ON" + "," +
TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER + "," +
DOUBLE___AUTOCALCULATED_SLOPE_IN_DEGREES_FROM_THE_ARC_SIN_OF___FREQ_DIFF_TO_LINE_SEGMENTS_LENGTH.ToString("F6") + "," +
___new_variable_degrees_differences_to_log.ToString("F6") + "," +
start_side_of_line_segments_angle_with_x_axis.ToString("F6") + "," +
final_side_of_line_segments_angle_with_x_axis.ToString("F6")
);
try
{
///THESE ARE AT FIXED KNOWN POINTS OF TIMES (DEGREES*100) SO WE ARE ADDING DATA TO THESE COLUMNS BEFORE LOOP STARTS
///column 2
/// note starting glitch counter
___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS
[
(int)(start_side_of_line_segments_angle_with_x_axis * 100), 2
]
=
___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS
[
(int)(start_side_of_line_segments_angle_with_x_axis * 100), 2
]
+ 1
;
///THESE ARE AT FIXED KNOWN POINTS OF TIMES (DEGREES*100) SO WE ARE ADDING DATA TO THESE COLUMNS BEFORE LOOP STARTS
///column 3
/// note finalizing glitch counter
___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS
[
((int)(final_side_of_line_segments_angle_with_x_axis * 100)), 3
]
=
___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS
[
((int)(final_side_of_line_segments_angle_with_x_axis * 100)), 3
]
+ 1
;
/// HERE WE SEARCH AND LOG FOR ALL 100 TH OF ALL MIDDLE POINTS FROM START TO END OF THE CENTI DEGREES
/// HERE WE SEARCH AND LOG FOR ALL 100 TH OF ALL MIDDLE POINTS FROM START TO END OF THE CENTI DEGREES
/// HERE WE SEARCH AND LOG FOR ALL 100 TH OF ALL MIDDLE POINTS FROM START TO END OF THE CENTI DEGREES
/// we are working with scale of 100 so +- or -1 in the rrr_filler will not add too much differences
/// /// we are working with scale of 100 so +- or -1 in the rrr_filler will not add too much differences
/// /// we are working with scale of 100 so +- or -1 in the rrr_filler will not add too much differences
for (int rrr_filler = (int)(start_side_of_line_segments_angle_with_x_axis * 100); rrr_filler <= ((int)(final_side_of_line_segments_angle_with_x_axis * 100)); rrr_filler++)
{
try
{
///column 0 is already filled with the degrees *100 data after clearing the array
///column 0 is already filled with the degrees *100 data after clearing the array
///column 0 is already filled with the degrees *100 data after clearing the array
///column 1 is to store the count of notes only
///we will count the drum types counters string type counters and the wind type counters also
///that is to measure the compactness of the silence free musics
___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS
[rrr_filler, 1]
=
___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS
[rrr_filler, 1]
+ 1;
/////////////////////////////////////////////////////////////////////////////////
///
}
catch (Exception ___excp_to_fill_degrees_360_100_records)
{
}//catch(Exception ___excp_to_fill_degrees_360_100_records)
}// for(int rrr_filler= (int)(start_side_of_line_segments_angle_with_x_axis*100); rrr_filler<= ((int)(final_side_of_line_segments_angle_with_x_axis * 100)); rrr_filler++)
}
catch (Exception ___excp_to_fill_degrees_360_100_records)
{
System.Windows.Forms.MessageBox.Show("___excp_to_fill_degrees_360_100_records records " + ___excp_to_fill_degrees_360_100_records.Message + "\r\n" + ___excp_to_fill_degrees_360_100_records.StackTrace.ToString());
}//catch(Exception ___excp_to_fill_degrees_360_100_records)
/// WE ARE STARTING THE CALCULATIONS FOR THE PITCH BENDS HERE NOW AFTER THE NOTE START IS DONE HERE ///////////////////
/// WE ARE STARTING THE CALCULATIONS FOR THE PITCH BENDS HERE NOW AFTER THE NOTE START IS DONE HERE ///////////////////
/// WE ARE STARTING THE CALCULATIONS FOR THE PITCH BENDS HERE NOW AFTER THE NOTE START IS DONE HERE ///////////////////
/// WE ARE STARTING THE CALCULATIONS FOR THE PITCH BENDS HERE NOW AFTER THE NOTE START IS DONE HERE ///////////////////
/// WE ARE STARTING THE CALCULATIONS FOR THE PITCH BENDS HERE NOW AFTER THE NOTE START IS DONE HERE ///////////////////
/// WE ARE STARTING THE CALCULATIONS FOR THE PITCH BENDS HERE NOW AFTER THE NOTE START IS DONE HERE ///////////////////
notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
notes_finals___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
//////double notes_starts___delta_pitch = 0;
//////double notes_finals___delta_pitch = 0;
//////public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
//////public_static_double_get_note_number_ACTUAL_HIGHER_NEAREST_NOTES_frequency_Hertz
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency
=
start_side_of_line_segments_frequency
-
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
(
start_side_of_line_segments_frequency
)
;
//final_side_of_line_segments_frequency
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
notes_finals___delta_pitch___if_it_is_higher_than_nearest_note_frequency
=
final_side_of_line_segments_frequency
-
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
(
final_side_of_line_segments_frequency
)
;
//final_side_of_line_segments_frequency
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///putting the pitch bends at the starting sides
//////int ___necessary_pitch_bend_to_put_at_start_side_of_note = 0;
//////if(notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency > 0 && notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency < 8190)
//////{
//////}// if(notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency>0 && notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency < 8190)
//////___necessary_pitch_bend_to_put_at_start_side_of_note =
//////Math.Max(6, (int)(8190 - notes_starts___delta_pitch));
////// kkk
///
note_name_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_nearest
);
/////////////////////////////////////////////////////////////////////////////////////////////
///
try
{
//////SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .CalculatePitchBends___AND_APPLY___FROM_FREQ_1___TO___FREQ_2___ON_NOTE_NUMBER_AND_DURATIONS_WITH_MIDITICKS
////// (
////// ref collection
////// , ChannelNumber
////// , TrackNumber
////// ,
////// start_side_of_line_segments_frequency
////// ,
////// final_side_of_line_segments_frequency
////// , note_number_found_from_the_nearest_frequency_Hertz
////// , absoluteTime___start___midstksunits
////// ,
////// (int)Math.Min(NoteDuration___with__midtks_units, 1)
////// ,
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// (
////// start_side_of_line_segments_frequency
////// )
////// );
///////////////////////////////////////////////////////////////////////////////////////////////////////
///
}
catch (Exception ___excp_to_generate_new_styles_of_pitchbends)
{
System.Windows.Forms.MessageBox.Show
(
"___excp_to_generate_new_styles_of_pitchbends" + "\r\n" +
___excp_to_generate_new_styles_of_pitchbends.Message
+ "\r\n"
+ ___excp_to_generate_new_styles_of_pitchbends.StackTrace.ToString()
);
}//catch(Exception ___excp_to_generate_new_styles_of_pitchbends)
#region PREVIOUSSAANSTYLESOFPITCHBENDCALCULATIONS
//////if (notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency>0)
//////{
//////collection.AddEvent
////// (
////// new
////// SAANAUDS.Midi.PitchWheelChangeEvent
////// (
////// /// (long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / 60) * rrr)
////// absoluteTime___start___midstksunits
////// /// zero delay putting the pitch bend at the position of note starts
////// ,
////// ChannelNumber
////// ,
////// /// (int)((1-(delta_pitch / start_side_of_line_segments_frequency)) * 8192)
////// ///
////// // (int)(delta_pitch *(final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency) * 8192)
////// /// Math.Max(6, (int)(8190 - rrr * delta_pitch))
////// /// Math.Max((int)(notes_starts___delta_pitch - 8190, (int)(8190 - notes_starts___delta_pitch))/// now adding this to
////// Math.Max(6, (int)(8190 - notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency))
////// )
////// , TrackNumber
////// );
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////}//if(notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency>0)
note_name_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_nearest
);
///NoteDuration___with__midtks_units
/// ___delta___pitch___slabs_finder =( int)(NoteDuration___with__midtks_units / 330);
/// ___delta___pitch___slabs_finder = Math.Min(11, (int)(NoteDuration___with__midtks_units / 600));
//////___delta___pitch___slabs_finder =(int) Math.Min((double)11, (double)(NoteDuration___with__millsecs_units / 600));
/// ___delta___pitch___slabs_finder = (int)Math.Min((double)11, (double)(NoteDuration___with__millsecs_units / 1000));
int pitch_bent_wheels_value_to_assign = 8192;// 8190;// 8192;(now 8192)
___delta___pitch___slabs_finder =
(int)Math.Min
(
(double)11,
(double)(NoteDuration___with__millsecs_units
/
this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS)
);
////// we thought this but we have not used this
///otherwise the note start frequency adjustment was not working
//////if((NoteDuration___with__millsecs_units/___delta___pitch___slabs_finder) > (1.8* NoteDuration___with__millsecs_units))
//////{
////// /// no we will not do this
////// /// otherwise the start frequency adjuster dont work
//////}// if((NoteDuration___with__millsecs_units/___delta___pitch___slabs_finder) > (1.8* NoteDuration___with__millsecs_units))
//////// Calculate the frequency ratio
//////double frequencyRatio = finalFrequency / startFrequency;
//////// Calculate pitch bend value steps
//////double deltaPitch = (8192 * Math.Log2(frequencyRatio)) / deltaPitchSlabsFinder;
///
//////// Method to calculate base-2 logarithm
//////private static double Log2(double value)
//////{
////// return Math.Log(value) / Math.Log(2);
//////}
////////////// Calculate the frequency ratio
///////// double frequencyRatio = finalFrequency / startFrequency;
//////double frequencyRatio = final_side_of_line_segments_frequency / start_side_of_line_segments_frequency;
///////// double deltaPitch = (8192 * Math.Log2(frequencyRatio)) / ___delta___pitch___slabs_finder;
/////////
////////////// Calculate pitch bend value steps
//////double deltaPitch = (8192 * (Math.Log(frequencyRatio))/ Math.Log(2))/ ___delta___pitch___slabs_finder;
int currentPitchBend = 8192;//(now 8192) 8190;//approx center
////// this is for increasing frequency cases for pitch bends
if (start_side_of_line_segments_frequency < final_side_of_line_segments_frequency)
{
//////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
{
delta_pitch = (final_side_of_line_segments_frequency - start_side_of_line_segments_frequency) / ___delta___pitch___slabs_finder;
//////// Calculate the frequency ratio
/// double frequencyRatio = finalFrequency / startFrequency;
double frequencyRatio = final_side_of_line_segments_frequency / start_side_of_line_segments_frequency;
/// double deltaPitch = (8192 * Math.Log2(frequencyRatio)) / ___delta___pitch___slabs_finder;
///
//////// Calculate pitch bend value steps
double deltaPitch_with_log
=
//////(8192
//////* (Math.Log(frequencyRatio))
/////// Math.Log(2))
/////// ___delta___pitch___slabs_finder;
///
(8192
* (Math.Log(frequencyRatio))
/ Math.Log
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___DEFAULT_2__LOGARITHMS_BASE_FOR_PITCH_BENDS_409
))
/ ___delta___pitch___slabs_finder;
double linear_delta_pitch = (final_side_of_line_segments_frequency - start_side_of_line_segments_frequency) / ___delta___pitch___slabs_finder;
currentPitchBend = 8192;//(now 8192) 8190;///rising freqs cases
/// trying delta_pitch
for (int rrr = 0; rrr < ___delta___pitch___slabs_finder; rrr++)
{
/////////////////////////////// newly added conditions from the check boxes ///////////////////////////////////////////
if (checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked)
{
// currentPitchBend = 8190 + (int)(deltaPitch_with_log * rrr);///rising freq cases
currentPitchBend = 8192 + (int)(deltaPitch_with_log * rrr);///rising freq cases
//(now 8192)
// Ensure that the pitch bend value stays within the valid MIDI range
currentPitchBend = Math.Max(0, Math.Min(16383, currentPitchBend));
pitch_bent_wheels_value_to_assign
= currentPitchBend;
////// delta_pitch = pitch_bent_wheels_value_to_assign;// deltaPitch_with_log;
}// if(checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked)
/////////////////////////////// newly added conditions from the check boxes ///////////////////////////////////////////
else
{
/// non log2 cases rising cases
/// for linear pitchbend assigns
pitch_bent_wheels_value_to_assign
=
// Math.Max(16368, (int)(8190 + (rrr * delta_pitch)));///linear delta pitch is taken for non log2 rising cases
Math.Max(16368, (int)(8192 + (rrr * delta_pitch)));///linear delta pitch is taken for non log2 rising cases
//rising freq cases
}
try
{
/////////////////////// THESE ARE JUSTBEFORE PITCH WHEEL CHANGES //////
collection
.
AddEvent
(new
ControlChangeEvent
(
(long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / ___delta___pitch___slabs_finder) * rrr)
,
ChannelNumber
,
MidiController
.MainVolume
,
//the volumes value to put
// 127
// Math.Max(60, ((int)(THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 127))
127 - ((int)(TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER) % 20)
)
,
TrackNumber
);
///////////////////////////////////////////////////////////////////////////
/////////////////////// THESE ARE JUSTBEFORE PITCH WHEEL CHANGES //////
collection
.AddEvent(new ControlChangeEvent
(
(long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / ___delta___pitch___slabs_finder) * rrr)
,
ChannelNumber
,
MidiController.Pan
,
// ((ptchbndsvals) % 122))
(int)((pitch_bent_wheels_value_to_assign) % 127))
,
TrackNumber
); //PANNING
///////////////////////////////////////////////////////////////////////////
collection.AddEvent
(
new
SAANAUDS.Midi.PitchWheelChangeEvent
(
(long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / ___delta___pitch___slabs_finder) * rrr)
,
ChannelNumber
,
/// Math.Min(16368, (int)(start_side_of_line_segments_frequency +(delta_pitch * (final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency)) * 8192))
// Math.Max(16368, (int)(8190 + (rrr * delta_pitch)))
//////this is new variable taken to automatically understand for log2 cases and for linear cases
/////this is rising cases
pitch_bent_wheels_value_to_assign
//rising freq cases
)
, TrackNumber
);
TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER++;
___stringbuilder_to_track_instruments_assigned_pitch_assigned_notes_assigned_durations_assigned_pitch_bent_assigned_track_assigned_channel_assigned
.AppendLine
(
TrackNumber + "," +
ChannelNumber + "," +
patchNumber + "," +
current_patch_name_found_from_patch_number + "," +
pitch_bent_wheels_value_to_assign + "," +
start_side_of_line_segments_frequency + "," +
final_side_of_line_segments_frequency + "," +
note_number_found_from_the_nearest_frequency_Hertz + "," +
(long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / ___delta___pitch___slabs_finder) * rrr) + "," +
"ptchbnd_endtms_tks" + "," +
//////(int)Math.Min(NoteDuration___with__midtks_units, 1) + "," +
(int)Math.Max(NoteDuration___with__midtks_units, 1) + "," +
NoteVelocity + "," +
"LYR_AND_" + current_note_name_found_from_note_number + "," +
start_side_of_line_segments_frequency + "," +
absoluteTime___start___millis_units + "," +
absoluteTime___final___millis_units + "," +
NoteDuration___with__millsecs_units + "," +
"PITCH_BEND" + "," +
TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER + "," +
DOUBLE___AUTOCALCULATED_SLOPE_IN_DEGREES_FROM_THE_ARC_SIN_OF___FREQ_DIFF_TO_LINE_SEGMENTS_LENGTH.ToString("F6") + "," +
___new_variable_degrees_differences_to_log.ToString("F6") + "," +
start_side_of_line_segments_angle_with_x_axis.ToString("F6") + "," +
final_side_of_line_segments_angle_with_x_axis.ToString("F6")
);
}
catch (Exception ___excp_for_pitchbents)
{
System.Windows.Forms.MessageBox.Show("___excp_for_pitchbents = " + ___excp_for_pitchbents.Message
+ "\r\n" + ___excp_for_pitchbents.StackTrace.ToString()
+ " start_side_of_line_segments_frequency = " + start_side_of_line_segments_frequency
+ " final_side_of_line_segments_frequency = " + final_side_of_line_segments_frequency
+ " frequencyRatio = " + frequencyRatio
+ " deltaPitch_with_log = " + deltaPitch_with_log
+ " linear_delta_pitch = " + linear_delta_pitch
+ " pitch_bent_wheels_value_to_assign = " + pitch_bent_wheels_value_to_assign
)
;
}//catch(Exception ___excp_for_pitchbents)
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.Append
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"\r\nPITCHBEND_STARTS TrackNumber =" + TrackNumber
+ " ___delta___pitch___slabs_finder = " + ___delta___pitch___slabs_finder
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start___midstksunits(min of two degrees) = " + absoluteTime___start___midstksunits
+ " absoluteTime___final___midstksunits(max of two degrees) = " + absoluteTime___final___midstksunits
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration___with__midtks_units=" + NoteDuration___with__midtks_units
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time___with__midtks_units = " + slope_in_linear_time___with__midtks_units
+ " absoluteTime___start___millis_units = " + absoluteTime___start___millis_units
+ " absoluteTime___final___millis_units = " + absoluteTime___final___millis_units
+ " rrr= " + rrr
+ " pitch bent time=" + (long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / ___delta___pitch___slabs_finder) * rrr)
// + " pitch bent value (int)(8190 (now 8192) + rrr * delta_pitch)) = " + Math.Max(16368, (int)(8190 + rrr * delta_pitch))
+ " pitch bent value (int)(8190 (now 8192) + rrr * delta_pitch)) = " + Math.Max(16368, (int)(8192 + rrr * delta_pitch))
/// + " calculated was (8190 + (rrr * delta_pitch))= " + (8190 + (rrr * delta_pitch))
+ " calculated was (8192 + (rrr * delta_pitch))= " + (8192 + (rrr * delta_pitch))
+ " calculated linear_delta_pitch = " + linear_delta_pitch
+ " calculated log2_delta_pitch = " + deltaPitch_with_log
+ " check box to use log or not (checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked ) = " + checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked
+ " pitch_bent_wheels_value_to_assign(rising freq cases) = " + pitch_bent_wheels_value_to_assign
);
//delta_pitch
}// for(int rrr=0;rrr<___delta___pitch___slabs_finder;rrr++)
}
//////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
}// if(start_side_of_line_segments_frequency< final_side_of_line_segments_frequency)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
///
///
///
///
///
///
///
////// this is for decreasing frequency cases for pitch bends
if (start_side_of_line_segments_frequency > final_side_of_line_segments_frequency)
{
//////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
{
//////// Calculate the frequency ratio
/// double frequencyRatio = finalFrequency / startFrequency;
double frequencyRatio = final_side_of_line_segments_frequency / start_side_of_line_segments_frequency;
/// double deltaPitch = (8192 * Math.Log2(frequencyRatio)) / ___delta___pitch___slabs_finder;
///
//////// Calculate pitch bend value steps
double deltaPitch_with_log
=
//////(8192
/////
//////(
//////Math.Log(frequencyRatio))
///////
//////Math.Log(2)
//////)
///////
//////___delta___pitch___slabs_finder;
///
(8192
*
(
Math.Log(frequencyRatio))
/
Math.Log
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___DEFAULT_2__LOGARITHMS_BASE_FOR_PITCH_BENDS_409
)
)
/
___delta___pitch___slabs_finder;
/// trying delta_pitch
///
double linear_delta_pitch = (start_side_of_line_segments_frequency - final_side_of_line_segments_frequency) / ___delta___pitch___slabs_finder; ;
// for linear cases we use this for pitch calculations
delta_pitch = (start_side_of_line_segments_frequency - final_side_of_line_segments_frequency) / ___delta___pitch___slabs_finder;/// always pre calculated
///////////////////////////////////// newly added conditions from the check boxes ///////////////////////////////////////////
//////if (checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked)
//////{
////// delta_pitch = deltaPitch_with_log;
////// pitch_bent_wheels_value_to_assign=
//////}// if(checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked)
////// /////////////////////////////// newly added conditions from the check boxes ///////////////////////////////////////////
////// ///
for (int rrr = 0; rrr < ___delta___pitch___slabs_finder; rrr++)
{
try
{
// for falling frequency cases
/////////////////////////////// newly added conditions from the check boxes ///////////////////////////////////////////
if (checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked)
{
//falling freq cases
// ratio is less than 1 and log 2 will negative will adjust the direction of the movement
///falling freq cases also have same formula for log2 pitch bends because log of ratio does negatives or positives automatically
/// currentPitchBend = 8190 + (int)(deltaPitch_with_log * rrr); /// for log 2 cases
currentPitchBend = 8192 + (int)(deltaPitch_with_log * rrr); /// for log 2 cases
// Ensure that the pitch bend value stays within the valid MIDI range
currentPitchBend = Math.Max(0, Math.Min(16383, currentPitchBend));/// for log 2 cases
//falling freq cases
pitch_bent_wheels_value_to_assign
= currentPitchBend;
/// delta_pitch = pitch_bent_wheels_value_to_assign;// deltaPitch_with_log;
}// if(checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked)
else
{
// for falling cases
// for linear cases
//for linear cases we need to do this reverse movements from the 8190 delta_pitch is calculated at the starting
//in our starting calculations delta_pitch is calculated for positive to avoid the errors
// currentPitchBend = Math.Max(6, (int)(8190 - rrr * delta_pitch));/// linear case is here so direct delta pitch is used for falling cases also
currentPitchBend = Math.Max(6, (int)(8192 - rrr * delta_pitch));/// linear case is here so direct delta pitch is used for falling cases also
////// this is new variable to assign the pitchwheel data auto adjusted for log2 and for linear both
pitch_bent_wheels_value_to_assign = currentPitchBend;
}//end of else case
/////////////////////////////// newly added conditions from the check boxes ///////////////////////////////////////////
/////////////////////// THESE ARE JUSTBEFORE PITCH WHEEL CHANGES //////
collection
.
AddEvent
(new
ControlChangeEvent
(
(long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / ___delta___pitch___slabs_finder) * rrr)
,
ChannelNumber
,
MidiController
.MainVolume
,
//the volumes value to put
// 127
// Math.Max(60, ((int)(THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 127))
127 - ((int)(TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER) % 20)
)
,
TrackNumber
);
///////////////////////////////////////////////////////////////////////////
/////////////////////// THESE ARE JUSTBEFORE PITCH WHEEL CHANGES //////
collection
.AddEvent(new ControlChangeEvent
(
(long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / ___delta___pitch___slabs_finder) * rrr)
,
ChannelNumber
,
MidiController.Pan
,
// ((ptchbndsvals) % 122))
(int)((pitch_bent_wheels_value_to_assign) % 127))
,
TrackNumber
); //PANNING
///////////////////////////////////////////////////////////////////////////
collection.AddEvent
(
new
SAANAUDS.Midi.PitchWheelChangeEvent
(
(long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / ___delta___pitch___slabs_finder) * rrr)
,
ChannelNumber
,
/// (int)((1-(delta_pitch / start_side_of_line_segments_frequency)) * 8192)
///
// (int)(delta_pitch *(final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency) * 8192)
//////Math.Max(6, (int)(8190(now 8192) - rrr * delta_pitch))
/// currentPitchBend
pitch_bent_wheels_value_to_assign
)
, TrackNumber
);
TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER++;
// THIS IS THE HEADER FOR THE DATA
___stringbuilder_to_track_instruments_assigned_pitch_assigned_notes_assigned_durations_assigned_pitch_bent_assigned_track_assigned_channel_assigned
.AppendLine
(
TrackNumber + "," +
ChannelNumber + "," +
patchNumber + "," +
current_patch_name_found_from_patch_number + "," +
pitch_bent_wheels_value_to_assign + "," +
start_side_of_line_segments_frequency + "," +
final_side_of_line_segments_frequency + "," +
note_number_found_from_the_nearest_frequency_Hertz + "," +
(long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / ___delta___pitch___slabs_finder) * rrr) + "," +
"ptchbnd_endtms_tks" + "," +
////// (int)Math.Min(NoteDuration___with__midtks_units, 1) + "," +
(int)Math.Max(NoteDuration___with__midtks_units, 1) + "," +
NoteVelocity + "," +
"LYR_AND_" + current_note_name_found_from_note_number + "," +
start_side_of_line_segments_frequency + "," +
absoluteTime___start___millis_units + "," +
absoluteTime___final___millis_units + "," +
NoteDuration___with__millsecs_units + "," +
"PITCH_BEND" + "," +
TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER + "," +
DOUBLE___AUTOCALCULATED_SLOPE_IN_DEGREES_FROM_THE_ARC_SIN_OF___FREQ_DIFF_TO_LINE_SEGMENTS_LENGTH.ToString("F6") + "," +
___new_variable_degrees_differences_to_log.ToString("F6") + "," +
start_side_of_line_segments_angle_with_x_axis.ToString("F6") + "," +
final_side_of_line_segments_angle_with_x_axis.ToString("F6")
);
}
catch (Exception ___excp_for_pitchbents)
{
System.Windows.Forms.MessageBox.Show("___excp_for_pitchbents = " + ___excp_for_pitchbents.Message
+ "\r\n" + ___excp_for_pitchbents.StackTrace.ToString()
+ " start_side_of_line_segments_frequency = " + start_side_of_line_segments_frequency
+ " final_side_of_line_segments_frequency = " + final_side_of_line_segments_frequency
+ " frequencyRatio = " + frequencyRatio
+ " deltaPitch_with_log = " + deltaPitch_with_log
+ " linear_delta_pitch = " + linear_delta_pitch
+ " pitch_bent_wheels_value_to_assign = " + pitch_bent_wheels_value_to_assign
)
;
}//catch(Exception ___excp_for_pitchbents)
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"\r\nPITCHBEND_STARTS TrackNumber =" + TrackNumber
+ " ___delta___pitch___slabs_finder = " + ___delta___pitch___slabs_finder
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start___midstksunits(min of two degrees) = " + absoluteTime___start___midstksunits
+ " absoluteTime___final___midstksunits(max of two degrees) = " + absoluteTime___final___midstksunits
+ " NoteDuration___with__midtks_units=" + NoteDuration___with__midtks_units
+ " NoteDuration___with__millsecs_units=" + NoteDuration___with__millsecs_units.ToString("F11")
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time___with__midtks_units = " + slope_in_linear_time___with__midtks_units
+ "to do slope_in_linear_time___with__millsecs_units = " + slope_in_linear_time___with__millsecs_units
+ " rrr= " + rrr
+ " pitch bent time(miditks units)=" + (long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / ___delta___pitch___slabs_finder) * rrr)
// + " pitch bent value Math.Max(6, (int)(8190 - rrr * delta_pitch)) = " + Math.Max(6, (int)(8190 - rrr * delta_pitch))
+ " pitch bent value Math.Max(6, (int)(8192 - rrr * delta_pitch)) = " + Math.Max(6, (int)(8192 - rrr * delta_pitch))
// + " calculated was (8190 - rrr * delta_pitch)= " + (8190 - rrr * delta_pitch)
+ " calculated was (8192 - rrr * delta_pitch)= " + (8192 - rrr * delta_pitch)
+ " calculated linear_delta_pitch = " + linear_delta_pitch
+ " calculated log2_delta_pitch = " + deltaPitch_with_log
+ " check box to use log or not (checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked ) = " + checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked
+ " pitch_bent_wheels_value_to_assign (falling freq cases) = " + pitch_bent_wheels_value_to_assign
);
//delta_pitch
}// for(int rrr=0;rrr<___delta___pitch___slabs_finder;rrr++)
}
//////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
}// if(start_side_of_line_segments_frequency> final_side_of_line_segments_frequency)
#endregion PREVIOUSSAANSTYLESOFPITCHBENDCALCULATIONS
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
/////////////////////////////////////////////////// NOTE ON EVENT WITH THE ZERO VELOCITY MEANS THE NOTE OFF EVENT IS THERE WHICH IS ASSIGNED TO THE OPENED NOTE
collection.AddEvent
(
new
SAANAUDS.Midi.NoteEvent
(
/// absoluteTime + NoteDuration___with__midtks_units
absoluteTime___final___midstksunits
,
ChannelNumber
,
SAANAUDS.Midi
.MidiCommandCode
.NoteOff
,
// note.MidiValue
note_number_found_from_the_nearest_frequency_Hertz
, 0
),
TrackNumber
);
// absoluteTime += SpaceBetweenNotes;
//after note stops
// Optional: Reset RPN (to avoid accidental edits) with cc 38 127
collection.AddEvent
(new
ControlChangeEvent
(
absoluteTime___final___midstksunits
,
ChannelNumber
,
MidiController
.MidiController_RpnMsb__SAAN___ITS___101___FOR_PITCHBENDS_RANGE_CHANGES
,
127
)
,
TrackNumber
);
//after note stops
// Optional: Reset RPN (to avoid accidental edits) with cc 38 127
collection
.AddEvent
(new
ControlChangeEvent
(
absoluteTime___final___midstksunits
,
ChannelNumber
,
MidiController
.MidiController_RpnLsb__SAAN___ITS___100___FOR_PITCHBENDS_RANGE_CHANGES
, 127
)
,
TrackNumber
);
///////////////////////////////////////////////////////////////////////////////////////
TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER++;
// THIS IS THE HEADER FOR THE DATA
___stringbuilder_to_track_instruments_assigned_pitch_assigned_notes_assigned_durations_assigned_pitch_bent_assigned_track_assigned_channel_assigned
.AppendLine
(
TrackNumber + "," +
ChannelNumber + "," +
patchNumber + "," +
current_patch_name_found_from_patch_number + "," +
// "8190," +
"8192," +
start_side_of_line_segments_frequency + "," +
final_side_of_line_segments_frequency + "," +
note_number_found_from_the_nearest_frequency_Hertz + "," +
absoluteTime___start___midstksunits + "," +
absoluteTime___final___midstksunits + "," +
////// (int)Math.Min(NoteDuration___with__midtks_units, 1) + "," +
(int)Math.Max(NoteDuration___with__midtks_units, 1) + "," +
///NOTE OFF EVENT HAS THE VELOCITY ZERO NoteVelocity
0 + "," +
"LYR_AND_" + current_note_name_found_from_note_number + "," +
start_side_of_line_segments_frequency + "," +
absoluteTime___start___millis_units + "," +
absoluteTime___final___millis_units + "," +
NoteDuration___with__millsecs_units + "," +
"NOTE_OFF" + "," +
TEMP_DOUBLE_RAW_MIDI_EVENT_COUNTER + "," +
DOUBLE___AUTOCALCULATED_SLOPE_IN_DEGREES_FROM_THE_ARC_SIN_OF___FREQ_DIFF_TO_LINE_SEGMENTS_LENGTH.ToString("F6") + "," +
___new_variable_degrees_differences_to_log.ToString("F6") + "," +
start_side_of_line_segments_angle_with_x_axis.ToString("F6") + "," +
final_side_of_line_segments_angle_with_x_axis.ToString("F6")
);
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
public_list_of_long_type_note_durations
.Add
(
(absoluteTime___final___midstksunits - absoluteTime___start___midstksunits)
);
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
#endregion REGION_TO_POPULATE_LINESEGMENT_TO_NOTES_FOR___SMALLER_LINE_SEGMENTS
}//if(length_of_lines_2d_flattened<___double_MINIMUM_LENGTH_AFTER_WHICH_TO_BREAK_THE_LINE_SEGMENT)
else
{
}///end of else of //if(length_of_lines_2d_flattened<___double_MINIMUM_LENGTH_AFTER_WHICH_TO_BREAK_THE_LINE_SEGMENT)
//to do entities.AddItem(En)
}// foreach (SAANSDXF.Entities.Line line in only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments)
// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
//////////////public List<double> public_list_of_6_digit_double_precission_unique_slopes_found = null;
//////////////public List<long> public_list_of_long_type_note_durations = null;
///
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.finalizer_dxf_for_sbuilder_for_dxf();
System.Windows.Forms.MessageBox.Show("populated entities___for_longer_line_segments now with count = " + entities___for_longer_line_segments.Count.ToString());
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
string overall_divisors_taken
=
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING___DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
.TrimEnd().TrimStart().Trim();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////Sorting a list of double values in C# is straightforward. You can use the List<T>.Sort method for ascending order and the List<T>.Sort method with a custom comparer for descending order. Here's how you can do it:
//////Ascending Order
//////List<double> doubleList = new List<double> { 3.5, 2.1, 4.7, 1.9 };
//////doubleList.Sort(); // Sorts the list in ascending order
//////Descending Order
//////List<double> doubleList = new List<double> { 3.5, 2.1, 4.7, 1.9 };
//////doubleList.Sort((a, b) => b.CompareTo(a)); // Sorts the list in descending order
//////In the descending order example, the lambda expression(a, b) => b.CompareTo(a) is used to reverse the default comparison.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
string longlines_plitted_divisors_taken_for_filesnames_parts = "";
//////overall_divisors_taken = System.DateTime.Now.ToString() + "\r\n";
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
//////.Sort();
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
.Sort();
foreach (double ___dbl_longlinesplitted_divisors_sorted in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
)
{
if (___dbl_longlinesplitted_divisors_sorted == 1)
{
longlines_plitted_divisors_taken_for_filesnames_parts += ___dbl_longlinesplitted_divisors_sorted + ",";
goto gotohere_since_divisor_1_is_found_in_______longlines_plitted_divisors_taken_for_filesnames_parts;
}
else
{
//continue
longlines_plitted_divisors_taken_for_filesnames_parts += ___dbl_longlinesplitted_divisors_sorted + ",";
}
}
////// foreach (double ___dbl_longlinesplitted_divisors_sorted in
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
////// )
///
gotohere_since_divisor_1_is_found_in_______longlines_plitted_divisors_taken_for_filesnames_parts:;
longlines_plitted_divisors_taken_for_filesnames_parts
= longlines_plitted_divisors_taken_for_filesnames_parts.TrimEnd(',');
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
string circlesplitted_divisors_taken_for_filesnames_parts = "";
//////overall_divisors_taken = System.DateTime.Now.ToString() + "\r\n";
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
//////.Sort();
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
.Sort();
foreach (double ___dbl_circlesplitted_divisors_sorted in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
)
{
if (___dbl_circlesplitted_divisors_sorted == 1)
{
circlesplitted_divisors_taken_for_filesnames_parts += ___dbl_circlesplitted_divisors_sorted + ",";
goto gotohere_since_divisor_1_is_found_in_______circlesplitted_divisors_taken_for_filesnames_parts;
}
else
{
//continue
circlesplitted_divisors_taken_for_filesnames_parts += ___dbl_circlesplitted_divisors_sorted + ",";
}
}
////// foreach (double ___dbl_circlesplitted_divisors_sorted in
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
////// )
///
gotohere_since_divisor_1_is_found_in_______circlesplitted_divisors_taken_for_filesnames_parts:;
circlesplitted_divisors_taken_for_filesnames_parts
= circlesplitted_divisors_taken_for_filesnames_parts.TrimEnd(',');
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
string overall_divisors_taken_for_filesnames_parts = "";
//////overall_divisors_taken = System.DateTime.Now.ToString() + "\r\n";
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
.Sort();
foreach (double ___dbl_divisors_sorted in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
)
{
if(___dbl_divisors_sorted==1)
{
overall_divisors_taken_for_filesnames_parts += ___dbl_divisors_sorted + ",";
goto gotohere_since_divisor_1_is_found_in_______overall_divisors_taken_for_filesnames_parts;
}
else
{
//continue
overall_divisors_taken_for_filesnames_parts += ___dbl_divisors_sorted + ",";
}
}
////// foreach (double ___dbl_divisors_sorted in
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
////// )
///
gotohere_since_divisor_1_is_found_in_______overall_divisors_taken_for_filesnames_parts:;
overall_divisors_taken_for_filesnames_parts
= overall_divisors_taken_for_filesnames_parts.TrimEnd(',');
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
string formattedDateforfilesnames = System.DateTime.Now.ToString("yyyyMMddHHmmss");
string fileName_for_midi_from_the_dxf = "";
fileName_for_midi_from_the_dxf
=
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
////// + "_BPM=" + this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// + "_TPQN=" + this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// + "_TS=" + this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.ToString()
////// + "_" + this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.ToString()
////// + "_totslps=" + this.public_list_of_6_digit_double_precission_unique_slopes_found.Count.ToString()
//////+"_tot_notes="+ entities.OfType<SAANSDXF.Entities.Line>().Count().ToString()
////// +"_tot_durs=" + this.public_list_of_long_type_note_durations.Count.ToString() + "_millis_"
////// + "calcs_ptchbnds="+string_for_filesnames_the_pitch_bends_controller_linear_freqs_diffs_or_log_2_with_freq_ratios
////// +"_"+string_for_filesnames_the_velocity_chosen_states_controller_fixed_or_changed_with_sin_theta_or_128_misus_sin_theta_states
//////////// + ".mid";
//////public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444
//////public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445
//////public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
+ "("+
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444
+ "_"+
circlesplitted_divisors_taken_for_filesnames_parts
+"_"+
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445
+ "_" +
longlines_plitted_divisors_taken_for_filesnames_parts
+ "_"+
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446
+ "_"
+ overall_divisors_taken_for_filesnames_parts
+ ")"
+ "_" + this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
+ "_" + this.textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS.Text.ToString().TrimEnd().TrimStart().Trim().Replace(" ", "")
+ "_" + this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
+ "_(" + this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.ToString()
+ "_" + this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.ToString()
+ ")_" + this.public_list_of_6_digit_double_precission_unique_slopes_found.Count.ToString()
+ "_(" +
(
entities.OfType<SAANSDXF.Entities.Line>().Count().ToString()
+"_"+
only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments
.Count().ToString()
)
+ ")_" + this.public_list_of_long_type_note_durations.Count.ToString() + "_millis_"
+ "_" + string_for_filesnames_the_pitch_bends_controller_linear_freqs_diffs_or_log_2_with_freq_ratios
+ "_" + string_for_filesnames_the_velocity_chosen_states_controller_fixed_or_changed_with_sin_theta_or_128_misus_sin_theta_states
+ "_" + Math.Round(this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions, 0).ToString()
+ "_" + Math.Round(this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions, 0).ToString()
+ "_" + Math.Round(this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied, 0).ToString()
+ "_" + Math.Round(this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS, 0).ToString()
+ ".mid";
if(fileName_for_midi_from_the_dxf.Length>=255)
{
fileName_for_midi_from_the_dxf
=
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
////// + "_BPM=" + this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// + "_TPQN=" + this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// + "_TS=" + this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.ToString()
////// + "_" + this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.ToString()
////// + "_totslps=" + this.public_list_of_6_digit_double_precission_unique_slopes_found.Count.ToString()
//////+"_tot_notes="+ entities.OfType<SAANSDXF.Entities.Line>().Count().ToString()
////// +"_tot_durs=" + this.public_list_of_long_type_note_durations.Count.ToString() + "_millis_"
////// + "calcs_ptchbnds="+string_for_filesnames_the_pitch_bends_controller_linear_freqs_diffs_or_log_2_with_freq_ratios
////// +"_"+string_for_filesnames_the_velocity_chosen_states_controller_fixed_or_changed_with_sin_theta_or_128_misus_sin_theta_states
////// + ".mid";
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
+ "("
//////+ circlesplitted_divisors_taken_for_filesnames_parts
//////+ "_" +
//////longlines_plitted_divisors_taken_for_filesnames_parts
////// + "_"
//////+ overall_divisors_taken_for_filesnames_parts
+ formattedDateforfilesnames +
")"+System.DateTime.Now.ToString("ddMMyyyyHHmmss")
+ "_" + this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
+ "_" + this.textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS.Text.ToString().TrimEnd().TrimStart().Trim().Replace(" ", "")
+ "_" + this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
+ "_(" + this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.ToString()
+ "_" + this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.ToString()
+ ")_" + this.public_list_of_6_digit_double_precission_unique_slopes_found.Count.ToString()
+ "_(" +
(
entities.OfType<SAANSDXF.Entities.Line>().Count().ToString()
+ "_" +
only_total_line_segments_on_which_to_iterate___entities___for_longer_line_segments
.Count().ToString()
)
+ ")_" + this.public_list_of_long_type_note_durations.Count.ToString() + "_millis_"
+ "_" + string_for_filesnames_the_pitch_bends_controller_linear_freqs_diffs_or_log_2_with_freq_ratios
+ "_" + string_for_filesnames_the_velocity_chosen_states_controller_fixed_or_changed_with_sin_theta_or_128_misus_sin_theta_states
+ "_" + Math.Round(this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions, 0).ToString()
+ "_" + Math.Round(this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions, 0).ToString()
+ "_" + Math.Round(this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied, 0).ToString()
+ "_" + Math.Round(this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS, 0).ToString()
+ ".mid";
}//if(formattedDateforfilesnames.Length>=255)
//////////////////////////////////////////////////////////////////// to make the overwrite free systems //////
if (System.IO.File.Exists(fileName_for_midi_from_the_dxf))
{
fileName_for_midi_from_the_dxf
=
fileName_for_midi_from_the_dxf
.Replace
(".mid"
,
System.DateTime.Now.ToString("HHmmss") + ".mid"
);
}
else
{
//when the file dont exist
fileName_for_midi_from_the_dxf = fileName_for_midi_from_the_dxf;
}//end of else
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
fileName_for_midi_from_the_dxf
+ "_trk_cols_chk.dxf"
,
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.sbuilder_for_dxf.ToString()
);
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
//////System.IO.File.WriteAllText
////// (
////// fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// ,
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .ToString()
////// );
//////System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
//////System.Windows.Forms.MessageBox.Show(" MIDI files collection.PrepareForExport(); starts");
/////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
/////////caution caution caution we will add these later
//////collection.PrepareForExport();
/////////caution caution caution we will add these later MidiFile.Export(fileName, collection);
/////////
///////// caution caution caution we will add these later
/////////
//////System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
////////public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
///////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
//////SAANAUDS.Midi.MidiFile.Export
////// (
////// fileName_for_midi_from_the_dxf
////// , collection
////// );
foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[0].Position.X;
verty1 = poly2d.Vertexes[0].Position.Y;
vertx2 = poly2d.Vertexes[1].Position.X;
verty2 = poly2d.Vertexes[1].Position.Y;
bulge = poly2d.Vertexes[0].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
//i have the radius, finally again
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
/////////////////////////////////////////////////////////////////
for (int z = 1; z < vertextcount - 1; z++)
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[z].Position.X;
verty1 = poly2d.Vertexes[z].Position.Y;
vertx2 = poly2d.Vertexes[z + 1].Position.X;
verty2 = poly2d.Vertexes[z + 1].Position.Y;
bulge = poly2d.Vertexes[z].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
}
///////////////////////////////////////////////////////////////// is a closed polyline?
if (poly2d.IsClosed)
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[vertextcount - 1].Position.X;
verty1 = poly2d.Vertexes[vertextcount - 1].Position.Y;
vertx2 = poly2d.Vertexes[0].Position.X;
verty2 = poly2d.Vertexes[0].Position.Y;
bulge = poly2d.Vertexes[vertextcount - 1].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
}
poly2d.Normal = new Vector3(0, 0, 1);
}//foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
System.Windows.Forms.MessageBox.Show("all entities in dxf reading done\r\n\r\n\r\n SO MIDI files collection.PrepareForExport(); starts");
///caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
///caution caution caution we will add these later
collection.PrepareForExport();
///caution caution caution we will add these later MidiFile.Export(fileName, collection);
///
/// caution caution caution we will add these later
///
System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
//public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
/// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
///
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
SAANAUDS.Midi.MidiFile.Export
(
fileName_for_midi_from_the_dxf
, collection
);
////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
///////////////////////////////////THE MIDIFILE EXPORT IS CALLED HERE WHICH TAKES LONG TIME TO REARRANGE THE DATA PROPERLY FOR THE TRACK WISE AND FOR THE TIME POINT WISE //////////
/// THIS totallength IS FOR THE LENGTH OF THE DXF OBJECTS AND NOT TO DO WITH THE MIDI FILES DURATIONS
/// THIS totallength IS FOR THE LENGTH OF THE DXF OBJECTS AND NOT TO DO WITH THE MIDI FILES DURATIONS
/// THIS totallength IS FOR THE LENGTH OF THE DXF OBJECTS AND NOT TO DO WITH THE MIDI FILES DURATIONS
totallength = Math.Round(totallength * roundamount, 0) / roundamount;
string tempstring = "Total length of entities in dxf = " + totallength.ToString();
////////////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
System.Windows.Forms.MessageBox.Show("starting writing log files at " + fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt");
System.IO.File.WriteAllText
(
fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt"
,
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.ToString()
);
//////System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
///
System.IO.File.WriteAllText
(
fileName_for_midi_from_the_dxf + "_for_analyses.SAANOWNCSVLINIERSCALEDDXFFORMIDI"
,
___stringbuilder_to_track_instruments_assigned_pitch_assigned_notes_assigned_durations_assigned_pitch_bent_assigned_track_assigned_channel_assigned
.ToString()
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////
///
StringBuilder ___recordingunfilled_degrees___0_to_36000 = new StringBuilder();
___recordingunfilled_degrees___0_to_36000.Clear();
___recordingunfilled_degrees___0_to_36000
.AppendLine
(
"COL_0_CENTI_DEGREES(NOT_MILLISECONDS),COL_1_NUMBER_OF_RUNNING_NOTES,COL_2_NUMBER_OF_NOTES_STARTED,COL_3_NUMBER_OF_NOTES_COMPLETES"
);
for (int ___rrrfiller_for_reports = 0; ___rrrfiller_for_reports < ___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS.GetLength(0); ___rrrfiller_for_reports++)
{
for (int ___cccfiller_for_reports = 0; ___cccfiller_for_reports < ___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS.GetLength(1); ___cccfiller_for_reports++)
{
___recordingunfilled_degrees___0_to_36000
.Append
(
//Math.Round
// (
___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS
[___rrrfiller_for_reports, ___cccfiller_for_reports]
// ,3
// )
.ToString("F3")
+ ","
);
}// for (int ___cccfiller_for_reports = 0; ___cccfiller_for_reports < ___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS.GetLength(1); ___cccfiller_for_reports++)
___recordingunfilled_degrees___0_to_36000
.AppendLine();
}// for (int ___rrrfiller_for_reports=0; ___rrrfiller_for_reports< ___temp_inside_buttons_click___double_array_NOTE_DENSITY_CHECKING_2d_to_store_counts_total_durations_TOTAL_AND_OTHER_STATS_for_CENTI_DEGREES_360_TIMES_100_FILLED_STATUS.GetLength(0); ___rrrfiller_for_reports++)
System.IO.File.WriteAllText
(
fileName_for_midi_from_the_dxf + ".CENTI_DEGREES_FILLED_OR_UNFILLED_360_100_DEGREES.CSV"
,
___recordingunfilled_degrees___0_to_36000
.ToString()
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///col 0 TRACK NUMBER
///COL 1 COUNT OF NOTES ASSIGNED TO THIS TRACK
///COL 2 TOTAL MIDITIKS ASSIGNED TO THIS TRACK
///COL 3 TOTAL MILLISECONDS ASSIGNED TO THIS TRACK
///COL 3+1 PERCENTAGE OF TOTAL NOTES ASSIGNED TO THIS TRACK
///COL 3+2 PERCENTAGE OF MILLISECONDS ASSIGNED TO THIS TRACK
///COL 6 TOTAL NOTE VELOCITY ASSIGNED TO THIS TRACK
///COL 6+1 CUMULATIVE PERCENTAGE OF NOTE VELOCITY UPTO NOW ASSIGNED TO THIS TRACK
///COL 8 THE PATCH NUMBER ASSIGNED TO THIS TRACK
///
//double[,] TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
// = new double[100, 30];
///col 0 TRACK NUMBER
///COL 1 COUNT OF NOTES ASSIGNED TO THIS TRACK
///COL 2 TOTAL MIDITIKS ASSIGNED TO THIS TRACK
///COL 3 TOTAL MILLISECONDS ASSIGNED TO THIS TRACK
///COL 3+1 PERCENTAGE OF TOTAL NOTES ASSIGNED TO THIS TRACK
///COL 3+2 PERCENTAGE OF MILLISECONDS ASSIGNED TO THIS TRACK
///COL 6 TOTAL NOTE VELOCITY ASSIGNED TO THIS TRACK
///COL 6+1 CUMULATIVE PERCENTAGE OF NOTE VELOCITY UPTO NOW ASSIGNED TO THIS TRACK
///COL 8 THE PATCH NUMBER ASSIGNED TO THIS TRACK
///COL 9 TOTAL_CENTI_DEGREES_USED_FOR_THIS_TRACK
///COL 10 PERCENTAGE_CENTI_DEGREES_USED_FOR_THIS_TRACK
///COL 11 TO COL 11+128=139 ARE THE NOTES ASSIGNED THAT IS 11+NOTE_NUMBER_ASSIGNED_FOR THIS_TRACK INSTRUMENTS FOR THE TRACK ARE FIXED
///COL 140 TO COL 140+128=268 ARE THE NOTES ASSIGNED THAT IS 140+NOTE_NUMBER_ASSIGNED_FOR THIS_TRACK INSTRUMENTS FOR THE TRACK ARE FIXED
///COL 269 IS THE PERCENTAGE OF MIDITIKS USED
StringBuilder ___stringbuilder_for_track_tracking = new StringBuilder();
___stringbuilder_for_track_tracking.Clear();
___stringbuilder_for_track_tracking
.Append
(
"\r\nTRACK_NUMBER" +
",COUNT_OF_NOTES_ASSIGNED_TO_THIS_TRACK" +
",TOTAL_MIDITICKS_ASSIGNED_TO_THIS_TRACK(DURATIONS_SUMS)" +
",TOTAL_MILLISECONDS_ASSIGNED_TO_THIS_TRACK(DURATIONS_SUMS)" +
",PERCENTAGE_OF_TOTAL_NOTES_ASSIGNED_TO_THIS_TRACK" +
",PERCENTAGE_OF_MILLISECONDS_ASSIGNED_TO_THIS_TRACK(>100 POSSIBLE)" +
",TOTAL_NOTES_VELOCITIES_SUMS_ASSIGNED_TO_THIS_TRACK" +
",CUMULATIVE_PERCENTAGE_OF_NOTES_VELOCITIES_SUMS_ASSIGNED_TO_THIS_TRACK" +
",PATCH_NUMBER_ASSIGNED_TO_THIS_TRACK" +
",TOTAL_CENTIDEGREES_ASSIGNED_TO_THIS_TRACK" +
",PERCENTAGE_CENTIDEGREES_ASSIGNED_TO_THIS_TRACK(>100 POSSIBLE)"
);
for (int columnsgenerators_for_notes_counter = 11; columnsgenerators_for_notes_counter < 128; columnsgenerators_for_notes_counter++)
{
___stringbuilder_for_track_tracking
.Append
(
"," +
"NOTES_COUNTER_FOR_NOTES_NUMBER_"
+
(columnsgenerators_for_notes_counter - 11)
);
}// for(int columnsgenerators_for_notes_counter=11; columnsgenerators_for_notes_counter<128; columnsgenerators_for_notes_counter++)
for (int columnsgenerators_for_notes_DURATIONS = 140; columnsgenerators_for_notes_DURATIONS < 268; columnsgenerators_for_notes_DURATIONS++)
{
___stringbuilder_for_track_tracking
.Append
(
"," +
"NOTES_DURATION_TOTAL_FOR_NOTES_NUMBER_"
+
(columnsgenerators_for_notes_DURATIONS - 140)
);
}// for(int columnsgenerators_for_notes_DURATIONS=11; columnsgenerators_for_notes_DURATIONS<268; columnsgenerators_for_notes_DURATIONS++)
///COLUMN 269 IS FOR THE PERCENTAGE OF MIDITIKS USED FOR THE TRACK
___stringbuilder_for_track_tracking
.Append
(
"," +
"COL_269_PERCENTAGE_OF_MIDITKS(>100 POSSIBLE)"
);
___stringbuilder_for_track_tracking
.Append
("\r\n");
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
for (int rrr_to_fill_datagrids = 0; rrr_to_fill_datagrids <= 68; rrr_to_fill_datagrids++)
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[320 + rrr_to_fill_datagrids]
.Cells[1].Style.BackColor = Color.White;
dataGridViewFOR_GT_PRESETS_DATA.Rows[320 + rrr_to_fill_datagrids]
.Cells[1].Style.ForeColor
= Color.Black;
dataGridViewFOR_GT_PRESETS_DATA.Rows[320 + rrr_to_fill_datagrids]
.Cells[2].Value = "";
/// flushing first everytimes
///
if (TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[rrr_to_fill_datagrids + 2, 1] > 0)
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[320 + rrr_to_fill_datagrids]
.Cells[1].Style.BackColor = Color.LightGreen;
dataGridViewFOR_GT_PRESETS_DATA.Rows[320 + rrr_to_fill_datagrids]
.Cells[1].Style.ForeColor
= Color.Black;
dataGridViewFOR_GT_PRESETS_DATA.Rows[320 + rrr_to_fill_datagrids]
.Cells[2].Value =
/// our track assignments starts from 2
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[rrr_to_fill_datagrids + 2, 1].ToString("F1")
+ "_ptch=" +
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[rrr_to_fill_datagrids + 2, 8].ToString("F1")
+ "_NOTMILLIS%= " +
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[rrr_to_fill_datagrids + 2, 5].ToString("F1")
///"TRACK_2_GTMIDS_PATCH_1___320_DRUMS_1____20TH_TO_19TH";
///;
///
/// TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
+ "_NOTESTKS%= " +
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[rrr_to_fill_datagrids + 2, 269].ToString("F1")
;
}
else
{
dataGridViewFOR_GT_PRESETS_DATA.Rows[320 + rrr_to_fill_datagrids]
.Cells[1].Style.BackColor = Color.White;
dataGridViewFOR_GT_PRESETS_DATA.Rows[320 + rrr_to_fill_datagrids]
.Cells[1].Style.ForeColor
= Color.Black;
}
}// for (int rrr_to_fill_datagrids = 0; rrr_to_fill_datagrids <= 68; rrr_to_fill_datagrids++)
for (int r_for_tracktracker = 0; r_for_tracktracker < TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS.GetLength(0); r_for_tracktracker++)
{
___stringbuilder_for_track_tracking
.AppendLine();
for (int c_for_tracktracker = 0; c_for_tracktracker < TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS.GetLength(1); c_for_tracktracker++)
{
if (TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[r_for_tracktracker, 0] > 0)
{
___stringbuilder_for_track_tracking
.Append
(
TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
[
r_for_tracktracker, c_for_tracktracker
]
.ToString("F3")
+
","
);
}
//////if (TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS
////// [r_for_tracktracker, 0] > 0)
}// for (int c_for_tracktracker = 0; c_for_tracktracker < TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS.GetLength(1); c_for_tracktracker++)
}// for (int r_for_tracktracker=0; r_for_tracktracker< TEMP_LOCAL_DOUBLE_ARRAY_100_rows_for_tracks_x_300_columns_TRACKING_TRACKS_WISE_DISTRIBUTIONS_OF_NOTES___TO_STORE_COUNTS_AND_TOTAL_DURATIJONS_RELATED_REPORTS.GetLength(0); r_for_tracktracker++)
System.IO.File.WriteAllText
(
fileName_for_midi_from_the_dxf + ".___stringbuilder_for_track_tracking.CSV"
,
___stringbuilder_for_track_tracking
.ToString()
);
///////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
fileName_for_midi_from_the_dxf
+ ".no_velocity_flutes_melody_data"
,
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.ToString()
);
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
fileName_for_midi_from_the_dxf
+ ".with_velocity_flutes_melody_data"
,
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.ToString()
);
////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show
(
___stringbuilder_for_track_tracking.ToString()
);
System.Windows.Forms.MessageBox.Show("SAVED CENTIDEGREES_REPORT_ALSO\r\n\r\n\r\n notes allocated distributions at centi degrees(CAUTION not to confuse with milliseconds)\r\n\r\n\r\n" + fileName_for_midi_from_the_dxf + ".CENTI_DEGREES_FILLED_OR_UNFILLED_360_100_DEGREES.CSV");
System.Windows.Forms.MessageBox.Show("text logs saving Done" + fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt");
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
///while writing THE MIDI FILE FIRST WE NEED TO READ THE DXF FILE FOR THE LINE SEGMENTS //////
///AND THEN CALCULATING THE TOTAL DURATIONS AND THEN PUTTING THE WHOLE RECALCULATIONS DONE FIRST
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
=
new List<double>();
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Sort();
//////double large_radius_to_use_for_gridding =
////// ___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
////// *
////// ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
////// + 3000;
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
/// and while writing the midi files first we will prepare track zero events for lyrics and the copyrights
/// where we will put the data for these things there from the dxf line segments data as read there
///
foreach (
double six_digit_radian_in_list
in
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
)
{
double six_digit_radian
= 0;
// in previous loop we have already found this
/// ___temp_total_length___of_the_song
///
six_digit_radian = Math.Round(six_digit_radian_in_list, 6);
string ___GRIDS_TIMES_TEXT_DATA = "";
//////___GRIDS_TIMES_TEXT_DATA
////// =
////// (System.Math.Round(___temp_total_length___of_the_song * six_digit_radian, 0)).ToString();
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//////double ___temp_x1_for_grids_end
////// = large_radius_to_use_for_gridding * System.Math.Cos(six_digit_radian);
//////double ___temp_y1_for_grids_end
////// = large_radius_to_use_for_gridding * System.Math.Sin(six_digit_radian);
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_circle_WITH_BLOCK_LEVEL_COLOR
////// (0, 0, 0,
////// large_radius_to_use_for_gridding, "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// );
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
////// (
////// 0, 0, -600000,
////// ___temp_x1_for_grids_end
////// ,
////// ___temp_y1_for_grids_end
////// ,
////// -600000,
////// "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// );
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_text_ON_TOP_VIEW_WITH_BLOCK_LEVEL_COLOR
////// (
////// ___temp_x1_for_grids_end
////// ,
////// ___temp_y1_for_grids_end
////// ,
////// -600000, 0, 60,
////// "LAYER_GRIDS_CIRCLE",
////// ___GRIDS_TIMES_TEXT_DATA
////// ,
////// "XDATA", 6
////// );
}
//////foreach (
//////double six_digit_radian_in_list
//////in
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
//////.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
//////)
//////textBox2.Text = tempstring;
//////textBox2.Refresh();`
/////////// great https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
//////foreach (Layout layout in SAAN_dxf.Layouts)
////// {
////// List<DxfObjectReference> entities = SAAN_dxf.Layouts.GetReferences(layout);
////// foreach (DxfObjectReference o__dxfobjectreference_entity in entities)
////// {
////// EntityObject entity = o__dxfobjectreference_entity as EntityObject;
////// }//foreach (DxfObject o in entities)
////// }// foreach (Layout layout in SAAN_dxf.Layouts)
//////// foreach (var entity in SAAN_dxf.Entities)
//////foreach (var entity in SAAN_dxf)
////// {
////// if (entity is Circle)
////// {
////// // Handle Circle entity
////// Circle circle = (Circle)entity;
////// DrawCircle(g, circle);
////// }
////// else if (entity is Line)
////// {
////// // Handle Line entity
////// Line line = (Line)entity;
////// DrawLine(g, line);
////// }//if (entity is Circle)
////// // Add more conditions to handle other entities (e.g., Arc, Text, etc.)
////// }//foreach (EntityObject entity in dxf.Modelspace)
//////// Specify the path to your CSV file
//////string csvFilePath = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// + "chkers.csv";// ;// "d:\\chkers.csv";
//////// Load CSV data
//////string[] csvLines = System.IO.File.ReadAllLines(csvFilePath);
// Parse CSV data and extract information
// You'll need to implement your own logic to extract tempo, time signature, key signature, and channel-wise data.
//////// Create a new MIDI file
//////SAANAUDS.Midi.MidiFile midiFile = new SAANAUDS.Midi.MidiFile(csvFilePath+"_new.mid");
//////// Set tempo (example value, replace with your own)
//////// midiFile.DeltaTicksPerQuarterNote = 960;
//////midiFile.DeltaTicksPerQuarterNote = 960;
/// SAANAUDS.Midi.MidiEvent tempoEvent = new SAANAUDS.Midi.TempoEvent(500000); // Tempo in microseconds per quarter note (e.g., 500,000 for 120 BPM)
// Create a new MIDI track for your data
// SAANAUDS.Midi.MidiTrack track = new SAANAUDS.Midi.MidiTrack();
/// SAANAUDS.Midi. track = new SAANAUDS.Midi.MidiTrack();
/// midiFile.Tracks.Add(track);
/////////////// we cannot prepare the midi file object to save the midi file
///instead we need to prepare MidiEventCollection and then need to save that to file through
///static method of the MidiFile
///
// Add tempo event
/// track.AddEvent(tempoEvent);
///
///refer F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL
///\excelformulaparser
///\DOING_GT06012020plus
///\DSMSETS_ANI_DNGIFGTTODOINOFFICE
///\ExcelFormulaParserSample\SAANAUDS\SAANAUDS_CHECKING_SimpleMidiFileWriter.cs
///
/////// SAANAUDS.Midi.MidiEventCollection ___saanauds_midieventscollection = new SAANAUDS.Midi.MidiEventCollection();
//////// Add your note events and pitch bend events to the track
//////foreach (string line in csvLines)
////// {
////// string[] parts = line.Split(',');
////// if (parts.Length >= 5)
////// {
////// int channel = int.Parse(parts[1]);
////// int noteNumber = int.Parse(parts[2]);
////// int velocity = int.Parse(parts[3]);
////// long absoluteTime = long.Parse(parts[4]);
////// // Create note on and note off events, and pitch bend events
////// var noteOn = new NoteOnEvent(absoluteTime, channel, noteNumber, velocity);
////// var noteOff = new NoteEvent(absoluteTime + 1000, channel, MidiCommandCode.NoteOff, noteNumber, velocity);
////// var pitchBend = new PitchBendEvent(absoluteTime, channel, 8192); // Example pitch bend value
////// // Add events to the track
////// track.AddEvent(noteOn);
////// track.AddEvent(noteOff);
////// track.AddEvent(pitchBend);
////// }
////// }
//////// Save the MIDI file
//////string outputFile = "output.mid";
//////midiFile.Save(outputFile);
}
catch (Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
{
System.Windows.Forms.MessageBox.Show
("_excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX" + _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.Message + "\r\n\r\n\r\n"
+ _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.StackTrace.ToString()
);
}//catch(Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
}// private void buttonTOREADDXFTOGENERATEMIDI_Click(object sender, EventArgs e)
////// private void buttonTOREADDXFTOGENERATEMIDI_Click(object sender, EventArgs e)
////// {
////// try
////// {
////// /////////////////////////////////////////////////////////////////////////////////////
////// System.Windows.Forms.MessageBox.Show("layers prefers NOTE_trknos_chnlsnos_patchnos_velocity");
////// ////////////////////REFERENCES FOR THE LAYER NAMES
////// ////////////////////////////"NOTE_" +
////// ////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////// ////////////////////////////+ "_" +
////// ////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////// ////////////////////////////+ "_" +
////// ////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////// ////////////////////////////// not taking the pitch bends in the layers names
////// ////////////////////////////+ "_" +
////// ////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
////// ///
////// //D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// ExcelFormulaParser_GT_PARSER
////// .SAANAUDS
////// .
////// PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
////// ();
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////SAANAUDSFRESH.MidiUtils.MidiConverter
////// ////// _saan_checking_MidiFile_Converter = new SAANAUDSFRESH.MidiUtils.MidiConverter();
////// //////SAANAUDSFRESH.MidiUtils.MainForm _to_chk_main_form = new SAANAUDSFRESH.MidiUtils.MainForm();
////// //////_to_chk_main_form.Show();
////// ////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
////// ///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
////// ///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
////// ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// =
////// new List<double>();
////// ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// .Clear();
////// ////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
////// ///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
////// ///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
////// ////// System.Windows.Forms.MessageBox.Show("THE FIRST RUN DOES DIFFERENT THING(EXPERIMENTING)\r\n THE SECOND RUN GENERATES THE MIDI WITH THE PITCH BETS ON THE NOTES FROM STARTING");
////// ////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "DXF Files (.dxf)|*.dxf|All Files (*.*)|*.*";
////// ////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
////// ////// string ___temp_dxf_file_to_read_for_mids
////// ////// =
////// ////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////// ////// ////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
////// ////// ///////////////yes running
////// ////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile(___temp_dxf_file_to_read_for_mids, false);
////// ////// /// / yes running
////// //////// _midf.Describe();
////// ////// System.IO.File.WriteAllText(___temp_dxf_file_to_read_for_mids+ "TO ADD THIS _midf.Describe().TXT", _midf.ToString());
////// ////// ////////////////////////////////////// yessssssssssssssssssssss worked
////// ////// System.Windows.Forms.MessageBox.Show(___temp_dxf_file_to_read_for_mids);
////// }
////// catch (Exception _excp_to_read_or_prepare_log_the_midi_files)
////// {
////// System.Windows.Forms.MessageBox.Show
////// ("_excp_to_read_or_prepare_log_the_midi_files" + _excp_to_read_or_prepare_log_the_midi_files.Message + "\r\n\r\n\r\n"
////// + _excp_to_read_or_prepare_log_the_midi_files.StackTrace.ToString()
////// );
////// }//catch(Exception _excp_to_read_or_prepare_log_the_midi_files)
////// ////////////////////////////////////////////////////////////////////////////////////////////
////// ///doing with the new kind of converting
////// ///
////// try
////// {
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// ExcelFormulaParser_GT_PARSER
////// .SAANAUDS
////// .
////// PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
////// ();
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// ExcelFormulaParser_GT_PARSER
////// .SAANAUDS
////// .
////// PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
////// ();
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// //////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// // TO DO TO PLAY MIDI NOTES
////// //////https://stackoverflow.com/questions/30349066/cannot-play-a-note-with-naudio-midi
////// ///
////// ////////////using System;
////// ////////////using System.Collections.Generic;
////// ////////////using System.ComponentModel;
////// ////////////using System.Data;
////// ////////////using System.Drawing;
////// ////////////using System.Linq;
////// ////////////using System.Text;
////// ////////////using System.Windows.Forms;
////// ////////////using NAudio.Midi;
////// ////////////using System.Threading;
////// ////////////namespace SoundVision10
////// //////////// {
////// //////////// public partial class Form1 : Form
////// //////////// {
////// //////////// public Form1()
////// //////////// {
////// //////////// InitializeComponent();
////// //////////// }
////// //////////// private void Form1_Load(object sender, EventArgs e)
////// //////////// {
////// //////////// }
////// //////////// private void button1_Click(object sender, EventArgs e)
////// //////////// {
////// //////////// //Thread.Sleep inside GUI is just for example
////// //////////// using (MidiOut midiOut = new MidiOut(0))
////// //////////// {
////// //////////// midiOut.Volume = 65535;
////// //////////// midiOut.Send(MidiMessage.StartNote(60, 127, 0).RawData);
////// //////////// MessageBox.Show("Sent");
////// //////////// Thread.Sleep(1000);
////// //////////// midiOut.Send(MidiMessage.StopNote(60, 0, 0).RawData);
////// //////////// Thread.Sleep(1000);
////// //////////// }
////// //////////// }
////// //////////// }
////// //////////// }
////// ///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
////// ///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
////// ///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
////// RECALCULATE_THE_MIDI_DATA_MICROSECONDS_NOTES_ETC();
////// ///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
////// ///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
////// ///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
////// ///
////// public_list_of_6_digit_double_precission_unique_slopes_found
////// = new List<double>();
////// public_list_of_6_digit_double_precission_unique_slopes_found
////// .Clear();
////// public_list_of_long_type_note_durations
////// = new List<long>();
////// public_list_of_long_type_note_durations
////// .Clear();
////// StringBuilder ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// = new StringBuilder();
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes.Clear();
////// //////http://www.synthfont.com/SFSPEC21.PDF
////// //////http://www.synthfont.com/SFSPEC21.PDF
////// /////////http://www.synthfont.com/SFSPEC21.PDF
////// //D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
////// //////https://markheath.net/category/naudio
////// ///
////// ////// ///TESTED IT IS WORKING AND PLAYING ALSO
////// ////// string[] strs = {
////// ////// "" +
////// ////// "D:\\dekhte_haiisko___guitar.mid"
////// ////// , "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
////// //////SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "DXF Files (.dxf)|*.dxf|All Files (*.*)|*.*";
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
////// string ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////// ////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
////// ///////////////yes running
////// ///////////////
////// //////////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID", false);
////// ///////////////yes running
////// /////////////// _midf.Describe()
////// ///////////////
////// ////////////System.IO.File.WriteAllText("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID.txt", _midf.ToString());
////// ////////////////////////////////////// yessssssssssssssssssssss worked
////// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
////// /// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
////// /// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
////// string[] strs = {
////// "" +
////// /// "D:\\dekhte_haiisko___guitar.mid"
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_HARDCODED_NOTES.MID"
////// , "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
////// SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
////// System.Windows.Forms.MessageBox.Show(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
////// //https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
////// // Create a Graphics object from the PictureBox
////// Graphics g = pictureBox_TO_TRY_SAANDXF.CreateGraphics();// // e.Graphics;
////// // Load the DXF file
////// SAANSDXF.DxfDocument SAAN_dxf = SAANSDXF.DxfDocument.Load(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
////// //////// Create a new DXF document
////// //////DxfDocument dxf_fresh = new DxfDocument();
////// //////// Create lines
////// //////SAANSDXF.Entities.Line line1 = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
////// //////SAANSDXF.Entities.Line line2 = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
////// /// DxfDocument dxf = new DxfDocument();
////// //////// Create lines
////// //////SAANSDXF.Entities.Line line1chk = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
////// //////SAANSDXF.Entities.Line line2chk = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
////// //////// Add lines to the model space
////// //////dxf.AddEntityToDocument(line1chk, true);
////// //////dxf.AddEntityToDocument(line2chk, true);
////// //////// Save the DXF file
////// //////dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_fresh_output.dxf");
////// ////// // Add lines to the model space
////// ////// dxf_fresh.AddEntity(line1);
////// ////// dxf_fresh.AddEntity(line2);
////// //////// dxf_fresh
////// ////// // Save the DXF file
////// ////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_output.dxf");
////// double freq_found = -6;
////// int note_number_to_take_integer = -6;
////// string note_name_to_take_string = "";
////// //ok tested if ((freq_found >= 7.6892) && (freq_found <= 8.7466){ note_number_to_take_integer = 1; note_name_to_take_string = "NONE"; }
////// ////// SAANSDXF.Entities.Line ___new_line = new SAANSDXF.Entities.Line();
////// ////// ___new_line.StartPoint = new SAANSDXF.Vector3(-600000,-600000,0.003);
////// ////// ___new_line.EndPoint = new SAANSDXF.Vector3(+600000, +600000, 0.003);
////// ////// ___new_line.Color = new AciColor(0.3, 0.6, 0.8);
////// ////// SAAN_dxf.AddEntityToDocument(___new_line, true);
////// ///////// SAAN_dxf.AddEntityToDocument
////// ////// SAAN_dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_SAANSDXF.DXF");
////// ///DxfDocument doc = DxfDocument.Load("sample.dxf");
////// SAAN_dxf.Entities.ActiveLayout = SAANSDXF.Objects.Layout.ModelSpaceName;// works after it is saved with higher version with autocad
////// ///
////// SAANSDXF.Collections.EntityCollection entities
////// = SAAN_dxf.Blocks[Block.DefaultModelSpaceName].Entities;
////// /////////////////////////////////////////////////////////////////////////////////////
////// int entitycount = -1;
////// entitycount = entities.Count;
////// int entitytimer = 0;
////// entitytimer = entitycount / 10000;
////// double vertsx = 0;
////// double vertsy = 0;
////// double vertsz = 0;
////// double vertex = 0;
////// double vertey = 0;
////// double vertez = 0;
////// int vertextcount = 0;
////// double vertx1 = 0;
////// double verty1 = 0;
////// double vertx2 = 0;
////// double verty2 = 0;
////// int roundamount = 16;
////// double totallength = 0;
////// double arclength = 0;
////// double linelength = 0;
////// double startAngle;
////// double endAngle;
////// double bulge;
////// double theta;
////// double c;
////// double r;
////// double gamma;
////// double phi;
////// double holdangle;
////// Vector2 p1;
////// Vector2 p2;
////// Vector2 center;
////// double ___saan_x_for_angle_calculation = 0;
////// double ___saan_y_for_angle_calculation = 0;
////// /// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// long total_microsecond_of_whole_song
////// =
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// ;
////// double ___total_notes_found_in_the_dxf = 0;
////// ___total_notes_found_in_the_dxf =
////// entities.Count;
////// //////////////////////////////////////////////////////////////////////
////// System.Windows.Forms.MessageBox.Show
////// ("Duration = " + total_microsecond_of_whole_song
////// + "\r\n\r\n\r\ntotal notes= " + ___total_notes_found_in_the_dxf
////// );
////// foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
////// {
////// r = myarc.Radius;
////// startAngle = myarc.StartAngle;
////// endAngle = myarc.EndAngle;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_ARC_DETAIL_"
////// + " radius = " + r
////// + " startAngle = " + startAngle
////// + " endAngle = " + endAngle
////// + " holdangle = " + holdangle
////// + " arclength = " + arclength
////// );
////// }// foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
////// //////////////////////////////////////////////////////////
////// //////string fileName_for_midi_from_the_dxf = "";
////// //////fileName_for_midi_from_the_dxf
////// ////// =
////// ////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + ".mid";
////// /// public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
////// /// {
////// //////const int MidiFileType = 0;
////// //////const int BeatsPerMinute = 60;
////// //////const int TicksPerQuarterNote = 120;
////// //////const int TrackNumber = 0;
////// //////const int ChannelNumber = 1;
////// ///
////// ////// cant we take TicksPerQuarterNote as multiple of 60 ?
////// //////ChatGPT
////// //////In MIDI, TicksPerQuarterNote is often used as a multiple of 60 because it provides a convenient resolution for expressing tempo changes.However, it's not a strict requirement, and you can technically set TicksPerQuarterNote to any integer value based on your specific needs.
////// //////Using a multiple of 60, like 480(60 multiplied by 8), is common because it allows for easy tempo calculations in beats per minute(BPM) and makes it simple to represent note durations.It's a practical choice because it aligns well with common musical timing values.
////// //////That said, you can choose other values for TicksPerQuarterNote if your MIDI application requires different resolutions or if you have specific reasons to do so.Just be aware that using a value that's not a multiple of 60 may make it less intuitive when working with tempos in BPM and traditional musical notation.
////// //////public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
////// //////public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
////// //////public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
////// //////public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
////// //////public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
////// //////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
////// //////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
////// //////public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
////// //////public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
////// //////public double public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480 = 0;
////// int MidiFileType = 1;// 0;//////saan changes this to 1
////// int BeatsPerMinute =
////// (int)this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE;
////// //60;
////// int TicksPerQuarterNote =
////// (int)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480;
////// //120;////// too important /// multiple of 480
////// int TrackNumber = 0;
////// int ChannelNumber = 1;
////// //////public PatchParser()
////// ////// {
////// ////// this.patchMap.Add("nylon", 25);
////// ////// this.patchMap.Add("steel", 26);
////// ////// this.patchMap.Add("jazz", 27);
////// ////// this.patchMap.Add("clean", 28);
////// ////// this.patchMap.Add("muted", 29);
////// ////// this.patchMap.Add("distortion", 31);
////// ////// this.patchMap.Add("bass", 33);
////// ////// this.patchMap.Add("violin", 41);
////// ////// this.patchMap.Add("viola", 42);
////// ////// this.patchMap.Add("cello", 43);
////// ////// this.patchMap.Add("sitar", 105);
////// ////// this.patchMap.Add("banjo", 106);
////// ////// this.patchMap.Add("fiddle", 111);
////// ////// }//public PatchParser()
////// int Patch_number = 26;
////// long absoluteTime___start = 0;
////// long absoluteTime___final = 0;
////// // var collection
////// SAANAUDS.Midi.MidiEventCollection collection
////// = new
////// SAANAUDS.Midi.MidiEventCollection
////// (MidiFileType, TicksPerQuarterNote);
////// ////////////////////////////////////////////////////////////////////////////////////////////
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " MID_COLLECTION_STARTS_FRESH collection = " + collection.ToString()
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " MidiFileType = " + MidiFileType
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " TicksPerQuarterNote = " + TicksPerQuarterNote
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " BeatsPerMinute = " + BeatsPerMinute
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " TrackNumber = " + TrackNumber
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " ChannelNumber = " + ChannelNumber
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " absoluteTime___start = " + absoluteTime___start
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " absoluteTime___final = " + absoluteTime___start
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// //////collection
////// //////.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TextEvent
////// ////// (
////// ////// "Note Stream LYRICS",
////// ////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ////// ,
////// ////// absoluteTime
////// ////// ),
////// ////// TrackNumber
////// ////// );
////// //////++absoluteTime;
////// //////collection.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TempoEvent
////// //////(
////// ////// Local_CalculateMicrosecondsPerQuaterNote
////// ////// (
////// ////// BeatsPerMinute
////// ////// ),
////// ////// absoluteTime
////// ////// ),
////// ////// TrackNumber
////// ////// );
////// ///
////// ////// will do after some times
////// collection
////// .AddEvent
////// (
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// (long)((absoluteTime___start + absoluteTime___final) / 6)
////// ),
////// //TrackNumber
////// TrackNumber
////// );
////// /////////////////////////////// interesting styles ////////////////////
////// ///
////// collection
////// .AddEvent
////// (
////// new SAANAUDS.Midi.TextEvent
////// (
////// "SanjoyNathGeometrifyingTrigonometry(C)"
////// ,
////// SAANAUDS.Midi.MetaEventType.Copyright
////// ,
////// // absoluteTime
////// (long)(absoluteTime___start)
////// ),
////// //TrackNumber
////// // 0
////// TrackNumber
////// );
////// ////////////////////////////////////////////////////////////////////////////////
////// ////// will do after some times
////// // ++absoluteTime;
////// collection.AddEvent
////// (
////// new SAANAUDS.Midi.TempoEvent
////// (
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// /// absoluteTime
////// absoluteTime___start
////// ),
////// // TrackNumber
////// TrackNumber
////// );
////// ////////////////////////////////////////////////
////// ///
////// //////////////static void Main(string[] args)
////// ////////////// {
////// ////////////// string inputMidiFile = "input.mid"; // Replace with your MIDI file
////// ////////////// string outputMidiFile = "output.mid"; // Replace with the output file
////// ////////////// string copyrightText = "Copyright © 2023 Your Company"; // Your copyright notice
////// ////////////// // Load the MIDI file
////// ////////////// MidiFile midiFile = new MidiFile(inputMidiFile, false);
////// ////////////// // Create a meta-event to set the copyright text
////// ////////////// MetaEvent copyrightEvent = new MetaEvent(MetaType.Copyright, copyrightText);
////// ////////////// // Locate the track where you want to insert the copyright event
////// ////////////// int targetTrackIndex = 0; // Adjust as needed
////// ////////////// if (targetTrackIndex < midiFile.Tracks.Count)
////// ////////////// {
////// ////////////// MidiTrack targetTrack = midiFile.Tracks[targetTrackIndex];
////// ////////////// // Add the copyright event to the track
////// ////////////// targetTrack.AddEvent(copyrightEvent);
////// ////////////// }
////// ////////////// else
////// ////////////// {
////// ////////////// Console.WriteLine("Invalid track index.");
////// ////////////// return;
////// ////////////// }
////// ////////////// // Save the modified MIDI file
////// ////////////// midiFile.Save(outputMidiFile);
////// ////////////// Console.WriteLine("Copyright event added successfully.");
////// ////////////// }
////// ////////////// saan thinks it will work
////// ////// ////////////// // Create a meta-event to set the copyright text
////// ////// SAANAUDS.Midi.TextEvent copyrightEvent___SAAN
////// ////// =
////// ////// new
////// ////// SAANAUDS.Midi.TextEvent
////// ////// (
////// ////// SAANAUDS.Midi.MetaEventType.Copyright
////// ////// ,
////// ////// 50
////// ////// ,
////// ////// absoluteTime___start
////// ////// )
////// ////// ;
////// ////// //"SanjoyNathGeometrifyingTrigonometry(C)"
////// ////// copyrightEvent___SAAN
////// ////// .absoluteTime
////// ////// collection.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TextEvent
////// //////(
////// //////,
////// ////// /// absoluteTime
////// ////// ),
////// ////// // TrackNumber
////// ////// TrackNumber
////// ////// );
////// ////////////////////////////////////////////////
////// ///
////// var patchParser = new SAANAUDS_CHECKING.PatchParser();
////// int patchNumber = patchParser.Patch("steel");//////////////////// i will configure this from layers
////// /////////////////// first entries so absolute time is zero
////// collection.AddEvent(
////// new
////// SAANAUDS.Midi.PatchChangeEvent
////// (
////// 0
////// ,
////// ChannelNumber
////// , patchNumber
////// )
////// , TrackNumber
////// );
////// //////const int NoteVelocity = 100;
////// ////// const int NoteDuration =
////// ////// ///3 * TicksPerQuarterNote / 4;
////// ////// const long SpaceBetweenNotes
////// ////// = TicksPerQuarterNote;
////// int NoteVelocity = 100;
////// long NoteDuration = 0;
////// double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
////// ///3 * TicksPerQuarterNote / 4;
////// long SpaceBetweenNotes
////// = 0;// TicksPerQuarterNote;
////// ////// absoluteTime += SpaceBetweenNotes;
////// ////// foreach (var note in allNotes)
////// ////// {
////// //////collection.AddEvent(new NoteOnEvent(absoluteTime, ChannelNumber, note.MidiValue, NoteVelocity, NoteDuration), TrackNumber);
////// //////collection.AddEvent(new NoteEvent(absoluteTime + NoteDuration, ChannelNumber, MidiCommandCode.NoteOff, note.MidiValue, 0), TrackNumber);
////// ////// absoluteTime += SpaceBetweenNotes;
////// ////// }//foreach (var note in allNotes)
////// ////// collection.PrepareForExport();
////// ////// /// MidiFile.Export(fileName, collection);
////// ////// ///
////// ////// SAANAUDS.Midi.MidiFile.Export(fileName_for_midi_from_the_dxf, collection);
////// ///////// }//public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// double line_Segments_counter = 0;
////// double line_Segments_count = 0;
////// double ___degrees_1 = 0;
////// double ___degrees_2 = 0;
////// double ___dist_1 = 0;
////// double ___dist_2 = 0;
////// double freq_found_from_the_nearest = 0;
////// double freq_found_from_the_furthest = 0;
////// double ___distance_of_current_line_segment_min_out_of_two = 0;
////// double ___distance_of_current_line_segment_max_out_of_two = 0;
////// int note_number_found_from_the_nearest_frequency_Hertz = 0;
////// int note_number_found_from_the_furthest_frequency_Hertz = 0;
////// string note_name_found_from_the_nearest_frequency_Hertz = "";
////// string note_name_found_from_the_furthest_frequency_Hertz = "";
////// ////////////////////////// these are used to put the pitch bents
////// double start_side_of_line_segments_angle_with_x_axis = 0;
////// double final_side_of_line_segments_angle_with_x_axis = 0;
////// ////////////////////////// these are used to put the pitch bents
////// double start_side_of_line_segments_frequency = 0;
////// double final_side_of_line_segments_frequency = 0;
////// double delta_pitch = 0;
////// double notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
////// double notes_finals___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
////// /// this.ref System.Windows.Forms.ProgressBar _to_update_progressbar
////// line_Segments_count = entities.OfType<SAANSDXF.Entities.Line>().Count();
////// this.progressBarFOR_ANIMATIONS_SAVING.Maximum = (int)line_Segments_count;
////// this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
////// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
////// {
////// line_Segments_counter++;
////// //////////////////////////////////////////////////////////////////////////
////// this.progressBarFOR_ANIMATIONS_SAVING.Value = (int)line_Segments_counter;
////// this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
////// this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
////// ///////////////////////////////////////////////////////////////////////////
////// vertsx = line.StartPoint.X;
////// vertsy = line.StartPoint.Y;
////// vertsz = line.StartPoint.Z;
////// vertex = line.EndPoint.X;
////// vertey = line.EndPoint.Y;
////// vertez = line.EndPoint.Z;
////// linelength = arclength = Math.Sqrt((Math.Pow((vertex - vertsx), 2) + Math.Pow((vertey - vertsy), 2) + Math.Pow((vertez - vertsz), 2)));
////// totallength = totallength + linelength;
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "\r\nSAANDXF___DXF_LINE_SEGMENTS_"
////// + " line_Segments_counter = " + line_Segments_counter
////// + " of line_Segments_count = " + line_Segments_count
////// + " vertsx = " + vertsx
////// + " vertsy = " + vertsy
////// + " vertsz = " + vertsz
////// + " vertex = " + vertex
////// + " vertey = " + vertey
////// + " vertez = " + vertez
////// + " linelength=" + linelength
////// );
////// ___saan_x_for_angle_calculation = 0;
////// ___saan_y_for_angle_calculation = 0;
////// if (vertsy >= 0 && vertsx > 0)
////// {
////// ___saan_x_for_angle_calculation = vertsx;
////// ___saan_y_for_angle_calculation = vertsy;
////// }
////// else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1) * vertsx;
////// ___saan_y_for_angle_calculation = vertsy;
////// }
////// else if (vertsy < 0 && vertsx < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1) * vertsx;
////// ___saan_y_for_angle_calculation = (-1) * vertsy;
////// }
////// else if (vertsy < 0 && vertsx > 0)
////// {
////// ___saan_x_for_angle_calculation = vertsx;
////// ___saan_y_for_angle_calculation = (-1) * vertsy;
////// }
////// else
////// {
////// ___saan_x_for_angle_calculation = 0.0000001;
////// ___saan_y_for_angle_calculation = vertsy;
////// }
////// ___degrees_1 = 0;
////// ////// ___degrees_1
////// ////// =
////// //////// Math.Abs
////// ////// (
////// ////// Math.Atan(Math.Abs(vertsy)/Math.Abs(Math.Max(0.0001,Math.Min(0.00001, vertsx)))
////// ////// )
////// ////// )
////// ////// *360/Math.PI
////// ////// ;
////// ///
////// ___degrees_1
////// =
////// // Math.Abs
////// (
////// // Math.Atan2(vertsy,vertsx)
////// Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
////// )
////// * 360 / Math.PI
////// ;
////// ___degrees_1 = Math.Abs(___degrees_1);
////// if (vertsy >= 0 && vertsx >= 0)
////// {
////// ___degrees_1 = ___degrees_1;
////// }
////// else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___degrees_1 = 180 - ___degrees_1;
////// }
////// else if (vertsy < 0 && vertsx < 0)
////// {
////// ___degrees_1 = 270 - ___degrees_1;
////// }
////// else if (vertsy < 0 && vertsx >= 0)
////// {
////// ___degrees_1 = 360 - ___degrees_1;
////// }
////// else
////// {
////// ___degrees_1 = 60;
////// }
////// ___degrees_2 = 0;
////// //////___degrees_2
////// ////// =
////// ////// // Math.Abs
////// ////// (
////// ////// Math.Atan(Math.Abs(vertey) /Math.Abs( Math.Max(0.0001,Math.Min(0.00001, vertex)))
////// ////// )
////// ////// )
////// ////// *( 360 / Math.PI)
////// ////// ;
////// ////// ___degrees_2
////// //////=
////// //////// Math.Abs
////// //////(
////// ////// Math.Atan2(vertey,vertex)
////// ////// )
////// ////// * 360 / Math.PI
////// ////// ;
////// ___saan_x_for_angle_calculation = 0;
////// ___saan_y_for_angle_calculation = 0;
////// ___saan_x_for_angle_calculation = 0;
////// ___saan_y_for_angle_calculation = 0;
////// if (vertey >= 0 && vertex > 0)
////// {
////// ___saan_x_for_angle_calculation = vertex;
////// ___saan_y_for_angle_calculation = vertey;
////// }
////// else if (vertey >= 0 && vertex < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1) * vertex;
////// ___saan_y_for_angle_calculation = vertey;
////// }
////// else if (vertey < 0 && vertex < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1) * vertex;
////// ___saan_y_for_angle_calculation = (-1) * vertey;
////// }
////// else if (vertey < 0 && vertex > 0)
////// {
////// ___saan_x_for_angle_calculation = vertex;
////// ___saan_y_for_angle_calculation = (-1) * vertey;
////// }
////// else
////// {
////// ___saan_x_for_angle_calculation = 0.0000001;
////// ___saan_y_for_angle_calculation = vertey;
////// }
////// ___degrees_2
////// =
////// // Math.Abs
////// (
////// // Math.Atan2(vertsy,vertsx)
////// Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
////// )
////// * 360 / Math.PI
////// ;
////// ___degrees_2 = Math.Abs(___degrees_2);
////// if (vertsy >= 0 && vertsx >= 0)
////// {
////// ___degrees_2 = ___degrees_2;
////// }
////// else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___degrees_2 = 180 - ___degrees_2;
////// }
////// else if (vertsy < 0 && vertsx < 0)
////// {
////// ___degrees_2 = 270 - ___degrees_2;
////// }
////// else if (vertsy < 0 && vertsx >= 0)
////// {
////// ___degrees_2 = 360 - ___degrees_2;
////// }
////// else
////// {
////// ___degrees_2 = 60;
////// }
////// //////long absoluteTime___start = 0;
////// //////long absoluteTime___final = 0;
////// absoluteTime___start
////// =
////// (long)(
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// *
////// (Math.PI / 180) *
////// // this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// )
////// ;
////// if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_1
////// )
////// {
////// start_side_of_line_segments_angle_with_x_axis
////// = ___degrees_1;
////// final_side_of_line_segments_angle_with_x_axis
////// = ___degrees_2;
////// start_side_of_line_segments_frequency = ___dist_1;
////// final_side_of_line_segments_frequency = ___dist_2;
////// }
////// //////if
////// ////// (
////// ////// Math.Min
////// ////// (
////// ////// ___degrees_1, ___degrees_2
////// ////// )
////// ////// == ___degrees_1
////// ////// )
////// if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_2
////// )
////// {
////// start_side_of_line_segments_angle_with_x_axis
////// = ___degrees_2;
////// final_side_of_line_segments_angle_with_x_axis
////// = ___degrees_1;
////// start_side_of_line_segments_frequency = ___dist_2;
////// final_side_of_line_segments_frequency = ___dist_1;
////// }
////// //////if
////// ////// (
////// ////// Math.Min
////// ////// (
////// ////// ___degrees_1, ___degrees_2
////// ////// )
////// ////// == ___degrees_1
////// ////// )
////// absoluteTime___final
////// =
////// (long)(
////// Math.Max
////// (
////// ___degrees_1, ___degrees_2
////// )
////// *
////// (Math.PI / 180) *
////// // this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// )
////// ;
////// //////(long)
////// ////// Math.Max
////// ////// (
////// ////// ___degrees_1, ___degrees_2
////// ////// )
////// ////// *
////// ////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// ////// ;
////// ////// will do after some times
////// //////collection
////// //////.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TextEvent
////// ////// (
////// ////// "Note Stream LYRICS",
////// ////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ////// ,
////// ////// // absoluteTime
////// ////// ( ( absoluteTime___start + absoluteTime___final)/2)
////// ////// ),
////// ////// //TrackNumber
////// ////// 0
////// ////// );
////// ////// will do after some times
////// // ++absoluteTime;
////// //////collection.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TempoEvent
////// //////(
////// ////// Local_CalculateMicrosecondsPerQuaterNote
////// ////// (
////// ////// BeatsPerMinute
////// ////// ),
////// ////// /// absoluteTime
////// ////// absoluteTime___start
////// ////// ),
////// ////// // TrackNumber
////// ////// 0
////// ////// );
////// ////////////////////////////////////////////////
////// ___dist_1
////// =
////// Math.Sqrt
////// (
////// (line.StartPoint.X * line.StartPoint.X)
////// +
////// (line.StartPoint.Y * line.StartPoint.Y)
////// );
////// ___dist_2
////// =
////// Math.Sqrt
////// (
////// (line.EndPoint.X * line.EndPoint.X)
////// +
////// (line.EndPoint.Y * line.EndPoint.Y)
////// );
////// freq_found_from_the_nearest
////// =
////// Math.Min
////// (
////// ___dist_1, ___dist_2
////// );
////// freq_found_from_the_furthest
////// =
////// Math.Max
////// (
////// ___dist_1, ___dist_2
////// );
////// ////// dxf_fresh.AddEntityToDocument(line,false);
////// // Add lines to the model space
////// // dxf_fresh.AddEntity(line1);
////// // dxf_fresh.AddEntity(line2);
////// // dxf_fresh
////// // Save the DXF file
////// //dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
////// ////////////////////tooooo important ///////////////////////////
////// /// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
////// /// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
////// ___distance_of_current_line_segment_min_out_of_two = 0;
////// ___distance_of_current_line_segment_max_out_of_two = 0;
////// ___distance_of_current_line_segment_min_out_of_two
////// =
////// freq_found_from_the_nearest;
////// ___distance_of_current_line_segment_max_out_of_two
////// =
////// freq_found_from_the_furthest;
////// note_number_found_from_the_nearest_frequency_Hertz = 0;
////// note_number_found_from_the_furthest_frequency_Hertz = 0;
////// note_name_found_from_the_nearest_frequency_Hertz = "";
////// note_name_found_from_the_furthest_frequency_Hertz = "";
////// /// calling conventions
////// /// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
////// /// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
////// note_number_found_from_the_nearest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_int_get_note_number_from_frequency_Hertz
////// (
////// freq_found_from_the_nearest
////// );
////// ////// notes_starts___delta_pitch = 0;
////// ////// notes_finals___delta_pitch = 0;
////// ////// //////double notes_starts___delta_pitch = 0;
////// ////// //////double notes_finals___delta_pitch = 0;
////// ////// //////public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// ////// //////public_static_double_get_note_number_ACTUAL_HIGHER_NEAREST_NOTES_frequency_Hertz
////// ////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ////// notes_starts___delta_pitch
////// ////// =
////// ////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// ////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// ////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// ////// // .public_static_int_get_note_number_from_frequency_Hertz
////// ////// .public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// ////// (
////// ////// freq_found_from_the_nearest
////// ////// )
////// ////// -
////// ////// freq_found_from_the_nearest
////// ////// ;
////// ////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// note_name_found_from_the_nearest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_string_get_note_name_from_frequency_Hertz
////// (
////// freq_found_from_the_nearest
////// );
////// note_number_found_from_the_furthest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_int_get_note_number_from_frequency_Hertz
////// (
////// freq_found_from_the_furthest
////// );
////// note_name_found_from_the_furthest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_string_get_note_name_from_frequency_Hertz
////// (
////// freq_found_from_the_furthest
////// );
////// ////////note_number_found_from_the_nearest_frequency_Hertz
////// //////if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 20000)
////// ////// {
////// ////// note_number_found_from_the_nearest_frequency_Hertz = 69;
////// ////// }//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
////// //note_number_found_from_the_nearest_frequency_Hertz
////// if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 127)
////// {
////// note_number_found_from_the_nearest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
////// // long NoteDuration = 0;
////// ////////note_number_found_from_the_furthest_frequency_Hertz
////// //////if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 20000)
////// ////// {
////// ////// note_number_found_from_the_furthest_frequency_Hertz = 69;
////// ////// }//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
////// //note_number_found_from_the_furthest_frequency_Hertz
////// if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 127)
////// {
////// note_number_found_from_the_furthest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
////// // long NoteDuration = 0;
////// /////////////////////////////////////////////////////////
////// ///
////// NoteDuration
////// =
////// Math.Abs(
////// Math.Max(
////// Math.Abs(absoluteTime___final)
////// ,
////// Math.Abs(absoluteTime___start)
////// )
////// -
////// Math.Abs(
////// Math.Min(
////// Math.Abs(absoluteTime___final)
////// ,
////// Math.Abs(absoluteTime___start)
////// )
////// )
////// )
////// ;
////// ///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
////// ///
////// /// double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
////// slope_in_linear_time
////// = Math.Atan2((double)(freq_found_from_the_furthest - freq_found_from_the_nearest), (double)NoteDuration);
////// slope_in_linear_time
////// = slope_in_linear_time * 360 / Math.PI;/// taken 10 times the angles
////// slope_in_linear_time
////// = slope_in_linear_time * 100;
////// TrackNumber
////// =
////// ///too slow ((int)slope_in_linear_time);//i want the raw data for different slopes integer values % 16;
////// ((int)slope_in_linear_time) % 16;
////// ChannelNumber
////// = TrackNumber;
////// ////// upto 18102020plusplusplus this was there to get a safe side data
////// ///and i was getting too much of cleronets for long notes
////// //////patchNumber
////// ////// =
////// ////// TrackNumber;
////// ///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
////// PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
////// = SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
////// PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
////// = SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
////// if (
////// //((double)Math.Abs(absoluteTime___final - absoluteTime___start))
////// ((double)NoteDuration)
////// <=
////// this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE)
////// {
////// patchNumber
////// =
////// SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
////// [
////// ((int)slope_in_linear_time)
////// %
////// PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
////// ];
////// }
////// else
////// {
////// patchNumber
////// =
////// SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
////// [
////// ((int)slope_in_linear_time)
////// %
////// PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
////// ];
////// }
////// ///////// end of else case
////// ///////// if(((double)Math.Abs(absoluteTime___final - absoluteTime___start))
////// ////// <=
////// ////// public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE )
////// ////// for references variable names
////// ////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////// ////////////////////= new List<double>();
////// ////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////// ////////////////////.Clear();
////// if (public_list_of_6_digit_double_precission_unique_slopes_found
////// .Contains(Math.Round(slope_in_linear_time, 6)))
////// {
////// }
////// else
////// {
////// public_list_of_6_digit_double_precission_unique_slopes_found
////// .Add
////// (
////// Math.Round(slope_in_linear_time, 6)
////// );
////// }
////// //////if (public_list_of_6_digit_double_precission_unique_slopes_found
////// ////// .Contains(Math.Round(slope_in_linear_time, 6)))
////// /////////////////////////////////////////////////////////////////////////
////// if (ChannelNumber >= 15)
////// {
////// ChannelNumber = 9;
////// TrackNumber = 9;
////// /// patchNumber = 26;/// upto 18102020plusplusplus this was there
////// }//if(ChannelNumber>=15)
////// if (ChannelNumber <= 0)
////// {
////// ChannelNumber = 6;
////// TrackNumber = 6;
////// /// patchNumber = 41;/// upto 18102020plusplusplus this was there
////// }//if (ChannelNumber <=0)
////// ///////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// //////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// //////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// //////if (NoteDuration < 110)
////// //////{
////// ////// note_number_found_from_the_nearest_frequency_Hertz
////// ////// =
////// ////// 22;
////// ////// ChannelNumber = 9;
////// ////// patchNumber = 115;
////// //////}// if(NoteDuration<300)
////// ///////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// //////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// //////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// /////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// ////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// ////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// ///
////// /////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// ////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// ////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// if (NoteDuration < 600)
////// {
////// note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
////// // ChannelNumber = 9;
////// // patchNumber = 115;
////// }// if(NoteDuration<600)
////// /////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// ////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// ////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// if (NoteDuration < 600)
////// {
////// if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// // ||
////// // note_number_found_from_the_nearest_frequency_Hertz >=94
////// )
////// {
////// note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 48;
////// ChannelNumber = 9;
////// // patchNumber = 115;
////// }//
////// //////if (
////// ////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ////// ||
////// ////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// ////// )
////// if (
////// // note_number_found_from_the_nearest_frequency_Hertz <= 48
////// // ||
////// note_number_found_from_the_nearest_frequency_Hertz >=94
////// )
////// {
////// note_number_found_from_the_nearest_frequency_Hertz
////// =
////// // 94;
////// 22;
////// // patchNumber = 38;
////// // ChannelNumber = 9;
////// }//
////// //////if (
////// ////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ////// ||
////// ////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// ////// )
////// }// if (NoteDuration < 600)
////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// if (NoteDuration >600)
////// {
////// if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// // ||
////// // note_number_found_from_the_nearest_frequency_Hertz >=94
////// )
////// {
////// note_number_found_from_the_nearest_frequency_Hertz
////// =
////// (int)( note_number_found_from_the_nearest_frequency_Hertz*1.11);
////// // ChannelNumber = 9;
////// patchNumber = 74;
////// }//
////// //////if (
////// ////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ////// ||
////// ////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// ////// )
////// if (
////// // note_number_found_from_the_nearest_frequency_Hertz <= 48
////// // ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
////// {
////// note_number_found_from_the_nearest_frequency_Hertz
////// =
////// // 94;
////// //22;
////// (int)(note_number_found_from_the_nearest_frequency_Hertz * 0.68);
////// patchNumber = 76;
////// // ChannelNumber = 9;
////// }//
////// //////if (
////// ////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ////// ||
////// ////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// ////// )
////// }// if (NoteDuration < 600)
////// /////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// ////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// ////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////// collection.AddEvent(
////// new
////// SAANAUDS.Midi.PatchChangeEvent
////// (
////// ///saan puts this here
////// absoluteTime___start
////// ,
////// ChannelNumber
////// ,
////// patchNumber
////// )
////// , TrackNumber
////// );
////// ///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .Append
////// (
////// // "SAANDXF___DXF_LINE_SEGMENTS_"
////// "TrackNumber =" + TrackNumber
//////+ " ChannelNumber =" + ChannelNumber
//////+ " ___degrees_1 = " + ___degrees_1
//////+ " ___degrees_2 = " + ___degrees_2
////// + " absoluteTime___start(min of two degrees) = " + absoluteTime___start
////// + " absoluteTime___final(max of two degrees) = " + absoluteTime___final
////// + " ___dist_1(= frequency1) = " + ___dist_1
////// + " ___dist_2(= frequency2) = " + ___dist_2
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " NoteDuration=" + NoteDuration
////// + " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
////// + " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
////// + " slope_in_linear_time = " + slope_in_linear_time
////// );
////// if ((absoluteTime___final - absoluteTime___start) > 1000)
////// {
////// ////////////////////// new things adding
////// ////// will do after some times
////// collection
////// .AddEvent
////// (
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// (long)((absoluteTime___start + (absoluteTime___final - absoluteTime___start) / 6))
////// ),
////// //TrackNumber
////// 0
////// );
////// }//if((absoluteTime___final - absoluteTime___start)>1000)
////// /////////////////////////////////////////////////////////
////// collection.AddEvent
////// (
////// new SAANAUDS.Midi.NoteOnEvent
////// (
////// ////// absoluteTime
////// absoluteTime___start
////// ,
////// ChannelNumber
////// ,
////// // note.MidiValue
////// note_number_found_from_the_nearest_frequency_Hertz
////// ,
////// NoteVelocity
////// ,
////// (int)Math.Min(NoteDuration, 1)
////// )
////// ,
////// TrackNumber
////// );
////// /////////////////////////////////////////////////////////
////// //////absoluteTime___final
////// ////// = Math.Min(30, absoluteTime___final);
////// //to implement this check
////// notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
////// notes_finals___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
////// //////double notes_starts___delta_pitch = 0;
////// //////double notes_finals___delta_pitch = 0;
////// //////public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// //////public_static_double_get_note_number_ACTUAL_HIGHER_NEAREST_NOTES_frequency_Hertz
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency
////// =
////// start_side_of_line_segments_frequency
////// -
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// (
////// start_side_of_line_segments_frequency
////// )
////// ;
////// //final_side_of_line_segments_frequency
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// notes_finals___delta_pitch___if_it_is_higher_than_nearest_note_frequency
////// =
////// final_side_of_line_segments_frequency
////// -
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// (
////// final_side_of_line_segments_frequency
////// )
////// ;
////// //final_side_of_line_segments_frequency
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///putting the pitch bends at the starting sides
////// int ___necessary_pitch_bend_to_put_at_start_side_of_note = 0;
////// //////if(notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency > 0 && notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency < 8190)
////// //////{
////// //////}// if(notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency>0 && notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency < 8190)
////// //////___necessary_pitch_bend_to_put_at_start_side_of_note =
////// //////Math.Max(6, (int)(8190 - notes_starts___delta_pitch));
////// ////// kkk
////// ///
////// note_name_found_from_the_nearest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_string_get_note_name_from_frequency_Hertz
////// (
////// freq_found_from_the_nearest
////// );
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// try
////// {
////// //////SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// ////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// ////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// ////// // .public_static_int_get_note_number_from_frequency_Hertz
////// ////// .CalculatePitchBends___AND_APPLY___FROM_FREQ_1___TO___FREQ_2___ON_NOTE_NUMBER_AND_DURATIONS_WITH_MIDITICKS
////// ////// (
////// ////// ref collection
////// ////// , ChannelNumber
////// ////// , TrackNumber
////// ////// ,
////// ////// start_side_of_line_segments_frequency
////// ////// ,
////// ////// final_side_of_line_segments_frequency
////// ////// , note_number_found_from_the_nearest_frequency_Hertz
////// ////// , absoluteTime___start
////// ////// ,
////// ////// (int)Math.Min(NoteDuration, 1)
////// ////// ,
////// ////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// ////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// ////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// ////// // .public_static_int_get_note_number_from_frequency_Hertz
////// ////// .public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// ////// (
////// ////// start_side_of_line_segments_frequency
////// ////// )
////// ////// );
////// ///////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// }
////// catch (Exception ___excp_to_generate_new_styles_of_pitchbends)
////// {
////// System.Windows.Forms.MessageBox.Show
////// (
////// "___excp_to_generate_new_styles_of_pitchbends" + "\r\n" +
////// ___excp_to_generate_new_styles_of_pitchbends.Message
////// + "\r\n"
////// + ___excp_to_generate_new_styles_of_pitchbends.StackTrace.ToString()
////// );
////// }//catch(Exception ___excp_to_generate_new_styles_of_pitchbends)
////// #region PREVIOUSSAANSTYLESOFPITCHBENDCALCULATIONS
////// //////if (notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency>0)
////// //////{
////// //////collection.AddEvent
////// ////// (
////// ////// new
////// ////// SAANAUDS.Midi.PitchWheelChangeEvent
////// ////// (
////// ////// /// (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
////// ////// absoluteTime___start
////// ////// /// zero delay putting the pitch bend at the position of note starts
////// ////// ,
////// ////// ChannelNumber
////// ////// ,
////// ////// /// (int)((1-(delta_pitch / start_side_of_line_segments_frequency)) * 8192)
////// ////// ///
////// ////// // (int)(delta_pitch *(final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency) * 8192)
////// ////// /// Math.Max(6, (int)(8190 - rrr * delta_pitch))
////// ////// /// Math.Max((int)(notes_starts___delta_pitch - 8190, (int)(8190 - notes_starts___delta_pitch))/// now adding this to
////// ////// Math.Max(6, (int)(8190 - notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency))
////// ////// )
////// ////// , TrackNumber
////// ////// );
////// ////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// //////}//if(notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency>0)
////// note_name_found_from_the_nearest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_string_get_note_name_from_frequency_Hertz
////// (
////// freq_found_from_the_nearest
////// );
////// ///NoteDuration
////// int ___delta___pitch___slabs_finder = 3;
////// /// ___delta___pitch___slabs_finder =( int)(NoteDuration / 330);
////// ___delta___pitch___slabs_finder = Math.Min(11,(int)(NoteDuration / 600));
////// if (start_side_of_line_segments_frequency < final_side_of_line_segments_frequency)
////// {
////// //////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ////// ___pitch_bent_iterator++)
////// {
////// delta_pitch = (final_side_of_line_segments_frequency - start_side_of_line_segments_frequency) / ___delta___pitch___slabs_finder;
////// for (int rrr = 0; rrr < ___delta___pitch___slabs_finder; rrr++)
////// {
////// collection.AddEvent
////// (
////// new
////// SAANAUDS.Midi.PitchWheelChangeEvent
////// (
////// (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / ___delta___pitch___slabs_finder) * rrr)
////// ,
////// ChannelNumber
////// ,
////// /// Math.Min(16368, (int)(start_side_of_line_segments_frequency +(delta_pitch * (final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency)) * 8192))
////// Math.Max(16368, (int)(8190 + (rrr * delta_pitch)))
////// )
////// , TrackNumber
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .Append
////// (
////// // "SAANDXF___DXF_LINE_SEGMENTS_"
////// "TrackNumber =" + TrackNumber
////// + " ChannelNumber =" + ChannelNumber
////// + " ___degrees_1 = " + ___degrees_1
////// + " ___degrees_2 = " + ___degrees_2
////// + " absoluteTime___start(min of two degrees) = " + absoluteTime___start
////// + " absoluteTime___final(max of two degrees) = " + absoluteTime___final
////// + " ___dist_1(= frequency1) = " + ___dist_1
////// + " ___dist_2(= frequency2) = " + ___dist_2
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " NoteDuration=" + NoteDuration
////// + " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
////// + " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
////// + " slope_in_linear_time = " + slope_in_linear_time
////// + " rrr= " + rrr
////// + " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / ___delta___pitch___slabs_finder) * rrr)
////// + " pitch bent value = " + Math.Max(16368, (int)(8190 + rrr * delta_pitch))
////// );
////// //delta_pitch
////// }// for(int rrr=0;rrr<___delta___pitch___slabs_finder;rrr++)
////// }
////// //////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ////// ___pitch_bent_iterator++)
////// }// if(start_side_of_line_segments_frequency< final_side_of_line_segments_frequency)
////// if (start_side_of_line_segments_frequency > final_side_of_line_segments_frequency)
////// {
////// //////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ////// ___pitch_bent_iterator++)
////// {
////// delta_pitch = (start_side_of_line_segments_frequency - final_side_of_line_segments_frequency) / ___delta___pitch___slabs_finder;
////// for (int rrr = 0; rrr < ___delta___pitch___slabs_finder; rrr++)
////// {
////// collection.AddEvent
////// (
////// new
////// SAANAUDS.Midi.PitchWheelChangeEvent
////// (
////// (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / ___delta___pitch___slabs_finder) * rrr)
////// ,
////// ChannelNumber
////// ,
////// /// (int)((1-(delta_pitch / start_side_of_line_segments_frequency)) * 8192)
////// ///
////// // (int)(delta_pitch *(final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency) * 8192)
////// Math.Max(6, (int)(8190 - rrr * delta_pitch))
////// )
////// , TrackNumber
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// // "SAANDXF___DXF_LINE_SEGMENTS_"
////// "TrackNumber =" + TrackNumber
////// + " ChannelNumber =" + ChannelNumber
////// + " ___degrees_1 = " + ___degrees_1
////// + " ___degrees_2 = " + ___degrees_2
////// + " absoluteTime___start(min of two degrees) = " + absoluteTime___start
////// + " absoluteTime___final(max of two degrees) = " + absoluteTime___final
////// + " ___dist_1(= frequency1) = " + ___dist_1
////// + " ___dist_2(= frequency2) = " + ___dist_2
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " NoteDuration=" + NoteDuration
////// + " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
////// + " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
////// + " slope_in_linear_time = " + slope_in_linear_time
////// + " rrr= " + rrr
////// + " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / ___delta___pitch___slabs_finder) * rrr)
////// + " pitch bent value = " + Math.Max(6, (int)(8190 - rrr * delta_pitch))
////// );
////// //delta_pitch
////// }// for(int rrr=0;rrr<___delta___pitch___slabs_finder;rrr++)
////// }
////// //////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ////// ___pitch_bent_iterator++)
////// }// if(start_side_of_line_segments_frequency> final_side_of_line_segments_frequency)
////// #endregion PREVIOUSSAANSTYLESOFPITCHBENDCALCULATIONS
////// collection.AddEvent
////// (
////// new
////// SAANAUDS.Midi.NoteEvent
////// (
////// /// absoluteTime + NoteDuration
////// absoluteTime___final
////// ,
////// ChannelNumber
////// ,
////// SAANAUDS.Midi
////// .MidiCommandCode
////// .NoteOff
////// ,
////// // note.MidiValue
////// note_number_found_from_the_nearest_frequency_Hertz
////// , 0
////// ),
////// TrackNumber
////// );
////// // absoluteTime += SpaceBetweenNotes;
////// /////////////////////////////////////// too important to log the note durations ///////////
////// /////////////////////////////////////// too important to log the note durations ///////////
////// /////////////////////////////////////// too important to log the note durations ///////////
////// public_list_of_long_type_note_durations
////// .Add
////// (
////// (absoluteTime___final - absoluteTime___start)
////// );
////// /////////////////////////////////////// too important to log the note durations ///////////
////// /////////////////////////////////////// too important to log the note durations ///////////
////// /////////////////////////////////////// too important to log the note durations ///////////
////// }// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
////// //////////////public List<double> public_list_of_6_digit_double_precission_unique_slopes_found = null;
////// //////////////public List<long> public_list_of_long_type_note_durations = null;
////// string fileName_for_midi_from_the_dxf = "";
////// fileName_for_midi_from_the_dxf
////// =
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
////// + "_BPM=" + this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// + "_TPQN=" + this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// + "_TS=" + this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.ToString()
////// + "_" + this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.ToString()
////// + "_totslps=" + this.public_list_of_6_digit_double_precission_unique_slopes_found.Count.ToString()
////// + "_tot_notes=" + this.public_list_of_long_type_note_durations.Count.ToString()
////// + ".mid";
////// //////System.IO.File.WriteAllText
////// ////// (
////// ////// fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// ////// ,
////// ////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// ////// .ToString()
////// ////// );
////// //////System.Diagnostics.Process.Start
////// ////// (
////// ////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// ////// );
////// //////System.Windows.Forms.MessageBox.Show(" MIDI files collection.PrepareForExport(); starts");
////// /////////caution caution caution we will add these later
////// ////////////caution caution caution we will add these later
////// ////////////caution caution caution we will add these later
////// ////////////caution caution caution we will add these later
////// ////////////caution caution caution we will add these later
////// ////////////caution caution caution we will add these later
////// /////////caution caution caution we will add these later
////// //////collection.PrepareForExport();
////// /////////caution caution caution we will add these later MidiFile.Export(fileName, collection);
////// /////////
////// ///////// caution caution caution we will add these later
////// /////////
////// //////System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
////// ////////public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// ///////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// //////SAANAUDS.Midi.MidiFile.Export
////// ////// (
////// ////// fileName_for_midi_from_the_dxf
////// ////// , collection
////// ////// );
////// //////////////////////////////////////////////////////////////////////////////////////////////////////////
////// /////////
////// ////////// SAAN IS ADDING THIS FOR SPECIAL PURPOSE NEEDS FOR THE PITCH CIRCLES
////// foreach (SAANSDXF.Entities.Circle CIRC_SAANS_ADDS in entities.OfType<SAANSDXF.Entities.Circle>())
////// {
////// double _circ_center_x = CIRC_SAANS_ADDS.Center.X;
////// double _circ_center_y = CIRC_SAANS_ADDS.Center.Y;
////// double _circ_center_z = CIRC_SAANS_ADDS.Center.Z;
////// double _circ_radius = CIRC_SAANS_ADDS.Radius;
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "CIRCLE_FOUND\r\n"
////// + " center_x= " + _circ_center_x
////// + " center_y= " + _circ_center_y
////// + " center_z= " + _circ_center_z
////// + " _circ_radius= " + _circ_radius
////// );
////// }// foreach (SAANSDXF.Entities.Circle CIRC_SAANS_ADDS in entities.OfType<SAANSDXF.Entities.Circle>())
////// ////////// SAAN IS ADDING THIS FOR SPECIAL PURPOSE NEEDS FOR THE PITCH CIRCLES
////// foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
////// {
////// vertextcount = poly2d.Vertexes.Count;
////// new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
////// vertx1 = poly2d.Vertexes[0].Position.X;
////// verty1 = poly2d.Vertexes[0].Position.Y;
////// vertx2 = poly2d.Vertexes[1].Position.X;
////// verty2 = poly2d.Vertexes[1].Position.Y;
////// bulge = poly2d.Vertexes[0].Bulge;
////// p1 = new Vector2(vertx1, verty1);
////// p2 = new Vector2(vertx2, verty2);
////// theta = 4 * Math.Atan(Math.Abs(bulge));
////// c = Vector2.Distance(p1, p2) / 2.0;
////// r = c / Math.Sin(theta / 2.0);
////// //i have the radius, finally again
////// gamma = (Math.PI - theta) / 2;
////// phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
////// center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
////// if (!MathHelper.IsZero(bulge))
////// {
////// startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
////// endAngle = startAngle + MathHelper.RadToDeg * theta;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// }
////// else
////// {
////// linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
////// totallength = totallength + linelength;
////// }
////// /////////////////////////////////////////////////////////////////
////// for (int z = 1; z < vertextcount - 1; z++)
////// {
////// vertextcount = poly2d.Vertexes.Count;
////// new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
////// vertx1 = poly2d.Vertexes[z].Position.X;
////// verty1 = poly2d.Vertexes[z].Position.Y;
////// vertx2 = poly2d.Vertexes[z + 1].Position.X;
////// verty2 = poly2d.Vertexes[z + 1].Position.Y;
////// bulge = poly2d.Vertexes[z].Bulge;
////// p1 = new Vector2(vertx1, verty1);
////// p2 = new Vector2(vertx2, verty2);
////// theta = 4 * Math.Atan(Math.Abs(bulge));
////// c = Vector2.Distance(p1, p2) / 2.0;
////// r = c / Math.Sin(theta / 2.0);
////// gamma = (Math.PI - theta) / 2;
////// phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
////// center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
////// if (!MathHelper.IsZero(bulge))
////// {
////// startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
////// endAngle = startAngle + MathHelper.RadToDeg * theta;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// }
////// else
////// {
////// linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
////// totallength = totallength + linelength;
////// }
////// }
////// ///////////////////////////////////////////////////////////////// is a closed polyline?
////// if (poly2d.IsClosed)
////// {
////// vertextcount = poly2d.Vertexes.Count;
////// new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
////// vertx1 = poly2d.Vertexes[vertextcount - 1].Position.X;
////// verty1 = poly2d.Vertexes[vertextcount - 1].Position.Y;
////// vertx2 = poly2d.Vertexes[0].Position.X;
////// verty2 = poly2d.Vertexes[0].Position.Y;
////// bulge = poly2d.Vertexes[vertextcount - 1].Bulge;
////// p1 = new Vector2(vertx1, verty1);
////// p2 = new Vector2(vertx2, verty2);
////// theta = 4 * Math.Atan(Math.Abs(bulge));
////// c = Vector2.Distance(p1, p2) / 2.0;
////// r = c / Math.Sin(theta / 2.0);
////// gamma = (Math.PI - theta) / 2;
////// phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
////// center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
////// if (!MathHelper.IsZero(bulge))
////// {
////// startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
////// endAngle = startAngle + MathHelper.RadToDeg * theta;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// }
////// else
////// {
////// linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
////// totallength = totallength + linelength;
////// }
////// }
////// poly2d.Normal = new Vector3(0, 0, 1);
////// }//foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
////// System.Windows.Forms.MessageBox.Show("all entities in dxf reading done\r\n\r\n\r\n SO MIDI files collection.PrepareForExport(); starts");
////// ///caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// ///caution caution caution we will add these later
////// collection.PrepareForExport();
////// ///caution caution caution we will add these later MidiFile.Export(fileName, collection);
////// ///
////// /// caution caution caution we will add these later
////// ///
////// System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
////// //public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// /// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// SAANAUDS.Midi.MidiFile.Export
////// (
////// fileName_for_midi_from_the_dxf
////// , collection
////// );
////// ////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// totallength = Math.Round(totallength * roundamount, 0) / roundamount;
////// string tempstring = "Total length of entities in dxf = " + totallength.ToString();
////// ////////////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
////// System.Windows.Forms.MessageBox.Show("starting writing log files at " + fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt");
////// System.IO.File.WriteAllText
////// (
////// fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt"
////// ,
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .ToString()
////// );
////// //////System.Diagnostics.Process.Start
////// ////// (
////// ////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// ////// );
////// System.Windows.Forms.MessageBox.Show("text logs saving Done" + fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt");
////// ////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
////// ///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
////// ///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
////// ///while writing THE MIDI FILE FIRST WE NEED TO READ THE DXF FILE FOR THE LINE SEGMENTS //////
////// ///AND THEN CALCULATING THE TOTAL DURATIONS AND THEN PUTTING THE WHOLE RECALCULATIONS DONE FIRST
////// ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// =
////// new List<double>();
////// ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// .Clear();
////// ExcelFormulaParser_GT_PARSER.SAANAUDS
////// .PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// .Clear();
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ExcelFormulaParser_GT_PARSER.SAANAUDS
////// .PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// .Sort();
////// //////double large_radius_to_use_for_gridding =
////// ////// ___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
////// ////// *
////// ////// ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
////// ////// + 3000;
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// /// and while writing the midi files first we will prepare track zero events for lyrics and the copyrights
////// /// where we will put the data for these things there from the dxf line segments data as read there
////// ///
////// foreach (
////// double six_digit_radian_in_list
////// in
////// ExcelFormulaParser_GT_PARSER.SAANAUDS
////// .PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// )
////// {
////// double six_digit_radian
////// = 0;
////// // in previous loop we have already found this
////// /// ___temp_total_length___of_the_song
////// ///
////// six_digit_radian = Math.Round(six_digit_radian_in_list, 6);
////// string ___GRIDS_TIMES_TEXT_DATA = "";
////// //////___GRIDS_TIMES_TEXT_DATA
////// ////// =
////// ////// (System.Math.Round(___temp_total_length___of_the_song * six_digit_radian, 0)).ToString();
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////
////// //////double ___temp_x1_for_grids_end
////// ////// = large_radius_to_use_for_gridding * System.Math.Cos(six_digit_radian);
////// //////double ___temp_y1_for_grids_end
////// ////// = large_radius_to_use_for_gridding * System.Math.Sin(six_digit_radian);
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// ////// .draw_dxf_circle_WITH_BLOCK_LEVEL_COLOR
////// ////// (0, 0, 0,
////// ////// large_radius_to_use_for_gridding, "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// ////// );
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// ////// .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
////// ////// (
////// ////// 0, 0, -600000,
////// ////// ___temp_x1_for_grids_end
////// ////// ,
////// ////// ___temp_y1_for_grids_end
////// ////// ,
////// ////// -600000,
////// ////// "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// ////// );
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// ////// .draw_dxf_text_ON_TOP_VIEW_WITH_BLOCK_LEVEL_COLOR
////// ////// (
////// ////// ___temp_x1_for_grids_end
////// ////// ,
////// ////// ___temp_y1_for_grids_end
////// ////// ,
////// ////// -600000, 0, 60,
////// ////// "LAYER_GRIDS_CIRCLE",
////// ////// ___GRIDS_TIMES_TEXT_DATA
////// ////// ,
////// ////// "XDATA", 6
////// ////// );
////// }
////// //////foreach (
////// //////double six_digit_radian_in_list
////// //////in
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// //////.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// //////)
////// //////textBox2.Text = tempstring;
////// //////textBox2.Refresh();`
////// /////////// great https://github.com/GTMIDSDXFSAAGIRID/saandxf/discussions/420
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// ///
////// ///
////// //////foreach (Layout layout in SAAN_dxf.Layouts)
////// ////// {
////// ////// List<DxfObjectReference> entities = SAAN_dxf.Layouts.GetReferences(layout);
////// ////// foreach (DxfObjectReference o__dxfobjectreference_entity in entities)
////// ////// {
////// ////// EntityObject entity = o__dxfobjectreference_entity as EntityObject;
////// ////// }//foreach (DxfObject o in entities)
////// ////// }// foreach (Layout layout in SAAN_dxf.Layouts)
////// //////// foreach (var entity in SAAN_dxf.Entities)
////// //////foreach (var entity in SAAN_dxf)
////// ////// {
////// ////// if (entity is Circle)
////// ////// {
////// ////// // Handle Circle entity
////// ////// Circle circle = (Circle)entity;
////// ////// DrawCircle(g, circle);
////// ////// }
////// ////// else if (entity is Line)
////// ////// {
////// ////// // Handle Line entity
////// ////// Line line = (Line)entity;
////// ////// DrawLine(g, line);
////// ////// }//if (entity is Circle)
////// ////// // Add more conditions to handle other entities (e.g., Arc, Text, etc.)
////// ////// }//foreach (EntityObject entity in dxf.Modelspace)
////// //////// Specify the path to your CSV file
////// //////string csvFilePath = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// ////// + "chkers.csv";// ;// "d:\\chkers.csv";
////// //////// Load CSV data
////// //////string[] csvLines = System.IO.File.ReadAllLines(csvFilePath);
////// // Parse CSV data and extract information
////// // You'll need to implement your own logic to extract tempo, time signature, key signature, and channel-wise data.
////// //////// Create a new MIDI file
////// //////SAANAUDS.Midi.MidiFile midiFile = new SAANAUDS.Midi.MidiFile(csvFilePath+"_new.mid");
////// //////// Set tempo (example value, replace with your own)
////// //////// midiFile.DeltaTicksPerQuarterNote = 960;
////// //////midiFile.DeltaTicksPerQuarterNote = 960;
////// /// SAANAUDS.Midi.MidiEvent tempoEvent = new SAANAUDS.Midi.TempoEvent(500000); // Tempo in microseconds per quarter note (e.g., 500,000 for 120 BPM)
////// // Create a new MIDI track for your data
////// // SAANAUDS.Midi.MidiTrack track = new SAANAUDS.Midi.MidiTrack();
////// /// SAANAUDS.Midi. track = new SAANAUDS.Midi.MidiTrack();
////// /// midiFile.Tracks.Add(track);
////// /////////////// we cannot prepare the midi file object to save the midi file
////// ///instead we need to prepare MidiEventCollection and then need to save that to file through
////// ///static method of the MidiFile
////// ///
////// // Add tempo event
////// /// track.AddEvent(tempoEvent);
////// ///
////// ///refer F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL
////// ///\excelformulaparser
////// ///\DOING_GT06012020plus
////// ///\DSMSETS_ANI_DNGIFGTTODOINOFFICE
////// ///\ExcelFormulaParserSample\SAANAUDS\SAANAUDS_CHECKING_SimpleMidiFileWriter.cs
////// ///
////// /////// SAANAUDS.Midi.MidiEventCollection ___saanauds_midieventscollection = new SAANAUDS.Midi.MidiEventCollection();
////// //////// Add your note events and pitch bend events to the track
////// //////foreach (string line in csvLines)
////// ////// {
////// ////// string[] parts = line.Split(',');
////// ////// if (parts.Length >= 5)
////// ////// {
////// ////// int channel = int.Parse(parts[1]);
////// ////// int noteNumber = int.Parse(parts[2]);
////// ////// int velocity = int.Parse(parts[3]);
////// ////// long absoluteTime = long.Parse(parts[4]);
////// ////// // Create note on and note off events, and pitch bend events
////// ////// var noteOn = new NoteOnEvent(absoluteTime, channel, noteNumber, velocity);
////// ////// var noteOff = new NoteEvent(absoluteTime + 1000, channel, MidiCommandCode.NoteOff, noteNumber, velocity);
////// ////// var pitchBend = new PitchBendEvent(absoluteTime, channel, 8192); // Example pitch bend value
////// ////// // Add events to the track
////// ////// track.AddEvent(noteOn);
////// ////// track.AddEvent(noteOff);
////// ////// track.AddEvent(pitchBend);
////// ////// }
////// ////// }
////// //////// Save the MIDI file
////// //////string outputFile = "output.mid";
////// //////midiFile.Save(outputFile);
////// }
////// catch (Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
////// {
////// System.Windows.Forms.MessageBox.Show
////// ("_excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX" + _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.Message + "\r\n\r\n\r\n"
////// + _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.StackTrace.ToString()
////// );
////// }//catch(Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
////// }// private void buttonTOREADDXFTOGENERATEMIDI_Click(object sender, EventArgs e)
private int Local_CalculateMicrosecondsPerQuaterNote(int bpm)
{
return 60 * 1000 * 1000 / bpm;
}// private int Local_CalculateMicrosecondsPerQuaterNote(int bpm)
////// How are Microsecond per MidiTick calculated?
//////ChatGPT
//////Microseconds per MIDI Tick(μs/MIDI Tick) can be calculated based on the tempo(BPM) of the MIDI sequence and the MIDI Ticks per Beat(often referred to as TPQN - Ticks Per Quarter Note) value set in the MIDI file.
//////Here's how you can calculate μs/MIDI Tick:
//////Calculate the duration of one beat in microseconds based on the BPM(Beats Per Minute) :
//////BeatDurationMicroseconds = 60,000,000 / BPM
//////Use the TPQN(Ticks Per Quarter Note) value from the MIDI file to determine how many MIDI ticks are in one beat.For example, if TPQN is 960, that means there are 960 MIDI ticks in one quarter note (one beat).
//////Divide the calculated Beat Duration in microseconds by the number of MIDI ticks in one beat (TPQN):
/// <summary>
/// TPQN is there in the header which is integer multiple of 480
/// TPQN is there in the header which is integer multiple of 480
/// TPQN is there in the header which is integer multiple of 480
/// TPQN is there in the header which is integer multiple of 480
/// TPQN is there in the header which is integer multiple of 480
/// TPQN is there in the header which is integer multiple of 480
/// TPQN is there in the header which is integer multiple of 480
/// TPQN is there in the header which is integer multiple of 480
///
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
//////μs/MIDI Tick = BeatDurationMicroseconds / TPQN
//////This calculation gives you the time duration in microseconds for each MIDI tick.It represents how many microseconds each MIDI tick is equivalent to in the sequence.
//////Keep in mind that this calculation assumes a consistent tempo throughout the MIDI file.If there are tempo changes, you'll need to adjust the μs/MIDI Tick accordingly for each section of the MIDI sequence with a different tempo.
//////User
//////Where is the miditicks per beat in header of midi file?
//////ChatGPT
//////In a Standard MIDI File (SMF), the Ticks Per Beat, or MIDI Ticks per Beat, is typically specified in the header chunk of the MIDI file.This value determines the resolution of timing within the MIDI sequence.The Ticks Per Beat is stored in a 16-bit word (2 bytes) and can be located in the header chunk, specifically within the "division" field.
//////The "division" field of the header chunk is 16 bits long, and the value is represented as a signed 16-bit integer.The value can be positive or negative, and the interpretation of the value depends on whether it is positive or negative:
//////If the division value is positive (bit 15 is 0), it represents the number of MIDI ticks per beat.In this case, a higher absolute value indicates a finer timing resolution.
//////If the division value is negative (bit 15 is 1), it represents SMPTE timecode information. In this case, the value specifies the frame rate (bits 8-14) and the number of subframes per frame(bits 0-7) for time-based synchronization.The absolute value of the division value doesn't matter in this case.
//////For most musical MIDI files, the division value is positive and specifies the Ticks Per Beat.You can read the Ticks Per Beat value by reading the division field in the header chunk of the MIDI file.It's essential to correctly interpret this value to handle timing within the MIDI sequence.
////// private void ______DISCARDED_TO_MAKE_IT_BETTER______button___SAANDXF_CIRCULAR_IN_GRAPHICS_LOAD_CHECKING_Click(object sender, EventArgs e)
////// {
////// try
////// {
////// StringBuilder ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// = new StringBuilder();
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes.Clear();
////// //////http://www.synthfont.com/SFSPEC21.PDF
////// //////http://www.synthfont.com/SFSPEC21.PDF
////// /////////http://www.synthfont.com/SFSPEC21.PDF
////// //D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
////// //////https://markheath.net/category/naudio
////// ///
////// ////// ///TESTED IT IS WORKING AND PLAYING ALSO
////// ////// string[] strs = {
////// ////// "" +
////// ////// "D:\\dekhte_haiisko___guitar.mid"
////// ////// , "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
////// //////SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
////// try
////// {
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// = (long)Convert.ToInt64(textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS.Text.TrimEnd().Trim().Trim().Replace(" ", ""));
////// ////// cant we take TicksPerQuarterNote as multiple of 60 ? instead of multiple of 480
////// //////ChatGPT
////// //////In MIDI, TicksPerQuarterNote is often used as a multiple of 60 because it provides a convenient resolution for expressing tempo changes.However, it's not a strict requirement, and you can technically set TicksPerQuarterNote to any integer value based on your specific needs.
////// //////Using a multiple of 60, like 480(60 multiplied by 8), is common because it allows for easy tempo calculations in beats per minute(BPM) and makes it simple to represent note durations.It's a practical choice because it aligns well with common musical timing values.
////// //////That said, you can choose other values for TicksPerQuarterNote if your MIDI application requires different resolutions or if you have specific reasons to do so.Just be aware that using a value that's not a multiple of 60 may make it less intuitive when working with tempos in BPM and traditional musical notation.
////// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// ////////public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
////// ////////public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
////// ////////public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
////// ////////public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
////// ////////public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
////// ////////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
////// ////////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
////// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// ////////public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
////// ////////public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
////// //////public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// ///
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// =
////// (
////// (int)(
////// public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// /480
////// )
////// +1
////// )
////// *480;
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// this.label_TOT_MICROSECONDS_DURATION_NX480
////// .Text
////// =
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// .ToString();
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// ////////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// = Convert.ToInt32
////// (
////// this.textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// ////////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// = Convert.ToInt32
////// (
////// this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// //////////////////////////////////////////////////////////////////////////////////////////
////// //////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// = Convert.ToDouble
////// (
////// this.textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// //////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// //////////////////////////////////////////////////////////////////////////////////////////
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// = Convert.ToDouble
////// (
////// this.textBoxFOR_BEATS_PER_MINUTE.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// =
////// (long)
////// (
////// 60000000
////// /
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// );
////// //////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// =
////// (
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// /
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// );
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK.Text
////// =
////// "MICROSEC/MIDITICK=" + this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// .ToString();
////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// //////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// =
////// (long)
////// (
////// (double)
////// this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// /
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// );
////// /////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS.Text
////// = "TOT_MIDITICS= " +
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// .ToString();
////// /////////////////////////////////////////////////////////////////////////////////////////////////////
////// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// }
////// catch (Exception excp_to_convert_to_microseconds)
////// {
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// = 180000000;/// long type variable
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// =
////// (
////// (int)(
////// public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// / 480
////// )
////// + 1
////// )
////// * 480;
////// this.label_TOT_MICROSECONDS_DURATION_NX480
////// .Text
////// =
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// .ToString();
////// ////////////////////////////////////////////////////////////////////////////////////////////
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// = 4;//default numerator for beats per measure
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// = 4; ////// default denominator notes per beat is 2^2 that is the 4 (we take it as 4)
////// ////////////////////////////////////////////////////////////////////////
////// ///tooooooooo important data
////// ///
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// = 480;/// default is 8 x 60
////// /////////////////////////////////////////////////////////////////////////////////
////// ///
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// = 120;///default
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// =
////// (long)
////// (
////// 60000000
////// /
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// );
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// =
////// (
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// /
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// );
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK.Text
////// =
////// "MICROSEC/MIDITICK="+ this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// .ToString();
////// /////////////////////////////////////////////////////////////////////////
////// //////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// =
////// (long)
////// (
////// (double)
////// this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// /
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// );
////// /////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS.Text
////// = "TOT_MIDITICS= " +
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// .ToString();
////// }//catch(Exception excp_to_convert_to_microseconds)
////// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "DXF Files (.dxf)|*.dxf|All Files (*.*)|*.*";
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
////// string ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////// ////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
////// ///////////////yes running
////// ///////////////
////// //////////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID", false);
////// ///////////////yes running
////// /////////////// _midf.Describe()
////// ///////////////
////// ////////////System.IO.File.WriteAllText("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID.txt", _midf.ToString());
////// ////////////////////////////////////// yessssssssssssssssssssss worked
////// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
////// /// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
////// /// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
////// string[] strs = {
////// "" +
////// /// "D:\\dekhte_haiisko___guitar.mid"
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_HARDCODED_NOTES.MID"
////// , "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
////// SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
////// System.Windows.Forms.MessageBox.Show(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
////// //https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
////// // Create a Graphics object from the PictureBox
////// Graphics g = pictureBox_TO_TRY_SAANDXF.CreateGraphics();// // e.Graphics;
////// // Load the DXF file
////// SAANSDXF.DxfDocument SAAN_dxf = SAANSDXF.DxfDocument.Load(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
////// //////// Create a new DXF document
////// //////DxfDocument dxf_fresh = new DxfDocument();
////// //////// Create lines
////// //////SAANSDXF.Entities.Line line1 = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
////// //////SAANSDXF.Entities.Line line2 = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
////// /// DxfDocument dxf = new DxfDocument();
////// //////// Create lines
////// //////SAANSDXF.Entities.Line line1chk = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
////// //////SAANSDXF.Entities.Line line2chk = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
////// //////// Add lines to the model space
////// //////dxf.AddEntityToDocument(line1chk, true);
////// //////dxf.AddEntityToDocument(line2chk, true);
////// //////// Save the DXF file
////// //////dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_fresh_output.dxf");
////// ////// // Add lines to the model space
////// ////// dxf_fresh.AddEntity(line1);
////// ////// dxf_fresh.AddEntity(line2);
////// //////// dxf_fresh
////// ////// // Save the DXF file
////// ////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_output.dxf");
////// double freq_found = -6;
////// int note_number_to_take_integer = -6;
////// string note_name_to_take_string = "";
////// //ok tested if ((freq_found >= 7.6892) && (freq_found <= 8.7466){ note_number_to_take_integer = 1; note_name_to_take_string = "NONE"; }
////// ////// SAANSDXF.Entities.Line ___new_line = new SAANSDXF.Entities.Line();
////// ////// ___new_line.StartPoint = new SAANSDXF.Vector3(-600000,-600000,0.003);
////// ////// ___new_line.EndPoint = new SAANSDXF.Vector3(+600000, +600000, 0.003);
////// ////// ___new_line.Color = new AciColor(0.3, 0.6, 0.8);
////// ////// SAAN_dxf.AddEntityToDocument(___new_line, true);
////// ///////// SAAN_dxf.AddEntityToDocument
////// ////// SAAN_dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_SAANSDXF.DXF");
////// ///DxfDocument doc = DxfDocument.Load("sample.dxf");
////// SAAN_dxf.Entities.ActiveLayout = SAANSDXF.Objects.Layout.ModelSpaceName;// works after it is saved with higher version with autocad
////// ///
////// SAANSDXF.Collections.EntityCollection entities
////// = SAAN_dxf.Blocks[Block.DefaultModelSpaceName].Entities;
////// /////////////////////////////////////////////////////////////////////////////////////
////// int entitycount = -1;
////// entitycount = entities.Count;
////// int entitytimer = 0;
////// entitytimer = entitycount / 10000;
////// double vertsx = 0;
////// double vertsy = 0;
////// double vertsz = 0;
////// double vertex = 0;
////// double vertey = 0;
////// double vertez = 0;
////// int vertextcount = 0;
////// double vertx1 = 0;
////// double verty1 = 0;
////// double vertx2 = 0;
////// double verty2 = 0;
////// int roundamount = 16;
////// double totallength = 0;
////// double arclength = 0;
////// double linelength = 0;
////// double startAngle;
////// double endAngle;
////// double bulge;
////// double theta;
////// double c;
////// double r;
////// double gamma;
////// double phi;
////// double holdangle;
////// Vector2 p1;
////// Vector2 p2;
////// Vector2 center;
////// double ___saan_x_for_angle_calculation = 0;
////// double ___saan_y_for_angle_calculation = 0;
////// /// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// long total_microsecond_of_whole_song
////// =
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// ;
////// double ___total_notes_found_in_the_dxf = 0;
////// ___total_notes_found_in_the_dxf =
////// entities.Count;
////// //////////////////////////////////////////////////////////////////////
////// System.Windows.Forms.MessageBox.Show
////// ("Duration = " + total_microsecond_of_whole_song
////// + "\r\n\r\n\r\ntotal notes= " + ___total_notes_found_in_the_dxf
////// );
////// foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
////// {
////// r = myarc.Radius;
////// startAngle = myarc.StartAngle;
////// endAngle = myarc.EndAngle;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_ARC_DETAIL_"
////// + " radius = "+r
////// +" startAngle = " + startAngle
////// +" endAngle = " + endAngle
////// + " holdangle = " + holdangle
////// + " arclength = " + arclength
////// );
////// }// foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
////// //////////////////////////////////////////////////////////
////// string fileName_for_midi_from_the_dxf = "";
////// fileName_for_midi_from_the_dxf
////// =
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + ".mid";
////// /// public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
////// /// {
////// //////const int MidiFileType = 0;
////// //////const int BeatsPerMinute = 60;
////// //////const int TicksPerQuarterNote = 120;
////// //////const int TrackNumber = 0;
////// //////const int ChannelNumber = 1;
////// ///
////// ////// cant we take TicksPerQuarterNote as multiple of 60 ?
////// //////ChatGPT
////// //////In MIDI, TicksPerQuarterNote is often used as a multiple of 60 because it provides a convenient resolution for expressing tempo changes.However, it's not a strict requirement, and you can technically set TicksPerQuarterNote to any integer value based on your specific needs.
////// //////Using a multiple of 60, like 480(60 multiplied by 8), is common because it allows for easy tempo calculations in beats per minute(BPM) and makes it simple to represent note durations.It's a practical choice because it aligns well with common musical timing values.
////// //////That said, you can choose other values for TicksPerQuarterNote if your MIDI application requires different resolutions or if you have specific reasons to do so.Just be aware that using a value that's not a multiple of 60 may make it less intuitive when working with tempos in BPM and traditional musical notation.
////// //////public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
////// //////public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
////// //////public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
////// //////public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
////// //////public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
////// //////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
////// //////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
////// //////public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
////// //////public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
////// //////public double public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480 = 0;
////// int MidiFileType = 1;// 0;//////saan changes this to 1
////// int BeatsPerMinute =
////// (int)this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE;
////// //60;
////// int TicksPerQuarterNote =
////// (int)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480;
////// //120;////// too important /// multiple of 480
////// int TrackNumber = 0;
////// int ChannelNumber = 1;
////// //////public PatchParser()
////// ////// {
////// ////// this.patchMap.Add("nylon", 25);
////// ////// this.patchMap.Add("steel", 26);
////// ////// this.patchMap.Add("jazz", 27);
////// ////// this.patchMap.Add("clean", 28);
////// ////// this.patchMap.Add("muted", 29);
////// ////// this.patchMap.Add("distortion", 31);
////// ////// this.patchMap.Add("bass", 33);
////// ////// this.patchMap.Add("violin", 41);
////// ////// this.patchMap.Add("viola", 42);
////// ////// this.patchMap.Add("cello", 43);
////// ////// this.patchMap.Add("sitar", 105);
////// ////// this.patchMap.Add("banjo", 106);
////// ////// this.patchMap.Add("fiddle", 111);
////// ////// }//public PatchParser()
////// int Patch_number = 26;
////// long absoluteTime___start = 0;
////// long absoluteTime___final = 0;
////// var collection
////// = new
////// SAANAUDS.Midi.MidiEventCollection
////// (MidiFileType, TicksPerQuarterNote);
////// ////////////////////////////////////////////////////////////////////////////////////////////
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " MID_COLLECTION_STARTS_FRESH collection = " + collection.ToString()
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " MidiFileType = " + MidiFileType
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " TicksPerQuarterNote = " + TicksPerQuarterNote
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " BeatsPerMinute = " + BeatsPerMinute
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " TrackNumber = " + TrackNumber
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " ChannelNumber = " + ChannelNumber
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " absoluteTime___start = " + absoluteTime___start
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " absoluteTime___final = " + absoluteTime___start
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// //////collection
////// //////.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TextEvent
////// ////// (
////// ////// "Note Stream LYRICS",
////// ////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ////// ,
////// ////// absoluteTime
////// ////// ),
////// ////// TrackNumber
////// ////// );
////// //////++absoluteTime;
////// //////collection.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TempoEvent
////// //////(
////// ////// Local_CalculateMicrosecondsPerQuaterNote
////// ////// (
////// ////// BeatsPerMinute
////// ////// ),
////// ////// absoluteTime
////// ////// ),
////// ////// TrackNumber
////// ////// );
////// ///
////// ////// will do after some times
////// collection
////// .AddEvent
////// (
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// ((absoluteTime___start + absoluteTime___final) / 2)
////// ),
////// //TrackNumber
////// 0
////// );
////// ////// will do after some times
////// // ++absoluteTime;
////// collection.AddEvent
////// (
////// new SAANAUDS.Midi.TempoEvent
////// (
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// /// absoluteTime
////// absoluteTime___start
////// ),
////// // TrackNumber
////// 0
////// );
////// ////////////////////////////////////////////////
////// var patchParser = new SAANAUDS_CHECKING.PatchParser();
////// int patchNumber = patchParser.Patch("steel");//////////////////// i will configure this from layers
////// /////////////////// first entries so absolute time is zero
////// collection.AddEvent(
////// new
////// SAANAUDS.Midi.PatchChangeEvent
////// (
////// 0
////// ,
////// ChannelNumber
////// , patchNumber
////// )
////// , TrackNumber
////// );
////// //////const int NoteVelocity = 100;
////// ////// const int NoteDuration =
////// ////// ///3 * TicksPerQuarterNote / 4;
////// ////// const long SpaceBetweenNotes
////// ////// = TicksPerQuarterNote;
////// int NoteVelocity = 100;
////// long NoteDuration = 0;
////// double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
////// ///3 * TicksPerQuarterNote / 4;
////// long SpaceBetweenNotes
////// = 0;// TicksPerQuarterNote;
////// ////// absoluteTime += SpaceBetweenNotes;
////// ////// foreach (var note in allNotes)
////// ////// {
////// //////collection.AddEvent(new NoteOnEvent(absoluteTime, ChannelNumber, note.MidiValue, NoteVelocity, NoteDuration), TrackNumber);
////// //////collection.AddEvent(new NoteEvent(absoluteTime + NoteDuration, ChannelNumber, MidiCommandCode.NoteOff, note.MidiValue, 0), TrackNumber);
////// ////// absoluteTime += SpaceBetweenNotes;
////// ////// }//foreach (var note in allNotes)
////// ////// collection.PrepareForExport();
////// ////// /// MidiFile.Export(fileName, collection);
////// ////// ///
////// ////// SAANAUDS.Midi.MidiFile.Export(fileName_for_midi_from_the_dxf, collection);
////// ///////// }//public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// double line_Segments_counter = 0;
////// double line_Segments_count = 0;
////// line_Segments_count = entities.OfType<SAANSDXF.Entities.Line>().Count();
////// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
////// {
////// line_Segments_counter++;
////// vertsx = line.StartPoint.X;
////// vertsy = line.StartPoint.Y;
////// vertsz = line.StartPoint.Z;
////// vertex = line.EndPoint.X;
////// vertey = line.EndPoint.Y;
////// vertez = line.EndPoint.Z;
////// linelength = arclength = Math.Sqrt((Math.Pow((vertex - vertsx), 2) + Math.Pow((vertey - vertsy), 2) + Math.Pow((vertez - vertsz), 2)));
////// totallength = totallength + linelength;
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "\r\nSAANDXF___DXF_LINE_SEGMENTS_"
////// + " line_Segments_counter = " + line_Segments_counter
////// + " of line_Segments_count = " + line_Segments_count
////// + " vertsx = " + vertsx
////// + " vertsy = " + vertsy
////// + " vertsz = " + vertsz
////// + " vertex = " + vertex
////// + " vertey = " + vertey
////// + " vertez = " + vertez
////// + " linelength=" + linelength
////// );
////// ___saan_x_for_angle_calculation = 0;
////// ___saan_y_for_angle_calculation = 0;
////// if (vertsy >= 0 && vertsx > 0)
////// {
////// ___saan_x_for_angle_calculation = vertsx;
////// ___saan_y_for_angle_calculation = vertsy;
////// }
////// else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1)*vertsx;
////// ___saan_y_for_angle_calculation = vertsy;
////// }
////// else if (vertsy < 0 && vertsx < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1) * vertsx;
////// ___saan_y_for_angle_calculation = (-1) * vertsy;
////// }
////// else if (vertsy < 0 && vertsx > 0)
////// {
////// ___saan_x_for_angle_calculation = vertsx;
////// ___saan_y_for_angle_calculation = (-1) * vertsy;
////// }
////// else
////// {
////// ___saan_x_for_angle_calculation = 0.0000001;
////// ___saan_y_for_angle_calculation = vertsy;
////// }
////// double ___degrees_1 = 0;
////// ////// ___degrees_1
////// ////// =
////// //////// Math.Abs
////// ////// (
////// ////// Math.Atan(Math.Abs(vertsy)/Math.Abs(Math.Max(0.0001,Math.Min(0.00001, vertsx)))
////// ////// )
////// ////// )
////// ////// *360/Math.PI
////// ////// ;
////// ///
////// ___degrees_1
////// =
////// // Math.Abs
////// (
////// // Math.Atan2(vertsy,vertsx)
////// Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
////// )
////// * 360 / Math.PI
////// ;
////// ___degrees_1 = Math.Abs(___degrees_1);
//////if (vertsy>=0 && vertsx>=0)
//////{
//////___degrees_1 = ___degrees_1;
//////}
//////else if (vertsy >= 0 && vertsx < 0)
//////{
//////___degrees_1 =180- ___degrees_1;
//////}
//////else if (vertsy < 0 && vertsx < 0)
//////{
//////___degrees_1 = 270 - ___degrees_1;
//////}
//////else if (vertsy < 0 && vertsx >= 0)
//////{
//////___degrees_1 = 360 - ___degrees_1;
//////}
//////else
//////{
//////___degrees_1 = 60;
//////}
////// double ___degrees_2 = 0;
////// //////___degrees_2
////// ////// =
////// ////// // Math.Abs
////// ////// (
////// ////// Math.Atan(Math.Abs(vertey) /Math.Abs( Math.Max(0.0001,Math.Min(0.00001, vertex)))
////// ////// )
////// ////// )
////// ////// *( 360 / Math.PI)
////// ////// ;
////// ////// ___degrees_2
////// //////=
////// //////// Math.Abs
////// //////(
////// ////// Math.Atan2(vertey,vertex)
////// ////// )
////// ////// * 360 / Math.PI
////// ////// ;
////// ___saan_x_for_angle_calculation = 0;
////// ___saan_y_for_angle_calculation = 0;
////// ___saan_x_for_angle_calculation = 0;
////// ___saan_y_for_angle_calculation = 0;
////// if (vertey >= 0 && vertex > 0)
////// {
////// ___saan_x_for_angle_calculation = vertex;
////// ___saan_y_for_angle_calculation = vertey;
////// }
////// else if (vertey >= 0 && vertex < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1) * vertex;
////// ___saan_y_for_angle_calculation = vertey;
////// }
////// else if (vertey < 0 && vertex < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1) * vertex;
////// ___saan_y_for_angle_calculation = (-1) * vertey;
////// }
////// else if (vertey < 0 && vertex > 0)
////// {
////// ___saan_x_for_angle_calculation = vertex;
////// ___saan_y_for_angle_calculation = (-1) * vertey;
////// }
////// else
////// {
////// ___saan_x_for_angle_calculation = 0.0000001;
////// ___saan_y_for_angle_calculation = vertey;
////// }
////// ___degrees_2
////// =
////// // Math.Abs
////// (
////// // Math.Atan2(vertsy,vertsx)
////// Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
////// )
////// * 360 / Math.PI
////// ;
////// ___degrees_2 = Math.Abs(___degrees_2);
////// if (vertsy >= 0 && vertsx >= 0)
////// {
////// ___degrees_2 = ___degrees_2;
////// }
////// else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___degrees_2 = 180 - ___degrees_2;
////// }
////// else if (vertsy < 0 && vertsx < 0)
////// {
////// ___degrees_2 = 270 - ___degrees_2;
////// }
////// else if (vertsy < 0 && vertsx >= 0)
////// {
////// ___degrees_2 = 360 - ___degrees_2;
////// }
////// else
////// {
////// ___degrees_2 = 60;
////// }
////// //////long absoluteTime___start = 0;
////// //////long absoluteTime___final = 0;
////// absoluteTime___start
////// =
////// (long)(
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// *
////// (Math.PI/180)*
////// // this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// )
////// ;
////// absoluteTime___final
////// =
////// (long)(
////// Math.Max
////// (
////// ___degrees_1, ___degrees_2
////// )
////// *
////// (Math.PI / 180) *
////// // this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// )
////// ;
////// //////(long)
////// ////// Math.Max
////// ////// (
////// ////// ___degrees_1, ___degrees_2
////// ////// )
////// ////// *
////// ////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// ////// ;
////// ////// will do after some times
////// //////collection
////// //////.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TextEvent
////// ////// (
////// ////// "Note Stream LYRICS",
////// ////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ////// ,
////// ////// // absoluteTime
////// ////// ( ( absoluteTime___start + absoluteTime___final)/2)
////// ////// ),
////// ////// //TrackNumber
////// ////// 0
////// ////// );
////// ////// will do after some times
////// // ++absoluteTime;
////// //////collection.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TempoEvent
////// //////(
////// ////// Local_CalculateMicrosecondsPerQuaterNote
////// ////// (
////// ////// BeatsPerMinute
////// ////// ),
////// ////// /// absoluteTime
////// ////// absoluteTime___start
////// ////// ),
////// ////// // TrackNumber
////// ////// 0
////// ////// );
////// ////////////////////////////////////////////////
////// double ___dist_1
////// =
////// Math.Sqrt
////// (
////// (line.StartPoint.X * line.StartPoint.X)
////// +
////// (line.StartPoint.Y * line.StartPoint.Y)
////// );
////// double ___dist_2
////// =
////// Math.Sqrt
////// (
////// (line.EndPoint.X * line.EndPoint.X)
////// +
////// (line.EndPoint.Y * line.EndPoint.Y)
////// );
////// double
////// freq_found_from_the_nearest
////// =
////// Math.Min
////// (
////// ___dist_1 , ___dist_2
////// );
////// double
////// freq_found_from_the_furthest
////// =
////// Math.Max
////// (
////// ___dist_1, ___dist_2
////// );
////// ////// dxf_fresh.AddEntityToDocument(line,false);
////// // Add lines to the model space
////// // dxf_fresh.AddEntity(line1);
////// // dxf_fresh.AddEntity(line2);
////// // dxf_fresh
////// // Save the DXF file
////// //dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
////// ////////////////////tooooo important ///////////////////////////
////// /// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
////// /// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
////// double ___distance_of_current_line_segment_min_out_of_two = 0;
////// double ___distance_of_current_line_segment_max_out_of_two = 0;
////// ___distance_of_current_line_segment_min_out_of_two
////// =
////// freq_found_from_the_nearest;
////// ___distance_of_current_line_segment_max_out_of_two
////// =
////// freq_found_from_the_furthest;
////// int note_number_found_from_the_nearest_frequency_Hertz = 0;
////// int note_number_found_from_the_furthest_frequency_Hertz = 0;
////// string note_name_found_from_the_nearest_frequency_Hertz = "";
////// string note_name_found_from_the_furthest_frequency_Hertz = "";
////// /// calling conventions
////// /// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
////// /// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
////// note_number_found_from_the_nearest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_int_get_note_number_from_frequency_Hertz
////// (
////// freq_found_from_the_nearest
////// );
////// note_name_found_from_the_nearest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_string_get_note_name_from_frequency_Hertz
////// (
////// freq_found_from_the_nearest
////// );
////// note_number_found_from_the_furthest_frequency_Hertz
//////=
//////SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
//////// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
//////// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//////// .public_static_int_get_note_number_from_frequency_Hertz
//////.public_static_int_get_note_number_from_frequency_Hertz
//////(
////// freq_found_from_the_furthest
//////);
////// note_name_found_from_the_furthest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_string_get_note_name_from_frequency_Hertz
////// (
////// freq_found_from_the_furthest
////// );
////// //note_number_found_from_the_nearest_frequency_Hertz
////// if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_nearest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
////// // long NoteDuration = 0;
////// //note_number_found_from_the_furthest_frequency_Hertz
////// if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_furthest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
////// // long NoteDuration = 0;
////// /////////////////////////////////////////////////////////
////// ///
////// NoteDuration
////// =
////// Math.Abs (
////// Math.Max(
////// Math.Abs( absoluteTime___final)
////// ,
////// Math.Abs( absoluteTime___start)
////// )
////// -
////// Math.Abs(
////// Math.Min(
////// Math.Abs(absoluteTime___final)
////// ,
////// Math.Abs(absoluteTime___start)
////// )
////// )
////// )
////// ;
////// ///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
////// ///
////// /// double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
////// slope_in_linear_time
////// = Math.Atan2((double)(freq_found_from_the_furthest - freq_found_from_the_nearest), (double)NoteDuration);
////// slope_in_linear_time
////// = slope_in_linear_time * 360 / Math.PI;/// taken 10 times the angles
////// slope_in_linear_time
////// = slope_in_linear_time * 100;
////// TrackNumber
////// =
////// ((int)slope_in_linear_time) % 16;
////// ChannelNumber
////// = TrackNumber;
////// patchNumber
////// =
////// TrackNumber;
////// ///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
////// if(ChannelNumber>=15)
////// {
////// ChannelNumber = 9;
////// TrackNumber = 9;
////// patchNumber = 26;
////// }//if(ChannelNumber>=15)
////// if (ChannelNumber <=0)
////// {
////// ChannelNumber = 6;
////// TrackNumber = 6;
////// patchNumber = 41;
////// }//if (ChannelNumber <=0)
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .Append
////// (
////// // "SAANDXF___DXF_LINE_SEGMENTS_"
////// "TrackNumber =" + TrackNumber
//////+ " ChannelNumber =" + ChannelNumber
//////+ " ___degrees_1 = " + ___degrees_1
//////+ " ___degrees_2 = " + ___degrees_2
////// + " absoluteTime___start(min of two degrees) = " + absoluteTime___start
////// + " absoluteTime___final(max of two degrees) = " + absoluteTime___final
////// + " ___dist_1(= frequency1) = " + ___dist_1
////// + " ___dist_2(= frequency2) = " + ___dist_2
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " NoteDuration=" + NoteDuration
////// + " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
////// + " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
////// + " slope_in_linear_time = " + slope_in_linear_time
////// );
////// collection.AddEvent(
////// new
////// SAANAUDS.Midi.PatchChangeEvent
////// (
////// ///saan puts this here
////// absoluteTime___start
////// ,
////// ChannelNumber
////// , patchNumber
////// )
////// , TrackNumber
////// );
////// ///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
////// /////////////////////////////////////////////////////////
////// collection.AddEvent
////// (
////// new SAANAUDS.Midi.NoteOnEvent
////// (
////// ////// absoluteTime
////// absoluteTime___start
////// ,
////// ChannelNumber
////// ,
////// // note.MidiValue
////// note_number_found_from_the_nearest_frequency_Hertz
////// ,
////// NoteVelocity
////// ,
////// (int)Math.Min( NoteDuration,1)
////// )
////// ,
////// TrackNumber
////// );
////// /////////////////////////////////////////////////////////
////// //////absoluteTime___final
////// ////// = Math.Min(30, absoluteTime___final);
////// collection.AddEvent
////// (
////// new
////// SAANAUDS.Midi.NoteEvent
////// (
////// /// absoluteTime + NoteDuration
////// absoluteTime___final
////// ,
////// ChannelNumber
////// ,
////// SAANAUDS.Midi
////// .MidiCommandCode
////// .NoteOff
////// ,
////// // note.MidiValue
////// note_number_found_from_the_nearest_frequency_Hertz
////// , 0
////// ),
////// TrackNumber
////// );
////// // absoluteTime += SpaceBetweenNotes;
////// }// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
////// System.IO.File.WriteAllText
////// (
////// fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// ,
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .ToString()
////// );
////// System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
////// ///caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// ///caution caution caution we will add these later
////// collection.PrepareForExport();
////// ///caution caution caution we will add these later MidiFile.Export(fileName, collection);
////// ///
////// /// caution caution caution we will add these later
////// SAANAUDS.Midi.MidiFile.Export(fileName_for_midi_from_the_dxf, collection);
////// ////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
////// {
////// vertextcount = poly2d.Vertexes.Count;
////// new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
////// vertx1 = poly2d.Vertexes[0].Position.X;
////// verty1 = poly2d.Vertexes[0].Position.Y;
////// vertx2 = poly2d.Vertexes[1].Position.X;
////// verty2 = poly2d.Vertexes[1].Position.Y;
////// bulge = poly2d.Vertexes[0].Bulge;
////// p1 = new Vector2(vertx1, verty1);
////// p2 = new Vector2(vertx2, verty2);
////// theta = 4 * Math.Atan(Math.Abs(bulge));
////// c = Vector2.Distance(p1, p2) / 2.0;
////// r = c / Math.Sin(theta / 2.0);
////// //i have the radius, finally again
////// gamma = (Math.PI - theta) / 2;
////// phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
////// center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
////// if (!MathHelper.IsZero(bulge))
////// {
////// startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
////// endAngle = startAngle + MathHelper.RadToDeg * theta;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// }
////// else
////// {
////// linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
////// totallength = totallength + linelength;
////// }
////// /////////////////////////////////////////////////////////////////
////// for (int z = 1; z < vertextcount - 1; z++)
////// {
////// vertextcount = poly2d.Vertexes.Count;
////// new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
////// vertx1 = poly2d.Vertexes[z].Position.X;
////// verty1 = poly2d.Vertexes[z].Position.Y;
////// vertx2 = poly2d.Vertexes[z + 1].Position.X;
////// verty2 = poly2d.Vertexes[z + 1].Position.Y;
////// bulge = poly2d.Vertexes[z].Bulge;
////// p1 = new Vector2(vertx1, verty1);
////// p2 = new Vector2(vertx2, verty2);
////// theta = 4 * Math.Atan(Math.Abs(bulge));
////// c = Vector2.Distance(p1, p2) / 2.0;
////// r = c / Math.Sin(theta / 2.0);
////// gamma = (Math.PI - theta) / 2;
////// phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
////// center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
////// if (!MathHelper.IsZero(bulge))
////// {
////// startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
////// endAngle = startAngle + MathHelper.RadToDeg * theta;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// }
////// else
////// {
////// linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
////// totallength = totallength + linelength;
////// }
////// }
////// ///////////////////////////////////////////////////////////////// is a closed polyline?
////// if (poly2d.IsClosed)
////// {
////// vertextcount = poly2d.Vertexes.Count;
////// new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
////// vertx1 = poly2d.Vertexes[vertextcount - 1].Position.X;
////// verty1 = poly2d.Vertexes[vertextcount - 1].Position.Y;
////// vertx2 = poly2d.Vertexes[0].Position.X;
////// verty2 = poly2d.Vertexes[0].Position.Y;
////// bulge = poly2d.Vertexes[vertextcount - 1].Bulge;
////// p1 = new Vector2(vertx1, verty1);
////// p2 = new Vector2(vertx2, verty2);
////// theta = 4 * Math.Atan(Math.Abs(bulge));
////// c = Vector2.Distance(p1, p2) / 2.0;
////// r = c / Math.Sin(theta / 2.0);
////// gamma = (Math.PI - theta) / 2;
////// phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
////// center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
////// if (!MathHelper.IsZero(bulge))
////// {
////// startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
////// endAngle = startAngle + MathHelper.RadToDeg * theta;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// }
////// else
////// {
////// linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
////// totallength = totallength + linelength;
////// }
////// }
////// poly2d.Normal = new Vector3(0, 0, 1);
////// }//foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
////// totallength = Math.Round(totallength * roundamount, 0) / roundamount;
////// string tempstring = totallength.ToString();
////// ////////////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
////// System.Windows.Forms.MessageBox.Show(tempstring);
////// ////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
////// ///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
////// ///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
////// ///while writing THE MIDI FILE FIRST WE NEED TO READ THE DXF FILE FOR THE LINE SEGMENTS //////
////// ///AND THEN CALCULATING THE TOTAL DURATIONS AND THEN PUTTING THE WHOLE RECALCULATIONS DONE FIRST
////// ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// =
////// new List<double>();
////// ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// .Clear();
////// ExcelFormulaParser_GT_PARSER.SAANAUDS
////// .PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// .Clear();
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ExcelFormulaParser_GT_PARSER.SAANAUDS
////// .PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// .Sort();
////// //////double large_radius_to_use_for_gridding =
////// ////// ___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
////// ////// *
////// ////// ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
////// ////// + 3000;
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// /// and while writing the midi files first we will prepare track zero events for lyrics and the copyrights
////// /// where we will put the data for these things there from the dxf line segments data as read there
////// ///
////// foreach (
////// double six_digit_radian_in_list
////// in
////// ExcelFormulaParser_GT_PARSER.SAANAUDS
////// .PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// )
////// {
////// double six_digit_radian
////// = 0;
////// // in previous loop we have already found this
////// /// ___temp_total_length___of_the_song
////// ///
////// six_digit_radian = Math.Round(six_digit_radian_in_list, 6);
////// string ___GRIDS_TIMES_TEXT_DATA = "";
////// //////___GRIDS_TIMES_TEXT_DATA
////// ////// =
////// ////// (System.Math.Round(___temp_total_length___of_the_song * six_digit_radian, 0)).ToString();
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////
////// //////double ___temp_x1_for_grids_end
////// ////// = large_radius_to_use_for_gridding * System.Math.Cos(six_digit_radian);
////// //////double ___temp_y1_for_grids_end
////// ////// = large_radius_to_use_for_gridding * System.Math.Sin(six_digit_radian);
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// ////// .draw_dxf_circle_WITH_BLOCK_LEVEL_COLOR
////// ////// (0, 0, 0,
////// ////// large_radius_to_use_for_gridding, "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// ////// );
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// ////// .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
////// ////// (
////// ////// 0, 0, -600000,
////// ////// ___temp_x1_for_grids_end
////// ////// ,
////// ////// ___temp_y1_for_grids_end
////// ////// ,
////// ////// -600000,
////// ////// "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// ////// );
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// ////// .draw_dxf_text_ON_TOP_VIEW_WITH_BLOCK_LEVEL_COLOR
////// ////// (
////// ////// ___temp_x1_for_grids_end
////// ////// ,
////// ////// ___temp_y1_for_grids_end
////// ////// ,
////// ////// -600000, 0, 60,
////// ////// "LAYER_GRIDS_CIRCLE",
////// ////// ___GRIDS_TIMES_TEXT_DATA
////// ////// ,
////// ////// "XDATA", 6
////// ////// );
////// }
////// //////foreach (
////// //////double six_digit_radian_in_list
////// //////in
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// //////.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// //////)
////// //////textBox2.Text = tempstring;
////// //////textBox2.Refresh();`
////// /////////// great https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// ///
////// ///
////// //////foreach (Layout layout in SAAN_dxf.Layouts)
////// ////// {
////// ////// List<DxfObjectReference> entities = SAAN_dxf.Layouts.GetReferences(layout);
////// ////// foreach (DxfObjectReference o__dxfobjectreference_entity in entities)
////// ////// {
////// ////// EntityObject entity = o__dxfobjectreference_entity as EntityObject;
////// ////// }//foreach (DxfObject o in entities)
////// ////// }// foreach (Layout layout in SAAN_dxf.Layouts)
////// //////// foreach (var entity in SAAN_dxf.Entities)
////// //////foreach (var entity in SAAN_dxf)
////// ////// {
////// ////// if (entity is Circle)
////// ////// {
////// ////// // Handle Circle entity
////// ////// Circle circle = (Circle)entity;
////// ////// DrawCircle(g, circle);
////// ////// }
////// ////// else if (entity is Line)
////// ////// {
////// ////// // Handle Line entity
////// ////// Line line = (Line)entity;
////// ////// DrawLine(g, line);
////// ////// }//if (entity is Circle)
////// ////// // Add more conditions to handle other entities (e.g., Arc, Text, etc.)
////// ////// }//foreach (EntityObject entity in dxf.Modelspace)
////// // Specify the path to your CSV file
////// string csvFilePath = "d:\\chkers.csv";
////// // Load CSV data
////// string[] csvLines = System.IO.File.ReadAllLines(csvFilePath);
////// // Parse CSV data and extract information
////// // You'll need to implement your own logic to extract tempo, time signature, key signature, and channel-wise data.
////// //////// Create a new MIDI file
////// //////SAANAUDS.Midi.MidiFile midiFile = new SAANAUDS.Midi.MidiFile(csvFilePath+"_new.mid");
////// //////// Set tempo (example value, replace with your own)
////// //////// midiFile.DeltaTicksPerQuarterNote = 960;
////// //////midiFile.DeltaTicksPerQuarterNote = 960;
////// /// SAANAUDS.Midi.MidiEvent tempoEvent = new SAANAUDS.Midi.TempoEvent(500000); // Tempo in microseconds per quarter note (e.g., 500,000 for 120 BPM)
////// // Create a new MIDI track for your data
////// // SAANAUDS.Midi.MidiTrack track = new SAANAUDS.Midi.MidiTrack();
////// /// SAANAUDS.Midi. track = new SAANAUDS.Midi.MidiTrack();
////// /// midiFile.Tracks.Add(track);
////// /////////////// we cannot prepare the midi file object to save the midi file
////// ///instead we need to prepare MidiEventCollection and then need to save that to file through
////// ///static method of the MidiFile
////// ///
////// // Add tempo event
////// /// track.AddEvent(tempoEvent);
////// ///
////// ///refer F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL
////// ///\excelformulaparser
////// ///\DOING_GT06012020plus
////// ///\DSMSETS_ANI_DNGIFGTTODOINOFFICE
////// ///\ExcelFormulaParserSample\SAANAUDS\SAANAUDS_CHECKING_SimpleMidiFileWriter.cs
////// ///
////// /////// SAANAUDS.Midi.MidiEventCollection ___saanauds_midieventscollection = new SAANAUDS.Midi.MidiEventCollection();
////// //////// Add your note events and pitch bend events to the track
////// //////foreach (string line in csvLines)
////// ////// {
////// ////// string[] parts = line.Split(',');
////// ////// if (parts.Length >= 5)
////// ////// {
////// ////// int channel = int.Parse(parts[1]);
////// ////// int noteNumber = int.Parse(parts[2]);
////// ////// int velocity = int.Parse(parts[3]);
////// ////// long absoluteTime = long.Parse(parts[4]);
////// ////// // Create note on and note off events, and pitch bend events
////// ////// var noteOn = new NoteOnEvent(absoluteTime, channel, noteNumber, velocity);
////// ////// var noteOff = new NoteEvent(absoluteTime + 1000, channel, MidiCommandCode.NoteOff, noteNumber, velocity);
////// ////// var pitchBend = new PitchBendEvent(absoluteTime, channel, 8192); // Example pitch bend value
////// ////// // Add events to the track
////// ////// track.AddEvent(noteOn);
////// ////// track.AddEvent(noteOff);
////// ////// track.AddEvent(pitchBend);
////// ////// }
////// ////// }
////// //////// Save the MIDI file
////// //////string outputFile = "output.mid";
////// //////midiFile.Save(outputFile);
////// }
////// catch (Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
////// {
////// System.Windows.Forms.MessageBox.Show
////// ("_excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX" + _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.Message + "\r\n\r\n\r\n"
////// + _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.StackTrace.ToString()
////// );
////// }//catch(Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
////// }// private void button___SAANDXF_CIRCULAR_IN_GRAPHICS_LOAD_CHECKING_Click(object sender, EventArgs e)
////// private void DISCARDING_TO_REFINE_PITCHBENTS_AND_TO_BREAK_NOTE_DURATIONS___button___SAANDXF_CIRCULAR_IN_GRAPHICS_LOAD_CHECKING_Click(object sender, EventArgs e)
////// {
////// try
////// {
////// StringBuilder ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// = new StringBuilder();
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes.Clear();
////// //////http://www.synthfont.com/SFSPEC21.PDF
////// //////http://www.synthfont.com/SFSPEC21.PDF
////// /////////http://www.synthfont.com/SFSPEC21.PDF
////// //D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
////// //////https://markheath.net/category/naudio
////// ///
////// ////// ///TESTED IT IS WORKING AND PLAYING ALSO
////// ////// string[] strs = {
////// ////// "" +
////// ////// "D:\\dekhte_haiisko___guitar.mid"
////// ////// , "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
////// //////SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
////// try
////// {
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// = (long)Convert.ToInt64(textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS.Text.TrimEnd().Trim().Trim().Replace(" ", ""));
////// ////// cant we take TicksPerQuarterNote as multiple of 60 ? instead of multiple of 480
////// //////ChatGPT
////// //////In MIDI, TicksPerQuarterNote is often used as a multiple of 60 because it provides a convenient resolution for expressing tempo changes.However, it's not a strict requirement, and you can technically set TicksPerQuarterNote to any integer value based on your specific needs.
////// //////Using a multiple of 60, like 480(60 multiplied by 8), is common because it allows for easy tempo calculations in beats per minute(BPM) and makes it simple to represent note durations.It's a practical choice because it aligns well with common musical timing values.
////// //////That said, you can choose other values for TicksPerQuarterNote if your MIDI application requires different resolutions or if you have specific reasons to do so.Just be aware that using a value that's not a multiple of 60 may make it less intuitive when working with tempos in BPM and traditional musical notation.
////// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// ////////public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
////// ////////public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
////// ////////public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
////// ////////public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
////// ////////public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
////// ////////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
////// ////////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
////// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// ////////public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
////// ////////public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
////// //////public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// ///
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// =
////// (
////// (int)(
////// public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// / 480
////// )
////// + 1
////// )
////// * 480;
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// this.label_TOT_MICROSECONDS_DURATION_NX480
////// .Text
////// =
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// .ToString();
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// ////////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// = Convert.ToInt32
////// (
////// this.textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// ////////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// = Convert.ToInt32
////// (
////// this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// //////////////////////////////////////////////////////////////////////////////////////////
////// //////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// = Convert.ToDouble
////// (
////// this.textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// //////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// //////////////////////////////////////////////////////////////////////////////////////////
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// = Convert.ToDouble
////// (
////// this.textBoxFOR_BEATS_PER_MINUTE.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// =
////// (long)
////// (
////// 60000000
////// /
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// );
////// //////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// =
////// (
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// /
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// );
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK.Text
////// =
////// "MICROSEC/MIDITICK=" + this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// .ToString();
////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// //////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// =
////// (long)
////// (
////// (double)
////// this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// /
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// );
////// /////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS.Text
////// = "TOT_MIDITICS= " +
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// .ToString();
////// /////////////////////////////////////////////////////////////////////////////////////////////////////
////// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// }
////// catch (Exception excp_to_convert_to_microseconds)
////// {
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// = 180000000;/// long type variable
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// =
////// (
////// (int)(
////// public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// / 480
////// )
////// + 1
////// )
////// * 480;
////// this.label_TOT_MICROSECONDS_DURATION_NX480
////// .Text
////// =
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// .ToString();
////// ////////////////////////////////////////////////////////////////////////////////////////////
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// = 4;//default numerator for beats per measure
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// = 4; ////// default denominator notes per beat is 2^2 that is the 4 (we take it as 4)
////// ////////////////////////////////////////////////////////////////////////
////// ///tooooooooo important data
////// ///
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// = 480;/// default is 8 x 60
////// /////////////////////////////////////////////////////////////////////////////////
////// ///
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// = 120;///default
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// =
////// (long)
////// (
////// 60000000
////// /
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// );
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// =
////// (
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// /
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// );
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK.Text
////// =
////// "MICROSEC/MIDITICK=" + this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// .ToString();
////// /////////////////////////////////////////////////////////////////////////
////// //////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// =
////// (long)
////// (
////// (double)
////// this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// /
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// );
////// /////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS.Text
////// = "TOT_MIDITICS= " +
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// .ToString();
////// }//catch(Exception excp_to_convert_to_microseconds)
////// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "DXF Files (.dxf)|*.dxf|All Files (*.*)|*.*";
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
////// string ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////// ////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
////// ///////////////yes running
////// ///////////////
////// //////////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID", false);
////// ///////////////yes running
////// /////////////// _midf.Describe()
////// ///////////////
////// ////////////System.IO.File.WriteAllText("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID.txt", _midf.ToString());
////// ////////////////////////////////////// yessssssssssssssssssssss worked
////// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
////// /// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
////// /// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
////// string[] strs = {
////// "" +
////// /// "D:\\dekhte_haiisko___guitar.mid"
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_HARDCODED_NOTES.MID"
////// , "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
////// SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
////// System.Windows.Forms.MessageBox.Show(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
////// //https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
////// // Create a Graphics object from the PictureBox
////// Graphics g = pictureBox_TO_TRY_SAANDXF.CreateGraphics();// // e.Graphics;
////// // Load the DXF file
////// SAANSDXF.DxfDocument SAAN_dxf = SAANSDXF.DxfDocument.Load(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
////// //////// Create a new DXF document
////// //////DxfDocument dxf_fresh = new DxfDocument();
////// //////// Create lines
////// //////SAANSDXF.Entities.Line line1 = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
////// //////SAANSDXF.Entities.Line line2 = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
////// /// DxfDocument dxf = new DxfDocument();
////// //////// Create lines
////// //////SAANSDXF.Entities.Line line1chk = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
////// //////SAANSDXF.Entities.Line line2chk = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
////// //////// Add lines to the model space
////// //////dxf.AddEntityToDocument(line1chk, true);
////// //////dxf.AddEntityToDocument(line2chk, true);
////// //////// Save the DXF file
////// //////dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_fresh_output.dxf");
////// ////// // Add lines to the model space
////// ////// dxf_fresh.AddEntity(line1);
////// ////// dxf_fresh.AddEntity(line2);
////// //////// dxf_fresh
////// ////// // Save the DXF file
////// ////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_output.dxf");
////// double freq_found = -6;
////// int note_number_to_take_integer = -6;
////// string note_name_to_take_string = "";
////// //ok tested if ((freq_found >= 7.6892) && (freq_found <= 8.7466){ note_number_to_take_integer = 1; note_name_to_take_string = "NONE"; }
////// ////// SAANSDXF.Entities.Line ___new_line = new SAANSDXF.Entities.Line();
////// ////// ___new_line.StartPoint = new SAANSDXF.Vector3(-600000,-600000,0.003);
////// ////// ___new_line.EndPoint = new SAANSDXF.Vector3(+600000, +600000, 0.003);
////// ////// ___new_line.Color = new AciColor(0.3, 0.6, 0.8);
////// ////// SAAN_dxf.AddEntityToDocument(___new_line, true);
////// ///////// SAAN_dxf.AddEntityToDocument
////// ////// SAAN_dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_SAANSDXF.DXF");
////// ///DxfDocument doc = DxfDocument.Load("sample.dxf");
////// SAAN_dxf.Entities.ActiveLayout = SAANSDXF.Objects.Layout.ModelSpaceName;// works after it is saved with higher version with autocad
////// ///
////// SAANSDXF.Collections.EntityCollection entities
////// = SAAN_dxf.Blocks[Block.DefaultModelSpaceName].Entities;
////// /////////////////////////////////////////////////////////////////////////////////////
////// int entitycount = -1;
////// entitycount = entities.Count;
////// int entitytimer = 0;
////// entitytimer = entitycount / 10000;
////// double vertsx = 0;
////// double vertsy = 0;
////// double vertsz = 0;
////// double vertex = 0;
////// double vertey = 0;
////// double vertez = 0;
////// int vertextcount = 0;
////// double vertx1 = 0;
////// double verty1 = 0;
////// double vertx2 = 0;
////// double verty2 = 0;
////// int roundamount = 16;
////// double totallength = 0;
////// double arclength = 0;
////// double linelength = 0;
////// double startAngle;
////// double endAngle;
////// double bulge;
////// double theta;
////// double c;
////// double r;
////// double gamma;
////// double phi;
////// double holdangle;
////// Vector2 p1;
////// Vector2 p2;
////// Vector2 center;
////// double ___saan_x_for_angle_calculation = 0;
////// double ___saan_y_for_angle_calculation = 0;
////// /// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// long total_microsecond_of_whole_song
////// =
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// ;
////// double ___total_notes_found_in_the_dxf = 0;
////// ___total_notes_found_in_the_dxf =
////// entities.Count;
////// //////////////////////////////////////////////////////////////////////
////// System.Windows.Forms.MessageBox.Show
////// ("Duration = " + total_microsecond_of_whole_song
////// + "\r\n\r\n\r\ntotal notes= " + ___total_notes_found_in_the_dxf
////// );
////// foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
////// {
////// r = myarc.Radius;
////// startAngle = myarc.StartAngle;
////// endAngle = myarc.EndAngle;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_ARC_DETAIL_"
////// + " radius = " + r
////// + " startAngle = " + startAngle
////// + " endAngle = " + endAngle
////// + " holdangle = " + holdangle
////// + " arclength = " + arclength
////// );
////// }// foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
////// //////////////////////////////////////////////////////////
////// //////string fileName_for_midi_from_the_dxf = "";
////// //////fileName_for_midi_from_the_dxf
////// ////// =
////// ////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + ".mid";
////// /// public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
////// /// {
////// //////const int MidiFileType = 0;
////// //////const int BeatsPerMinute = 60;
////// //////const int TicksPerQuarterNote = 120;
////// //////const int TrackNumber = 0;
////// //////const int ChannelNumber = 1;
////// ///
////// ////// cant we take TicksPerQuarterNote as multiple of 60 ?
////// //////ChatGPT
////// //////In MIDI, TicksPerQuarterNote is often used as a multiple of 60 because it provides a convenient resolution for expressing tempo changes.However, it's not a strict requirement, and you can technically set TicksPerQuarterNote to any integer value based on your specific needs.
////// //////Using a multiple of 60, like 480(60 multiplied by 8), is common because it allows for easy tempo calculations in beats per minute(BPM) and makes it simple to represent note durations.It's a practical choice because it aligns well with common musical timing values.
////// //////That said, you can choose other values for TicksPerQuarterNote if your MIDI application requires different resolutions or if you have specific reasons to do so.Just be aware that using a value that's not a multiple of 60 may make it less intuitive when working with tempos in BPM and traditional musical notation.
////// //////public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
////// //////public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
////// //////public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
////// //////public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
////// //////public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
////// //////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
////// //////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
////// //////public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
////// //////public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
////// //////public double public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480 = 0;
////// int MidiFileType = 1;// 0;//////saan changes this to 1
////// int BeatsPerMinute =
////// (int)this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE;
////// //60;
////// int TicksPerQuarterNote =
////// (int)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480;
////// //120;////// too important /// multiple of 480
////// int TrackNumber = 0;
////// int ChannelNumber = 1;
////// //////public PatchParser()
////// ////// {
////// ////// this.patchMap.Add("nylon", 25);
////// ////// this.patchMap.Add("steel", 26);
////// ////// this.patchMap.Add("jazz", 27);
////// ////// this.patchMap.Add("clean", 28);
////// ////// this.patchMap.Add("muted", 29);
////// ////// this.patchMap.Add("distortion", 31);
////// ////// this.patchMap.Add("bass", 33);
////// ////// this.patchMap.Add("violin", 41);
////// ////// this.patchMap.Add("viola", 42);
////// ////// this.patchMap.Add("cello", 43);
////// ////// this.patchMap.Add("sitar", 105);
////// ////// this.patchMap.Add("banjo", 106);
////// ////// this.patchMap.Add("fiddle", 111);
////// ////// }//public PatchParser()
////// int Patch_number = 26;
////// long absoluteTime___start = 0;
////// long absoluteTime___final = 0;
////// var collection
////// = new
////// SAANAUDS.Midi.MidiEventCollection
////// (MidiFileType, TicksPerQuarterNote);
////// ////////////////////////////////////////////////////////////////////////////////////////////
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " MID_COLLECTION_STARTS_FRESH collection = " + collection.ToString()
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " MidiFileType = " + MidiFileType
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " TicksPerQuarterNote = " + TicksPerQuarterNote
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " BeatsPerMinute = " + BeatsPerMinute
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " TrackNumber = " + TrackNumber
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " ChannelNumber = " + ChannelNumber
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " absoluteTime___start = " + absoluteTime___start
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "SAANDXF___DXF_MidiFileType_"
////// + " absoluteTime___final = " + absoluteTime___start
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// //////collection
////// //////.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TextEvent
////// ////// (
////// ////// "Note Stream LYRICS",
////// ////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ////// ,
////// ////// absoluteTime
////// ////// ),
////// ////// TrackNumber
////// ////// );
////// //////++absoluteTime;
////// //////collection.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TempoEvent
////// //////(
////// ////// Local_CalculateMicrosecondsPerQuaterNote
////// ////// (
////// ////// BeatsPerMinute
////// ////// ),
////// ////// absoluteTime
////// ////// ),
////// ////// TrackNumber
////// ////// );
////// ///
////// ////// will do after some times
////// collection
////// .AddEvent
////// (
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// (long)((absoluteTime___start + absoluteTime___final) / 6)
////// ),
////// //TrackNumber
////// TrackNumber
////// );
////// ////// will do after some times
////// // ++absoluteTime;
////// collection.AddEvent
////// (
////// new SAANAUDS.Midi.TempoEvent
////// (
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// /// absoluteTime
////// absoluteTime___start
////// ),
////// // TrackNumber
////// TrackNumber
////// );
////// ////////////////////////////////////////////////
////// var patchParser = new SAANAUDS_CHECKING.PatchParser();
////// int patchNumber = patchParser.Patch("steel");//////////////////// i will configure this from layers
////// /////////////////// first entries so absolute time is zero
////// collection.AddEvent(
////// new
////// SAANAUDS.Midi.PatchChangeEvent
////// (
////// 0
////// ,
////// ChannelNumber
////// , patchNumber
////// )
////// , TrackNumber
////// );
////// //////const int NoteVelocity = 100;
////// ////// const int NoteDuration =
////// ////// ///3 * TicksPerQuarterNote / 4;
////// ////// const long SpaceBetweenNotes
////// ////// = TicksPerQuarterNote;
////// int NoteVelocity = 100;
////// long NoteDuration = 0;
////// double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
////// ///3 * TicksPerQuarterNote / 4;
////// long SpaceBetweenNotes
////// = 0;// TicksPerQuarterNote;
////// ////// absoluteTime += SpaceBetweenNotes;
////// ////// foreach (var note in allNotes)
////// ////// {
////// //////collection.AddEvent(new NoteOnEvent(absoluteTime, ChannelNumber, note.MidiValue, NoteVelocity, NoteDuration), TrackNumber);
////// //////collection.AddEvent(new NoteEvent(absoluteTime + NoteDuration, ChannelNumber, MidiCommandCode.NoteOff, note.MidiValue, 0), TrackNumber);
////// ////// absoluteTime += SpaceBetweenNotes;
////// ////// }//foreach (var note in allNotes)
////// ////// collection.PrepareForExport();
////// ////// /// MidiFile.Export(fileName, collection);
////// ////// ///
////// ////// SAANAUDS.Midi.MidiFile.Export(fileName_for_midi_from_the_dxf, collection);
////// ///////// }//public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// ////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////// double line_Segments_counter = 0;
////// double line_Segments_count = 0;
////// double ___degrees_1 = 0;
////// double ___degrees_2 = 0;
////// double ___dist_1 = 0;
////// double ___dist_2 = 0;
////// double freq_found_from_the_nearest = 0;
////// double freq_found_from_the_furthest = 0;
////// double ___distance_of_current_line_segment_min_out_of_two = 0;
////// double ___distance_of_current_line_segment_max_out_of_two = 0;
////// int note_number_found_from_the_nearest_frequency_Hertz = 0;
////// int note_number_found_from_the_furthest_frequency_Hertz = 0;
////// string note_name_found_from_the_nearest_frequency_Hertz = "";
////// string note_name_found_from_the_furthest_frequency_Hertz = "";
////// ////////////////////////// these are used to put the pitch bents
////// double start_side_of_line_segments_angle_with_x_axis = 0;
////// double final_side_of_line_segments_angle_with_x_axis = 0;
////// ////////////////////////// these are used to put the pitch bents
////// double start_side_of_line_segments_frequency = 0;
////// double final_side_of_line_segments_frequency = 0;
////// double delta_pitch = 0;
////// line_Segments_count = entities.OfType<SAANSDXF.Entities.Line>().Count();
////// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
////// {
////// line_Segments_counter++;
////// vertsx = line.StartPoint.X;
////// vertsy = line.StartPoint.Y;
////// vertsz = line.StartPoint.Z;
////// vertex = line.EndPoint.X;
////// vertey = line.EndPoint.Y;
////// vertez = line.EndPoint.Z;
////// linelength = arclength = Math.Sqrt((Math.Pow((vertex - vertsx), 2) + Math.Pow((vertey - vertsy), 2) + Math.Pow((vertez - vertsz), 2)));
////// totallength = totallength + linelength;
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "\r\nSAANDXF___DXF_LINE_SEGMENTS_"
////// + " line_Segments_counter = " + line_Segments_counter
////// + " of line_Segments_count = " + line_Segments_count
////// + " vertsx = " + vertsx
////// + " vertsy = " + vertsy
////// + " vertsz = " + vertsz
////// + " vertex = " + vertex
////// + " vertey = " + vertey
////// + " vertez = " + vertez
////// + " linelength=" + linelength
////// );
////// ___saan_x_for_angle_calculation = 0;
////// ___saan_y_for_angle_calculation = 0;
////// if (vertsy >= 0 && vertsx > 0)
////// {
////// ___saan_x_for_angle_calculation = vertsx;
////// ___saan_y_for_angle_calculation = vertsy;
////// }
////// else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1) * vertsx;
////// ___saan_y_for_angle_calculation = vertsy;
////// }
////// else if (vertsy < 0 && vertsx < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1) * vertsx;
////// ___saan_y_for_angle_calculation = (-1) * vertsy;
////// }
////// else if (vertsy < 0 && vertsx > 0)
////// {
////// ___saan_x_for_angle_calculation = vertsx;
////// ___saan_y_for_angle_calculation = (-1) * vertsy;
////// }
////// else
////// {
////// ___saan_x_for_angle_calculation = 0.0000001;
////// ___saan_y_for_angle_calculation = vertsy;
////// }
////// ___degrees_1 = 0;
////// ////// ___degrees_1
////// ////// =
////// //////// Math.Abs
////// ////// (
////// ////// Math.Atan(Math.Abs(vertsy)/Math.Abs(Math.Max(0.0001,Math.Min(0.00001, vertsx)))
////// ////// )
////// ////// )
////// ////// *360/Math.PI
////// ////// ;
////// ///
////// ___degrees_1
////// =
////// // Math.Abs
////// (
////// // Math.Atan2(vertsy,vertsx)
////// Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
////// )
////// * 360 / Math.PI
////// ;
////// ___degrees_1 = Math.Abs(___degrees_1);
////// if (vertsy >= 0 && vertsx >= 0)
////// {
////// ___degrees_1 = ___degrees_1;
////// }
////// else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___degrees_1 = 180 - ___degrees_1;
////// }
////// else if (vertsy < 0 && vertsx < 0)
////// {
////// ___degrees_1 = 270 - ___degrees_1;
////// }
////// else if (vertsy < 0 && vertsx >= 0)
////// {
////// ___degrees_1 = 360 - ___degrees_1;
////// }
////// else
////// {
////// ___degrees_1 = 60;
////// }
////// ___degrees_2 = 0;
////// //////___degrees_2
////// ////// =
////// ////// // Math.Abs
////// ////// (
////// ////// Math.Atan(Math.Abs(vertey) /Math.Abs( Math.Max(0.0001,Math.Min(0.00001, vertex)))
////// ////// )
////// ////// )
////// ////// *( 360 / Math.PI)
////// ////// ;
////// ////// ___degrees_2
////// //////=
////// //////// Math.Abs
////// //////(
////// ////// Math.Atan2(vertey,vertex)
////// ////// )
////// ////// * 360 / Math.PI
////// ////// ;
////// ___saan_x_for_angle_calculation = 0;
////// ___saan_y_for_angle_calculation = 0;
////// ___saan_x_for_angle_calculation = 0;
////// ___saan_y_for_angle_calculation = 0;
////// if (vertey >= 0 && vertex > 0)
////// {
////// ___saan_x_for_angle_calculation = vertex;
////// ___saan_y_for_angle_calculation = vertey;
////// }
////// else if (vertey >= 0 && vertex < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1) * vertex;
////// ___saan_y_for_angle_calculation = vertey;
////// }
////// else if (vertey < 0 && vertex < 0)
////// {
////// ___saan_x_for_angle_calculation = (-1) * vertex;
////// ___saan_y_for_angle_calculation = (-1) * vertey;
////// }
////// else if (vertey < 0 && vertex > 0)
////// {
////// ___saan_x_for_angle_calculation = vertex;
////// ___saan_y_for_angle_calculation = (-1) * vertey;
////// }
////// else
////// {
////// ___saan_x_for_angle_calculation = 0.0000001;
////// ___saan_y_for_angle_calculation = vertey;
////// }
////// ___degrees_2
////// =
////// // Math.Abs
////// (
////// // Math.Atan2(vertsy,vertsx)
////// Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
////// )
////// * 360 / Math.PI
////// ;
////// ___degrees_2 = Math.Abs(___degrees_2);
////// if (vertsy >= 0 && vertsx >= 0)
////// {
////// ___degrees_2 = ___degrees_2;
////// }
////// else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___degrees_2 = 180 - ___degrees_2;
////// }
////// else if (vertsy < 0 && vertsx < 0)
////// {
////// ___degrees_2 = 270 - ___degrees_2;
////// }
////// else if (vertsy < 0 && vertsx >= 0)
////// {
////// ___degrees_2 = 360 - ___degrees_2;
////// }
////// else
////// {
////// ___degrees_2 = 60;
////// }
////// //////long absoluteTime___start = 0;
////// //////long absoluteTime___final = 0;
////// absoluteTime___start
////// =
////// (long)(
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// *
////// (Math.PI / 180) *
////// // this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// )
////// ;
////// if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_1
////// )
////// {
////// start_side_of_line_segments_angle_with_x_axis
////// = ___degrees_1;
////// final_side_of_line_segments_angle_with_x_axis
////// = ___degrees_2;
////// start_side_of_line_segments_frequency = ___dist_1;
////// final_side_of_line_segments_frequency = ___dist_2;
////// }
////// //////if
////// ////// (
////// ////// Math.Min
////// ////// (
////// ////// ___degrees_1, ___degrees_2
////// ////// )
////// ////// == ___degrees_1
////// ////// )
////// if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_2
////// )
////// {
////// start_side_of_line_segments_angle_with_x_axis
////// = ___degrees_2;
////// final_side_of_line_segments_angle_with_x_axis
////// = ___degrees_1;
////// start_side_of_line_segments_frequency = ___dist_2;
////// final_side_of_line_segments_frequency = ___dist_1;
////// }
////// //////if
////// ////// (
////// ////// Math.Min
////// ////// (
////// ////// ___degrees_1, ___degrees_2
////// ////// )
////// ////// == ___degrees_1
////// ////// )
////// absoluteTime___final
////// =
////// (long)(
////// Math.Max
////// (
////// ___degrees_1, ___degrees_2
////// )
////// *
////// (Math.PI / 180) *
////// // this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// )
////// ;
////// //////(long)
////// ////// Math.Max
////// ////// (
////// ////// ___degrees_1, ___degrees_2
////// ////// )
////// ////// *
////// ////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// ////// ;
////// ////// will do after some times
////// //////collection
////// //////.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TextEvent
////// ////// (
////// ////// "Note Stream LYRICS",
////// ////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ////// ,
////// ////// // absoluteTime
////// ////// ( ( absoluteTime___start + absoluteTime___final)/2)
////// ////// ),
////// ////// //TrackNumber
////// ////// 0
////// ////// );
////// ////// will do after some times
////// // ++absoluteTime;
////// //////collection.AddEvent
////// //////(
////// ////// new SAANAUDS.Midi.TempoEvent
////// //////(
////// ////// Local_CalculateMicrosecondsPerQuaterNote
////// ////// (
////// ////// BeatsPerMinute
////// ////// ),
////// ////// /// absoluteTime
////// ////// absoluteTime___start
////// ////// ),
////// ////// // TrackNumber
////// ////// 0
////// ////// );
////// ////////////////////////////////////////////////
////// ___dist_1
////// =
////// Math.Sqrt
////// (
////// (line.StartPoint.X * line.StartPoint.X)
////// +
////// (line.StartPoint.Y * line.StartPoint.Y)
////// );
////// ___dist_2
////// =
////// Math.Sqrt
////// (
////// (line.EndPoint.X * line.EndPoint.X)
////// +
////// (line.EndPoint.Y * line.EndPoint.Y)
////// );
////// freq_found_from_the_nearest
////// =
////// Math.Min
////// (
////// ___dist_1, ___dist_2
////// );
////// freq_found_from_the_furthest
////// =
////// Math.Max
////// (
////// ___dist_1, ___dist_2
////// );
////// ////// dxf_fresh.AddEntityToDocument(line,false);
////// // Add lines to the model space
////// // dxf_fresh.AddEntity(line1);
////// // dxf_fresh.AddEntity(line2);
////// // dxf_fresh
////// // Save the DXF file
////// //dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
////// ////////////////////tooooo important ///////////////////////////
////// /// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
////// /// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
////// ___distance_of_current_line_segment_min_out_of_two = 0;
////// ___distance_of_current_line_segment_max_out_of_two = 0;
////// ___distance_of_current_line_segment_min_out_of_two
////// =
////// freq_found_from_the_nearest;
////// ___distance_of_current_line_segment_max_out_of_two
////// =
////// freq_found_from_the_furthest;
////// note_number_found_from_the_nearest_frequency_Hertz = 0;
////// note_number_found_from_the_furthest_frequency_Hertz = 0;
////// note_name_found_from_the_nearest_frequency_Hertz = "";
////// note_name_found_from_the_furthest_frequency_Hertz = "";
////// /// calling conventions
////// /// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
////// /// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// /// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// /// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// //public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
////// note_number_found_from_the_nearest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_int_get_note_number_from_frequency_Hertz
////// (
////// freq_found_from_the_nearest
////// );
////// note_name_found_from_the_nearest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_string_get_note_name_from_frequency_Hertz
////// (
////// freq_found_from_the_nearest
////// );
////// note_number_found_from_the_furthest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_int_get_note_number_from_frequency_Hertz
////// (
////// freq_found_from_the_furthest
////// );
////// note_name_found_from_the_furthest_frequency_Hertz
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_string_get_note_name_from_frequency_Hertz
////// (
////// freq_found_from_the_furthest
////// );
////// //note_number_found_from_the_nearest_frequency_Hertz
////// if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_nearest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
////// // long NoteDuration = 0;
////// //note_number_found_from_the_furthest_frequency_Hertz
////// if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_furthest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
////// // long NoteDuration = 0;
////// /////////////////////////////////////////////////////////
////// ///
////// NoteDuration
////// =
////// Math.Abs(
////// Math.Max(
////// Math.Abs(absoluteTime___final)
////// ,
////// Math.Abs(absoluteTime___start)
////// )
////// -
////// Math.Abs(
////// Math.Min(
////// Math.Abs(absoluteTime___final)
////// ,
////// Math.Abs(absoluteTime___start)
////// )
////// )
////// )
////// ;
////// ///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
////// ///
////// /// double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
////// slope_in_linear_time
////// = Math.Atan2((double)(freq_found_from_the_furthest - freq_found_from_the_nearest), (double)NoteDuration);
////// slope_in_linear_time
////// = slope_in_linear_time * 360 / Math.PI;/// taken 10 times the angles
////// slope_in_linear_time
////// = slope_in_linear_time * 100;
////// TrackNumber
////// =
////// ((int)slope_in_linear_time) % 16;
////// ChannelNumber
////// = TrackNumber;
////// patchNumber
////// =
////// TrackNumber;
////// ///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
////// if (ChannelNumber >= 15)
////// {
////// ChannelNumber = 9;
////// TrackNumber = 9;
////// patchNumber = 26;
////// }//if(ChannelNumber>=15)
////// if (ChannelNumber <= 0)
////// {
////// ChannelNumber = 6;
////// TrackNumber = 6;
////// patchNumber = 41;
////// }//if (ChannelNumber <=0)
////// collection.AddEvent(
////// new
////// SAANAUDS.Midi.PatchChangeEvent
////// (
////// ///saan puts this here
////// absoluteTime___start
////// ,
////// ChannelNumber
////// , patchNumber
////// )
////// , TrackNumber
////// );
////// ///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .Append
////// (
////// // "SAANDXF___DXF_LINE_SEGMENTS_"
////// "TrackNumber =" + TrackNumber
//////+ " ChannelNumber =" + ChannelNumber
//////+ " ___degrees_1 = " + ___degrees_1
//////+ " ___degrees_2 = " + ___degrees_2
////// + " absoluteTime___start(min of two degrees) = " + absoluteTime___start
////// + " absoluteTime___final(max of two degrees) = " + absoluteTime___final
////// + " ___dist_1(= frequency1) = " + ___dist_1
////// + " ___dist_2(= frequency2) = " + ___dist_2
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " NoteDuration=" + NoteDuration
////// + " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
////// + " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
////// + " slope_in_linear_time = " + slope_in_linear_time
////// );
////// if ((absoluteTime___final - absoluteTime___start) > 1000)
////// {
////// ////////////////////// new things adding
////// ////// will do after some times
////// collection
////// .AddEvent
////// (
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// (long)((absoluteTime___start + (absoluteTime___final - absoluteTime___start) / 6))
////// ),
////// //TrackNumber
////// 0
////// );
////// }//if((absoluteTime___final - absoluteTime___start)>1000)
////// /////////////////////////////////////////////////////////
////// collection.AddEvent
////// (
////// new SAANAUDS.Midi.NoteOnEvent
////// (
////// ////// absoluteTime
////// absoluteTime___start
////// ,
////// ChannelNumber
////// ,
////// // note.MidiValue
////// note_number_found_from_the_nearest_frequency_Hertz
////// ,
////// NoteVelocity
////// ,
////// (int)Math.Min(NoteDuration, 1)
////// )
////// ,
////// TrackNumber
////// );
////// /////////////////////////////////////////////////////////
////// //////absoluteTime___final
////// ////// = Math.Min(30, absoluteTime___final);
////// if (start_side_of_line_segments_frequency < final_side_of_line_segments_frequency)
////// {
////// //////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ////// ___pitch_bent_iterator++)
////// {
////// delta_pitch = (final_side_of_line_segments_frequency - start_side_of_line_segments_frequency) / 60;
////// for (int rrr = 0; rrr < 60; rrr++)
////// {
////// collection.AddEvent
////// (
////// new
////// SAANAUDS.Midi.PitchWheelChangeEvent
////// (
////// (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
////// ,
////// ChannelNumber
////// ,
////// /// Math.Min(16368, (int)(start_side_of_line_segments_frequency +(delta_pitch * (final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency)) * 8192))
////// Math.Max(16368, (int)(8190 + rrr * delta_pitch))
////// )
////// , TrackNumber
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .Append
////// (
////// // "SAANDXF___DXF_LINE_SEGMENTS_"
////// "TrackNumber =" + TrackNumber
////// + " ChannelNumber =" + ChannelNumber
////// + " ___degrees_1 = " + ___degrees_1
////// + " ___degrees_2 = " + ___degrees_2
////// + " absoluteTime___start(min of two degrees) = " + absoluteTime___start
////// + " absoluteTime___final(max of two degrees) = " + absoluteTime___final
////// + " ___dist_1(= frequency1) = " + ___dist_1
////// + " ___dist_2(= frequency2) = " + ___dist_2
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " NoteDuration=" + NoteDuration
////// + " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
////// + " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
////// + " slope_in_linear_time = " + slope_in_linear_time
////// + " rrr= " + rrr
////// + " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
////// + " pitch bent value = " + Math.Max(16368, (int)(8190 + rrr * delta_pitch))
////// );
////// //delta_pitch
////// }// for(int rrr=0;rrr<60;rrr++)
////// }
////// //////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ////// ___pitch_bent_iterator++)
////// }// if(start_side_of_line_segments_frequency< final_side_of_line_segments_frequency)
////// if (start_side_of_line_segments_frequency > final_side_of_line_segments_frequency)
////// {
////// //////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ////// ___pitch_bent_iterator++)
////// {
////// delta_pitch = (start_side_of_line_segments_frequency - final_side_of_line_segments_frequency) / 60;
////// for (int rrr = 0; rrr < 60; rrr++)
////// {
////// collection.AddEvent
////// (
////// new
////// SAANAUDS.Midi.PitchWheelChangeEvent
////// (
////// (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
////// ,
////// ChannelNumber
////// ,
////// /// (int)((1-(delta_pitch / start_side_of_line_segments_frequency)) * 8192)
////// ///
////// // (int)(delta_pitch *(final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency) * 8192)
////// Math.Max(6, (int)(8190 - rrr * delta_pitch))
////// )
////// , TrackNumber
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// // "SAANDXF___DXF_LINE_SEGMENTS_"
////// "TrackNumber =" + TrackNumber
////// + " ChannelNumber =" + ChannelNumber
////// + " ___degrees_1 = " + ___degrees_1
////// + " ___degrees_2 = " + ___degrees_2
////// + " absoluteTime___start(min of two degrees) = " + absoluteTime___start
////// + " absoluteTime___final(max of two degrees) = " + absoluteTime___final
////// + " ___dist_1(= frequency1) = " + ___dist_1
////// + " ___dist_2(= frequency2) = " + ___dist_2
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
////// + " NoteDuration=" + NoteDuration
////// + " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
////// + " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
////// + " slope_in_linear_time = " + slope_in_linear_time
////// + " rrr= " + rrr
////// + " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
////// + " pitch bent value = " + Math.Max(6, (int)(8190 - rrr * delta_pitch))
////// );
////// //delta_pitch
////// }// for(int rrr=0;rrr<60;rrr++)
////// }
////// //////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ////// ___pitch_bent_iterator++)
////// }// if(start_side_of_line_segments_frequency> final_side_of_line_segments_frequency)
////// collection.AddEvent
////// (
////// new
////// SAANAUDS.Midi.NoteEvent
////// (
////// /// absoluteTime + NoteDuration
////// absoluteTime___final
////// ,
////// ChannelNumber
////// ,
////// SAANAUDS.Midi
////// .MidiCommandCode
////// .NoteOff
////// ,
////// // note.MidiValue
////// note_number_found_from_the_nearest_frequency_Hertz
////// , 0
////// ),
////// TrackNumber
////// );
////// // absoluteTime += SpaceBetweenNotes;
////// }// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
////// string fileName_for_midi_from_the_dxf = "";
////// fileName_for_midi_from_the_dxf
////// =
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
////// + "_BPM=" + this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// + "_TPQN=" + this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// + ".mid";
////// System.IO.File.WriteAllText
////// (
////// fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// ,
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .ToString()
////// );
////// System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
////// ///caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// //////caution caution caution we will add these later
////// ///caution caution caution we will add these later
////// collection.PrepareForExport();
////// ///caution caution caution we will add these later MidiFile.Export(fileName, collection);
////// ///
////// /// caution caution caution we will add these later
////// ///
////// //public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// /// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// SAANAUDS.Midi.MidiFile.Export
////// (
////// fileName_for_midi_from_the_dxf
////// , collection
////// );
////// ////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
////// {
////// vertextcount = poly2d.Vertexes.Count;
////// new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
////// vertx1 = poly2d.Vertexes[0].Position.X;
////// verty1 = poly2d.Vertexes[0].Position.Y;
////// vertx2 = poly2d.Vertexes[1].Position.X;
////// verty2 = poly2d.Vertexes[1].Position.Y;
////// bulge = poly2d.Vertexes[0].Bulge;
////// p1 = new Vector2(vertx1, verty1);
////// p2 = new Vector2(vertx2, verty2);
////// theta = 4 * Math.Atan(Math.Abs(bulge));
////// c = Vector2.Distance(p1, p2) / 2.0;
////// r = c / Math.Sin(theta / 2.0);
////// //i have the radius, finally again
////// gamma = (Math.PI - theta) / 2;
////// phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
////// center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
////// if (!MathHelper.IsZero(bulge))
////// {
////// startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
////// endAngle = startAngle + MathHelper.RadToDeg * theta;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// }
////// else
////// {
////// linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
////// totallength = totallength + linelength;
////// }
////// /////////////////////////////////////////////////////////////////
////// for (int z = 1; z < vertextcount - 1; z++)
////// {
////// vertextcount = poly2d.Vertexes.Count;
////// new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
////// vertx1 = poly2d.Vertexes[z].Position.X;
////// verty1 = poly2d.Vertexes[z].Position.Y;
////// vertx2 = poly2d.Vertexes[z + 1].Position.X;
////// verty2 = poly2d.Vertexes[z + 1].Position.Y;
////// bulge = poly2d.Vertexes[z].Bulge;
////// p1 = new Vector2(vertx1, verty1);
////// p2 = new Vector2(vertx2, verty2);
////// theta = 4 * Math.Atan(Math.Abs(bulge));
////// c = Vector2.Distance(p1, p2) / 2.0;
////// r = c / Math.Sin(theta / 2.0);
////// gamma = (Math.PI - theta) / 2;
////// phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
////// center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
////// if (!MathHelper.IsZero(bulge))
////// {
////// startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
////// endAngle = startAngle + MathHelper.RadToDeg * theta;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// }
////// else
////// {
////// linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
////// totallength = totallength + linelength;
////// }
////// }
////// ///////////////////////////////////////////////////////////////// is a closed polyline?
////// if (poly2d.IsClosed)
////// {
////// vertextcount = poly2d.Vertexes.Count;
////// new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
////// vertx1 = poly2d.Vertexes[vertextcount - 1].Position.X;
////// verty1 = poly2d.Vertexes[vertextcount - 1].Position.Y;
////// vertx2 = poly2d.Vertexes[0].Position.X;
////// verty2 = poly2d.Vertexes[0].Position.Y;
////// bulge = poly2d.Vertexes[vertextcount - 1].Bulge;
////// p1 = new Vector2(vertx1, verty1);
////// p2 = new Vector2(vertx2, verty2);
////// theta = 4 * Math.Atan(Math.Abs(bulge));
////// c = Vector2.Distance(p1, p2) / 2.0;
////// r = c / Math.Sin(theta / 2.0);
////// gamma = (Math.PI - theta) / 2;
////// phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
////// center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
////// if (!MathHelper.IsZero(bulge))
////// {
////// startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
////// endAngle = startAngle + MathHelper.RadToDeg * theta;
////// holdangle = endAngle - startAngle;
////// arclength = (2 * Math.PI) * r * (holdangle / 360);
////// totallength = totallength + arclength;
////// }
////// else
////// {
////// linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
////// totallength = totallength + linelength;
////// }
////// }
////// poly2d.Normal = new Vector3(0, 0, 1);
////// }//foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
////// totallength = Math.Round(totallength * roundamount, 0) / roundamount;
////// string tempstring = totallength.ToString();
////// ////////////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
////// System.Windows.Forms.MessageBox.Show(tempstring);
////// ////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
////// ///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
////// ///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
////// ///while writing THE MIDI FILE FIRST WE NEED TO READ THE DXF FILE FOR THE LINE SEGMENTS //////
////// ///AND THEN CALCULATING THE TOTAL DURATIONS AND THEN PUTTING THE WHOLE RECALCULATIONS DONE FIRST
////// ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// =
////// new List<double>();
////// ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// .Clear();
////// ExcelFormulaParser_GT_PARSER.SAANAUDS
////// .PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// .Clear();
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ExcelFormulaParser_GT_PARSER.SAANAUDS
////// .PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// .Sort();
////// //////double large_radius_to_use_for_gridding =
////// ////// ___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
////// ////// *
////// ////// ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
////// ////// + 3000;
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// ///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
////// /// and while writing the midi files first we will prepare track zero events for lyrics and the copyrights
////// /// where we will put the data for these things there from the dxf line segments data as read there
////// ///
////// foreach (
////// double six_digit_radian_in_list
////// in
////// ExcelFormulaParser_GT_PARSER.SAANAUDS
////// .PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// .PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// )
////// {
////// double six_digit_radian
////// = 0;
////// // in previous loop we have already found this
////// /// ___temp_total_length___of_the_song
////// ///
////// six_digit_radian = Math.Round(six_digit_radian_in_list, 6);
////// string ___GRIDS_TIMES_TEXT_DATA = "";
////// //////___GRIDS_TIMES_TEXT_DATA
////// ////// =
////// ////// (System.Math.Round(___temp_total_length___of_the_song * six_digit_radian, 0)).ToString();
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////
////// //////double ___temp_x1_for_grids_end
////// ////// = large_radius_to_use_for_gridding * System.Math.Cos(six_digit_radian);
////// //////double ___temp_y1_for_grids_end
////// ////// = large_radius_to_use_for_gridding * System.Math.Sin(six_digit_radian);
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// ////// .draw_dxf_circle_WITH_BLOCK_LEVEL_COLOR
////// ////// (0, 0, 0,
////// ////// large_radius_to_use_for_gridding, "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// ////// );
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// ////// .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
////// ////// (
////// ////// 0, 0, -600000,
////// ////// ___temp_x1_for_grids_end
////// ////// ,
////// ////// ___temp_y1_for_grids_end
////// ////// ,
////// ////// -600000,
////// ////// "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// ////// );
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// ////// .draw_dxf_text_ON_TOP_VIEW_WITH_BLOCK_LEVEL_COLOR
////// ////// (
////// ////// ___temp_x1_for_grids_end
////// ////// ,
////// ////// ___temp_y1_for_grids_end
////// ////// ,
////// ////// -600000, 0, 60,
////// ////// "LAYER_GRIDS_CIRCLE",
////// ////// ___GRIDS_TIMES_TEXT_DATA
////// ////// ,
////// ////// "XDATA", 6
////// ////// );
////// }
////// //////foreach (
////// //////double six_digit_radian_in_list
////// //////in
////// //////ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
////// //////.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
////// //////)
////// //////textBox2.Text = tempstring;
////// //////textBox2.Refresh();`
////// /////////// great https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// ///
////// ///
////// //////foreach (Layout layout in SAAN_dxf.Layouts)
////// ////// {
////// ////// List<DxfObjectReference> entities = SAAN_dxf.Layouts.GetReferences(layout);
////// ////// foreach (DxfObjectReference o__dxfobjectreference_entity in entities)
////// ////// {
////// ////// EntityObject entity = o__dxfobjectreference_entity as EntityObject;
////// ////// }//foreach (DxfObject o in entities)
////// ////// }// foreach (Layout layout in SAAN_dxf.Layouts)
////// //////// foreach (var entity in SAAN_dxf.Entities)
////// //////foreach (var entity in SAAN_dxf)
////// ////// {
////// ////// if (entity is Circle)
////// ////// {
////// ////// // Handle Circle entity
////// ////// Circle circle = (Circle)entity;
////// ////// DrawCircle(g, circle);
////// ////// }
////// ////// else if (entity is Line)
////// ////// {
////// ////// // Handle Line entity
////// ////// Line line = (Line)entity;
////// ////// DrawLine(g, line);
////// ////// }//if (entity is Circle)
////// ////// // Add more conditions to handle other entities (e.g., Arc, Text, etc.)
////// ////// }//foreach (EntityObject entity in dxf.Modelspace)
////// // Specify the path to your CSV file
////// string csvFilePath =
////// ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// + "chkers.csv";
////// //"d:\\chkers.csv";
////// // Load CSV data
////// string[] csvLines = System.IO.File.ReadAllLines(csvFilePath);
////// // Parse CSV data and extract information
////// // You'll need to implement your own logic to extract tempo, time signature, key signature, and channel-wise data.
////// //////// Create a new MIDI file
////// //////SAANAUDS.Midi.MidiFile midiFile = new SAANAUDS.Midi.MidiFile(csvFilePath+"_new.mid");
////// //////// Set tempo (example value, replace with your own)
////// //////// midiFile.DeltaTicksPerQuarterNote = 960;
////// //////midiFile.DeltaTicksPerQuarterNote = 960;
////// /// SAANAUDS.Midi.MidiEvent tempoEvent = new SAANAUDS.Midi.TempoEvent(500000); // Tempo in microseconds per quarter note (e.g., 500,000 for 120 BPM)
////// // Create a new MIDI track for your data
////// // SAANAUDS.Midi.MidiTrack track = new SAANAUDS.Midi.MidiTrack();
////// /// SAANAUDS.Midi. track = new SAANAUDS.Midi.MidiTrack();
////// /// midiFile.Tracks.Add(track);
////// /////////////// we cannot prepare the midi file object to save the midi file
////// ///instead we need to prepare MidiEventCollection and then need to save that to file through
////// ///static method of the MidiFile
////// ///
////// // Add tempo event
////// /// track.AddEvent(tempoEvent);
////// ///
////// ///refer F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL
////// ///\excelformulaparser
////// ///\DOING_GT06012020plus
////// ///\DSMSETS_ANI_DNGIFGTTODOINOFFICE
////// ///\ExcelFormulaParserSample\SAANAUDS\SAANAUDS_CHECKING_SimpleMidiFileWriter.cs
////// ///
////// /////// SAANAUDS.Midi.MidiEventCollection ___saanauds_midieventscollection = new SAANAUDS.Midi.MidiEventCollection();
////// //////// Add your note events and pitch bend events to the track
////// //////foreach (string line in csvLines)
////// ////// {
////// ////// string[] parts = line.Split(',');
////// ////// if (parts.Length >= 5)
////// ////// {
////// ////// int channel = int.Parse(parts[1]);
////// ////// int noteNumber = int.Parse(parts[2]);
////// ////// int velocity = int.Parse(parts[3]);
////// ////// long absoluteTime = long.Parse(parts[4]);
////// ////// // Create note on and note off events, and pitch bend events
////// ////// var noteOn = new NoteOnEvent(absoluteTime, channel, noteNumber, velocity);
////// ////// var noteOff = new NoteEvent(absoluteTime + 1000, channel, MidiCommandCode.NoteOff, noteNumber, velocity);
////// ////// var pitchBend = new PitchBendEvent(absoluteTime, channel, 8192); // Example pitch bend value
////// ////// // Add events to the track
////// ////// track.AddEvent(noteOn);
////// ////// track.AddEvent(noteOff);
////// ////// track.AddEvent(pitchBend);
////// ////// }
////// ////// }
////// //////// Save the MIDI file
////// //////string outputFile = "output.mid";
////// //////midiFile.Save(outputFile);
////// }
////// catch (Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
////// {
////// System.Windows.Forms.MessageBox.Show
////// ("_excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX" + _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.Message + "\r\n\r\n\r\n"
////// + _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.StackTrace.ToString()
////// );
////// }//catch(Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
////// }// private void DISCARDING_TO_REFINE_PITCHBENTS_AND_TO_BREAK_NOTE_DURATIONS___button___SAANDXF_CIRCULAR_IN_GRAPHICS_LOAD_CHECKING_Click(object sender, EventArgs e)
public static void ToDoReverseCalculate___FROM_MILLISECONDS_TOTAL___TO_FIND_THE_BPM_WITH_DRUMNS_NOTES_COUNT___STRINGS_NOTES_COUNT___WINDS_NOTES_COUNT(double TOT_MILLISECONDS, double t_Drums_min_milliseconds, double t_Strings_min_milliseconds, double t_Winds_min_milliseconds, int TOTAL_NOTES_IN_THE_SONG, int TPQN___TICKS_PER_QUARTERNOTES_480_K)
{
// Solve for D, S, W
double totalWeight = (t_Drums_min_milliseconds + t_Strings_min_milliseconds + t_Winds_min_milliseconds);
double weightFactor = TOTAL_NOTES_IN_THE_SONG / totalWeight;
double D = TOT_MILLISECONDS / (weightFactor * t_Drums_min_milliseconds + t_Strings_min_milliseconds + t_Winds_min_milliseconds);
double S = D * (t_Drums_min_milliseconds / t_Strings_min_milliseconds);
double W = D * (t_Drums_min_milliseconds / t_Winds_min_milliseconds);
Console.WriteLine($"D (Percussive Notes): {D}");
Console.WriteLine($"S (String Notes): {S}");
Console.WriteLine($"W (Wind Notes): {W}");
// Calculate TOT_MINUTES
double TOT_MINUTES = TOT_MILLISECONDS / 60000.0;
// Calculate BPM
double BPM = TOTAL_NOTES_IN_THE_SONG / TOT_MINUTES;
Console.WriteLine($"BPM: {BPM}");
// MIDI Ticks Calculation
double Note_duration_ticks = (BPM * TOT_MILLISECONDS) / (60000.0 * TPQN___TICKS_PER_QUARTERNOTES_480_K);
Console.WriteLine($"Note duration in ticks: {Note_duration_ticks}");
}// public static void ToDoReverseCalculate___FROM_MILLISECONDS_TOTAL___TO_FIND_THE_BPM_WITH_DRUMNS_NOTES_COUNT___STRINGS_NOTES_COUNT___WINDS_NOTES_COUNT(double TOT_MILLISECONDS, double t_Drums_min_milliseconds, double t_Strings_min_milliseconds, double t_Winds_min_milliseconds, int TOTAL_NOTES_IN_THE_SONG, int TPQN___TICKS_PER_QUARTERNOTES_480_K)
public void RECALCULATE_THE_MIDI_DATA_MICROSECONDS_NOTES_ETC()
{
try
{
////// textBox_PITCH_BENDS_SLABS_MILLIS
///public double PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS = 1100;
//textBox_PITCH_BENDS_SLABS_MILLIS
this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS = 338;
try
{
this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS
=
Convert.ToDouble(textBox_PITCH_BENDS_SLABS_MILLIS.Text.ToString().TrimEnd().TrimStart().Trim().Replace(" ", ""));
}
catch (Exception ___excptoreadptchbendstimesmillis)
{
this.PUBLIC_DOUBLE_PITCH_BENDS_MINIMUM_TIMES_DURATIONS_MILLISECS = 338;
}//catch(Exception ___excptoreadptchbendstimesmillis)
this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
= (long)Convert.ToInt64(textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS.Text.TrimEnd().Trim().Trim().Replace(" ", ""));
/////////////////////////////////////////////////////////// this is important for the calculations of the drawings on dxf systems //////
////// first we convert the micro seconds to milliseconds and then we divide the milliseconds with 360*100 (centi degrees to get the data
///these centi degrees are the important calculations for the systems and which suggests the lengths of the notes along the circumferences of frequency circles
///to get the durations for the notes for proper understanding of the constructions of notes assignments properly and no gaps are there in the denseness
///for the musics preperations (EAR GRAMMARS) are to handle with the compactness of the sounds sequences
///to tell the story about the geometry compactness symmetries kind of things and also to understand the nature of visual symmetries and the effects on the audible symmetries
///the visual aesthetics and the audio aesthetics dont talk the same things which is to take care for the geometry and the grammars of spatial alignments to sounds arrangements
this.public_double_milliseconds_per_centi_degrees
=
(((double)this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS) / 1000)
/
36000;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
this.public_double_milliseconds_per_UNIT_SINGLE_degrees
=
(((double)this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS) / 1000)
/
360;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT = 0;
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT = 0;
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
////// cant we take TicksPerQuarterNote as multiple of 60 ? instead of multiple of 480
//////ChatGPT
//////In MIDI, TicksPerQuarterNote is often used as a multiple of 60 because it provides a convenient resolution for expressing tempo changes.However, it's not a strict requirement, and you can technically set TicksPerQuarterNote to any integer value based on your specific needs.
//////Using a multiple of 60, like 480(60 multiplied by 8), is common because it allows for easy tempo calculations in beats per minute(BPM) and makes it simple to represent note durations.It's a practical choice because it aligns well with common musical timing values.
//////That said, you can choose other values for TicksPerQuarterNote if your MIDI application requires different resolutions or if you have specific reasons to do so.Just be aware that using a value that's not a multiple of 60 may make it less intuitive when working with tempos in BPM and traditional musical notation.
///TS MEANS TIME SIGNATURE
/// ///TS MEANS TIME SIGNATURE
/// ///TS MEANS TIME SIGNATURE
////////public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
////////public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
////////public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
////////public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
////////public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
////////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
////////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
///TS MEANS TIME SIGNATURE
/// ///TS MEANS TIME SIGNATURE
/// ///TS MEANS TIME SIGNATURE
////////public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
////////public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
//////public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
///
public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
=
(
(int)(
public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
/ 480
)
+ 1
)
* 480;
/////////////////////////////////////////////////////////////////////////////////////////////
this.label_TOT_MICROSECONDS_DURATION_NX480_OR_N_X_TPQN
.Text
=
"REVISED_DURATIONS_MICROSECONDS=" +
this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
.ToString();
/////////////////////////////////////////////////////////////////////////////////////////////
////////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
= Convert.ToInt32
(
this.textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.Text
.TrimEnd().TrimStart().Trim()
);
////////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
= Convert.ToInt32
(
this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.Text
.TrimEnd().TrimStart().Trim()
);
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////// tooooo important data /////////////////////////////////////////////////////////
/////////////////////////// tooooo important data /////////////////////////////////////////////////////////
/////////////////////////// tooooo important data /////////////////////////////////////////////////////////
this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
= Convert.ToDouble
(
this.textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480.Text
.TrimEnd().TrimStart().Trim()
);
//////////////////////// tooooo important data /////////////////////////////////////////////////////////
/////////////////////////// tooooo important data /////////////////////////////////////////////////////////
/////////////////////////// tooooo important data /////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
= Convert.ToDouble
(
this.textBoxFOR_BEATS_PER_MINUTE.Text
.TrimEnd().TrimStart().Trim()
);
this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
=
(long)
(
60000000
/
this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
);
//////////////////////////////////////////////////////////////////////////////////////////////////////
this.label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT.Text
= "(MICROTEMPO)microseconds/beat=MICROTEMPO_CALCULATED 60000000/BPM="
+ this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT.ToString();
//////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
=
(
this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
/
this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK.Text
=
"MICROSEC/MIDITICK=" + this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
.ToString();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
=
(long)
(
(double)
this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
/
this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
);
/////////////////////////////////////////////////////////////////////////////////////////////////////
this.public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480
= this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS;
this.label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS.Text
= "TOT_MIDITICS= " +
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
.ToString();
/////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
///TS MEANS TIME SIGNATURE
this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
= 4;//default numerator for beats per measure
/////////////////////////////////////////////////////////////////////////////////////////////
try
{
///TS MEANS TIME SIGNATURE
this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
=
(int)Convert.ToInt16
(this.textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.Text.TrimEnd().TrimStart().Trim());
/// no dont do it on text box
//////this.textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.Text
////// = "beats_per_bar_size or per measure="
////// +
////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// .ToString();
}
catch (Exception _excp_for_numerator_beats_per_measure_representation)
{
///TS MEANS TIME SIGNATURE
this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
= 4;//default numerator for beats per measure
/////////////////////////////////////////////////////////////////////////////////////////////
}//catch(Exception _excp_for_numerator_beats_per_measure_representation)
///4;//default denominator for notes per beats
/////////////////////////////////////////////////////////////////////////////////////////////
try
{
///TS MEANS TIME SIGNATURE
this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
= 4; ////// default denominator notes per beat is 2^2 that is the 4 (we take it as 4)
///TS MEANS TIME SIGNATURE
this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
=
(int)
Math.Pow
(
2,
(int)Convert.ToInt16
(
this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.Text.TrimEnd().TrimStart().Trim()
)
)
;
}
catch (Exception _excp_for_denominator__the_denominator_notes_per_beat_representation)
{
///TS MEANS TIME SIGNATURE
this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
= 2 ^ 4;//default denominator for beats per measure
/////////////////////////////////////////////////////////////////////////////////////////////
}//catch(Exception _excp_for_denominator__the_denominator_notes_per_beat_representation)
///4;//default numerator for beats per measure
/////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////// these are very necessary to make the sounds look good //////////
this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE = 0;
this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE = 0;
this.public_double___label_CALCULATED_DURATION_OF_MIDI_MEASURE_BAR_SIZE_IN_TICKS_OF_MIDI = 0;
this.public_double___label_CALCULATED_NOTES_PER_BEAT = 0;
///////////////////////////////////// these are very necessary to make the sounds look good //////////
this.public_double___label_TOTAL_NUMBER_OF_BEATS_FOUND_IN_TOTAL_DURATION_OF_TICKS_OF_MIDI
=
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
/
this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
;
/////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
///
/////////////////////////////////////////////////////////////////////////////////////////////
label_TOTAL_NUMBER_OF_BEATS_FOUND_IN_TOTAL_DURATION_OF_TICKS_OF_MIDI.Text
=
this.public_double___label_TOTAL_NUMBER_OF_BEATS_FOUND_IN_TOTAL_DURATION_OF_TICKS_OF_MIDI
.ToString()
+ " BEATS_FOUND";
/////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////// these are very necessary to make the sounds look good //////////
////// we do the back calculations from the total durations point of view since we want to distribute the
///whole durations into the best note durations to make it good and so wee are distributing the whole note systems
///back calculated with engineering point of views instead of the music theory point of views
this.public_double___label_CALCULATED_DURATION_OF_MIDI_MEASURE_BAR_SIZE_IN_TICKS_OF_MIDI
=
/// public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
///label_CALCULATED_DURATION_OF_MIDI_MEASURE_BAR_SIZE_IN_TICKS_OF_MIDI
this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
*
/// this.public_double___label_TOTAL_NUMBER_OF_BEATS_FOUND_IN_TOTAL_DURATION_OF_TICKS_OF_MIDI)
/// *
this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.label_CALCULATED_DURATION_OF_MIDI_MEASURE_BAR_SIZE_IN_TICKS_OF_MIDI.Text
=
"MIDI_TICKS_PER_BAR_SIZE(MEASURE)=" +
this.public_double___label_CALCULATED_DURATION_OF_MIDI_MEASURE_BAR_SIZE_IN_TICKS_OF_MIDI
.ToString();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.public_double___label_CALCULATED_NOTES_PER_BEAT
=
//////Math.Pow
//////(
////// 2
////// ,
this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
// )
/// already done
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.label_CALCULATED_NOTES_PER_BEAT.Text
=
"CALCULATED_NOTES_PER_BEAT( 2^ TS_DENOMINATOR)="
+
this.public_double___label_CALCULATED_NOTES_PER_BEAT.ToString();
//////Math.Pow
//////(
////// 2,
//////this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
//////)
//////.ToString();
// +this.public_double___label_CALCULATED_NOTES_PER_BEAT.ToString();/// denominator of time signature
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// we will calculate the total minutes from the microsecond duration and then use bpm to find the beats count
/// and then we will calculate the notes count from the whole duration then we will calculate the notes duration in terms of midi ticks
///
this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE
=
this.public_double___label_CALCULATED_DURATION_OF_MIDI_MEASURE_BAR_SIZE_IN_TICKS_OF_MIDI
*
this.public_double___label_CALCULATED_TOTAL_NUMBER_OF_MIDI_NOTES_IN_TOTAL_DURATION_OF_MIDI_TICKS
;
///to do kkk
///;
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
//////this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
this.public_double___label_CALCULATED_NOTES_PER_BEAT
= (double)this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
;
/////////////////////////////////////////////////////////////////
this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE
=
this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
/
this.public_double___label_CALCULATED_NOTES_PER_BEAT;
///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////// important calculation /////////////////
int revised_integer_miditicks_per_note
=
(int)(this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE)
+ 1;
///////////////////////////////////////////////////////////////////////////////////////////
this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE
= revised_integer_miditicks_per_note;
///////////////////////////////////////////////////////////////////////////////////////////
this.label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI.Text
= this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE.ToString()
+ " MIDITKS/NOTE";
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
//////this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE
////// =
////// this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE
////// /
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// ;
///
///I DID THE MISTAKE PREVIOUSLY WE HAD TO MULTIPLY INSTEAD OF DIVIDING
this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE
=
this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE
*
this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
;
///////////////////////////////////////////////////////////////////////////////////////////
///
///
////////////////////////////// new variables added and calculated to check listenability of notes//////////////////
////////////////////////////// new variables added and calculated to check listenability of notes//////////////////
////////////////////////////// new variables added and calculated to check listenability of notes//////////////////
this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MILLISECONDS = 0;
this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MILLISECONDS
=
(this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE / 1000);
////// after calculating we see division is right
///
///I THINK I HAVE TO DO MULTIPLICATIONS INSTEAD OF DIVISIONS
// this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MILLISECONDS
// =
// (this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE * 1000);
if (this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MILLISECONDS < 50)
{
this.textBoxFOR_BEATS_PER_MINUTE.ForeColor = Color.Red;
}
else
{
this.textBoxFOR_BEATS_PER_MINUTE.ForeColor = Color.Black;
}//else if(this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MILLISECONDS<50)
////////////////////////////// new variables added and calculated to check listenability of notes//////////////////
////////////////////////////// new variables added and calculated to check listenability of notes//////////////////
////////////////////////////// new variables added and calculated to check listenability of notes//////////////////
////// this.label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE.Text
////// =
////// this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE
////// + " MIDTICKS/NOTE ÷ "
////// + this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// .ToString("F6")
////// + " TICKS / BEATS (k times 480)= "
////// + this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE
////// + " MCRSEC / NOTES CALCS "
/////////+ (this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE/1000)
//////+ this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MILLISECONDS
////// /// .ToString("F30")
////// /// .ToString("F11")
////// .ToString("F6")
////// + " MILLISEC / NOTES"
////// ;
///
///DENOMINATOR OF TIME SIGNATURE AFFECTS THIS
///NUMERATOR OF TIME SIGNATURE DONT AFFECT THIS
///TOTAL DURATIONS OF THE WHOLE THING DONT AFFECT THIS
///TPQN THAT IS 480 , 960 , 1000 .... AFFECTS THIS
this.label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE.Text
=
this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE
+ " MIDTICKS/NOTES X "
+ this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
.ToString("F6")
+ " MICROSEC / MIDITCK "
/// + " TICKS / BEATS (k times 480)= "
+ this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE
+ " MCRSEC / NOTES => "
///
///+ (this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE/1000)
+ this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MILLISECONDS
/// .ToString("F30")
/// .ToString("F11")
.ToString("F6")
+ " MILLISEC / NOTES"
;
///////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////
int ___need_to_revise___miditicks_per_beat_to_integer
=
(int)
(
revised_integer_miditicks_per_note
*
this.public_double___label_CALCULATED_NOTES_PER_BEAT
);
if (this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE != (int)(this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE))
{
System.Windows.Forms.MessageBox.Show
(
"___need_to_revise___miditicks_per_beat_to_integer = "
+ ___need_to_revise___miditicks_per_beat_to_integer.ToString()
);
}// if (this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE != (int)(this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE))
////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
/// <summary>
/// FOR DIFFERENT CONTEXTS WE HAVE DIFFERENT COMPACTNESS DURATION FOR THE WHOLE THINGS AND SO WE DO THE REVERSE CALCULATIONS FOR THE SINGLE NOTES
/// AND TO PLAN FOR THAT WE NEED THE CLARITY OF DISTRIBUTIONS FOR EVERY KINDS OF INSTRUMENTS SUCH THAT WE CAN UNDERSTAND WHAT ARE THE NATURES OF OVERLAPPING
/// IN THE SYSTEMS OF THE NOTES PLACEMENTS THE CLARITY OF NOTES PLACEMENTS ARE IMPORTANT OTHERWISE SEVERAL OVERLAPS OF DIFFERENT NOTES CAN OCCUR WHICH LOOKS CLUMSY OR NOT RENDERED PROPERLY
/// </summary>
/// public double PUBLIC_DOUBLE___MIDITKS_TO_MILLISECOND_CONVERTER_FOR_THIS_CONTEXT___MILLISECONDS_PER_MIDITKS = 1;
/// public double PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS = 1;
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_DOUBLE___MIDITKS_TO_MILLISECOND_CONVERTER_FOR_THIS_CONTEXT___MILLISECONDS_PER_MIDITKS
=
(double)(
(double)
(
double)this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
/
(double)1000
/
(double)this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
)
;
/// i need to check the overlapping same miditks assigned to notes events and other events
/// this is necessary to plan the clarity for the sounds generated in the systems
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS
=
(1 / this.PUBLIC_DOUBLE___MIDITKS_TO_MILLISECOND_CONVERTER_FOR_THIS_CONTEXT___MILLISECONDS_PER_MIDITKS);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// IF WE TAKE 1000 INSTEAD OF 960 AND THE BPM IS 60 THEN THESE TWO ARE 1
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.label_CONVERTIONS_RATIOS_MIDTKS_TO_MILLIS.Text
=
"CONVERTIONS_RATIOS MIDITKS/MILLIS = "
+
this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS
.ToString("F3")
+
" MILLIS/MIDITKS = "
+
this.PUBLIC_DOUBLE___MIDITKS_TO_MILLISECOND_CONVERTER_FOR_THIS_CONTEXT___MILLISECONDS_PER_MIDITKS
.ToString("F3")
+
" (1 FOR BPM=60 AND 1000 INSTEAD OF 960 FOR TS DENOMINATOR 4(4 BEATS IS 1 NOTE)) "
;
///TPQN IS THE TICKS PER QUARTER NOTE WHICH IS TPQN
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///BEAT TO NOTE AND NOTE TO BEAT RELATIONSHIPS ARE DONE THROUGH THE DENOMINATOR OF TIME SIGNATURES
/////DENOMINATOR NUMBER OF BEATS MAKE ONE SINGLE NOTE FOR THE RHYTHMS CONTROLLERS METRONOMES CLAPPING ARE ADJUSTED WITH THE DENOMINATORS AND THE BEATS ADJUST THE NOTES IN THAT
///BUT THE TICKS TO BEATS AND THE MICROSOECONDS TO BEATS ARE NOT THE DIRECT RELATIONSHIP WITH THE TIME SIGNATURES DENOMINATORS
///BEATS (QUARTER NOTE STANDARD THAT IS 1 BEAT IS 1/4 OF THE WHOLE NOTE WHEN THE DENOMINATOR IS 4 )ARE THE GRIDDING SYSTEMS FOR SOUNDS FLOWS. THESE ARE THE UNITS FOR THE DISTRIBUTIONS OF THE WHOLE THINGS.
///BEATS PER MINUTES IS DIVIDED INTO SMALLER PARTS OF SYSTEMS CLOCKS SPEEDS AND THE MIDI INSTRUMENTS STANDERDIZES THE TIMES TO MIDITICKS
///THESE MIDITICKS
//WHEN THE DENOMINATOR IS NOT 4 THEN THE DIVISIONS ARE DIFFERENT AND THE BEATS DONT MEAN THE QUARTER NOTE FOR THAT CASES
///BEAT IS THE FUNDAMENTAL TIME SCALE FOR THE RHYTHMS AND DONT CONFUSE THE RELATIONS BETWEEN THE BEATS TO NOTES(WHICH IS THE DENOMINATOR OF TIME SIGNATURES)
///
////// Every MIDI file has a value called Ticks Per Quarter Note(TPQN) or Pulses Per Quarter(PPQ).
///Tick is the smallest unit of length.So for example if TPQN = 96, it means that a note of length 96 ticks represents a quarter note.
///But a note of length 96 for TPQN = 192 represents an eighth note.
/// This message is important if the MIDI time division is specified in "pulses per quarter note", as such MIDI time division defines the number of ticks per quarter note, but does not itself define the length of the quarter note.The length of the quarter note is then defined with the set tempo meta message described here.
///RECORDINGBLOG FOR REFERENCES
///Time division (of a MIDI file)
///https://www.recordingblogs.com/wiki/time-division-of-a-midi-file
////////////The time division of a MIDI file, also known as "resolution of a MIDI file", is an indication of how MIDI ticks should be translated into time, contained in the thirteenth and fourteenth bytes in the header chunk of the MIDI file.
////////////There are two possible translations of these two bytes(16 bits).
///If the top bit of the 16 bits is 0, then the time division is in "ticks per beat"(or “pulses per quarter note”).
///If the top bit is 1, then the time division is in "frames per second".
////////////Pulses per quarter note(PPQ)
////////////When the top bit of the time division bytes is 0, the time division is in ticks per beat.
///The remaining 15 bits are the number of MIDI ticks per beat(per quarter note).If, for example, these 15 bits compute to the number 60, then the time division is 60 ticks per beat and the length of one tick is
////////////1 tick = microseconds per beat / 60
////////////The variable "microseconds per beat" is specified by a set tempo meta message.If it is not specified then it is 500, 000 microseconds by default, which is equivalent to 120 beats per minute.In the example above, if the MIDI time division is 60 ticks per beat and if the microseconds per beat is 500,000, then 1 tick = 500,000 / 60 = 8333.33 microseconds.
////////////Frames per second
////////////When the top bit of the time division bytes is 1, the remaining 15 bits have to be broken in two pieces. The top remaining 7 bits(the rest of the top byte) represent the number of frames per second and could be 24, 25, 29.97(represented by 29), or 30.The low byte(the low 8 bits) describes the number of ticks per frame.Thus, if, for example, there are 24 frames per second and there are 100 ticks per frame, since there are 1, 000, 000 microseconds in a second, one tick is equal to
////////////1 tick = 1, 000, 000 / (24 * 100) = 416.66 microseconds
////////////Thus, when the time division top bit is 1, the length of a tick is strictly defined by the two time division bytes.The first byte is the frames per second and the second byte is the number of ticks per frame, which is enough to specify the tick length exactly.This is not so when the top bit of the time division bytes is 0 and the time division is in pulses per quarter note.The time division in this case defines the ticks per beat, but nothing in the time division specifies the number of beats per second.A MIDI message should be used to specify the number of beats per second(or the length of a beat), or it should be left up to the MIDI device to set the tempo(120 beats per minute by default, as mentioned above).
try
{
//////To reverse calculate the beats per minute(BPM) for a MIDI song given its total duration, time signature numerator, and denominator, you can follow these steps:
//////1.Convert microseconds to minutes:
//////Divide the total duration ttt in microseconds by the number of microseconds in a minute:
//////duration_minutes = ttt / (1000 * 1000 * 60)
//////2.Calculate beats based on time signature:
//////Multiply the time signature numerator n_known by the number of minutes:
//////beats = n_known * duration_minutes
//////3.Calculate BPM using denominator:
//////Divide the calculated beats by the time signature denominator d_known and multiply by 60 to convert to beats per minute:
//////bpm = (beats / d_known) * 60
//////Therefore, the formula for calculating BPM is:
//////bpm = ((n_known * ttt) / (d_known * 1000 * 1000 * 60)) * 60
//////Example:
//////Suppose a MIDI song has a total duration of 3, 000, 000 microseconds(3 seconds) and a time signature of 4 / 4.Using the formula:
//////bpm = ((4 * 3000000) / (4 * 1000 * 1000 * 60)) * 60
//////bpm = 120.0
//////Therefore, the calculated BPM for this example is 120.
this.public_double_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT
= Math.Max(1, public_double_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT)
;
//////this.public_double___reverse_calculated_data_for___MELODY_BPM_ESTIMATED
////// =
////// /// (60000000 / this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
////// (60000000 / (double)this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS)
////// *
////// (
////// (double)this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// /
////// /// (double) this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// (double)this.public_double_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT
////// );
///
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
this.public_double___reverse_calculated_data_for___MELODY_BPM_ESTIMATED
=
/// (60000000 / this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
((double)this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS / 60000000)
*
(
(double)this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
/
/// (double) this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
(double)this.public_double_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT
)
*
60
;
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
//yes i have tested that the calculations are perfect
System.Windows.Forms.MessageBox.Show("MELODY_BPM_CALCULATED= " + this.public_double___reverse_calculated_data_for___MELODY_BPM_ESTIMATED);
// this.label_MELODY_BPM_ESTIMATED.Text
this.label_MELODY_BPM_ESTIMATED.Text
=
"MELODY_BPM_ESTIMATED = "
+
////*this.public_double___reverse_calculated_data_for___MELODY_BPM_ESTIMATED.ToString("G27")
this.public_double___reverse_calculated_data_for___MELODY_BPM_ESTIMATED.ToString()
;
this.label_MELODY_BPM_ESTIMATED.Invalidate();
this.label_MELODY_BPM_ESTIMATED.Update();
}
catch (Exception ___excp_to_calculate_the_melodybpmcalculations)
{
System.Windows.Forms.MessageBox.Show("___excp_to_calculate_the_melodybpmcalculations = " + ___excp_to_calculate_the_melodybpmcalculations.Message + ___excp_to_calculate_the_melodybpmcalculations.StackTrace.ToString());
}//catch(Exception ___excp_to_calculate_the_melodybpmcalculations)
//////this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE
////// =
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// /
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// ;
this.label_CALCULATED_THE_MIDITICKS_PER_NOTE.Text
=
"MIDITICKS / NOTE ="
+ this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE.ToString()
+ " ===> " + revised_integer_miditicks_per_note.ToString()
;
////////////////////////////////////////////////////////////////////////////////////////////
double _double_midi_ticks_per_minute
=
//////this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
//////+" * "+
//////this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
//////+ "= " +
this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
*
this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
;
//////double _double_ticks_per_note
////// =
////// this.micro
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
///////////////////////////////////////////////////////////////////////////////////////////////
///
//////this.public_double___label_CALCULATED_TOTAL_NUMBER_OF_MIDI_NOTES_IN_TOTAL_DURATION_OF_MIDI_TICKS
////// =
////// Math.Floor
////// (
////// this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// /
////// this.public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_THE_MICROSECONDS___MICROSEC_PER_NOTE
////// )
////// ;
this.public_double___label_CALCULATED_TOTAL_NUMBER_OF_MIDI_NOTES_IN_TOTAL_DURATION_OF_MIDI_TICKS
=
Math.Floor
(
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
/
this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE
);
///////////////////////////////////////////////////////////////////////////////////////////////
this.label_CALCULATED_TOTAL_NUMBER_OF_MIDI_NOTES_IN_TOTAL_DURATION_OF_MIDI_TICKS.Text
=
this.public_double___label_CALCULATED_TOTAL_NUMBER_OF_MIDI_NOTES_IN_TOTAL_DURATION_OF_MIDI_TICKS
// .ToString()
.ToString("F11")
+ " LINEAR END TO END SEQUENCE OF NOTES FITS BEST";
///////////////////////////////////////////////////////////////////////////////////////////////
///this.CALCULATED_TOTAL_NUMBER_OF_MEASURES_FOUND_TOTAL_NUMBERS_OF_BARS_FOUND_IN_TOTAL_DURATION
this.public_double___label_CALCULATED_TOTAL_NUMBER_OF_MEASURES_FOUND_TOTAL_NUMBERS_OF_BARS_FOUND_IN_TOTAL_DURATION
=
Math.Ceiling
(
((double)this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS)
/
((double)this.public_double___label_CALCULATED_DURATION_OF_MIDI_MEASURE_BAR_SIZE_IN_TICKS_OF_MIDI)
);
///////////////////////////////////////////////////////////////////////////////////////////////
this.label_CALCULATED_TOTAL_NUMBER_OF_MEASURES_FOUND_TOTAL_NUMBERS_OF_BARS_FOUND_IN_TOTAL_DURATION.Text
=
this.public_double___label_CALCULATED_TOTAL_NUMBER_OF_MEASURES_FOUND_TOTAL_NUMBERS_OF_BARS_FOUND_IN_TOTAL_DURATION
.ToString()
+
" LINEAR END TO END FITS BEST BAR MEASURES ";
///////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
}
catch (Exception excp_to_convert_to_microseconds)
{
this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
= 180000000;/// long type variable
public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
=
(
(int)(
public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
/ 480
)
+ 1
)
* 480;
this.label_TOT_MICROSECONDS_DURATION_NX480_OR_N_X_TPQN
.Text
=
public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
.ToString();
////////////////////////////////////////////////////////////////////////////////////////////
///TS MEANS TIME SIGNATURE
this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
= 4;//default numerator for beats per measure
/////////////////////////////////////////////////////////////////////////////////////////////
///TS MEANS TIME SIGNATURE
this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
= 4; ////// default denominator notes per beat is 2^2 that is the 4 (we take it as 4)
////////////////////////////////////////////////////////////////////////
///tooooooooo important data
///
this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
= 480;/// default is 8 x 60
/////////////////////////////////////////////////////////////////////////////////
///
this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
= 120;///default
this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
=
(long)
(
60000000
/
this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
=
(
this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
/
this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK.Text
=
"MICROSEC/MIDITICK=" + this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
.ToString()
;
/////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("reaching here MELODY_BPM_CALCULATED to calculate " );
try
{
this.public_double_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT
= Math.Max(1, public_double_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT)
;
this.public_double___reverse_calculated_data_for___MELODY_BPM_ESTIMATED
=
/// (60000000 / this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
(60000000 / (double)this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS)
*
(
(double)this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
/
/// (double) this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
(double)this.public_double_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT
);
System.Windows.Forms.MessageBox.Show("MELODY_BPM_CALCULATED= " + this.public_double___reverse_calculated_data_for___MELODY_BPM_ESTIMATED);
// this.label_MELODY_BPM_ESTIMATED.Text
this.label_MELODY_BPM_ESTIMATED.Text
=
"MELODY_BPM_ESTIMATED = "
+
////*/*/*this.public_double___reverse_calculated_data_for___MELODY_BPM_ESTIMATED.ToString("G27")*/*/*/
this.public_double___reverse_calculated_data_for___MELODY_BPM_ESTIMATED.ToString()
;
this.label_MELODY_BPM_ESTIMATED.Invalidate();
this.label_MELODY_BPM_ESTIMATED.Update();
}
catch (Exception ___excp_to_calculate_the_melodybpmcalculations)
{
System.Windows.Forms.MessageBox.Show("___excp_to_calculate_the_melodybpmcalculations = " + ___excp_to_calculate_the_melodybpmcalculations.Message + ___excp_to_calculate_the_melodybpmcalculations.StackTrace.ToString());
}//catch(Exception ___excp_to_calculate_the_melodybpmcalculations)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
=
(long)
(
(double)
this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
/
this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
);
/////////////////////////////////////////////////////////////////////////////////////////////////////
this.label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS.Text
= "TOT_MIDITICS= " +
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
.ToString();
}//catch(Exception excp_to_convert_to_microseconds)
////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
///
////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
try
{
//////public double PUBLIC_DOUBLE___TOTAL_WEIGHT_IS_SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES = 0.000000000000001;
//////public double PUBLIC_DOUBLE___TOTAL_WEIGHTFACTOR_IS_TOTAL_NOTES_IN_THE_SONG_DIVIDED_WITH___SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES = 0;
//////public double PUBLIC_DOUBLE___TOT_MILLISECONDS = 0;
//////public double PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions = 0;
//////public double PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions = 0;
//////public double PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied = 0;
//////public int PUBLIC_INT___TOTAL_NOTES_IN_THE_SONG = 0;
//////public int PUBLIC_INT___TPQN___TICKS_PER_QUARTERNOTES_480_K = 0;
///
//////////////////////////////FLUSHING THE DATA FIRST ///////////////////////
this.PUBLIC_DOUBLE___TOTAL_WEIGHT_IS_SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES = 0.000000000000001;
this.PUBLIC_DOUBLE___TOTAL_WEIGHTFACTOR_IS_TOTAL_NOTES_IN_THE_SONG_DIVIDED_WITH___SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES = 0;
this.PUBLIC_DOUBLE___TOT_MILLISECONDS = 0;
this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions = 0;
this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions = 0;
this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied = 0;
this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG = 0;
this.PUBLIC_INT___TPQN___TICKS_PER_QUARTERNOTES_480_K = 0;
this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG___TO___PLAN___FROM___TEXTBOX_DATA_TO_ACHIEVES = 0;
//////////////////////////////FLUSHING THE DATA FIRST ///////////////////////
/// textBox___TOTAL_NOTES_TO_PLAN_ITERATES
///
this.PUBLIC_DOUBLE___TO_REITERATE_TO_FIND___FOR_textBox___TOTAL_NOTES_TO_PLAN_ITERATES = 0;
this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG___TO___PLAN___FROM___TEXTBOX_DATA_TO_ACHIEVES = 0;
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Drums_NOTES_COUNTS = 0;
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Strings_NOTES_COUNTS = 0;
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Winds_NOTES_COUNTS = 0;
//////////////////////////////////////////////////////// REPOPULATING DATA HERE ///////////////////////
//////////////////////////////////////////////////////// REPOPULATING DATA HERE ///////////////////////
//////////////////////////////////////////////////////// REPOPULATING DATA HERE ///////////////////////
/// i have done it to micro seconds i think
// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
this.PUBLIC_DOUBLE___TOT_MILLISECONDS
=
this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
/ 1000;
goto_here_if___mismatch___this___PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG___TO___PLAN___FROM___TEXTBOX_DATA_TO_ACHIEVES:;
try
{
this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions = Convert.ToDouble(this.textBox_DRUMS_RECOGNITIONS_MILLISECONDS.Text.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception ___excptoreadtextboxtoconverttodata)
{
this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions = 50;
}//catch(Exception ___excptoreadtextboxtoconverttodata)
try
{
this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions = Convert.ToDouble(this.textBox__STRINGS_RECOGNITIONS_MILLISECONDS.Text.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception ___excptoreadtextboxtoconverttodata)
{
this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions = 110;
}//catch(Exception ___excptoreadtextboxtoconverttodata)
try
{
this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied = Convert.ToDouble(this.textBox__WINDS_RECOGNITIONS_MILLISECONDS.Text.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception ___excptoreadtextboxtoconverttodata)
{
this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied = 300;
}//catch(Exception ___excptoreadtextboxtoconverttodata)
try
{
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Drums_NOTES_COUNTS
= Convert.ToDouble(this.textBox_TOTAL_DRUMS_NOTES_COUNT.Text.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception ___excptoreadtextboxtoconverttodata)
{
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Drums_NOTES_COUNTS = 1100;
}//catch(Exception ___excptoreadtextboxtoconverttodata)
try
{
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Strings_NOTES_COUNTS
= Convert.ToDouble(this.textBox_TOTAL_STRING_NOTES_COUNT.Text.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception ___excptoreadtextboxtoconverttodata)
{
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Strings_NOTES_COUNTS = 3300;
}//catch(Exception ___excptoreadtextboxtoconverttodata)
try
{
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Winds_NOTES_COUNTS
= Convert.ToDouble(this.textBoxTOTAL_WIND_NOTES_COUNT.Text.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception ___excptoreadtextboxtoconverttodata)
{
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Winds_NOTES_COUNTS = 660;
}//catch(Exception ___excptoreadtextboxtoconverttodata)
////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG
=
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Drums_NOTES_COUNTS
+
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Strings_NOTES_COUNTS
+
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Winds_NOTES_COUNTS
;
////////////////////////////////////////////////////////////////////////////////////////
this.label_TOTAL_NOTES_COUNT.Text
=
this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG.ToString() + " NOTES";
////////////////////////////////////////////////////////////////////////////////////////
try
{
this.PUBLIC_DOUBLE___TO_REITERATE_TO_FIND___FOR_textBox___TOTAL_NOTES_TO_PLAN_ITERATES
= Convert.ToDouble(this.textBox___TOTAL_NOTES_TO_PLAN_ITERATES.Text.ToString().TrimEnd().TrimStart().Trim());
this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG___TO___PLAN___FROM___TEXTBOX_DATA_TO_ACHIEVES
= Convert.ToDouble(this.textBox___TOTAL_NOTES_TO_PLAN_ITERATES.Text.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception ___excptoreadtextboxtoconverttodata)
{
this.PUBLIC_DOUBLE___TO_REITERATE_TO_FIND___FOR_textBox___TOTAL_NOTES_TO_PLAN_ITERATES
= this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG;
this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG___TO___PLAN___FROM___TEXTBOX_DATA_TO_ACHIEVES
=
0;
}//catch(Exception ___excptoreadtextboxtoconverttodata)
this.PUBLIC_INT___TPQN___TICKS_PER_QUARTERNOTES_480_K
=
(int)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_DOUBLE___TOTAL_WEIGHT_IS_SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES
=
/// 0.000000000000001;
this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
+
this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions
+
this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.label_WEIGHT_SENSITIVITY_FOUND___TOTAL_RECOGNIZER_MILLISECONDS_FOR_3_TYPES_OF_INSTRUMENTS.Text
=
this.PUBLIC_DOUBLE___TOTAL_WEIGHT_IS_SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES
.ToString() + " milliseconds 3 instruments SENSITIVITY";
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_DOUBLE___TOTAL_WEIGHTFACTOR_IS_TOTAL_NOTES_IN_THE_SONG_DIVIDED_WITH___SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES
=
this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG
/
this.PUBLIC_DOUBLE___TOTAL_WEIGHT_IS_SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.label___WEIGHT_SENSITIVITY_FACTOR_FOR_3_TYPES_OF_INSTRUMENTS.Text
=
this.PUBLIC_DOUBLE___TOTAL_WEIGHTFACTOR_IS_TOTAL_NOTES_IN_THE_SONG_DIVIDED_WITH___SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES
.ToString("F11")
+ " weight factor(est notes count / weight sensitivity)"
;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// revising the estimated drums notes
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Drums_NOTES_COUNTS
=
/// this.PUBLIC_DOUBLE___TO_REITERATE_TO_FIND___FOR_textBox___TOTAL_NOTES_TO_PLAN_ITERATES
this.PUBLIC_DOUBLE___TOT_MILLISECONDS
/
(
(
this.PUBLIC_DOUBLE___TOTAL_WEIGHTFACTOR_IS_TOTAL_NOTES_IN_THE_SONG_DIVIDED_WITH___SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES
*
this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
)
+
(
this.PUBLIC_DOUBLE___TOTAL_WEIGHTFACTOR_IS_TOTAL_NOTES_IN_THE_SONG_DIVIDED_WITH___SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES
*
this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions
)
+
(
this.PUBLIC_DOUBLE___TOTAL_WEIGHTFACTOR_IS_TOTAL_NOTES_IN_THE_SONG_DIVIDED_WITH___SUM_OF_MILLISECONDS_OF_MIN_NECESSARY_RECOGNIZER_FOR_DRUMS_PLUS_STRINGS_PLUS_WINDS_NOTES
*
this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied
)
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.textBox_TOTAL_DRUMS_NOTES_COUNT.Text
=
( (int)(this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Drums_NOTES_COUNTS)).ToString();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Strings_NOTES_COUNTS
=
(
// (int)
(
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Drums_NOTES_COUNTS
*
(
this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
/
this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions
)
)
)
//.ToString()
;
////////////////////////////////////////////////////////////////////
this.textBox_TOTAL_STRING_NOTES_COUNT.Text
=
((int)this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Strings_NOTES_COUNTS).ToString();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Winds_NOTES_COUNTS
=
(
// (int)
(
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Drums_NOTES_COUNTS
*
(
this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
/
this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied
)
)
)
// .ToString();
;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.textBoxTOTAL_WIND_NOTES_COUNT.Text
=
((int)this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Winds_NOTES_COUNTS).ToString();
//////// Solve for D, S, W
//////double totalWeight = t_Drums_min_milliseconds + t_Strings_min_milliseconds + t_Winds_min_milliseconds;
//////double weightFactor = TOTAL_NOTES_IN_THE_SONG / totalWeight;
//////double D = TOT_MILLISECONDS / (weightFactor * t_Drums_min_milliseconds + t_Strings_min_milliseconds + t_Winds_min_milliseconds);
//////double S = D * (t_Drums_min_milliseconds / t_Strings_min_milliseconds);
//////double W = D * (t_Drums_min_milliseconds / t_Winds_min_milliseconds);
//////Console.WriteLine($"D (Percussive Notes): {D}");
//////Console.WriteLine($"S (String Notes): {S}");
//////Console.WriteLine($"W (Wind Notes): {W}");
//////// Calculate TOT_MINUTES
//////double TOT_MINUTES = TOT_MILLISECONDS / 60000.0;
//////// Calculate BPM
//////double BPM = TOTAL_NOTES_IN_THE_SONG / TOT_MINUTES;
//////Console.WriteLine($"BPM: {BPM}");
//////// MIDI Ticks Calculation
//////double Note_duration_ticks = (BPM * TOT_MILLISECONDS) / (60000.0 * TPQN___TICKS_PER_QUARTERNOTES_480_K);
//////Console.WriteLine($"Note duration in ticks: {Note_duration_ticks}");
////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG
=
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Drums_NOTES_COUNTS
+
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Strings_NOTES_COUNTS
+
this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Winds_NOTES_COUNTS
;
////////////////////////////////////////////////////////////////////////////////////////
this.textBox___TOTAL_NOTES_TO_PLAN_ITERATES.Text
=
((int)this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG)
.ToString();
/////////////////////////////will do reiterations
try
{
this.public_double_centi_degrees_per_milliseconds___for_reverse_calculations_of_lengths_on_dxf = 0;
this.public_double_centi_degrees_per_milliseconds___for_reverse_calculations_of_lengths_on_dxf
=
( 1 / this.public_double_milliseconds_per_centi_degrees);
///radians calculations not done for this
}
catch (Exception ___excp_to_convert_given_radius)
{
}//catch(Exception ___excp_to_convert_given_radius)
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
try
{
this.public_double_degrees_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf = 0;
this.public_double_degrees_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf
=
( 1 /
this.public_double_milliseconds_per_UNIT_SINGLE_degrees
)
;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.public_double_radians_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf = 0;
this.public_double_radians_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf
=
this.public_double_degrees_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf
* Math.PI / 180;
}
catch (Exception ___excp_to_convert_given_radius)
{
}//catch(Exception ___excp_to_convert_given_radius)
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
try
{
this.PUBLIC_DOUBLE_GIVEN_RADIUS_AS_FREQUENCY_TO_CHECK_SIZED_OF_DIFFERENT_NOTES_ON_TANGENT_OF_CIRCUMFERENCES_FOR_GIVEN_FREQUENCY___textBox_PRECALC_NOTES_LENGTHS_FITS_FOR_FREQ_AS_RADIUS
=
Convert.ToDouble
(
this.textBox_PRECALC_NOTES_LENGTHS_FITS_FOR_FREQ_AS_RADIUS
.Text
.TrimEnd().TrimStart().Trim().Replace(" ", "")
);
this.textBox_PRECALC_NOTES_LENGTHS_FITS_FOR_FREQ_AS_RADIUS.BackColor = Color.White;
}
catch (Exception ___excp_to_convert_given_radius)
{
this.textBox_PRECALC_NOTES_LENGTHS_FITS_FOR_FREQ_AS_RADIUS.BackColor = Color.PaleVioletRed;
this.PUBLIC_DOUBLE_GIVEN_RADIUS_AS_FREQUENCY_TO_CHECK_SIZED_OF_DIFFERENT_NOTES_ON_TANGENT_OF_CIRCUMFERENCES_FOR_GIVEN_FREQUENCY___textBox_PRECALC_NOTES_LENGTHS_FITS_FOR_FREQ_AS_RADIUS
=
100;
}//catch(Exception ___excp_to_convert_given_radius)
//////public double PUBLIC_DOUBLE___ESTIMATED_DRUMS_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES = 0;
//////public double PUBLIC_DOUBLE___ESTIMATED_STRING_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES = 0;
//////public double PUBLIC_DOUBLE___ESTIMATED_WIND_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES = 0;
//////public double PUBLIC_DOUBLE_GIVEN_RADIUS_AS_FREQUENCY_TO_CHECK_SIZED_OF_DIFFERENT_NOTES_ON_TANGENT_OF_CIRCUMFERENCES_FOR_GIVEN_FREQUENCY = 0;
//////public double PUBLIC_DOUBLE___ESTIMATED_DRUMS_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES = 0;
//////public double PUBLIC_DOUBLE___ESTIMATED_STRING_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES = 0;
//////public double PUBLIC_DOUBLE___ESTIMATED_WIND_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES = 0;
//////public double PUBLIC_DOUBLE___ESTIMATED_DRUMS_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES = 0;
//////public double PUBLIC_DOUBLE___ESTIMATED_STRING_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES = 0;
//////public double PUBLIC_DOUBLE___ESTIMATED_WIND_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES = 0;
//////public double PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions = 0;
//////public double PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions = 0;
//////public double PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied = 0;
///
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// for the drums beats the maximum milliseconds is given and the frequency circle data is given
/// so we need the estimates to draw the dxf files properly such that we can know how to generate the notes tangentially to construct the notes
/// such that we can prepare the geometry properly well calculated
this.PUBLIC_DOUBLE___ESTIMATED_DRUMS_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES
=
this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
*
this.public_double_radians_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf
*
this.PUBLIC_DOUBLE_GIVEN_RADIUS_AS_FREQUENCY_TO_CHECK_SIZED_OF_DIFFERENT_NOTES_ON_TANGENT_OF_CIRCUMFERENCES_FOR_GIVEN_FREQUENCY___textBox_PRECALC_NOTES_LENGTHS_FITS_FOR_FREQ_AS_RADIUS
;
this.PUBLIC_DOUBLE___ESTIMATED_STRING_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES
=
this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions
*
this.public_double_radians_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf
*
this.PUBLIC_DOUBLE_GIVEN_RADIUS_AS_FREQUENCY_TO_CHECK_SIZED_OF_DIFFERENT_NOTES_ON_TANGENT_OF_CIRCUMFERENCES_FOR_GIVEN_FREQUENCY___textBox_PRECALC_NOTES_LENGTHS_FITS_FOR_FREQ_AS_RADIUS
;
this.PUBLIC_DOUBLE___ESTIMATED_WIND_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES
=
this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied
*
this.public_double_radians_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf
*
this.PUBLIC_DOUBLE_GIVEN_RADIUS_AS_FREQUENCY_TO_CHECK_SIZED_OF_DIFFERENT_NOTES_ON_TANGENT_OF_CIRCUMFERENCES_FOR_GIVEN_FREQUENCY___textBox_PRECALC_NOTES_LENGTHS_FITS_FOR_FREQ_AS_RADIUS
;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////public double PUBLIC_DOUBLE___ESTIMATED_DRUMS_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES = 0;
//////public double PUBLIC_DOUBLE___ESTIMATED_STRING_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES = 0;
//////public double PUBLIC_DOUBLE___ESTIMATED_WIND_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES = 0;
this.PUBLIC_DOUBLE___ESTIMATED_DRUMS_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES
=
this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
*
this.public_double_radians_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf
*
(440)
;
this.PUBLIC_DOUBLE___ESTIMATED_STRING_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES
=
this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions
*
this.public_double_radians_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf
*
(440)
;
this.PUBLIC_DOUBLE___ESTIMATED_WIND_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES
=
this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied
*
this.public_double_radians_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf
*
(440)
;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.label_ESTIMATED_LENGTHS_DRUMS_STRINGS_WINDS_AT_GIVEN_FREQUENCY.Text
=
"for_drums MAX length = "
+
this.PUBLIC_DOUBLE___ESTIMATED_DRUMS_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES
.ToString("F3")
+ " FOR STRINGS MAX LENGTH = "
+
this.PUBLIC_DOUBLE___ESTIMATED_STRING_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES
.ToString("F3")
+ " FOR WINDS MIN(ITS MIN) LENGTH = "
+ this.PUBLIC_DOUBLE___ESTIMATED_WIND_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_GIVEN_FREQUENCY_CIRCLE_CIRCUMFERENCES
.ToString("F3");
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.label_ESTIMATED_LENGTHS_DRUMS_STRINGS_WINDS_AT_440_FREQUENCY_REFERENCES.Text
=
"ref radius = freq = 440 drums_max_length = "
+
this.PUBLIC_DOUBLE___ESTIMATED_DRUMS_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES
.ToString("F3")
+ " strings_max_length= "
+
this.PUBLIC_DOUBLE___ESTIMATED_STRING_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES
.ToString("F3")
+ " WINDS MIN(ITS MIN) LENGTH = "
+ this.PUBLIC_DOUBLE___ESTIMATED_WIND_BEAT_NOTES_TANGENTIAL_CIRCUMFERENTIAL_MAXIMUM_LENGTH_ON_440_CIRCLE_CIRCUMFERENCES
.ToString("F3");
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
/// public double PUBLIC_DOUBLE___MIDITKS_TO_MILLISECOND_CONVERTER_FOR_THIS_CONTEXT = 1;
/// public double PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT = 1;
this.label_MILLISEC_PER_CENTIDEGREES.Text
=
"MILLISECONDS/CENTIDEGREES= " +
this.public_double_milliseconds_per_centi_degrees.ToString("F6")
+ " so millisec/ degrees = "
+
this.public_double_milliseconds_per_UNIT_SINGLE_degrees.ToString("F3")
+
" radians/millisecond= "
+
this.public_double_radians_per_UNIT_SINGLE_milliseconds___for_reverse_calculations_of_lengths_on_dxf.ToString("F6")
;
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
/// public double PUBLIC_DOUBLE___MIDITKS_TO_MILLISECOND_CONVERTER_FOR_THIS_CONTEXT___MILLISECONDS_PER_MIDITKS = 1;
/// public double PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS = 1;
///
////////////////public double PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions = 0;
////////////////public double PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions = 0;
////////////////public double PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied = 0;
this.PUBLIC_DOUBLE___t_Drums_max_MIDITKS_is_min_for_t_Strings_transitions = 0;
this.PUBLIC_DOUBLE___t_Strings_max_MIDITKS_is_t_winds_min_data_transitions = 0;
this.PUBLIC_DOUBLE___t_Winds_min_MIDITKS_is_same_as_t_Strings_max_data_supplied = 0;
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
this.PUBLIC_DOUBLE___t_Drums_max_MIDITKS_is_min_for_t_Strings_transitions
=
this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions
*
this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS;
this.PUBLIC_DOUBLE___t_Strings_max_MIDITKS_is_t_winds_min_data_transitions
=
this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions
*
this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS;
this.PUBLIC_DOUBLE___t_Winds_min_MIDITKS_is_same_as_t_Strings_max_data_supplied
=
this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied
*
this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS;
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
this.label_THE_MIDITKS_DURATIONS_CONVERTED_FROM_MILLISECONDS_FROM_THE_DRUMS_MAX_STRINGS_MIN_TO_MAX_WINDS_MIN.Text
=
"for MAX_DRUMS(miditks) = "
+
this.PUBLIC_DOUBLE___t_Drums_max_MIDITKS_is_min_for_t_Strings_transitions
.ToString("F3")
+ " MIN_STRING(miditks) = "
+
this.PUBLIC_DOUBLE___t_Strings_max_MIDITKS_is_t_winds_min_data_transitions
.ToString("F3")
+ " STRINGS_MAX=WINDS MIN(ITS MIN)(miditks) = "
+ this.PUBLIC_DOUBLE___t_Winds_min_MIDITKS_is_same_as_t_Strings_max_data_supplied
.ToString("F3");
;
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
if (this.public_double_milliseconds_per_UNIT_SINGLE_degrees > this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions)
{
this.label_MILLISEC_PER_CENTIDEGREES.BackColor = Color.PaleVioletRed;
this.label_MILLISEC_PER_CENTIDEGREES.ForeColor = Color.White;
}
else if (
(this.public_double_milliseconds_per_UNIT_SINGLE_degrees > this.PUBLIC_DOUBLE___t_Drums_max_milliseconds_is_min_for_t_Strings_transitions)
&&
(this.public_double_milliseconds_per_UNIT_SINGLE_degrees < this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions)
)
{
this.label_MILLISEC_PER_CENTIDEGREES.BackColor = Color.MediumVioletRed;
this.label_MILLISEC_PER_CENTIDEGREES.ForeColor = Color.White;
}
else if (
(this.public_double_milliseconds_per_UNIT_SINGLE_degrees > this.PUBLIC_DOUBLE___t_Strings_max_milliseconds_is_t_winds_min_data_transitions)
&&
(this.public_double_milliseconds_per_UNIT_SINGLE_degrees < this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied)
)
{
this.label_MILLISEC_PER_CENTIDEGREES.BackColor = Color.IndianRed;
this.label_MILLISEC_PER_CENTIDEGREES.ForeColor = Color.White;
}
else if (
(this.public_double_milliseconds_per_UNIT_SINGLE_degrees > this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied)
&&
(this.public_double_milliseconds_per_UNIT_SINGLE_degrees < this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied*1.6)
)
{
this.label_MILLISEC_PER_CENTIDEGREES.BackColor = Color.OrangeRed;
this.label_MILLISEC_PER_CENTIDEGREES.ForeColor = Color.White;
}
else if (
(this.public_double_milliseconds_per_UNIT_SINGLE_degrees > this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied*1.6)
&&
(this.public_double_milliseconds_per_UNIT_SINGLE_degrees < this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 2.2)
)
{
this.label_MILLISEC_PER_CENTIDEGREES.BackColor = Color.Red;
this.label_MILLISEC_PER_CENTIDEGREES.ForeColor = Color.White;
}
else if (
(this.public_double_milliseconds_per_UNIT_SINGLE_degrees > this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 2.2)
&&
(this.public_double_milliseconds_per_UNIT_SINGLE_degrees < this.PUBLIC_DOUBLE___t_Winds_min_milliseconds_is_same_as_t_Strings_max_data_supplied * 6.1)
)
{
this.label_MILLISEC_PER_CENTIDEGREES.BackColor = Color.DarkRed;
this.label_MILLISEC_PER_CENTIDEGREES.ForeColor = Color.White;
}
else
{
this.label_MILLISEC_PER_CENTIDEGREES.BackColor = Color.LightBlue;
this.label_MILLISEC_PER_CENTIDEGREES.ForeColor = Color.Black;
}// if(this.public_double_milliseconds_per_UNIT_SINGLE_degrees>100)
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
///////////////////////////////////////////////////////// TOO IMPORTANT CALCULATIONS FOR SPACE PLANNING AROUND THE CIRCUMFERENCES OF DIFFERENT RADIUS ////////
if
(
this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG___TO___PLAN___FROM___TEXTBOX_DATA_TO_ACHIEVES
!=
PUBLIC_DOUBLE___TO_REITERATE_TO_FIND___FOR_textBox___TOTAL_NOTES_TO_PLAN_ITERATES
)
{
goto goto_here_if___mismatch___this___PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG___TO___PLAN___FROM___TEXTBOX_DATA_TO_ACHIEVES;
}
//////if
////// (
////// this.PUBLIC_DOUBLE___TOTAL_NOTES_IN_THE_SONG___TO___PLAN___FROM___TEXTBOX_DATA_TO_ACHIEVES
////// <
////// PUBLIC_DOUBLE___TO_REITERATE_TO_FIND___FOR_textBox___TOTAL_NOTES_TO_PLAN_ITERATES
////// )
//////this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Drums_NOTES_COUNTS = 0;
//////this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Strings_NOTES_COUNTS = 0;
//////this.PUBLIC_DOUBLE___COUNT_ESTIMATED_Winds_NOTES_COUNTS = 0;
}
catch (Exception excp___next_level_calculations)
{
}//catch(Exception excp___next_level_calculations)
////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
return;
}// public void RECALCULATE_THE_MIDI_DATA_MICROSECONDS_NOTES_ETC()
private void button___SAANDXF_CIRCULAR_IN_GRAPHICS_LOAD_CHECKING_Click(object sender, EventArgs e)
{
try
{
System.Windows.Forms.MessageBox.Show("layers prefers NOTE_trknos_chnlsnos_patchnos_velocity");
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.
PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
();
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.
PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
();
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
// TO DO TO PLAY MIDI NOTES
//////https://stackoverflow.com/questions/30349066/cannot-play-a-note-with-naudio-midi
///
////////////using System;
////////////using System.Collections.Generic;
////////////using System.ComponentModel;
////////////using System.Data;
////////////using System.Drawing;
////////////using System.Linq;
////////////using System.Text;
////////////using System.Windows.Forms;
////////////using NAudio.Midi;
////////////using System.Threading;
////////////namespace SoundVision10
//////////// {
//////////// public partial class Form1 : Form
//////////// {
//////////// public Form1()
//////////// {
//////////// InitializeComponent();
//////////// }
//////////// private void Form1_Load(object sender, EventArgs e)
//////////// {
//////////// }
//////////// private void button1_Click(object sender, EventArgs e)
//////////// {
//////////// //Thread.Sleep inside GUI is just for example
//////////// using (MidiOut midiOut = new MidiOut(0))
//////////// {
//////////// midiOut.Volume = 65535;
//////////// midiOut.Send(MidiMessage.StartNote(60, 127, 0).RawData);
//////////// MessageBox.Show("Sent");
//////////// Thread.Sleep(1000);
//////////// midiOut.Send(MidiMessage.StopNote(60, 0, 0).RawData);
//////////// Thread.Sleep(1000);
//////////// }
//////////// }
//////////// }
//////////// }
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
RECALCULATE_THE_MIDI_DATA_MICROSECONDS_NOTES_ETC();
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///
public_list_of_6_digit_double_precission_unique_slopes_found
= new List<double>();
public_list_of_6_digit_double_precission_unique_slopes_found
.Clear();
public_list_of_long_type_note_durations
= new List<long>();
public_list_of_long_type_note_durations
.Clear();
StringBuilder ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
= new StringBuilder();
___sbuilder_within_the_button_to_log_details_for_mid_event_notes.Clear();
//////http://www.synthfont.com/SFSPEC21.PDF
//////http://www.synthfont.com/SFSPEC21.PDF
/////////http://www.synthfont.com/SFSPEC21.PDF
//D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
//////https://markheath.net/category/naudio
///
////// ///TESTED IT IS WORKING AND PLAYING ALSO
////// string[] strs = {
////// "" +
////// "D:\\dekhte_haiisko___guitar.mid"
////// , "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
//////SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "DXF Files (.dxf)|*.dxf|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
///////////////yes running
///////////////
//////////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID", false);
///////////////yes running
/////////////// _midf.Describe()
///////////////
////////////System.IO.File.WriteAllText("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID.txt", _midf.ToString());
////////////////////////////////////// yessssssssssssssssssssss worked
///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
/// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
/// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
string[] strs = {
"" +
/// "D:\\dekhte_haiisko___guitar.mid"
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_HARDCODED_NOTES.MID"
, "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
System.Windows.Forms.MessageBox.Show(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
//https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
// Create a Graphics object from the PictureBox
Graphics g = pictureBox_TO_TRY_SAANDXF.CreateGraphics();// // e.Graphics;
// Load the DXF file
SAANSDXF.DxfDocument SAAN_dxf = SAANSDXF.DxfDocument.Load(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
//////// Create a new DXF document
//////DxfDocument dxf_fresh = new DxfDocument();
//////// Create lines
//////SAANSDXF.Entities.Line line1 = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
//////SAANSDXF.Entities.Line line2 = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
/// DxfDocument dxf = new DxfDocument();
//////// Create lines
//////SAANSDXF.Entities.Line line1chk = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
//////SAANSDXF.Entities.Line line2chk = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
//////// Add lines to the model space
//////dxf.AddEntityToDocument(line1chk, true);
//////dxf.AddEntityToDocument(line2chk, true);
//////// Save the DXF file
//////dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_fresh_output.dxf");
////// // Add lines to the model space
////// dxf_fresh.AddEntity(line1);
////// dxf_fresh.AddEntity(line2);
//////// dxf_fresh
////// // Save the DXF file
////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_output.dxf");
double freq_found = -6;
int note_number_to_take_integer = -6;
string note_name_to_take_string = "";
//ok tested if ((freq_found >= 7.6892) && (freq_found <= 8.7466){ note_number_to_take_integer = 1; note_name_to_take_string = "NONE"; }
////// SAANSDXF.Entities.Line ___new_line = new SAANSDXF.Entities.Line();
////// ___new_line.StartPoint = new SAANSDXF.Vector3(-600000,-600000,0.003);
////// ___new_line.EndPoint = new SAANSDXF.Vector3(+600000, +600000, 0.003);
////// ___new_line.Color = new AciColor(0.3, 0.6, 0.8);
////// SAAN_dxf.AddEntityToDocument(___new_line, true);
///////// SAAN_dxf.AddEntityToDocument
////// SAAN_dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_SAANSDXF.DXF");
///DxfDocument doc = DxfDocument.Load("sample.dxf");
SAAN_dxf.Entities.ActiveLayout = SAANSDXF.Objects.Layout.ModelSpaceName;// works after it is saved with higher version with autocad
///
SAANSDXF.Collections.EntityCollection entities
= SAAN_dxf.Blocks[Block.DefaultModelSpaceName].Entities;
/////////////////////////////////////////////////////////////////////////////////////
int entitycount = -1;
entitycount = entities.Count;
int entitytimer = 0;
entitytimer = entitycount / 10000;
double vertsx = 0;
double vertsy = 0;
double vertsz = 0;
double vertex = 0;
double vertey = 0;
double vertez = 0;
int vertextcount = 0;
double vertx1 = 0;
double verty1 = 0;
double vertx2 = 0;
double verty2 = 0;
int roundamount = 16;
double totallength = 0;
double arclength = 0;
double linelength = 0;
double startAngle;
double endAngle;
double bulge;
double theta;
double c;
double r;
double gamma;
double phi;
double holdangle;
Vector2 p1;
Vector2 p2;
Vector2 center;
double ___saan_x_for_angle_calculation = 0;
double ___saan_y_for_angle_calculation = 0;
/// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
long total_microsecond_of_whole_song
=
this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
;
double ___total_notes_found_in_the_dxf = 0;
___total_notes_found_in_the_dxf =
entities.Count;
//////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show
("Duration = " + total_microsecond_of_whole_song
+ "\r\n\r\n\r\ntotal notes= " + ___total_notes_found_in_the_dxf
);
foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
{
r = myarc.Radius;
startAngle = myarc.StartAngle;
endAngle = myarc.EndAngle;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_ARC_DETAIL_"
+ " radius = " + r
+ " startAngle = " + startAngle
+ " endAngle = " + endAngle
+ " holdangle = " + holdangle
+ " arclength = " + arclength
);
}// foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
//////////////////////////////////////////////////////////
//////string fileName_for_midi_from_the_dxf = "";
//////fileName_for_midi_from_the_dxf
////// =
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + ".mid";
/// public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
/// {
//////const int MidiFileType = 0;
//////const int BeatsPerMinute = 60;
//////const int TicksPerQuarterNote = 120;
//////const int TrackNumber = 0;
//////const int ChannelNumber = 1;
///
////// cant we take TicksPerQuarterNote as multiple of 60 ?
//////ChatGPT
//////In MIDI, TicksPerQuarterNote is often used as a multiple of 60 because it provides a convenient resolution for expressing tempo changes.However, it's not a strict requirement, and you can technically set TicksPerQuarterNote to any integer value based on your specific needs.
//////Using a multiple of 60, like 480(60 multiplied by 8), is common because it allows for easy tempo calculations in beats per minute(BPM) and makes it simple to represent note durations.It's a practical choice because it aligns well with common musical timing values.
//////That said, you can choose other values for TicksPerQuarterNote if your MIDI application requires different resolutions or if you have specific reasons to do so.Just be aware that using a value that's not a multiple of 60 may make it less intuitive when working with tempos in BPM and traditional musical notation.
//////public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
//////public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
//////public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
//////public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
//////public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
//////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
//////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
//////public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
//////public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
//////public double public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480 = 0;
int MidiFileType = 1;// 0;//////saan changes this to 1
int BeatsPerMinute =
(int)this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE;
//60;
int TicksPerQuarterNote =
(int)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480;
//120;////// too important /// multiple of 480
int TrackNumber = 0;
int ChannelNumber = 1;
//////public PatchParser()
////// {
////// this.patchMap.Add("nylon", 25);
////// this.patchMap.Add("steel", 26);
////// this.patchMap.Add("jazz", 27);
////// this.patchMap.Add("clean", 28);
////// this.patchMap.Add("muted", 29);
////// this.patchMap.Add("distortion", 31);
////// this.patchMap.Add("bass", 33);
////// this.patchMap.Add("violin", 41);
////// this.patchMap.Add("viola", 42);
////// this.patchMap.Add("cello", 43);
////// this.patchMap.Add("sitar", 105);
////// this.patchMap.Add("banjo", 106);
////// this.patchMap.Add("fiddle", 111);
////// }//public PatchParser()
int Patch_number = 26;
long absoluteTime___start = 0;
long absoluteTime___final = 0;
var collection
= new
SAANAUDS.Midi.MidiEventCollection
(MidiFileType, TicksPerQuarterNote);
////////////////////////////////////////////////////////////////////////////////////////////
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " MID_COLLECTION_STARTS_FRESH collection = " + collection.ToString()
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " MidiFileType = " + MidiFileType
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " TicksPerQuarterNote = " + TicksPerQuarterNote
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " BeatsPerMinute = " + BeatsPerMinute
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " TrackNumber = " + TrackNumber
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " ChannelNumber = " + ChannelNumber
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " absoluteTime___start = " + absoluteTime___start
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " absoluteTime___final = " + absoluteTime___start
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// absoluteTime
////// ),
////// TrackNumber
////// );
//////++absoluteTime;
//////collection.AddEvent
//////(
////// new SAANAUDS.Midi.TempoEvent
//////(
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// absoluteTime
////// ),
////// TrackNumber
////// );
///
////// will do after some times
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"Note Stream LYRICS",
SAANAUDS.Midi.MetaEventType.TextEvent
,
// absoluteTime
(long)((absoluteTime___start + absoluteTime___final) / 6)
),
//TrackNumber
TrackNumber
);
/////////////////////////////// interesting styles ////////////////////
///
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"SanjoyNathGeometrifyingTrigonometry(C)"
,
SAANAUDS.Midi.MetaEventType.Copyright
,
// absoluteTime
(long)(absoluteTime___start)
),
//TrackNumber
// 0
TrackNumber
);
////////////////////////////////////////////////////////////////////////////////
////// will do after some times
// ++absoluteTime;
collection.AddEvent
(
new SAANAUDS.Midi.TempoEvent
(
Local_CalculateMicrosecondsPerQuaterNote
(
BeatsPerMinute
),
/// absoluteTime
absoluteTime___start
),
// TrackNumber
TrackNumber
);
////////////////////////////////////////////////
///
//////////////static void Main(string[] args)
////////////// {
////////////// string inputMidiFile = "input.mid"; // Replace with your MIDI file
////////////// string outputMidiFile = "output.mid"; // Replace with the output file
////////////// string copyrightText = "Copyright © 2023 Your Company"; // Your copyright notice
////////////// // Load the MIDI file
////////////// MidiFile midiFile = new MidiFile(inputMidiFile, false);
////////////// // Create a meta-event to set the copyright text
////////////// MetaEvent copyrightEvent = new MetaEvent(MetaType.Copyright, copyrightText);
////////////// // Locate the track where you want to insert the copyright event
////////////// int targetTrackIndex = 0; // Adjust as needed
////////////// if (targetTrackIndex < midiFile.Tracks.Count)
////////////// {
////////////// MidiTrack targetTrack = midiFile.Tracks[targetTrackIndex];
////////////// // Add the copyright event to the track
////////////// targetTrack.AddEvent(copyrightEvent);
////////////// }
////////////// else
////////////// {
////////////// Console.WriteLine("Invalid track index.");
////////////// return;
////////////// }
////////////// // Save the modified MIDI file
////////////// midiFile.Save(outputMidiFile);
////////////// Console.WriteLine("Copyright event added successfully.");
////////////// }
////////////// saan thinks it will work
////// ////////////// // Create a meta-event to set the copyright text
////// SAANAUDS.Midi.TextEvent copyrightEvent___SAAN
////// =
////// new
////// SAANAUDS.Midi.TextEvent
////// (
////// SAANAUDS.Midi.MetaEventType.Copyright
////// ,
////// 50
////// ,
////// absoluteTime___start
////// )
////// ;
////// //"SanjoyNathGeometrifyingTrigonometry(C)"
////// copyrightEvent___SAAN
////// .absoluteTime
////// collection.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
//////(
//////,
////// /// absoluteTime
////// ),
////// // TrackNumber
////// TrackNumber
////// );
////////////////////////////////////////////////
///
var patchParser = new SAANAUDS_CHECKING.PatchParser();
int patchNumber = patchParser.Patch("steel");//////////////////// i will configure this from layers
/////////////////// first entries so absolute time is zero
collection.AddEvent(
new
SAANAUDS.Midi.PatchChangeEvent
(
0
,
ChannelNumber
, patchNumber
)
, TrackNumber
);
//////const int NoteVelocity = 100;
////// const int NoteDuration =
////// ///3 * TicksPerQuarterNote / 4;
////// const long SpaceBetweenNotes
////// = TicksPerQuarterNote;
int NoteVelocity = 100;
long NoteDuration = 0;
double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
///3 * TicksPerQuarterNote / 4;
long SpaceBetweenNotes
= 0;// TicksPerQuarterNote;
////// absoluteTime += SpaceBetweenNotes;
////// foreach (var note in allNotes)
////// {
//////collection.AddEvent(new NoteOnEvent(absoluteTime, ChannelNumber, note.MidiValue, NoteVelocity, NoteDuration), TrackNumber);
//////collection.AddEvent(new NoteEvent(absoluteTime + NoteDuration, ChannelNumber, MidiCommandCode.NoteOff, note.MidiValue, 0), TrackNumber);
////// absoluteTime += SpaceBetweenNotes;
////// }//foreach (var note in allNotes)
////// collection.PrepareForExport();
////// /// MidiFile.Export(fileName, collection);
////// ///
////// SAANAUDS.Midi.MidiFile.Export(fileName_for_midi_from_the_dxf, collection);
///////// }//public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
double line_Segments_counter = 0;
double line_Segments_count = 0;
double ___degrees_1 = 0;
double ___degrees_2 = 0;
double ___dist_1 = 0;
double ___dist_2 = 0;
double freq_found_from_the_nearest = 0;
double freq_found_from_the_furthest = 0;
double ___distance_of_current_line_segment_min_out_of_two = 0;
double ___distance_of_current_line_segment_max_out_of_two = 0;
int note_number_found_from_the_nearest_frequency_Hertz = 0;
int note_number_found_from_the_furthest_frequency_Hertz = 0;
string note_name_found_from_the_nearest_frequency_Hertz = "";
string note_name_found_from_the_furthest_frequency_Hertz = "";
////////////////////////// these are used to put the pitch bents
double start_side_of_line_segments_angle_with_x_axis = 0;
double final_side_of_line_segments_angle_with_x_axis = 0;
////////////////////////// these are used to put the pitch bents
double start_side_of_line_segments_frequency = 0;
double final_side_of_line_segments_frequency = 0;
double delta_pitch = 0;
/// this.ref System.Windows.Forms.ProgressBar _to_update_progressbar
line_Segments_count = entities.OfType<SAANSDXF.Entities.Line>().Count();
this.progressBarFOR_ANIMATIONS_SAVING.Maximum = (int)line_Segments_count;
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
{
line_Segments_counter++;
//////////////////////////////////////////////////////////////////////////
this.progressBarFOR_ANIMATIONS_SAVING.Value = (int)line_Segments_counter;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
///////////////////////////////////////////////////////////////////////////
vertsx = line.StartPoint.X;
vertsy = line.StartPoint.Y;
vertsz = line.StartPoint.Z;
vertex = line.EndPoint.X;
vertey = line.EndPoint.Y;
vertez = line.EndPoint.Z;
linelength = arclength = Math.Sqrt((Math.Pow((vertex - vertsx), 2) + Math.Pow((vertey - vertsy), 2) + Math.Pow((vertez - vertsz), 2)));
totallength = totallength + linelength;
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"\r\nSAANDXF___DXF_LINE_SEGMENTS_"
+ " line_Segments_counter = " + line_Segments_counter
+ " of line_Segments_count = " + line_Segments_count
+ " vertsx = " + vertsx
+ " vertsy = " + vertsy
+ " vertsz = " + vertsz
+ " vertex = " + vertex
+ " vertey = " + vertey
+ " vertez = " + vertez
+ " linelength=" + linelength
);
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
if (vertsy >= 0 && vertsx > 0)
{
___saan_x_for_angle_calculation = vertsx;
___saan_y_for_angle_calculation = vertsy;
}
else if (vertsy >= 0 && vertsx < 0)
{
___saan_x_for_angle_calculation = (-1) * vertsx;
___saan_y_for_angle_calculation = vertsy;
}
else if (vertsy < 0 && vertsx < 0)
{
___saan_x_for_angle_calculation = (-1) * vertsx;
___saan_y_for_angle_calculation = (-1) * vertsy;
}
else if (vertsy < 0 && vertsx > 0)
{
___saan_x_for_angle_calculation = vertsx;
___saan_y_for_angle_calculation = (-1) * vertsy;
}
else
{
___saan_x_for_angle_calculation = 0.0000001;
___saan_y_for_angle_calculation = vertsy;
}
___degrees_1 = 0;
////// ___degrees_1
////// =
//////// Math.Abs
////// (
////// Math.Atan(Math.Abs(vertsy)/Math.Abs(Math.Max(0.0001,Math.Min(0.00001, vertsx)))
////// )
////// )
////// *360/Math.PI
////// ;
///
___degrees_1
=
// Math.Abs
(
// Math.Atan2(vertsy,vertsx)
Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
)
* 360 / Math.PI
;
___degrees_1 = Math.Abs(___degrees_1);
if (vertsy >= 0 && vertsx >= 0)
{
___degrees_1 = ___degrees_1;
}
else if (vertsy >= 0 && vertsx < 0)
{
___degrees_1 = 180 - ___degrees_1;
}
else if (vertsy < 0 && vertsx < 0)
{
___degrees_1 = 270 - ___degrees_1;
}
else if (vertsy < 0 && vertsx >= 0)
{
___degrees_1 = 360 - ___degrees_1;
}
else
{
___degrees_1 = 60;
}
___degrees_2 = 0;
//////___degrees_2
////// =
////// // Math.Abs
////// (
////// Math.Atan(Math.Abs(vertey) /Math.Abs( Math.Max(0.0001,Math.Min(0.00001, vertex)))
////// )
////// )
////// *( 360 / Math.PI)
////// ;
////// ___degrees_2
//////=
//////// Math.Abs
//////(
////// Math.Atan2(vertey,vertex)
////// )
////// * 360 / Math.PI
////// ;
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
if (vertey >= 0 && vertex > 0)
{
___saan_x_for_angle_calculation = vertex;
___saan_y_for_angle_calculation = vertey;
}
else if (vertey >= 0 && vertex < 0)
{
___saan_x_for_angle_calculation = (-1) * vertex;
___saan_y_for_angle_calculation = vertey;
}
else if (vertey < 0 && vertex < 0)
{
___saan_x_for_angle_calculation = (-1) * vertex;
___saan_y_for_angle_calculation = (-1) * vertey;
}
else if (vertey < 0 && vertex > 0)
{
___saan_x_for_angle_calculation = vertex;
___saan_y_for_angle_calculation = (-1) * vertey;
}
else
{
___saan_x_for_angle_calculation = 0.0000001;
___saan_y_for_angle_calculation = vertey;
}
___degrees_2
=
// Math.Abs
(
// Math.Atan2(vertsy,vertsx)
Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
)
* 360 / Math.PI
;
___degrees_2 = Math.Abs(___degrees_2);
if (vertsy >= 0 && vertsx >= 0)
{
___degrees_2 = ___degrees_2;
}
else if (vertsy >= 0 && vertsx < 0)
{
___degrees_2 = 180 - ___degrees_2;
}
else if (vertsy < 0 && vertsx < 0)
{
___degrees_2 = 270 - ___degrees_2;
}
else if (vertsy < 0 && vertsx >= 0)
{
___degrees_2 = 360 - ___degrees_2;
}
else
{
___degrees_2 = 60;
}
//////long absoluteTime___start = 0;
//////long absoluteTime___final = 0;
absoluteTime___start
=
(long)(
Math.Min
(
___degrees_1, ___degrees_2
)
*
(Math.PI / 180) *
// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
)
;
if
(
Math.Min
(
___degrees_1, ___degrees_2
)
== ___degrees_1
)
{
start_side_of_line_segments_angle_with_x_axis
= ___degrees_1;
final_side_of_line_segments_angle_with_x_axis
= ___degrees_2;
start_side_of_line_segments_frequency = ___dist_1;
final_side_of_line_segments_frequency = ___dist_2;
}
//////if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_1
////// )
if
(
Math.Min
(
___degrees_1, ___degrees_2
)
== ___degrees_2
)
{
start_side_of_line_segments_angle_with_x_axis
= ___degrees_2;
final_side_of_line_segments_angle_with_x_axis
= ___degrees_1;
start_side_of_line_segments_frequency = ___dist_2;
final_side_of_line_segments_frequency = ___dist_1;
}
//////if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_1
////// )
absoluteTime___final
=
(long)(
Math.Max
(
___degrees_1, ___degrees_2
)
*
(Math.PI / 180) *
// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
)
;
//////(long)
////// Math.Max
////// (
////// ___degrees_1, ___degrees_2
////// )
////// *
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// ;
////// will do after some times
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// ( ( absoluteTime___start + absoluteTime___final)/2)
////// ),
////// //TrackNumber
////// 0
////// );
////// will do after some times
// ++absoluteTime;
//////collection.AddEvent
//////(
////// new SAANAUDS.Midi.TempoEvent
//////(
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// /// absoluteTime
////// absoluteTime___start
////// ),
////// // TrackNumber
////// 0
////// );
////////////////////////////////////////////////
___dist_1
=
Math.Sqrt
(
(line.StartPoint.X * line.StartPoint.X)
+
(line.StartPoint.Y * line.StartPoint.Y)
);
___dist_2
=
Math.Sqrt
(
(line.EndPoint.X * line.EndPoint.X)
+
(line.EndPoint.Y * line.EndPoint.Y)
);
freq_found_from_the_nearest
=
Math.Min
(
___dist_1, ___dist_2
);
freq_found_from_the_furthest
=
Math.Max
(
___dist_1, ___dist_2
);
////// dxf_fresh.AddEntityToDocument(line,false);
// Add lines to the model space
// dxf_fresh.AddEntity(line1);
// dxf_fresh.AddEntity(line2);
// dxf_fresh
// Save the DXF file
//dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
////////////////////tooooo important ///////////////////////////
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
___distance_of_current_line_segment_min_out_of_two = 0;
___distance_of_current_line_segment_max_out_of_two = 0;
___distance_of_current_line_segment_min_out_of_two
=
freq_found_from_the_nearest;
___distance_of_current_line_segment_max_out_of_two
=
freq_found_from_the_furthest;
note_number_found_from_the_nearest_frequency_Hertz = 0;
note_number_found_from_the_furthest_frequency_Hertz = 0;
note_name_found_from_the_nearest_frequency_Hertz = "";
note_name_found_from_the_furthest_frequency_Hertz = "";
/// calling conventions
/// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
note_number_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_int_get_note_number_from_frequency_Hertz
(
freq_found_from_the_nearest
);
note_name_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_nearest
);
note_number_found_from_the_furthest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_int_get_note_number_from_frequency_Hertz
(
freq_found_from_the_furthest
);
note_name_found_from_the_furthest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_furthest
);
////////note_number_found_from_the_nearest_frequency_Hertz
//////if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_nearest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
//note_number_found_from_the_nearest_frequency_Hertz
if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 127)
{
note_number_found_from_the_nearest_frequency_Hertz = 69;
}//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
// long NoteDuration = 0;
////////note_number_found_from_the_furthest_frequency_Hertz
//////if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_furthest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
//note_number_found_from_the_furthest_frequency_Hertz
if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 127)
{
note_number_found_from_the_furthest_frequency_Hertz = 69;
}//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
// long NoteDuration = 0;
/////////////////////////////////////////////////////////
///
NoteDuration
=
Math.Abs(
Math.Max(
Math.Abs(absoluteTime___final)
,
Math.Abs(absoluteTime___start)
)
-
Math.Abs(
Math.Min(
Math.Abs(absoluteTime___final)
,
Math.Abs(absoluteTime___start)
)
)
)
;
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
///
/// double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
slope_in_linear_time
= Math.Atan2((double)(freq_found_from_the_furthest - freq_found_from_the_nearest), (double)NoteDuration);
slope_in_linear_time
= slope_in_linear_time * 360 / Math.PI;/// taken 10 times the angles
slope_in_linear_time
= slope_in_linear_time * 100;
TrackNumber
=
///too slow ((int)slope_in_linear_time);//i want the raw data for different slopes integer values % 16;
((int)slope_in_linear_time) % 16;
ChannelNumber
= TrackNumber;
////// upto 18102020plusplusplus this was there to get a safe side data
///and i was getting too much of cleronets for long notes
//////patchNumber
////// =
////// TrackNumber;
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
if (
//((double)Math.Abs(absoluteTime___final - absoluteTime___start))
((double)NoteDuration)
<=
this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE)
{
patchNumber
=
SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
((int)slope_in_linear_time)
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
else
{
patchNumber
=
SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
((int)slope_in_linear_time)
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
///////// end of else case
///////// if(((double)Math.Abs(absoluteTime___final - absoluteTime___start))
////// <=
////// public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE )
////// for references variable names
////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////////////////////= new List<double>();
////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////////////////////.Clear();
if (public_list_of_6_digit_double_precission_unique_slopes_found
.Contains(Math.Round(slope_in_linear_time, 6)))
{
}
else
{
public_list_of_6_digit_double_precission_unique_slopes_found
.Add
(
Math.Round(slope_in_linear_time, 6)
);
}
//////if (public_list_of_6_digit_double_precission_unique_slopes_found
////// .Contains(Math.Round(slope_in_linear_time, 6)))
/////////////////////////////////////////////////////////////////////////
if (ChannelNumber >= 15)
{
ChannelNumber = 9;
TrackNumber = 9;
/// patchNumber = 26;/// upto 18102020plusplusplus this was there
}//if(ChannelNumber>=15)
if (ChannelNumber <= 0)
{
ChannelNumber = 6;
TrackNumber = 6;
/// patchNumber = 41;/// upto 18102020plusplusplus this was there
}//if (ChannelNumber <=0)
collection.AddEvent(
new
SAANAUDS.Midi.PatchChangeEvent
(
///saan puts this here
absoluteTime___start
,
ChannelNumber
, patchNumber
)
, TrackNumber
);
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.Append
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
);
if ((absoluteTime___final - absoluteTime___start) > 1000)
{
////////////////////// new things adding
////// will do after some times
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"Note Stream LYRICS",
SAANAUDS.Midi.MetaEventType.TextEvent
,
// absoluteTime
(long)((absoluteTime___start + (absoluteTime___final - absoluteTime___start) / 6))
),
//TrackNumber
0
);
}//if((absoluteTime___final - absoluteTime___start)>1000)
/////////////////////////////////////////////////////////
collection.AddEvent
(
new SAANAUDS.Midi.NoteOnEvent
(
////// absoluteTime
absoluteTime___start
,
ChannelNumber
,
// note.MidiValue
note_number_found_from_the_nearest_frequency_Hertz
,
NoteVelocity
,
(int)Math.Min(NoteDuration, 1)
)
,
TrackNumber
);
/////////////////////////////////////////////////////////
//////absoluteTime___final
////// = Math.Min(30, absoluteTime___final);
if (start_side_of_line_segments_frequency < final_side_of_line_segments_frequency)
{
//////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
{
delta_pitch = (final_side_of_line_segments_frequency - start_side_of_line_segments_frequency) / 60;
for (int rrr = 0; rrr < 60; rrr++)
{
collection.AddEvent
(
new
SAANAUDS.Midi.PitchWheelChangeEvent
(
(long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
,
ChannelNumber
,
/// Math.Min(16368, (int)(start_side_of_line_segments_frequency +(delta_pitch * (final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency)) * 8192))
Math.Max(16368, (int)(8190 + (rrr * delta_pitch)))
)
, TrackNumber
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.Append
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
+ " rrr= " + rrr
+ " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
+ " pitch bent value = " + Math.Max(16368, (int)(8190 + rrr * delta_pitch))
);
//delta_pitch
}// for(int rrr=0;rrr<60;rrr++)
}
//////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
}// if(start_side_of_line_segments_frequency< final_side_of_line_segments_frequency)
if (start_side_of_line_segments_frequency > final_side_of_line_segments_frequency)
{
//////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
{
delta_pitch = (start_side_of_line_segments_frequency - final_side_of_line_segments_frequency) / 60;
for (int rrr = 0; rrr < 60; rrr++)
{
collection.AddEvent
(
new
SAANAUDS.Midi.PitchWheelChangeEvent
(
(long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
,
ChannelNumber
,
/// (int)((1-(delta_pitch / start_side_of_line_segments_frequency)) * 8192)
///
// (int)(delta_pitch *(final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency) * 8192)
Math.Max(6, (int)(8190 - rrr * delta_pitch))
)
, TrackNumber
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
+ " rrr= " + rrr
+ " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
+ " pitch bent value = " + Math.Max(6, (int)(8190 - rrr * delta_pitch))
);
//delta_pitch
}// for(int rrr=0;rrr<60;rrr++)
}
//////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
}// if(start_side_of_line_segments_frequency> final_side_of_line_segments_frequency)
collection.AddEvent
(
new
SAANAUDS.Midi.NoteEvent
(
/// absoluteTime + NoteDuration
absoluteTime___final
,
ChannelNumber
,
SAANAUDS.Midi
.MidiCommandCode
.NoteOff
,
// note.MidiValue
note_number_found_from_the_nearest_frequency_Hertz
, 0
),
TrackNumber
);
// absoluteTime += SpaceBetweenNotes;
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
public_list_of_long_type_note_durations
.Add
(
(absoluteTime___final - absoluteTime___start)
);
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
}// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
//////////////public List<double> public_list_of_6_digit_double_precission_unique_slopes_found = null;
//////////////public List<long> public_list_of_long_type_note_durations = null;
string fileName_for_midi_from_the_dxf = "";
fileName_for_midi_from_the_dxf
=
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
+ "_BPM=" + this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
+ "_TPQN=" + this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
+ "_TS=" + this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.ToString()
+ "_" + this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.ToString()
+ "_totslps=" + this.public_list_of_6_digit_double_precission_unique_slopes_found.Count.ToString()
+ "_tot_notes=" + this.public_list_of_long_type_note_durations.Count.ToString()
+ ".mid";
//////System.IO.File.WriteAllText
////// (
////// fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// ,
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .ToString()
////// );
//////System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
//////System.Windows.Forms.MessageBox.Show(" MIDI files collection.PrepareForExport(); starts");
/////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
/////////caution caution caution we will add these later
//////collection.PrepareForExport();
/////////caution caution caution we will add these later MidiFile.Export(fileName, collection);
/////////
///////// caution caution caution we will add these later
/////////
//////System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
////////public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
///////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
//////SAANAUDS.Midi.MidiFile.Export
////// (
////// fileName_for_midi_from_the_dxf
////// , collection
////// );
//////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////
////////// SAAN IS ADDING THIS FOR SPECIAL PURPOSE NEEDS FOR THE PITCH CIRCLES
foreach (SAANSDXF.Entities.Circle CIRC_SAANS_ADDS in entities.OfType<SAANSDXF.Entities.Circle>())
{
double _circ_center_x = CIRC_SAANS_ADDS.Center.X;
double _circ_center_y = CIRC_SAANS_ADDS.Center.Y;
double _circ_center_z = CIRC_SAANS_ADDS.Center.Z;
double _circ_radius = CIRC_SAANS_ADDS.Radius;
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"CIRCLE_FOUND\r\n"
+ " center_x= " + _circ_center_x
+ " center_y= " + _circ_center_y
+ " center_z= " + _circ_center_z
+ " _circ_radius= " + _circ_radius
);
}// foreach (SAANSDXF.Entities.Circle CIRC_SAANS_ADDS in entities.OfType<SAANSDXF.Entities.Circle>())
////////// SAAN IS ADDING THIS FOR SPECIAL PURPOSE NEEDS FOR THE PITCH CIRCLES
foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[0].Position.X;
verty1 = poly2d.Vertexes[0].Position.Y;
vertx2 = poly2d.Vertexes[1].Position.X;
verty2 = poly2d.Vertexes[1].Position.Y;
bulge = poly2d.Vertexes[0].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
//i have the radius, finally again
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
/////////////////////////////////////////////////////////////////
for (int z = 1; z < vertextcount - 1; z++)
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[z].Position.X;
verty1 = poly2d.Vertexes[z].Position.Y;
vertx2 = poly2d.Vertexes[z + 1].Position.X;
verty2 = poly2d.Vertexes[z + 1].Position.Y;
bulge = poly2d.Vertexes[z].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
}
///////////////////////////////////////////////////////////////// is a closed polyline?
if (poly2d.IsClosed)
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[vertextcount - 1].Position.X;
verty1 = poly2d.Vertexes[vertextcount - 1].Position.Y;
vertx2 = poly2d.Vertexes[0].Position.X;
verty2 = poly2d.Vertexes[0].Position.Y;
bulge = poly2d.Vertexes[vertextcount - 1].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
}
poly2d.Normal = new Vector3(0, 0, 1);
}//foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
System.Windows.Forms.MessageBox.Show("all entities in dxf reading done\r\n\r\n\r\n SO MIDI files collection.PrepareForExport(); starts");
///caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
///caution caution caution we will add these later
collection.PrepareForExport();
///caution caution caution we will add these later MidiFile.Export(fileName, collection);
///
/// caution caution caution we will add these later
///
System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
//public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
/// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
SAANAUDS.Midi.MidiFile.Export
(
fileName_for_midi_from_the_dxf
, collection
);
////////////////////////////////////////////////////////////////////////////////////////////////////
///
totallength = Math.Round(totallength * roundamount, 0) / roundamount;
string tempstring = "Total length of entities in dxf = " + totallength.ToString();
////////////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
System.Windows.Forms.MessageBox.Show("starting writing log files at " + fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt");
System.IO.File.WriteAllText
(
fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt"
,
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.ToString()
);
//////System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
System.Windows.Forms.MessageBox.Show("text logs saving Done" + fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt");
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
///while writing THE MIDI FILE FIRST WE NEED TO READ THE DXF FILE FOR THE LINE SEGMENTS //////
///AND THEN CALCULATING THE TOTAL DURATIONS AND THEN PUTTING THE WHOLE RECALCULATIONS DONE FIRST
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
=
new List<double>();
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Sort();
//////double large_radius_to_use_for_gridding =
////// ___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
////// *
////// ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
////// + 3000;
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
/// and while writing the midi files first we will prepare track zero events for lyrics and the copyrights
/// where we will put the data for these things there from the dxf line segments data as read there
///
foreach (
double six_digit_radian_in_list
in
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
)
{
double six_digit_radian
= 0;
// in previous loop we have already found this
/// ___temp_total_length___of_the_song
///
six_digit_radian = Math.Round(six_digit_radian_in_list, 6);
string ___GRIDS_TIMES_TEXT_DATA = "";
//////___GRIDS_TIMES_TEXT_DATA
////// =
////// (System.Math.Round(___temp_total_length___of_the_song * six_digit_radian, 0)).ToString();
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//////double ___temp_x1_for_grids_end
////// = large_radius_to_use_for_gridding * System.Math.Cos(six_digit_radian);
//////double ___temp_y1_for_grids_end
////// = large_radius_to_use_for_gridding * System.Math.Sin(six_digit_radian);
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_circle_WITH_BLOCK_LEVEL_COLOR
////// (0, 0, 0,
////// large_radius_to_use_for_gridding, "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// );
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
////// (
////// 0, 0, -600000,
////// ___temp_x1_for_grids_end
////// ,
////// ___temp_y1_for_grids_end
////// ,
////// -600000,
////// "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// );
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_text_ON_TOP_VIEW_WITH_BLOCK_LEVEL_COLOR
////// (
////// ___temp_x1_for_grids_end
////// ,
////// ___temp_y1_for_grids_end
////// ,
////// -600000, 0, 60,
////// "LAYER_GRIDS_CIRCLE",
////// ___GRIDS_TIMES_TEXT_DATA
////// ,
////// "XDATA", 6
////// );
}
//////foreach (
//////double six_digit_radian_in_list
//////in
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
//////.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
//////)
//////textBox2.Text = tempstring;
//////textBox2.Refresh();`
/////////// great https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
//////foreach (Layout layout in SAAN_dxf.Layouts)
////// {
////// List<DxfObjectReference> entities = SAAN_dxf.Layouts.GetReferences(layout);
////// foreach (DxfObjectReference o__dxfobjectreference_entity in entities)
////// {
////// EntityObject entity = o__dxfobjectreference_entity as EntityObject;
////// }//foreach (DxfObject o in entities)
////// }// foreach (Layout layout in SAAN_dxf.Layouts)
//////// foreach (var entity in SAAN_dxf.Entities)
//////foreach (var entity in SAAN_dxf)
////// {
////// if (entity is Circle)
////// {
////// // Handle Circle entity
////// Circle circle = (Circle)entity;
////// DrawCircle(g, circle);
////// }
////// else if (entity is Line)
////// {
////// // Handle Line entity
////// Line line = (Line)entity;
////// DrawLine(g, line);
////// }//if (entity is Circle)
////// // Add more conditions to handle other entities (e.g., Arc, Text, etc.)
////// }//foreach (EntityObject entity in dxf.Modelspace)
//////// Specify the path to your CSV file
//////string csvFilePath = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// + "chkers.csv";// ;// "d:\\chkers.csv";
//////// Load CSV data
//////string[] csvLines = System.IO.File.ReadAllLines(csvFilePath);
// Parse CSV data and extract information
// You'll need to implement your own logic to extract tempo, time signature, key signature, and channel-wise data.
//////// Create a new MIDI file
//////SAANAUDS.Midi.MidiFile midiFile = new SAANAUDS.Midi.MidiFile(csvFilePath+"_new.mid");
//////// Set tempo (example value, replace with your own)
//////// midiFile.DeltaTicksPerQuarterNote = 960;
//////midiFile.DeltaTicksPerQuarterNote = 960;
/// SAANAUDS.Midi.MidiEvent tempoEvent = new SAANAUDS.Midi.TempoEvent(500000); // Tempo in microseconds per quarter note (e.g., 500,000 for 120 BPM)
// Create a new MIDI track for your data
// SAANAUDS.Midi.MidiTrack track = new SAANAUDS.Midi.MidiTrack();
/// SAANAUDS.Midi. track = new SAANAUDS.Midi.MidiTrack();
/// midiFile.Tracks.Add(track);
/////////////// we cannot prepare the midi file object to save the midi file
///instead we need to prepare MidiEventCollection and then need to save that to file through
///static method of the MidiFile
///
// Add tempo event
/// track.AddEvent(tempoEvent);
///
///refer F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL
///\excelformulaparser
///\DOING_GT06012020plus
///\DSMSETS_ANI_DNGIFGTTODOINOFFICE
///\ExcelFormulaParserSample\SAANAUDS\SAANAUDS_CHECKING_SimpleMidiFileWriter.cs
///
/////// SAANAUDS.Midi.MidiEventCollection ___saanauds_midieventscollection = new SAANAUDS.Midi.MidiEventCollection();
//////// Add your note events and pitch bend events to the track
//////foreach (string line in csvLines)
////// {
////// string[] parts = line.Split(',');
////// if (parts.Length >= 5)
////// {
////// int channel = int.Parse(parts[1]);
////// int noteNumber = int.Parse(parts[2]);
////// int velocity = int.Parse(parts[3]);
////// long absoluteTime = long.Parse(parts[4]);
////// // Create note on and note off events, and pitch bend events
////// var noteOn = new NoteOnEvent(absoluteTime, channel, noteNumber, velocity);
////// var noteOff = new NoteEvent(absoluteTime + 1000, channel, MidiCommandCode.NoteOff, noteNumber, velocity);
////// var pitchBend = new PitchBendEvent(absoluteTime, channel, 8192); // Example pitch bend value
////// // Add events to the track
////// track.AddEvent(noteOn);
////// track.AddEvent(noteOff);
////// track.AddEvent(pitchBend);
////// }
////// }
//////// Save the MIDI file
//////string outputFile = "output.mid";
//////midiFile.Save(outputFile);
}
catch (Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
{
System.Windows.Forms.MessageBox.Show
("_excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX" + _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.Message + "\r\n\r\n\r\n"
+ _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.StackTrace.ToString()
);
}//catch(Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
}// private void button___SAANDXF_CIRCULAR_IN_GRAPHICS_LOAD_CHECKING_Click(object sender, EventArgs e)
private void textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS_TextChanged(object sender, EventArgs e)
{
try
{
this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
= (long)Convert.ToInt64(textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS.Text.TrimEnd().Trim().Trim().Replace(" ", ""));
}
catch (Exception excp_to_convert_to_microseconds)
{
this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
= 180000000;/// long type variable
}//catch(Exception excp_to_convert_to_microseconds)
}//private void textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS_TextChanged(object sender, EventArgs e)
private void tabPage___FOR_DXF_GRAPHICS_MIDI_Click(object sender, EventArgs e)
{
////// try
////// {
////// //////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// = Convert.ToDouble
////// (
////// this.textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// //////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// /////////////////////////// tooooo important data /////////////////////////////////////////////////////////
////// ///
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// = (long)
////// Convert.ToInt64(textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// .Text.TrimEnd().Trim().Trim().Replace(" ", ""));
////// ////// cant we take TicksPerQuarterNote as multiple of 60 ? instead of multiple of 480
////// //////ChatGPT
////// //////In MIDI, TicksPerQuarterNote is often used as a multiple of 60 because it provides a convenient resolution for expressing tempo changes.However, it's not a strict requirement, and you can technically set TicksPerQuarterNote to any integer value based on your specific needs.
////// //////Using a multiple of 60, like 480(60 multiplied by 8), is common because it allows for easy tempo calculations in beats per minute(BPM) and makes it simple to represent note durations.It's a practical choice because it aligns well with common musical timing values.
////// //////That said, you can choose other values for TicksPerQuarterNote if your MIDI application requires different resolutions or if you have specific reasons to do so.Just be aware that using a value that's not a multiple of 60 may make it less intuitive when working with tempos in BPM and traditional musical notation.
////// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// ////////public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
////// ////////public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
////// ////////public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
////// ////////public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
////// ////////public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
////// ////////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
////// ////////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
////// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// /// ///TS MEANS TIME SIGNATURE
////// ////////public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
////// ////////public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
////// //////public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// ///
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// =
////// (
////// (int)(
////// public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// /
////// (long)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// //480
////// )
////// + 1
////// )
////// *
////// (long)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// ;
////// //480;
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// ////////////////////////////// TOTAL NUMBER OF BEATS IN WHOLE DURATIONS ////////////////////////////////////
////// this.public_double___label_TOTAL_NUMBER_OF_BEATS_FOUND_IN_TOTAL_DURATION_OF_TICKS_OF_MIDI
////// =
////// (long)public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// /
////// (long)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
//////;
////// ////////////////////////////// TOTAL NUMBER OF BEATS IN WHOLE DURATIONS ////////////////////////////////////
////// this.label_TOTAL_NUMBER_OF_BEATS_FOUND_IN_TOTAL_DURATION_OF_TICKS_OF_MIDI.Text
////// =
////// this.public_double___label_TOTAL_NUMBER_OF_BEATS_FOUND_IN_TOTAL_DURATION_OF_TICKS_OF_MIDI
////// .ToString();
////// ////////////////////////////// TOTAL NUMBER OF BEATS IN WHOLE DURATIONS ////////////////////////////////////
////// this.label_TOT_MICROSECONDS_DURATION_NX480_OR_N_X_TPQN
////// .Text
////// =
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// .ToString();
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// ////////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// = Convert.ToInt32
////// (
////// this.textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// ////////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// = Convert.ToInt32
////// (
////// this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// //////////////////////////////////////////////////////////////////////////////////////////
////// //////////////////////////////////////////////////////////////////////////////////////////
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// = Convert.ToDouble
////// (
////// this.textBoxFOR_BEATS_PER_MINUTE.Text
////// .TrimEnd().TrimStart().Trim()
////// );
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// =
////// (long)
////// (
////// 60000000
////// /
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// );
////// //////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// =
////// (
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// /
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// );
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK.Text
////// =
////// "MICROSEC/MIDITICK=" + this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// .ToString();
////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// //////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// =
////// (long)
////// (
////// (double)
////// this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// /
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// );
////// /////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS.Text
////// = "TOT_MIDITICS= " +
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// .ToString();
////// /////////////////////////////////////////////////////////////////////////////////////////////////////
////// /////////////////////////////////////////////////////////////////////////////////////////////////////
////// /////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///
////// try
////// {
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// =
////// (int)Convert.ToInt16
////// (this.textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.Text.TrimEnd().TrimStart().Trim());
////// /// no dont do it on text box
////// //////this.textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.Text
////// ////// = "beats_per_bar_size or per measure="
////// ////// +
////// ////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// ////// .ToString();
////// }
////// catch (Exception _excp_for_numerator_beats_per_measure_representation)
////// {
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// = 4;//default numerator for beats per measure
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// }//catch(Exception _excp_for_numerator_beats_per_measure_representation)
////// ///4;//default denominator for notes per beats
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// try
////// {
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// = 4; ////// default denominator notes per beat is 2^2 that is the 4 (we take it as 4)
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// =
////// (int)Convert.ToInt16
////// (this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.Text.TrimEnd().TrimStart().Trim());
////// }
////// catch (Exception _excp_for_denominator__the_denominator_notes_per_beat_representation)
////// {
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// = 4;//default numerator for beats per measure
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// }//catch(Exception _excp_for_denominator__the_denominator_notes_per_beat_representation)
////// ///4;//default numerator for beats per measure
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// ////////////////////////////// TOTAL NUMBER OF BEATS IN WHOLE DURATIONS ////////////////////////////////////
////// this.label_TOTAL_NUMBER_OF_BEATS_FOUND_IN_TOTAL_DURATION_OF_TICKS_OF_MIDI.Text
////// =
////// "TOTAL_BEATS_FOUND="+
////// this.public_double___label_TOTAL_NUMBER_OF_BEATS_FOUND_IN_TOTAL_DURATION_OF_TICKS_OF_MIDI
////// .ToString();
////// ////////////////////////////// TOTAL NUMBER OF BEATS IN WHOLE DURATIONS ////////////////////////////////////
////// this.label_TOT_MICROSECONDS_DURATION_NX480_OR_N_X_TPQN
////// .Text
////// =
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// .ToString();
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// /// ////////////////////////////// CATCH STARTS HERE TO FILL DEFAULT VALUES ////////////////
////// }
////// catch (Exception excp_to_convert_to_microseconds)
////// {
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// = 180000000;/// long type variable
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// =
////// (
////// (int)(
////// public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////// / 480
////// )
////// + 1
////// )
////// * 480;
////// this.label_TOT_MICROSECONDS_DURATION_NX480_OR_N_X_TPQN
////// .Text
////// =
////// public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// .ToString();
////// ////////////////////////////////////////////////////////////////////////////////////////////
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// = 4;//default numerator for beats per measure
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// try
////// {
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// =
////// (int)Convert.ToInt16
////// (this.textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.Text.TrimEnd().TrimStart().Trim());
////// /// no dont do it on text box
////// //////this.textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.Text
////// ////// = "beats_per_bar_size or per measure="
////// ////// +
////// ////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// ////// .ToString();
////// }
////// catch (Exception _excp_for_numerator_beats_per_measure_representation)
////// {
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT
////// = 4;//default numerator for beats per measure
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// }//catch(Exception _excp_for_numerator_beats_per_measure_representation)
////// ///4;//default denominator for notes per beats
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// try
////// {
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// = 4; ////// default denominator notes per beat is 2^2 that is the 4 (we take it as 4)
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// =
////// (int)Convert.ToInt16
////// (this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.Text.TrimEnd().TrimStart().Trim());
////// }
////// catch (Exception _excp_for_denominator__the_denominator_notes_per_beat_representation)
////// {
////// ///TS MEANS TIME SIGNATURE
////// this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2
////// = 4;//default numerator for beats per measure
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// }//catch(Exception _excp_for_denominator__the_denominator_notes_per_beat_representation)
////// ///4;//default numerator for beats per measure
////// /////////////////////////////////////////////////////////////////////////////////////////////
////// ////////////////////////////////////////////////////////////////////////
////// ///tooooooooo important data
////// ///
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// = 480;/// default is 8 x 60
////// /////////////////////////////////////////////////////////////////////////////////
////// ///
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// = 120;///default
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// =
////// (long)
////// (
////// 60000000
////// /
////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
////// );
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// =
////// (
////// this.public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT
////// /
////// this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
////// );
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK.Text
////// =
////// "MICROSEC/MIDITICK=" + this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// .ToString();
////// /////////////////////////////////////////////////////////////////////////
////// //////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// =
////// (long)
////// (
////// (double)
////// this.public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// /
////// this.public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK
////// );
////// /////////////////////////////////////////////////////////////////////////////////////////////////////
////// this.label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS.Text
////// = "TOT_MIDITICS= " +
////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// .ToString();
////// }//catch(Exception excp_to_convert_to_microseconds)
////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
/// ////////////////////////////// CATCH COMPLETES HERE TO FILL DEFAULT VALUES ////////////////
this.pictureBox_TO_TRY_SAANDXF
.Top
=
this.tabControl_FOR_DXFMIDI.Top;
/// this.dataGridView_FOR_MIDI_DATA_PLANNER.Top;
this.pictureBox_TO_TRY_SAANDXF
.Left
=
this.tabControl_FOR_DXFMIDI.Left
+
this.tabControl_FOR_DXFMIDI.Width
+ 3
;
//////tabPage___FOR_DXF_GRAPHICS_MIDI
//////dataGridView_FOR_MIDI_DATA_PLANNER
///
int available_width_for_pictureBox_TO_TRY_SAANDXF
=
this.tabControlFOR_GT_PARSING_PICTURES.Width
-
this.tabControl_FOR_DXFMIDI.Width
-
this.tabControl_FOR_DXFMIDI.Left
- 3 - 6; ////// strictly note that both left and right clearance are necessary for this
int available_height_for_pictureBox_TO_TRY_SAANDXF
=
this.tabControl_FOR_DXFMIDI.Height;
//////-
//////this.dataGridView_FOR_MIDI_DATA_PLANNER.Width
//////-
//////this.dataGridView_FOR_MIDI_DATA_PLANNER.Left
//////- 3;
//When we enter here then the Anchor has taken its action
int min_of_width_and_height
=
// Math.Min(this.pictureBox_TO_TRY_SAANDXF.Width, this.pictureBox_TO_TRY_SAANDXF.Height);
Math.Min(available_width_for_pictureBox_TO_TRY_SAANDXF, available_height_for_pictureBox_TO_TRY_SAANDXF);
this.pictureBox_TO_TRY_SAANDXF.Width = min_of_width_and_height;
this.pictureBox_TO_TRY_SAANDXF.Height = min_of_width_and_height;
// this makes the pboc square
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
RECALCULATE_THE_MIDI_DATA_MICROSECONDS_NOTES_ETC();
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
}// private void tabPage___FOR_DXF_GRAPHICS_MIDI_Click(object sender, EventArgs e)
private void hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS_ValueChanged(object sender, EventArgs e)
{
//hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS
//////1000 IS TAKEN AS 1 (0 TO 3000)
///hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS
///
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[242].Cells[1].Value
= this.hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS.Value.ToString();
}//private void hScrollBar___SCALE_FACTOR_FOR_CENTRAL_CIRCLES_RADIUS_ValueChanged(object sender, EventArgs e)
private void button___SAANDXF_LINIER_IN_GRAPHICS_LOAD_CHECKING_Click(object sender, EventArgs e)
{
try
{
System.Windows.Forms.MessageBox.Show("layers prefers NOTE_trknos_chnlsnos_patchnos_velocity");
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.
PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
();
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
////// List<SAANSDXF.Entities.Line> ___saan_list_of______SAANSDXF_ENTITIES_LINE
//////= new List<SAANSDXF.Entities.Line>();
///////////////////its now public list
___saan_list_of______SAAN_LINES_FOR_NOTES
.Clear();
// TO DO TO PLAY MIDI NOTES
//////https://stackoverflow.com/questions/30349066/cannot-play-a-note-with-naudio-midi
///
////////////using System;
////////////using System.Collections.Generic;
////////////using System.ComponentModel;
////////////using System.Data;
////////////using System.Drawing;
////////////using System.Linq;
////////////using System.Text;
////////////using System.Windows.Forms;
////////////using NAudio.Midi;
////////////using System.Threading;
////////////namespace SoundVision10
//////////// {
//////////// public partial class Form1 : Form
//////////// {
//////////// public Form1()
//////////// {
//////////// InitializeComponent();
//////////// }
//////////// private void Form1_Load(object sender, EventArgs e)
//////////// {
//////////// }
//////////// private void button1_Click(object sender, EventArgs e)
//////////// {
//////////// //Thread.Sleep inside GUI is just for example
//////////// using (MidiOut midiOut = new MidiOut(0))
//////////// {
//////////// midiOut.Volume = 65535;
//////////// midiOut.Send(MidiMessage.StartNote(60, 127, 0).RawData);
//////////// MessageBox.Show("Sent");
//////////// Thread.Sleep(1000);
//////////// midiOut.Send(MidiMessage.StopNote(60, 0, 0).RawData);
//////////// Thread.Sleep(1000);
//////////// }
//////////// }
//////////// }
//////////// }
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
RECALCULATE_THE_MIDI_DATA_MICROSECONDS_NOTES_ETC();
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///
public_list_of_6_digit_double_precission_unique_slopes_found
= new List<double>();
public_list_of_6_digit_double_precission_unique_slopes_found
.Clear();
public_list_of_long_type_note_durations
= new List<long>();
public_list_of_long_type_note_durations
.Clear();
StringBuilder ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
= new StringBuilder();
___sbuilder_within_the_button_to_log_details_for_mid_event_notes.Clear();
//////http://www.synthfont.com/SFSPEC21.PDF
//////http://www.synthfont.com/SFSPEC21.PDF
/////////http://www.synthfont.com/SFSPEC21.PDF
//D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
//////https://markheath.net/category/naudio
///
////// ///TESTED IT IS WORKING AND PLAYING ALSO
////// string[] strs = {
////// "" +
////// "D:\\dekhte_haiisko___guitar.mid"
////// , "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
//////SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "DXF Files (.dxf)|*.dxf|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
///////////////yes running
///////////////
//////////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID", false);
///////////////yes running
/////////////// _midf.Describe()
///////////////
////////////System.IO.File.WriteAllText("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID.txt", _midf.ToString());
////////////////////////////////////// yessssssssssssssssssssss worked
///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
/// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
/// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
string[] strs = {
"" +
/// "D:\\dekhte_haiisko___guitar.mid"
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_HARDCODED_NOTES.MID"
, "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
System.Windows.Forms.MessageBox.Show(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
//https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
// Create a Graphics object from the PictureBox
Graphics g = pictureBox_TO_TRY_SAANDXF.CreateGraphics();// // e.Graphics;
// Load the DXF file
SAANSDXF.DxfDocument SAAN_dxf = SAANSDXF.DxfDocument.Load(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
//////// Create a new DXF document
//////DxfDocument dxf_fresh = new DxfDocument();
//////// Create lines
//////SAANSDXF.Entities.Line line1 = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
//////SAANSDXF.Entities.Line line2 = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
/// DxfDocument dxf = new DxfDocument();
//////// Create lines
//////SAANSDXF.Entities.Line line1chk = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
//////SAANSDXF.Entities.Line line2chk = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
//////// Add lines to the model space
//////dxf.AddEntityToDocument(line1chk, true);
//////dxf.AddEntityToDocument(line2chk, true);
//////// Save the DXF file
//////dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_fresh_output.dxf");
////// // Add lines to the model space
////// dxf_fresh.AddEntity(line1);
////// dxf_fresh.AddEntity(line2);
//////// dxf_fresh
////// // Save the DXF file
////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_output.dxf");
double freq_found = -6;
int note_number_to_take_integer = -6;
string note_name_to_take_string = "";
//ok tested if ((freq_found >= 7.6892) && (freq_found <= 8.7466){ note_number_to_take_integer = 1; note_name_to_take_string = "NONE"; }
////// SAANSDXF.Entities.Line ___new_line = new SAANSDXF.Entities.Line();
////// ___new_line.StartPoint = new SAANSDXF.Vector3(-600000,-600000,0.003);
////// ___new_line.EndPoint = new SAANSDXF.Vector3(+600000, +600000, 0.003);
////// ___new_line.Color = new AciColor(0.3, 0.6, 0.8);
////// SAAN_dxf.AddEntityToDocument(___new_line, true);
///////// SAAN_dxf.AddEntityToDocument
////// SAAN_dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_SAANSDXF.DXF");
///DxfDocument doc = DxfDocument.Load("sample.dxf");
SAAN_dxf.Entities.ActiveLayout = SAANSDXF.Objects.Layout.ModelSpaceName;// works after it is saved with higher version with autocad
///
SAANSDXF.Collections.EntityCollection entities
= SAAN_dxf.Blocks[Block.DefaultModelSpaceName].Entities;
/////////////////////////////////////////////////////////////////////////////////////
///
int entitycount = -1;
entitycount = entities.Count;
int entitytimer = 0;
entitytimer = entitycount / 10000;
double vertsx = 0;
double vertsy = 0;
double vertsz = 0;
double vertex = 0;
double vertey = 0;
double vertez = 0;
int vertextcount = 0;
double vertx1 = 0;
double verty1 = 0;
double vertx2 = 0;
double verty2 = 0;
int roundamount = 16;
double totallength = 0;
double arclength = 0;
double linelength = 0;
double startAngle;
double endAngle;
double bulge;
double theta;
double c;
double r;
double gamma;
double phi;
double holdangle;
Vector2 p1;
Vector2 p2;
Vector2 center;
double ___saan_x_for_angle_calculation = 0;
double ___saan_y_for_angle_calculation = 0;
/// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
long total_microsecond_of_whole_song
=
this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
;
double ___total_notes_found_in_the_dxf = 0;
___total_notes_found_in_the_dxf =
entities.Count;
//////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show
("Duration = " + total_microsecond_of_whole_song
+ "\r\n\r\n\r\ntotal notes= " + ___total_notes_found_in_the_dxf
);
foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
{
r = myarc.Radius;
startAngle = myarc.StartAngle;
endAngle = myarc.EndAngle;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_ARC_DETAIL_"
+ " radius = " + r
+ " startAngle = " + startAngle
+ " endAngle = " + endAngle
+ " holdangle = " + holdangle
+ " arclength = " + arclength
);
}// foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
//////////////////////////////////////////////////////////
//////string fileName_for_midi_from_the_dxf = "";
//////fileName_for_midi_from_the_dxf
////// =
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + ".mid";
/// public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
/// {
//////const int MidiFileType = 0;
//////const int BeatsPerMinute = 60;
//////const int TicksPerQuarterNote = 120;
//////const int TrackNumber = 0;
//////const int ChannelNumber = 1;
///
////// cant we take TicksPerQuarterNote as multiple of 60 ?
//////ChatGPT
//////In MIDI, TicksPerQuarterNote is often used as a multiple of 60 because it provides a convenient resolution for expressing tempo changes.However, it's not a strict requirement, and you can technically set TicksPerQuarterNote to any integer value based on your specific needs.
//////Using a multiple of 60, like 480(60 multiplied by 8), is common because it allows for easy tempo calculations in beats per minute(BPM) and makes it simple to represent note durations.It's a practical choice because it aligns well with common musical timing values.
//////That said, you can choose other values for TicksPerQuarterNote if your MIDI application requires different resolutions or if you have specific reasons to do so.Just be aware that using a value that's not a multiple of 60 may make it less intuitive when working with tempos in BPM and traditional musical notation.
//////public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
//////public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
//////public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
//////public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
//////public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
//////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
//////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
//////public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
//////public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
//////public double public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480 = 0;
int MidiFileType = 1;// 0;//////saan changes this to 1
int BeatsPerMinute =
(int)this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE;
//60;
int TicksPerQuarterNote =
(int)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480;
//120;////// too important /// multiple of 480
int TrackNumber = 0;
int ChannelNumber = 1;
//////public PatchParser()
////// {
////// this.patchMap.Add("nylon", 25);
////// this.patchMap.Add("steel", 26);
////// this.patchMap.Add("jazz", 27);
////// this.patchMap.Add("clean", 28);
////// this.patchMap.Add("muted", 29);
////// this.patchMap.Add("distortion", 31);
////// this.patchMap.Add("bass", 33);
////// this.patchMap.Add("violin", 41);
////// this.patchMap.Add("viola", 42);
////// this.patchMap.Add("cello", 43);
////// this.patchMap.Add("sitar", 105);
////// this.patchMap.Add("banjo", 106);
////// this.patchMap.Add("fiddle", 111);
////// }//public PatchParser()
int Patch_number = 26;
long absoluteTime___start = 0;
long absoluteTime___final = 0;
var collection
= new
SAANAUDS.Midi.MidiEventCollection
(MidiFileType, TicksPerQuarterNote);
////////////////////////////////////////////////////////////////////////////////////////////
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " MID_COLLECTION_STARTS_FRESH collection = " + collection.ToString()
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " MidiFileType = " + MidiFileType
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " TicksPerQuarterNote = " + TicksPerQuarterNote
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " BeatsPerMinute = " + BeatsPerMinute
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " TrackNumber = " + TrackNumber
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " ChannelNumber = " + ChannelNumber
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " absoluteTime___start = " + absoluteTime___start
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " absoluteTime___final = " + absoluteTime___start
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// absoluteTime
////// ),
////// TrackNumber
////// );
//////++absoluteTime;
//////collection.AddEvent
//////(
////// new SAANAUDS.Midi.TempoEvent
//////(
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// absoluteTime
////// ),
////// TrackNumber
////// );
///
////////LYR_TEXT_STRING_GRABBED LAYER DATA TO LYRICS
//////////// will do after some times
/////////LYR_TEXT_STRING_GRABBED
/////////
//////KKK
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// (long)((absoluteTime___start + absoluteTime___final) / 6)
////// ),
////// //TrackNumber
////// TrackNumber
////// );
/////////////////////////////// interesting styles ////////////////////
///
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"SanjoyNathGeometrifyingTrigonometry(C)"
,
SAANAUDS.Midi.MetaEventType.Copyright
,
// absoluteTime
(long)(absoluteTime___start)
),
//TrackNumber
// 0
TrackNumber
);
////////////////////////////////////////////////////////////////////////////////
////// will do after some times
// ++absoluteTime;
collection.AddEvent
(
new SAANAUDS.Midi.TempoEvent
(
Local_CalculateMicrosecondsPerQuaterNote
(
BeatsPerMinute
),
/// absoluteTime
absoluteTime___start
),
// TrackNumber
TrackNumber
);
////////////////////////////////////////////////
///
//////////////static void Main(string[] args)
////////////// {
////////////// string inputMidiFile = "input.mid"; // Replace with your MIDI file
////////////// string outputMidiFile = "output.mid"; // Replace with the output file
////////////// string copyrightText = "Copyright © 2023 Your Company"; // Your copyright notice
////////////// // Load the MIDI file
////////////// MidiFile midiFile = new MidiFile(inputMidiFile, false);
////////////// // Create a meta-event to set the copyright text
////////////// MetaEvent copyrightEvent = new MetaEvent(MetaType.Copyright, copyrightText);
////////////// // Locate the track where you want to insert the copyright event
////////////// int targetTrackIndex = 0; // Adjust as needed
////////////// if (targetTrackIndex < midiFile.Tracks.Count)
////////////// {
////////////// MidiTrack targetTrack = midiFile.Tracks[targetTrackIndex];
////////////// // Add the copyright event to the track
////////////// targetTrack.AddEvent(copyrightEvent);
////////////// }
////////////// else
////////////// {
////////////// Console.WriteLine("Invalid track index.");
////////////// return;
////////////// }
////////////// // Save the modified MIDI file
////////////// midiFile.Save(outputMidiFile);
////////////// Console.WriteLine("Copyright event added successfully.");
////////////// }
////////////// saan thinks it will work
////// ////////////// // Create a meta-event to set the copyright text
////// SAANAUDS.Midi.TextEvent copyrightEvent___SAAN
////// =
////// new
////// SAANAUDS.Midi.TextEvent
////// (
////// SAANAUDS.Midi.MetaEventType.Copyright
////// ,
////// 50
////// ,
////// absoluteTime___start
////// )
////// ;
////// //"SanjoyNathGeometrifyingTrigonometry(C)"
////// copyrightEvent___SAAN
////// .absoluteTime
////// collection.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
//////(
//////,
////// /// absoluteTime
////// ),
////// // TrackNumber
////// TrackNumber
////// );
////////////////////////////////////////////////
///
var patchParser = new SAANAUDS_CHECKING.PatchParser();
int patchNumber = patchParser.Patch("steel");//////////////////// i will configure this from layers
/////////////////// first entries so absolute time is zero
collection.AddEvent(
new
SAANAUDS.Midi.PatchChangeEvent
(
0
,
ChannelNumber
, patchNumber
)
, TrackNumber
);
//////const int NoteVelocity = 100;
////// const int NoteDuration =
////// ///3 * TicksPerQuarterNote / 4;
////// const long SpaceBetweenNotes
////// = TicksPerQuarterNote;
int NoteVelocity = 100;
long NoteDuration = 0;
double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
///3 * TicksPerQuarterNote / 4;
long SpaceBetweenNotes
= 0;// TicksPerQuarterNote;
////// absoluteTime += SpaceBetweenNotes;
////// foreach (var note in allNotes)
////// {
//////collection.AddEvent(new NoteOnEvent(absoluteTime, ChannelNumber, note.MidiValue, NoteVelocity, NoteDuration), TrackNumber);
//////collection.AddEvent(new NoteEvent(absoluteTime + NoteDuration, ChannelNumber, MidiCommandCode.NoteOff, note.MidiValue, 0), TrackNumber);
////// absoluteTime += SpaceBetweenNotes;
////// }//foreach (var note in allNotes)
////// collection.PrepareForExport();
////// /// MidiFile.Export(fileName, collection);
////// ///
////// SAANAUDS.Midi.MidiFile.Export(fileName_for_midi_from_the_dxf, collection);
///////// }//public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
double line_Segments_counter = 0;
double line_Segments_count = 0;
double ___degrees_1 = 0;
double ___degrees_2 = 0;
double ___dist_1 = 0;
double ___dist_2 = 0;
double freq_found_from_the_nearest = 0;
double freq_found_from_the_furthest = 0;
double ___distance_of_current_line_segment_min_out_of_two = 0;
double ___distance_of_current_line_segment_max_out_of_two = 0;
int note_number_found_from_the_nearest_frequency_Hertz = 0;
int note_number_found_from_the_furthest_frequency_Hertz = 0;
string note_name_found_from_the_nearest_frequency_Hertz = "";
string note_name_found_from_the_furthest_frequency_Hertz = "";
////////////////////////// these are used to put the pitch bents
double start_side_of_line_segments_angle_with_x_axis = 0;
double final_side_of_line_segments_angle_with_x_axis = 0;
////////////////////////// these are used to put the pitch bents
double start_side_of_line_segments_frequency = 0;
double final_side_of_line_segments_frequency = 0;
double delta_pitch = 0;
int to_count_lyrs_found_in_layer___LYR_TEXT_STRING_GRABBED = 0;
foreach (SAANSDXF.Entities.Text text in entities.OfType<SAANSDXF.Entities.Text>())
{
if (text.Layer.Name.ToString().ToUpper() == "LYR_TEXT_STRING_GRABBED")
{
if (text.Value.ToString().TrimEnd().TrimStart().Trim().Length > 0)
{
to_count_lyrs_found_in_layer___LYR_TEXT_STRING_GRABBED++;
absoluteTime___start = (long)(text.Position.X);
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
//"Note Stream LYRICS",
text.Value.ToString().TrimEnd().TrimStart().Trim()
,
SAANAUDS.Midi.MetaEventType.TextEvent
,
// absoluteTime
//(long)((absoluteTime___start + absoluteTime___final) / 6)
(long)(text.Position.X)
),
//TrackNumber
// TrackNumber
0
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"to_count_lyrs_found_in_layer___LYR_TEXT_STRING_GRABBED ="
+ to_count_lyrs_found_in_layer___LYR_TEXT_STRING_GRABBED.ToString()
+ " lyr added = " + text.Value.ToString().TrimEnd().TrimStart().Trim()
+ " absoluteTime___final = " + absoluteTime___start
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
}//if(text.Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
}// if(text.Layer.Name.ToString().ToUpper()== "LYR_TEXT_STRING_GRABBED")
}// foreach (SAANSDXF.Entities.Text text in entities.OfType<SAANSDXF.Entities.Text>())
//LYR_TEXT_STRING_GRABBED LAYER DATA TO LYRICS
////// will do after some times
///LYR_TEXT_STRING_GRABBED
///
/// KKK
System.Windows.Forms.MessageBox.Show
(
" to_count_lyrs_found_in_layer___LYR_TEXT_STRING_GRABBED counter = \r\n\r\n\r\n\r\n\r\n\r\n\r\n" +
to_count_lyrs_found_in_layer___LYR_TEXT_STRING_GRABBED.ToString()
);
foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
{
if (line.Layer.Name.ToUpper().Contains("NOTE_"))
{
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
SAAN_LINES_FOR_NOTES _temp____SAAN_LINES_FOR_NOTES
= new SAAN_LINES_FOR_NOTES();
_temp____SAAN_LINES_FOR_NOTES.x1 = line.StartPoint.X;
_temp____SAAN_LINES_FOR_NOTES.y1 = line.StartPoint.Y;
_temp____SAAN_LINES_FOR_NOTES.z1 = line.StartPoint.Z;
_temp____SAAN_LINES_FOR_NOTES.x2 = line.EndPoint.X;
_temp____SAAN_LINES_FOR_NOTES.y2 = line.EndPoint.Y;
_temp____SAAN_LINES_FOR_NOTES.z2 = line.EndPoint.Z;
_temp____SAAN_LINES_FOR_NOTES.layer = line.Layer.Name;
/// _temp____SAAN_LINES_FOR_NOTES.length= line.le
///
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
_temp____SAAN_LINES_FOR_NOTES.recalculate();
___saan_list_of______SAAN_LINES_FOR_NOTES
.Add(_temp____SAAN_LINES_FOR_NOTES);
}// if (line.Layer.Name.ToUpper().Contains("NOTE_"))
}// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
___saan_list_of______SAAN_LINES_FOR_NOTES
=
___saan_list_of______SAAN_LINES_FOR_NOTES
.OrderBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.rightmost_x__of_this_line)
.ThenBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.leftmost_x__of_this_line)
.ThenBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.bottommost_y__of_this_line)
.ThenBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.topmost_y__of_this_line)
.ThenBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.slope)
.ThenBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.length)
.ToList<SAAN_LINES_FOR_NOTES>();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
double FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES = 0;
FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES
=
___saan_list_of______SAAN_LINES_FOR_NOTES
.Last<SAAN_LINES_FOR_NOTES>()
.rightmost_x__of_this_line;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show(
"public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS= "
+ public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS.ToString()
+ "\r\nFINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES= " + FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES.ToString()
);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
/// this.ref System.Windows.Forms.ProgressBar _to_update_progressbar
/// line_Segments_count = entities.OfType<SAANSDXF.Entities.Line>().Count();
line_Segments_count = ___saan_list_of______SAAN_LINES_FOR_NOTES.Count();
this.progressBarFOR_ANIMATIONS_SAVING.Maximum = (int)line_Segments_count;
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
///foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
foreach (SAAN_LINES_FOR_NOTES line___SAAN_LINES_FOR_NOTES in ___saan_list_of______SAAN_LINES_FOR_NOTES)
{
line___SAAN_LINES_FOR_NOTES.recalculate();
if (line___SAAN_LINES_FOR_NOTES.layer.ToUpper().Contains("NOTE_"))
{
line___SAAN_LINES_FOR_NOTES.recalculate();
line_Segments_counter++;
/// this list is necessary to do the analysis of the musical instruments choices for the big kinds of analysis with some other buttons
/// and for several different kinds of generative musics while handling the process of the line segments objects
////___saan_list_of______SAANSDXF_ENTITIES_LINE
//// .Add(line);
//////////////////////////////////////////////////////////////////////////
this.progressBarFOR_ANIMATIONS_SAVING.Value = (int)line_Segments_counter;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
///////////////////////////////////////////////////////////////////////////
//////vertsx = line.StartPoint.X;
//////vertsy = line.StartPoint.Y;
//////vertsz = line.StartPoint.Z;
//////vertex = line.EndPoint.X;
//////vertey = line.EndPoint.Y;
//////vertez = line.EndPoint.Z;
vertsx = line___SAAN_LINES_FOR_NOTES.x1;
vertsy = line___SAAN_LINES_FOR_NOTES.y1;
vertsz = line___SAAN_LINES_FOR_NOTES.z1;
vertex = line___SAAN_LINES_FOR_NOTES.x2;
vertey = line___SAAN_LINES_FOR_NOTES.y2;
vertez = line___SAAN_LINES_FOR_NOTES.z2;
//////////////////////////////////////////////// THESE ARE DONE FOR THE LINIER SYSTEMS OF NOTES //////
___dist_1 = Math.Abs(line___SAAN_LINES_FOR_NOTES.y1);
___dist_2 = Math.Abs(line___SAAN_LINES_FOR_NOTES.y2);
start_side_of_line_segments_frequency = ___dist_1;
final_side_of_line_segments_frequency = ___dist_2;
//////////////////////////////////////////////// THESE ARE DONE FOR THE LINIER SYSTEMS OF NOTES //////
linelength
= arclength
= Math.Sqrt((Math.Pow((vertex - vertsx), 2) + Math.Pow((vertey - vertsy), 2) + Math.Pow((vertez - vertsz), 2)));
totallength = totallength + linelength;
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"\r\nSAANDXF___DXF_LINE_SEGMENTS_"
+ " line_Segments_counter = " + line_Segments_counter
+ " of line_Segments_count = " + line_Segments_count
+ " vertsx = " + vertsx
+ " vertsy = " + vertsy
+ " vertsz = " + vertsz
+ " vertex = " + vertex
+ " vertey = " + vertey
+ " vertez = " + vertez
+ " current lines length = " + line___SAAN_LINES_FOR_NOTES.length.ToString()
+ " current lines slope = " + line___SAAN_LINES_FOR_NOTES.slope.ToString()
+ " linelength=" + linelength
);
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
if (vertsy >= 0 && vertsx > 0)
{
___saan_x_for_angle_calculation = vertsx;
___saan_y_for_angle_calculation = vertsy;
}
else if (vertsy >= 0 && vertsx < 0)
{
___saan_x_for_angle_calculation = (-1) * vertsx;
___saan_y_for_angle_calculation = vertsy;
}
else if (vertsy < 0 && vertsx < 0)
{
___saan_x_for_angle_calculation = (-1) * vertsx;
___saan_y_for_angle_calculation = (-1) * vertsy;
}
else if (vertsy < 0 && vertsx > 0)
{
___saan_x_for_angle_calculation = vertsx;
___saan_y_for_angle_calculation = (-1) * vertsy;
}
else
{
___saan_x_for_angle_calculation = 0.0000001;
___saan_y_for_angle_calculation = vertsy;
}
___degrees_1 = 0;
////// ___degrees_1
////// =
//////// Math.Abs
////// (
////// Math.Atan(Math.Abs(vertsy)/Math.Abs(Math.Max(0.0001,Math.Min(0.00001, vertsx)))
////// )
////// )
////// *360/Math.PI
////// ;
///
___degrees_1
=
// Math.Abs
(
// Math.Atan2(vertsy,vertsx)
Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
)
* 360 / Math.PI
;
//////___degrees_1 = Math.Abs(___degrees_1);
//////if (vertsy >= 0 && vertsx >= 0)
////// {
////// ___degrees_1 = ___degrees_1;
////// }
//////else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___degrees_1 = 180 - ___degrees_1;
////// }
//////else if (vertsy < 0 && vertsx < 0)
////// {
////// ___degrees_1 = 270 - ___degrees_1;
////// }
//////else if (vertsy < 0 && vertsx >= 0)
////// {
////// ___degrees_1 = 360 - ___degrees_1;
////// }
//////else
////// {
////// ___degrees_1 = 60;
////// }
//////___degrees_2 = 0;
//////___degrees_2
////// =
////// // Math.Abs
////// (
////// Math.Atan(Math.Abs(vertey) /Math.Abs( Math.Max(0.0001,Math.Min(0.00001, vertex)))
////// )
////// )
////// *( 360 / Math.PI)
////// ;
////// ___degrees_2
//////=
//////// Math.Abs
//////(
////// Math.Atan2(vertey,vertex)
////// )
////// * 360 / Math.PI
////// ;
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
if (vertey >= 0 && vertex > 0)
{
___saan_x_for_angle_calculation = vertex;
___saan_y_for_angle_calculation = vertey;
}
else if (vertey >= 0 && vertex < 0)
{
___saan_x_for_angle_calculation = (-1) * vertex;
___saan_y_for_angle_calculation = vertey;
}
else if (vertey < 0 && vertex < 0)
{
___saan_x_for_angle_calculation = (-1) * vertex;
___saan_y_for_angle_calculation = (-1) * vertey;
}
else if (vertey < 0 && vertex > 0)
{
___saan_x_for_angle_calculation = vertex;
___saan_y_for_angle_calculation = (-1) * vertey;
}
else
{
___saan_x_for_angle_calculation = 0.0000001;
___saan_y_for_angle_calculation = vertey;
}
////// ___degrees_2
//////=
//////// Math.Abs
//////(
////// // Math.Atan2(vertsy,vertsx)
////// Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
////// )
////// * 360 / Math.PI
////// ;
////// ___degrees_2 = Math.Abs(___degrees_2);
////// if (vertsy >= 0 && vertsx >= 0)
////// {
////// ___degrees_2 = ___degrees_2;
////// }
////// else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___degrees_2 = 180 - ___degrees_2;
////// }
////// else if (vertsy < 0 && vertsx < 0)
////// {
////// ___degrees_2 = 270 - ___degrees_2;
////// }
////// else if (vertsy < 0 && vertsx >= 0)
////// {
////// ___degrees_2 = 360 - ___degrees_2;
////// }
////// else
////// {
////// ___degrees_2 = 60;
////// }
//////long absoluteTime___start = 0;
//////long absoluteTime___final = 0;
////// absoluteTime___start
////// =
////// //////(long)(
////// ////// Math.Min
////// ////// (
////// ////// ___degrees_1, ___degrees_2
////// ////// )
////// ////// *
////// ////// (Math.PI / 180) *
////// ////// // this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
////// ////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// ////// )
////// ///
////// (long)(
////// (
////// (double)line___SAAN_LINES_FOR_NOTES
////// .leftmost_x__of_this_line
////// /
////// (double)FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES
////// )
////// /// * public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
///////// *this.public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480
////// * (double)this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// )
////// ;
absoluteTime___start
=
(long)
(
(double)(
((double)line___SAAN_LINES_FOR_NOTES.leftmost_x__of_this_line)
/
((double)FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES)
)
* ((double)this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS)
)
;
//////////////if
////////////// (
////////////// Math.Min
////////////// (
////////////// ___degrees_1, ___degrees_2
////////////// )
////////////// == ___degrees_1
////////////// )
////////////// {
////////////// start_side_of_line_segments_angle_with_x_axis
////////////// = ___degrees_1;
////////////// final_side_of_line_segments_angle_with_x_axis
////////////// = ___degrees_2;
////////////// start_side_of_line_segments_frequency = ___dist_1;
////////////// final_side_of_line_segments_frequency = ___dist_2;
////////////// }
////////////////////if
//////////////////// (
//////////////////// Math.Min
//////////////////// (
//////////////////// ___degrees_1, ___degrees_2
//////////////////// )
//////////////////// == ___degrees_1
//////////////////// )
//////if
////// (
////// line___SAAN_LINES_FOR_NOTES.bottommost_y__of_this_line
////// ==
////// line___SAAN_LINES_FOR_NOTES.y1
////// )
////// {
////// start_side_of_line_segments_angle_with_x_axis
////// = ___degrees_1;
////// final_side_of_line_segments_angle_with_x_axis
////// = ___degrees_2;
////// ////// FOR THE LINIER SYSTEMS THESE CALCULATIONS ARE IRRELEVANT
////// start_side_of_line_segments_frequency = line___SAAN_LINES_FOR_NOTES.y1;///////////___dist_1;
////// final_side_of_line_segments_frequency = line___SAAN_LINES_FOR_NOTES.y2; ;// ___dist_2;
////// }
////////////if
//////////// (
//////////// Math.Min
//////////// (
//////////// ___degrees_1, ___degrees_2
//////////// )
//////////// == ___degrees_1
//////////// )
////// ////// FOR THE LINIER SYSTEMS THESE CALCULATIONS ARE IRRELEVANT
////// if
////// (
//////Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_2
////// )
////// {
////// start_side_of_line_segments_angle_with_x_axis
////// = ___degrees_2;
////// final_side_of_line_segments_angle_with_x_axis
////// = ___degrees_1;
////// start_side_of_line_segments_frequency = ___dist_2;
////// final_side_of_line_segments_frequency = ___dist_1;
////// }
//////if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_1
////// )
////// ////// FOR THE LINIER SYSTEMS THESE CALCULATIONS ARE IRRELEVANT
//////if
////// (
////// line___SAAN_LINES_FOR_NOTES.bottommost_y__of_this_line
////// ==
////// line___SAAN_LINES_FOR_NOTES.y2
////// )
////// {
////// start_side_of_line_segments_angle_with_x_axis
////// = ___degrees_2;
////// final_side_of_line_segments_angle_with_x_axis
////// = ___degrees_1;
////// //////start_side_of_line_segments_frequency = ___dist_2;
////// //////final_side_of_line_segments_frequency = ___dist_1;
////// ///
////// ////// FOR THE LINIER SYSTEMS THESE CALCULATIONS ARE IRRELEVANT
////// start_side_of_line_segments_frequency = line___SAAN_LINES_FOR_NOTES.y2;///////////___dist_1;
////// final_side_of_line_segments_frequency = line___SAAN_LINES_FOR_NOTES.y1; ;// ___dist_2;
////// }
////////////if
//////////// (
//////////// Math.Min
//////////// (
//////////// ___degrees_1, ___degrees_2
//////////// )
//////////// == ___degrees_1
//////////// )
////////////// absoluteTime___final
////////////// =
////////////// //////(long)(
////////////// ////// Math.Max
////////////// ////// (
////////////// ////// ___degrees_1, ___degrees_2
////////////// ////// )
////////////// ////// *
////////////// ////// (Math.PI / 180) *
////////////// ////// // this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
////////////// ////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////////////// ////// )
////////////// (long) ( (
////////////// (double) line___SAAN_LINES_FOR_NOTES
////////////// .rightmost_x__of_this_line
////////////// /
////////////// (double) FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES
////////////// )
////////////// /// *public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////////////// ///
////////////// ///* this.public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480
////////////// ///
////////////// *(double) this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////////////// )
//////////////;
absoluteTime___final
=
(long)
(
(double)(
((double)line___SAAN_LINES_FOR_NOTES.rightmost_x__of_this_line)
/
((double)FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES)
)
* ((double)this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS)
)
;
//////(long)
////// Math.Max
////// (
////// ___degrees_1, ___degrees_2
////// )
////// *
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// ;
////// will do after some times
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// ( ( absoluteTime___start + absoluteTime___final)/2)
////// ),
////// //TrackNumber
////// 0
////// );
////// will do after some times
// ++absoluteTime;
//////collection.AddEvent
//////(
////// new SAANAUDS.Midi.TempoEvent
//////(
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// /// absoluteTime
////// absoluteTime___start
////// ),
////// // TrackNumber
////// 0
////// );
////////////////////////////////////////////////
___dist_1
=
//////Math.Sqrt
//////(
//////(line.StartPoint.X * line.StartPoint.X)
//////+
////// (line.StartPoint.Y * line.StartPoint.Y)
////// )
///line___SAAN_LINES_FOR_NOTES.bottommost_y__of_this_line;
line___SAAN_LINES_FOR_NOTES.y1;
;
___dist_2
=
//////Math.Sqrt
//////(
//////(line.EndPoint.X * line.EndPoint.X)
//////+
////// (line.EndPoint.Y * line.EndPoint.Y)
////// )
/// line___SAAN_LINES_FOR_NOTES.topmost_y__of_this_line
line___SAAN_LINES_FOR_NOTES.y2;
;
freq_found_from_the_nearest
=
Math.Min
(
___dist_1, ___dist_2
);
freq_found_from_the_furthest
=
Math.Max
(
___dist_1, ___dist_2
);
////// dxf_fresh.AddEntityToDocument(line,false);
// Add lines to the model space
// dxf_fresh.AddEntity(line1);
// dxf_fresh.AddEntity(line2);
// dxf_fresh
// Save the DXF file
//dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
////////////////////tooooo important ///////////////////////////
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
___distance_of_current_line_segment_min_out_of_two = 0;
___distance_of_current_line_segment_max_out_of_two = 0;
___distance_of_current_line_segment_min_out_of_two
=
freq_found_from_the_nearest;
___distance_of_current_line_segment_max_out_of_two
=
freq_found_from_the_furthest;
note_number_found_from_the_nearest_frequency_Hertz = 0;
note_number_found_from_the_furthest_frequency_Hertz = 0;
note_name_found_from_the_nearest_frequency_Hertz = "";
note_name_found_from_the_furthest_frequency_Hertz = "";
/// calling conventions
/// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
note_number_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_int_get_note_number_from_frequency_Hertz
(
freq_found_from_the_nearest
);
note_name_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_nearest
);
note_number_found_from_the_furthest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_int_get_note_number_from_frequency_Hertz
(
freq_found_from_the_furthest
);
note_name_found_from_the_furthest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_furthest
);
////////note_number_found_from_the_nearest_frequency_Hertz
//////if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_nearest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
//note_number_found_from_the_nearest_frequency_Hertz
if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 127)
{
note_number_found_from_the_nearest_frequency_Hertz = 69;
}//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
// long NoteDuration = 0;
////////note_number_found_from_the_furthest_frequency_Hertz
//////if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_furthest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
//note_number_found_from_the_furthest_frequency_Hertz
if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 127)
{
note_number_found_from_the_furthest_frequency_Hertz = 69;
}//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
// long NoteDuration = 0;
/////////////////////////////////////////////////////////
///
NoteDuration
=
Math.Abs(
Math.Max(
Math.Abs(absoluteTime___final)
,
Math.Abs(absoluteTime___start)
)
-
Math.Abs(
Math.Min(
Math.Abs(absoluteTime___final)
,
Math.Abs(absoluteTime___start)
)
)
)
;
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
///
/// double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
slope_in_linear_time
=
Math.Atan2
((double)(freq_found_from_the_furthest - freq_found_from_the_nearest), (double)NoteDuration);
/// why 360??? why not 180???
slope_in_linear_time
= slope_in_linear_time * 360 / Math.PI;/// taken 10 times the angles
//= slope_in_linear_time * (180 / Math.PI);/// taken 10 times the angles
slope_in_linear_time
= slope_in_linear_time * 100;
TrackNumber
=
///too slow ((int)slope_in_linear_time);//i want the raw data for different slopes integer values % 16;
((int)slope_in_linear_time) % 16;
TrackNumber = Math.Min(TrackNumber, 3);
ChannelNumber
= TrackNumber;
////// upto 18102020plusplusplus this was there to get a safe side data
///and i was getting too much of cleronets for long notes
//////patchNumber
////// =
////// TrackNumber;
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
if (
//((double)Math.Abs(absoluteTime___final - absoluteTime___start))
((double)NoteDuration)
<=
this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE)
{
patchNumber
=
SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
((int)slope_in_linear_time)
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
else
{
patchNumber
=
SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
((int)slope_in_linear_time)
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
///////// end of else case
///////// if(((double)Math.Abs(absoluteTime___final - absoluteTime___start))
////// <=
////// public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE )
////// for references variable names
////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////////////////////= new List<double>();
////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////////////////////.Clear();
if (public_list_of_6_digit_double_precission_unique_slopes_found
.Contains(Math.Round(slope_in_linear_time, 6)))
{
}
else
{
public_list_of_6_digit_double_precission_unique_slopes_found
.Add
(
Math.Round(slope_in_linear_time, 6)
);
}
//////if (public_list_of_6_digit_double_precission_unique_slopes_found
////// .Contains(Math.Round(slope_in_linear_time, 6)))
/////////////////////////////////////////////////////////////////////////
if (ChannelNumber >= 15)
{
ChannelNumber = 9;
TrackNumber = 9;
/// patchNumber = 26;/// upto 18102020plusplusplus this was there
}//if(ChannelNumber>=15)
if (ChannelNumber <= 0)
{
ChannelNumber = 6;
TrackNumber = 6;
/// patchNumber = 41;/// upto 18102020plusplusplus this was there
}//if (ChannelNumber <=0)
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
if (line___SAAN_LINES_FOR_NOTES.layer.ToUpper().Contains("NOTE_"))
{
if (line___SAAN_LINES_FOR_NOTES.layer.Contains("_"))
{
string[] ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
=
line___SAAN_LINES_FOR_NOTES.layer.ToUpper().Split
(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries);
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length > 1)
{
try
{
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted[0] == "NOTE")
{
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length == 5)
{
////// patchNumber
////// = Convert.ToInt16
//////(
////// ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length - 1]
////// );
///
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
/// ChannelNumber = 6;
/// TrackNumber = 6;
///
if (
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[1].TrimEnd().TrimStart().Trim()
.Length > 0
)
{
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[1].TrimEnd().TrimStart().Trim() != "0"
)
{
TrackNumber
= Convert.ToInt16
(
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[1].TrimEnd().TrimStart().Trim()
);
}
//////if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [1].TrimEnd().TrimStart().Trim() != "0"
////// )
}
//////if (
////// ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [1].TrimEnd().TrimStart().Trim()
////// .Length > 0
////// )
///
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
if (
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[2].TrimEnd().TrimStart().Trim()
.Length > 0
)
{
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[2].TrimEnd().TrimStart().Trim() != "0"
)
{
ChannelNumber
= Convert.ToInt16
(
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[2].TrimEnd().TrimStart().Trim()
);
}
//////if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [2].TrimEnd().TrimStart().Trim() != "0"
////// )
///
}
//////if (
////// ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [2].TrimEnd().TrimStart().Trim()
////// .Length > 0
////// )
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
if (
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3 + 1].TrimEnd().TrimStart().Trim()
.Length > 0
)
{
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3 + 1].TrimEnd().TrimStart().Trim() != "0"
)
{
NoteVelocity
= Convert.ToInt16
(
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3 + 1].TrimEnd().TrimStart().Trim()
);
}
//////if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [3 + 1].TrimEnd().TrimStart().Trim() != "0"
////// )
}
//////if (
////// ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [3 + 1].TrimEnd().TrimStart().Trim()
////// .Length > 0
////// )
///
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
if (
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3].TrimEnd().TrimStart().Trim()
.Length > 0
)
{
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3].TrimEnd().TrimStart().Trim() != "0"
)
{
patchNumber
= Convert.ToInt16
(
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3].TrimEnd().TrimStart().Trim()
);
/// end of if for non zero checks for patch numbers
}
{
///else cases where the patch number is zero
///
if (NoteDuration > 0)
{
if (
//((double)Math.Abs(absoluteTime___final - absoluteTime___start))
((double)NoteDuration)
<=
this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE)
{
patchNumber
=
SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
///////////////////////////////// here the max is taken
((int)(Math.Max(slope_in_linear_time * NoteVelocity, NoteDuration * NoteVelocity)))
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
else
{
patchNumber
=
SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
///////////////////////////////// here the min is taken
((int)(Math.Min(slope_in_linear_time * NoteVelocity, NoteDuration * NoteVelocity)))
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
///////// end of else case
///////// if(((double)Math.Abs(absoluteTime___final - absoluteTime___start))
////// <=
////// public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE )
}// if (NoteDuration > 0)
}
//////if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [3].TrimEnd().TrimStart().Trim() != "0"
////// )
}
//////if (
////// ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [3].TrimEnd().TrimStart().Trim()
////// .Length > 0
////// )
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
//if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length ==5)
}
else
{
//start of //if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length ==5)
System.Windows.Forms.MessageBox.Show("LAYERS\r\n NOT \r\n have 3+2 \r\n columns \r\n after \r\n splitting \r\n with \r\n _ \r\n data ");
}//end of else of if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length ==5)
}// if(___splitted_array_of_NOTE_track_channel_patch___underscore_plitted[0]=="NOTE")
}
catch (Exception _excp_to_get_patch_number)
{
/// patchNumber from the slope
}//catch (Exception _excp_to_get_patch_number)
}//if(___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length>1)
}//if(line___SAAN_LINES_FOR_NOTES.layer.Contains("_"))
}// if (line___SAAN_LINES_FOR_NOTES.layer.ToUpper().Contains("NOTE_"))
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
collection.AddEvent(
new
SAANAUDS.Midi.PatchChangeEvent
(
///saan puts this here
absoluteTime___start
,
ChannelNumber
, patchNumber
)
, TrackNumber
);
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.Append
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_nearest_frequency_Hertz = " + note_number_found_from_the_nearest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
);
if ((absoluteTime___final - absoluteTime___start) > 1000)
{
////////////////////// new things adding
////// will do after some times
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"Note Stream LYRICS",
SAANAUDS.Midi.MetaEventType.TextEvent
,
// absoluteTime
(long)((absoluteTime___start + (absoluteTime___final - absoluteTime___start) / 6))
),
//TrackNumber
0
);
}//if((absoluteTime___final - absoluteTime___start)>1000)
/////////////////////////////////////////////////////////
collection.AddEvent
(
new SAANAUDS.Midi.NoteOnEvent
(
////// absoluteTime
absoluteTime___start
,
ChannelNumber
,
// note.MidiValue
note_number_found_from_the_nearest_frequency_Hertz
,
NoteVelocity
,
(int)Math.Min(NoteDuration, 1)
)
,
TrackNumber
);
/////////////////////////////////////////////////////////
//////absoluteTime___final
////// = Math.Min(30, absoluteTime___final);
if (start_side_of_line_segments_frequency < final_side_of_line_segments_frequency)
{
//////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
{
delta_pitch = (final_side_of_line_segments_frequency - start_side_of_line_segments_frequency) / 60;
for (int rrr = 0; rrr < 60; rrr++)
{
collection.AddEvent
(
new
SAANAUDS.Midi.PitchWheelChangeEvent
(
(long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
,
ChannelNumber
,
/// Math.Min(16368, (int)(start_side_of_line_segments_frequency +(delta_pitch * (final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency)) * 8192))
Math.Max(16368, (int)(8190 + (rrr * delta_pitch)))
)
, TrackNumber
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.Append
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
+ " rrr= " + rrr
+ " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
+ " pitch bent value = " + Math.Max(16368, (int)(8190 + rrr * delta_pitch))
);
//delta_pitch
}// for(int rrr=0;rrr<60;rrr++)
}
//////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
}// if(start_side_of_line_segments_frequency< final_side_of_line_segments_frequency)
if (start_side_of_line_segments_frequency > final_side_of_line_segments_frequency)
{
//////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
{
delta_pitch = (start_side_of_line_segments_frequency - final_side_of_line_segments_frequency) / 60;
for (int rrr = 0; rrr < 60; rrr++)
{
collection.AddEvent
(
new
SAANAUDS.Midi.PitchWheelChangeEvent
(
(long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
,
ChannelNumber
,
/// (int)((1-(delta_pitch / start_side_of_line_segments_frequency)) * 8192)
///
// (int)(delta_pitch *(final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency) * 8192)
Math.Max(6, (int)(8190 - rrr * delta_pitch))
)
, TrackNumber
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
+ " rrr= " + rrr
+ " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
+ " pitch bent value = " + Math.Max(6, (int)(8190 - rrr * delta_pitch))
);
//delta_pitch
}// for(int rrr=0;rrr<60;rrr++)
}
//////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
}// if(start_side_of_line_segments_frequency> final_side_of_line_segments_frequency)
collection.AddEvent
(
new
SAANAUDS.Midi.NoteEvent
(
/// absoluteTime + NoteDuration
absoluteTime___final
,
ChannelNumber
,
SAANAUDS.Midi
.MidiCommandCode
.NoteOff
,
// note.MidiValue
note_number_found_from_the_nearest_frequency_Hertz
,
0
////// note off has the velocity zero
),
TrackNumber
);
// absoluteTime += SpaceBetweenNotes;
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
public_list_of_long_type_note_durations
.Add
(
(absoluteTime___final - absoluteTime___start)
);
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////// THIS IS FOR THE LINEAR NOTES SYSTEMS
}//if(line.Layer.Name.ToUpper().Contains("NOTE_"))
}// foreach (SAAN_LINES_FOR_NOTES line___SAAN_LINES_FOR_NOTES in ___saan_list_of______SAAN_LINES_FOR_NOTES)
// foreach (SAANSDXF.Entities.Line line in ___saan_list_of______SAANSDXF_ENTITIES_LINE)
//////////////public List<double> public_list_of_6_digit_double_precission_unique_slopes_found = null;
//////////////public List<long> public_list_of_long_type_note_durations = null;
string fileName_for_midi_from_the_dxf = "";
fileName_for_midi_from_the_dxf
=
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
+ "_BPM=" + this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
+ "_TPQN=" + this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
+ "_TS=" + this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.ToString()
+ "_" + this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.ToString()
+ "_totslps=" + this.public_list_of_6_digit_double_precission_unique_slopes_found.Count.ToString()
+ "_tot_notes=" + this.public_list_of_long_type_note_durations.Count.ToString()
+ ".mid";
//////System.IO.File.WriteAllText
////// (
////// fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// ,
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .ToString()
////// );
//////System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
//////System.Windows.Forms.MessageBox.Show(" MIDI files collection.PrepareForExport(); starts");
/////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
/////////caution caution caution we will add these later
//////collection.PrepareForExport();
/////////caution caution caution we will add these later MidiFile.Export(fileName, collection);
/////////
///////// caution caution caution we will add these later
/////////
//////System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
////////public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
///////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
//////SAANAUDS.Midi.MidiFile.Export
////// (
////// fileName_for_midi_from_the_dxf
////// , collection
////// );
//////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////
////////// SAAN IS ADDING THIS FOR SPECIAL PURPOSE NEEDS FOR THE PITCH CIRCLES
foreach (SAANSDXF.Entities.Circle CIRC_SAANS_ADDS in entities.OfType<SAANSDXF.Entities.Circle>())
{
double _circ_center_x = CIRC_SAANS_ADDS.Center.X;
double _circ_center_y = CIRC_SAANS_ADDS.Center.Y;
double _circ_center_z = CIRC_SAANS_ADDS.Center.Z;
double _circ_radius = CIRC_SAANS_ADDS.Radius;
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"CIRCLE_FOUND\r\n"
+ " center_x= " + _circ_center_x
+ " center_y= " + _circ_center_y
+ " center_z= " + _circ_center_z
+ " _circ_radius= " + _circ_radius
);
}// foreach (SAANSDXF.Entities.Circle CIRC_SAANS_ADDS in entities.OfType<SAANSDXF.Entities.Circle>())
////////// SAAN IS ADDING THIS FOR SPECIAL PURPOSE NEEDS FOR THE PITCH CIRCLES
foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[0].Position.X;
verty1 = poly2d.Vertexes[0].Position.Y;
vertx2 = poly2d.Vertexes[1].Position.X;
verty2 = poly2d.Vertexes[1].Position.Y;
bulge = poly2d.Vertexes[0].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
//i have the radius, finally again
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
/////////////////////////////////////////////////////////////////
for (int z = 1; z < vertextcount - 1; z++)
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[z].Position.X;
verty1 = poly2d.Vertexes[z].Position.Y;
vertx2 = poly2d.Vertexes[z + 1].Position.X;
verty2 = poly2d.Vertexes[z + 1].Position.Y;
bulge = poly2d.Vertexes[z].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
}
///////////////////////////////////////////////////////////////// is a closed polyline?
if (poly2d.IsClosed)
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[vertextcount - 1].Position.X;
verty1 = poly2d.Vertexes[vertextcount - 1].Position.Y;
vertx2 = poly2d.Vertexes[0].Position.X;
verty2 = poly2d.Vertexes[0].Position.Y;
bulge = poly2d.Vertexes[vertextcount - 1].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
}
poly2d.Normal = new Vector3(0, 0, 1);
}//foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
System.Windows.Forms.MessageBox.Show("all entities in dxf reading done\r\n\r\n\r\n SO MIDI files collection.PrepareForExport(); starts");
///caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
///caution caution caution we will add these later
collection.PrepareForExport();
///caution caution caution we will add these later MidiFile.Export(fileName, collection);
///
/// caution caution caution we will add these later
///
System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
//public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
/// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
SAANAUDS.Midi.MidiFile.Export
(
fileName_for_midi_from_the_dxf
, collection
);
////////////////////////////////////////////////////////////////////////////////////////////////////
///
totallength = Math.Round(totallength * roundamount, 0) / roundamount;
string tempstring = "Total length of entities in dxf = " + totallength.ToString();
////////////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
System.Windows.Forms.MessageBox.Show("starting writing log files at " + fileName_for_midi_from_the_dxf + "_strbldr_log_data_linier.txt");
System.IO.File.WriteAllText
(
fileName_for_midi_from_the_dxf + "_strbldr_log_data_linier.txt"
,
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.ToString()
);
//////System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
System.Windows.Forms.MessageBox.Show("text logs saving Done" + fileName_for_midi_from_the_dxf + "_strbldr_log_data_linier.txt");
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
///while writing THE MIDI FILE FIRST WE NEED TO READ THE DXF FILE FOR THE LINE SEGMENTS //////
///AND THEN CALCULATING THE TOTAL DURATIONS AND THEN PUTTING THE WHOLE RECALCULATIONS DONE FIRST
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
=
new List<double>();
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Sort();
//////double large_radius_to_use_for_gridding =
////// ___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
////// *
////// ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
////// + 3000;
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
/// and while writing the midi files first we will prepare track zero events for lyrics and the copyrights
/// where we will put the data for these things there from the dxf line segments data as read there
///
foreach (
double six_digit_radian_in_list
in
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
)
{
double six_digit_radian
= 0;
// in previous loop we have already found this
/// ___temp_total_length___of_the_song
///
six_digit_radian = Math.Round(six_digit_radian_in_list, 6);
string ___GRIDS_TIMES_TEXT_DATA = "";
//////___GRIDS_TIMES_TEXT_DATA
////// =
////// (System.Math.Round(___temp_total_length___of_the_song * six_digit_radian, 0)).ToString();
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//////double ___temp_x1_for_grids_end
////// = large_radius_to_use_for_gridding * System.Math.Cos(six_digit_radian);
//////double ___temp_y1_for_grids_end
////// = large_radius_to_use_for_gridding * System.Math.Sin(six_digit_radian);
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_circle_WITH_BLOCK_LEVEL_COLOR
////// (0, 0, 0,
////// large_radius_to_use_for_gridding, "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// );
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
////// (
////// 0, 0, -600000,
////// ___temp_x1_for_grids_end
////// ,
////// ___temp_y1_for_grids_end
////// ,
////// -600000,
////// "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// );
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_text_ON_TOP_VIEW_WITH_BLOCK_LEVEL_COLOR
////// (
////// ___temp_x1_for_grids_end
////// ,
////// ___temp_y1_for_grids_end
////// ,
////// -600000, 0, 60,
////// "LAYER_GRIDS_CIRCLE",
////// ___GRIDS_TIMES_TEXT_DATA
////// ,
////// "XDATA", 6
////// );
}
//////foreach (
//////double six_digit_radian_in_list
//////in
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
//////.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
//////)
//////textBox2.Text = tempstring;
//////textBox2.Refresh();`
/////////// great https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
//////foreach (Layout layout in SAAN_dxf.Layouts)
////// {
////// List<DxfObjectReference> entities = SAAN_dxf.Layouts.GetReferences(layout);
////// foreach (DxfObjectReference o__dxfobjectreference_entity in entities)
////// {
////// EntityObject entity = o__dxfobjectreference_entity as EntityObject;
////// }//foreach (DxfObject o in entities)
////// }// foreach (Layout layout in SAAN_dxf.Layouts)
//////// foreach (var entity in SAAN_dxf.Entities)
//////foreach (var entity in SAAN_dxf)
////// {
////// if (entity is Circle)
////// {
////// // Handle Circle entity
////// Circle circle = (Circle)entity;
////// DrawCircle(g, circle);
////// }
////// else if (entity is Line)
////// {
////// // Handle Line entity
////// Line line = (Line)entity;
////// DrawLine(g, line);
////// }//if (entity is Circle)
////// // Add more conditions to handle other entities (e.g., Arc, Text, etc.)
////// }//foreach (EntityObject entity in dxf.Modelspace)
//////// Specify the path to your CSV file
//////string csvFilePath = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// + "chkers.csv";// ;// "d:\\chkers.csv";
//////// Load CSV data
//////string[] csvLines = System.IO.File.ReadAllLines(csvFilePath);
// Parse CSV data and extract information
// You'll need to implement your own logic to extract tempo, time signature, key signature, and channel-wise data.
//////// Create a new MIDI file
//////SAANAUDS.Midi.MidiFile midiFile = new SAANAUDS.Midi.MidiFile(csvFilePath+"_new.mid");
//////// Set tempo (example value, replace with your own)
//////// midiFile.DeltaTicksPerQuarterNote = 960;
//////midiFile.DeltaTicksPerQuarterNote = 960;
/// SAANAUDS.Midi.MidiEvent tempoEvent = new SAANAUDS.Midi.TempoEvent(500000); // Tempo in microseconds per quarter note (e.g., 500,000 for 120 BPM)
// Create a new MIDI track for your data
// SAANAUDS.Midi.MidiTrack track = new SAANAUDS.Midi.MidiTrack();
/// SAANAUDS.Midi. track = new SAANAUDS.Midi.MidiTrack();
/// midiFile.Tracks.Add(track);
/////////////// we cannot prepare the midi file object to save the midi file
///instead we need to prepare MidiEventCollection and then need to save that to file through
///static method of the MidiFile
///
// Add tempo event
/// track.AddEvent(tempoEvent);
///
///refer F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL
///\excelformulaparser
///\DOING_GT06012020plus
///\DSMSETS_ANI_DNGIFGTTODOINOFFICE
///\ExcelFormulaParserSample\SAANAUDS\SAANAUDS_CHECKING_SimpleMidiFileWriter.cs
///
/////// SAANAUDS.Midi.MidiEventCollection ___saanauds_midieventscollection = new SAANAUDS.Midi.MidiEventCollection();
//////// Add your note events and pitch bend events to the track
//////foreach (string line in csvLines)
////// {
////// string[] parts = line.Split(',');
////// if (parts.Length >= 5)
////// {
////// int channel = int.Parse(parts[1]);
////// int noteNumber = int.Parse(parts[2]);
////// int velocity = int.Parse(parts[3]);
////// long absoluteTime = long.Parse(parts[4]);
////// // Create note on and note off events, and pitch bend events
////// var noteOn = new NoteOnEvent(absoluteTime, channel, noteNumber, velocity);
////// var noteOff = new NoteEvent(absoluteTime + 1000, channel, MidiCommandCode.NoteOff, noteNumber, velocity);
////// var pitchBend = new PitchBendEvent(absoluteTime, channel, 8192); // Example pitch bend value
////// // Add events to the track
////// track.AddEvent(noteOn);
////// track.AddEvent(noteOff);
////// track.AddEvent(pitchBend);
////// }
////// }
//////// Save the MIDI file
//////string outputFile = "output.mid";
//////midiFile.Save(outputFile);
}
catch (Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
{
System.Windows.Forms.MessageBox.Show
("_excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX" + _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.Message + "\r\n\r\n\r\n"
+ _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.StackTrace.ToString()
);
}//catch(Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
}//private void button___SAANDXF_LINIER_IN_GRAPHICS_LOAD_CHECKING_Click(object sender, EventArgs e)
private void button_generate_mifi_dxf_from___SAANOWNCSVLINIERSCALEDDXFFORMIDI_Click(object sender, EventArgs e)
{
try
{
//SAANOWNCSVLINIERSCALEDDXFFORMIDI
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.
PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
();
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////track,channel,patch_number,patch_name,pitch_bend_number,note_frequency_linier_y_start_data,note_frequency_linier_y_final_data,note_name,note_start_time_from_linier_x_data,note_final_time_from_linier_x_data,note_duration,note_velocity
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,2880,3360,480,88
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,3360,3600,240,79
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,3600,4080,480,89
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,4080,4320,240,76
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,4320,4800,480,86
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,4800,5040,240,79
//////3,3,0,___,0,41.2,41.2,NON_PERCUSSION_E2,5040,5268,228,79
//////3,3,0,___,0,32.7,32.7,NON_PERCUSSION_C2,5280,5520,240,79
//////3,3,0,___,0,34.65,34.65,NON_PERCUSSION_C#2,5520,5760,240,77
//////3,3,0,___,0,36.71,36.71,NON_PERCUSSION_D2,5760,6480,720,89
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,6480,7200,720,78
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,7200,7920,720,78
//////3,3,0,___,0,61.74,61.74,NON_PERCUSSION_B2,7920,8640,720,79
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,8640,9120,480,86
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,9120,9360,240,79
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,9360,9840,480,86
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,9840,10080,240,77
////// List<SAANSDXF.Entities.Line> ___saan_list_of______SAANSDXF_ENTITIES_LINE
//////= new List<SAANSDXF.Entities.Line>();
List<SAANAUDS.Midi.SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING>
___local_list_of_SAANAUDS_Midi___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
= new List<SAANAUDS.Midi.SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING>();
___local_list_of_SAANAUDS_Midi___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.Clear();
///////////////////its now public list
___saan_list_of______SAAN_LINES_FOR_NOTES
.Clear();
// TO DO TO PLAY MIDI NOTES
//////https://stackoverflow.com/questions/30349066/cannot-play-a-note-with-naudio-midi
///
////////////using System;
////////////using System.Collections.Generic;
////////////using System.ComponentModel;
////////////using System.Data;
////////////using System.Drawing;
////////////using System.Linq;
////////////using System.Text;
////////////using System.Windows.Forms;
////////////using NAudio.Midi;
////////////using System.Threading;
////////////namespace SoundVision10
//////////// {
//////////// public partial class Form1 : Form
//////////// {
//////////// public Form1()
//////////// {
//////////// InitializeComponent();
//////////// }
//////////// private void Form1_Load(object sender, EventArgs e)
//////////// {
//////////// }
//////////// private void button1_Click(object sender, EventArgs e)
//////////// {
//////////// //Thread.Sleep inside GUI is just for example
//////////// using (MidiOut midiOut = new MidiOut(0))
//////////// {
//////////// midiOut.Volume = 65535;
//////////// midiOut.Send(MidiMessage.StartNote(60, 127, 0).RawData);
//////////// MessageBox.Show("Sent");
//////////// Thread.Sleep(1000);
//////////// midiOut.Send(MidiMessage.StopNote(60, 0, 0).RawData);
//////////// Thread.Sleep(1000);
//////////// }
//////////// }
//////////// }
//////////// }
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
RECALCULATE_THE_MIDI_DATA_MICROSECONDS_NOTES_ETC();
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///
public_list_of_6_digit_double_precission_unique_slopes_found
= new List<double>();
public_list_of_6_digit_double_precission_unique_slopes_found
.Clear();
public_list_of_long_type_note_durations
= new List<long>();
public_list_of_long_type_note_durations
.Clear();
StringBuilder ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
= new StringBuilder();
___sbuilder_within_the_button_to_log_details_for_mid_event_notes.Clear();
//////http://www.synthfont.com/SFSPEC21.PDF
//////http://www.synthfont.com/SFSPEC21.PDF
/////////http://www.synthfont.com/SFSPEC21.PDF
//D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
//////https://markheath.net/category/naudio
///
////// ///TESTED IT IS WORKING AND PLAYING ALSO
////// string[] strs = {
////// "" +
////// "D:\\dekhte_haiisko___guitar.mid"
////// , "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
//////SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
//////track,channel,patch_number,patch_name,pitch_bend_number,note_frequency_linier_y_start_data,note_frequency_linier_y_final_data,note_name,note_start_time_from_linier_x_data,note_final_time_from_linier_x_data,note_duration,note_velocity
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,2880,3360,480,88
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,3360,3600,240,79
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,3600,4080,480,89
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,4080,4320,240,76
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,4320,4800,480,86
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,4800,5040,240,79
//////3,3,0,___,0,41.2,41.2,NON_PERCUSSION_E2,5040,5268,228,79
//////3,3,0,___,0,32.7,32.7,NON_PERCUSSION_C2,5280,5520,240,79
//////3,3,0,___,0,34.65,34.65,NON_PERCUSSION_C#2,5520,5760,240,77
//////3,3,0,___,0,36.71,36.71,NON_PERCUSSION_D2,5760,6480,720,89
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,6480,7200,720,78
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,7200,7920,720,78
//////3,3,0,___,0,61.74,61.74,NON_PERCUSSION_B2,7920,8640,720,79
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,8640,9120,480,86
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,9120,9360,240,79
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,9360,9840,480,86
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,9840,10080,240,77
System.Windows.Forms.MessageBox.Show
(
"READS 14 COLUMNS MIN ( col 0 to col 10+3 ) \r\n\r\n\r\n (ATLEAST THESE COLS ) " +
"FROM THE (.SAANOWNCSVLINIERSCALEDDXFFORMIDI files) SAANOWNCSVLINIERSCALEDDXFFORMIDI FILES " +
"\r\n\r\n\r\n " +
/////// this is the layer names
" _entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING"
+ "\r\n .PUBLIC_STRING_SAAN___TRACK_NAME_FOUND"+
"\r\n = \"NOTE_\" "
+
" ___int_track_number_read___col_0.ToString().TrimEnd().TrimStart().Trim()"
+ "\r\n \"_\" +" +
" \r\n ___int_channel_number_read___col_1.ToString().TrimEnd().TrimStart().Trim()" +
"\r\n + \"_\" +" +
"\r\n ___int_patch_number_read___col_2.ToString().TrimEnd().TrimStart().Trim()"
+ "\r\n + \"_\" +" +
"\r\n ___int_note_velocity_col_11.ToString().TrimEnd().TrimStart().Trim()" +
" \r\n; // for the dxf generations also from the csv files"
+
//////"\r\n col 0 track" +
//////"\r\n col 1 ,channel" +
//////"\r\n col 2 ,patch_number" +
//////"\r\n col 3 ,patch_name" +
//////"\r\n col 3+ ,pitch_bend_number" +
//////"\r\n col 3++ ,note_frequency_linier_y_start_data" +
//////"\r\n col 6 ,note_frequency_linier_y_final_data" +
//////"\r\n col 7 ,note_name" +
//////"\r\n col 8 ,note_start_time_from_linier_x_data" +
//////"\r\n col 9 ,note_final_time_from_linier_x_data" +
//////"\r\n col 10 ,note_duration" +
//////"\r\n col 10+1 ,note_velocity" +
//////"\r\n col 10+2 ,grabbed_lyrics_text" +
//////"\r\n col 10+3 ,grabbed_lyrics_Absolute_times"
///
"\r\n col 0 track(number categorizing like dxf layers)" +
"\r\n col 1 ,channel(9 for percussions only 0 to 15 only)" +
"\r\n col 2 ,patch_number(0 to 127)" +
"\r\n col 3 ,patch_name" +
"\r\n col 3+ ,pitch_bend_number(0 to 8190 to 16368 original note has no change frequency at 8190)" +
"\r\n col 3++ ,note_frequency_linier_y_start_data_OR_START_RADIUS(0,0,0 has zero frequency)" +
"\r\n col 6 ,note_frequency_linier_y_final_data_OR_FINAL_RADIUS(0,0,0 has zero frequency)" +
"\r\n col 7 ,note_name_FOUND_FROM_START_SIDES_FREQUENCY" +
"\r\n col 8 ,note_start_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE" +
"\r\n col 9 ,note_final_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE" +
"\r\n col 10 ,note_duration_IN_MIDITICKS_CALCULATED_FROM_THE_DEGREES_AND_TOTAL_DURATIONS_MICROSECONDS" +
"\r\n col 10+1 ,note_velocity_TRICKY_CALCULATION_OR_FROM_LAYERS" +
"\r\n col 10+2 ,grabbed_lyrics_text_FROM_LAYERS_NAMES_DATA" +
"\r\n col 10+3 ,grabbed_lyrics_Absolute_times_IN_LAYERS_DATA_FOR_TRACK_ZERO_WITH_MIDITICKS" +
"\r\n col 10+3+1 ,OPTIONAL_MILLISECONDS_DATA_FOR_START" +
"\r\n col 10+3+2 ,OPTIONAL_MILLISECONDS_DATA_FOR_FINAL" +
"\r\n col 10+3+3 ,OPTIONAL_MILLISECONDS_DATA_FOR_DURATIONS(normally 100 to 4300)" +
"\r\n col 10+3+3 +1 ,OPTIONAL_NOTE_OR_OTHER_CONTROLLER_LIKE_PITCH_BEND(DECIDER_TO_PROCESS)" +
"\r\n col 10+3+3 +2 ,OPTIONAL_THE_RAW_MIDI_EVENT_COUNTER_PRESERVED_FOR_SORTING_WHILE_EXPORTING" +
"\r\n col 10+3+3 +3 ,OPTIONAL_SIN_THETA_ADJUSTED_SLOPE_FOR_VELOCITY_CONTROLLER" +
"\r\n col 10+3+3 +3+1 ,DEGREE_DIFF_TO_TRACK_BLANK_REGIONS" +
"\r\n col 21 ,DEGREE_START" +
"\r\n col 22 ,DEGREE_FINAL"
);
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "SAANOWNCSVLINIERSCALEDDXFFORMIDI Files (.SAANOWNCSVLINIERSCALEDDXFFORMIDI)|*.SAANOWNCSVLINIERSCALEDDXFFORMIDI|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
///////////////yes running
///////////////
//////////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID", false);
///////////////yes running
/////////////// _midf.Describe()
///////////////
////////////System.IO.File.WriteAllText("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID.txt", _midf.ToString());
////////////////////////////////////// yessssssssssssssssssssss worked
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.sbuilder_for_dxf.Clear();
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.initialize_dxf_for_sbuilder_for_dxf();
double ___max_time_point_found_in_whole_process = -600000;
///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
/// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
/// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
string[] strs = {
"" +
/// "D:\\dekhte_haiisko___guitar.mid"
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_HARDCODED_NOTES.MID"
, "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
System.Windows.Forms.MessageBox.Show(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
//https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
// Create a Graphics object from the PictureBox
Graphics g = pictureBox_TO_TRY_SAANDXF.CreateGraphics();// // e.Graphics;
// Load the DXF file
//////SAANSDXF.DxfDocument SAAN_dxf = SAANSDXF.DxfDocument.Load(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
if (___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.ToUpper().EndsWith("SAANOWNCSVLINIERSCALEDDXFFORMIDI"))
{
// CONTINUE
string ___file_content_for______SAANOWNCSVLINIERSCALEDDXFFORMID___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
=
System.IO.File.ReadAllText(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
string[] ___string_array___lines_of______file_content_for______SAANOWNCSVLINIERSCALEDDXFFORMID___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
=
___file_content_for______SAANOWNCSVLINIERSCALEDDXFFORMID___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
.Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries);
for (int rrr = 0; rrr < ___string_array___lines_of______file_content_for______SAANOWNCSVLINIERSCALEDDXFFORMID___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.Length; rrr++)
{
SAANAUDS.Midi.SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
= new SAANAUDS.Midi.SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING();
string ___current_line_found
=
___string_array___lines_of______file_content_for______SAANOWNCSVLINIERSCALEDDXFFORMID___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
[rrr];
string[] ___string_array_current_line_splitted
=
___current_line_found
.Split(new string[] { "," }, StringSplitOptions.None);
//////track,channel,patch_number,patch_name,pitch_bend_number,note_frequency_linier_y_start_data,note_frequency_linier_y_final_data,note_name,note_start_time_from_linier_x_data,note_final_time_from_linier_x_data,note_duration,note_velocity
//////3,3,24,___,0,55,55,NON_PERCUSSION_A2___WITH_NOTE_NUMBER___33_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),2880,3360,480,88
//////3,3,24,___,0,55,55,NON_PERCUSSION_A2___WITH_NOTE_NUMBER___33_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),3360,3600,240,79
//////3,3,24,___,0,49,49,NON_PERCUSSION_G2___WITH_NOTE_NUMBER___31_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),3600,4080,480,89
//////3,3,24,___,0,49,49,NON_PERCUSSION_G2___WITH_NOTE_NUMBER___31_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),4080,4320,240,76
//////3,3,24,___,0,46.25,46.25,NON_PERCUSSION_F#2___WITH_NOTE_NUMBER___30_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion (Band neon),4320,4800,480,86
//////3,3,24,___,0,46.25,46.25,NON_PERCUSSION_F#2___WITH_NOTE_NUMBER___30_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion (Band neon),4800,5040,240,79
//////3,3,24,___,0,41.2,41.2,NON_PERCUSSION_E2___WITH_NOTE_NUMBER___28_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),5040,5268,228,79
//////3,3,24,___,0,32.7,32.7,NON_PERCUSSION_C2___WITH_NOTE_NUMBER___24_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),5280,5520,240,79
//////3,3,24,___,0,34.65,34.65,NON_PERCUSSION_C#2___WITH_NOTE_NUMBER___25_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion (Band neon),5520,5760,240,77
//////3,3,24,___,0,36.71,36.71,NON_PERCUSSION_D2___WITH_NOTE_NUMBER___26_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),5760,6480,720,89
//////3,3,24,___,0,46.25,46.25,NON_PERCUSSION_F#2___WITH_NOTE_NUMBER___30_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion (Band neon),6480,7200,720,78
//////3,3,24,___,0,55,55,NON_PERCUSSION_A2___WITH_NOTE_NUMBER___33_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),7200,7920,720,78
//////3,3,24,___,0,61.74,61.74,NON_PERCUSSION_B2___WITH_NOTE_NUMBER___35_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),7920,8640,720,79
//////3,3,24,___,0,55,55,NON_PERCUSSION_A2___WITH_NOTE_NUMBER___33_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),8640,9120,480,86
//////3,3,24,___,0,55,55,NON_PERCUSSION_A2___WITH_NOTE_NUMBER___33_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),9120,9360,240,79
//////3,3,24,___,0,49,49,NON_PERCUSSION_G2___WITH_NOTE_NUMBER___31_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),9360,9840,480,86
//////3,3,24,___,0,49,49,NON_PERCUSSION_G2___WITH_NOTE_NUMBER___31_WITH_OCTAVE_NUMBER_2_WITH_PATCH_NUMBER_24___WITH_PATCH_NAME_Tango Accordion(Band neon),9840,10080,240,77
//////TRACK,CHANNEL,PATCH_NUMBER,PATCH_NAME,PITCH_BEND_NUMBER,NOTE_FREQUENCY_START,NOTE_FREQUENCY_FINAL,NOTE_NUMBER_FROM_START_SIDE_FREQUENCY,NOTES_START_TIMES(TKS),NOTES_FINAL_TIMES(TKS),NOTES_DURATIONS(TKS),NOTES_VELOCITIES,LYRS_STRINGS,LYR_START_TIMES_TKS,OPTIONAL_MILLIS_START,OPTIONAL_MILLIS_FINAL,OPTIONAL_DURATIONS_MILLIS,OPTIONAL_COMMAND_SEGGREGATOR_NOT_OR_PITCH_BEND_OR_CONTROLER,PRESERVED_RAW_EVENT_COUNTER_FOR_SORTING,ARC_SIN_THETA_DEGREES_FREQUENCY_DIFF_TO_LENGTH_OF_SEGMENT
//////6,9,32,Guitar harmonics,8190,0,0,71,989058,989058,1,30,LYR_AND_B4,0,515135.748691667,515135.748691667,0,NOTE_ON,1,0.000000
//////6,9,32,Guitar harmonics,8190,0,0,71,989058,989058,1,0,LYR_AND_B4,0,515135.748691667,515135.748691667,0,NOTE_OFF,2,0.000000
//////6,9,32,Guitar harmonics,8190,440,440,71,627147,627147,1,30,LYR_AND_B4,440,326639.9335375,326639.9335375,0,NOTE_ON,3,0.000000
//////6,9,32,Guitar harmonics,8190,440,440,71,627147,627147,1,0,LYR_AND_B4,440,326639.9335375,326639.9335375,0,NOTE_OFF,4,0.000000
//////6,9,32,Guitar harmonics,8190,440,440,71,1363365,1363365,1,30,LYR_AND_B4,440,710087.8310625,710087.8310625,0,NOTE_ON,5,0.000000
//////6,9,32,Guitar harmonics,8190,440,440,71,1363365,1363365,1,0,LYR_AND_B4,440,710087.8310625,710087.8310625,0,NOTE_OFF,6,0.000000
//////6,9,32,Guitar harmonics,8190,440,440,71,639543,639543,1,30,LYR_AND_B4,440,333096.200754167,333096.200754167,0,NOTE_ON,7,0.000000
//////6,9,32,Guitar harmonics,8190,440,440,71,639543,639543,1,0,LYR_AND_B4,440,333096.200754167,333096.200754167,0,NOTE_OFF,8,0.000000
//////6,9,32,Guitar harmonics,8190,440,440,71,1712881,1712881,1,30,LYR_AND_B4,440,892127.899834722,892127.899834722,0,NOTE_ON,9,0.000000
//////6,9,32,Guitar harmonics,8190,440,440,71,1712881,1712881,1,0,LYR_AND_B4,440,892127.899834722,892127.899834722,0,NOTE_OFF,10,0.000000
//////6,9,32,Guitar harmonics,8190,440,440,71,265235,265235,1,30,LYR_AND_B4,440,138143.597548611,138143.597548611,0,NOTE_ON,11,0.000000
//////6,9,32,Guitar harmonics,8190,440,440,71,265235,265235,1,0,LYR_AND_B4,440,138143.597548611,138143.597548611,0,NOTE_OFF,12,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,97786,98794,1008,120,LYR_AND_G3,440,50930.3441472222,51455.3455472222,525.001400000001,NOTE_ON,13,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,97786,98794,1008,0,LYR_AND_G3,440,50930.3441472222,51455.3455472222,525.001400000001,NOTE_OFF,14,84.677314
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,627147,627147,1,30,LYR_AND_B4,177.364942370367,326639.9335375,326639.9335375,0,NOTE_ON,15,0.000000
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,627147,627147,1,0,LYR_AND_B4,177.364942370367,326639.9335375,326639.9335375,0,NOTE_OFF,16,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,459698,460706,1008,120,LYR_AND_G3,440,239426.680136111,239951.681536111,525.001400000008,NOTE_ON,17,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,459698,460706,1008,0,LYR_AND_G3,440,239426.680136111,239951.681536111,525.001400000008,NOTE_OFF,18,84.677314
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,989058,989058,1,30,LYR_AND_B4,177.364942370367,515135.748691667,515135.748691667,0,NOTE_ON,19,0.000000
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,989058,989058,1,0,LYR_AND_B4,177.364942370367,515135.748691667,515135.748691667,0,NOTE_OFF,20,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,821609,822617,1008,120,LYR_AND_G3,440,427922.495290278,428447.496690278,525.001400000008,NOTE_ON,21,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,821609,822617,1008,0,LYR_AND_G3,440,427922.495290278,428447.496690278,525.001400000008,NOTE_OFF,22,84.677314
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,265235,265235,1,30,LYR_AND_B4,177.364942370367,138143.597548611,138143.597548611,0,NOTE_ON,23,0.000000
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,265235,265235,1,0,LYR_AND_B4,177.364942370367,138143.597548611,138143.597548611,0,NOTE_OFF,24,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,97786,98794,1008,120,LYR_AND_G3,440,50930.3441472222,51455.3455472222,525.001400000001,NOTE_ON,25,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,97786,98794,1008,0,LYR_AND_G3,440,50930.3441472222,51455.3455472222,525.001400000001,NOTE_OFF,26,84.677314
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,627147,627147,1,30,LYR_AND_B4,177.364942370367,326639.9335375,326639.9335375,0,NOTE_ON,27,0.000000
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,627147,627147,1,0,LYR_AND_B4,177.364942370367,326639.9335375,326639.9335375,0,NOTE_OFF,28,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,459698,460706,1008,120,LYR_AND_G3,440,239426.680136111,239951.681536111,525.001400000008,NOTE_ON,29,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,459698,460706,1008,0,LYR_AND_G3,440,239426.680136111,239951.681536111,525.001400000008,NOTE_OFF,30,84.677314
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,989058,989058,1,30,LYR_AND_B4,177.364942370367,515135.748691667,515135.748691667,0,NOTE_ON,31,0.000000
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,989058,989058,1,0,LYR_AND_B4,177.364942370367,515135.748691667,515135.748691667,0,NOTE_OFF,32,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,821609,822617,1008,120,LYR_AND_G3,440,427922.495290278,428447.496690278,525.001400000008,NOTE_ON,33,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,821609,822617,1008,0,LYR_AND_G3,440,427922.495290278,428447.496690278,525.001400000008,NOTE_OFF,34,84.677314
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,1363365,1363365,1,30,LYR_AND_B4,177.364942370367,710087.8310625,710087.8310625,0,NOTE_ON,35,0.000000
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,1363365,1363365,1,0,LYR_AND_B4,177.364942370367,710087.8310625,710087.8310625,0,NOTE_OFF,36,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,1529806,1530814,1008,120,LYR_AND_G3,440,796776.083063889,797301.084463889,525.001400000066,NOTE_ON,37,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,1529806,1530814,1008,0,LYR_AND_G3,440,796776.083063889,797301.084463889,525.001400000066,NOTE_OFF,38,84.677314
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,1001454,1001454,1,30,LYR_AND_B4,177.364942370367,521592.015908333,521592.015908333,0,NOTE_ON,39,0.000000
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,1001454,1001454,1,0,LYR_AND_B4,177.364942370367,521592.015908333,521592.015908333,0,NOTE_OFF,40,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,1167895,1168903,1008,120,LYR_AND_G3,440,608280.267909722,608805.269309722,525.00139999995,NOTE_ON,41,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,1167895,1168903,1008,0,LYR_AND_G3,440,608280.267909722,608805.269309722,525.00139999995,NOTE_OFF,42,84.677314
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,639543,639543,1,30,LYR_AND_B4,177.364942370367,333096.200754167,333096.200754167,0,NOTE_ON,43,0.000000
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,639543,639543,1,0,LYR_AND_B4,177.364942370367,333096.200754167,333096.200754167,0,NOTE_OFF,44,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,805983,806992,1009,120,LYR_AND_G3,440,419783.931920833,420309.454155556,525.522234722215,NOTE_ON,45,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,805983,806992,1009,0,LYR_AND_G3,440,419783.931920833,420309.454155556,525.522234722215,NOTE_OFF,46,84.677314
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,1350970,1350970,1,30,LYR_AND_B4,177.364942370367,703632.084680556,703632.084680556,0,NOTE_ON,47,0.000000
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,1350970,1350970,1,0,LYR_AND_B4,177.364942370367,703632.084680556,703632.084680556,0,NOTE_OFF,48,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,1183521,1184529,1008,120,LYR_AND_G3,440,616418.831279167,616943.832679167,525.00139999995,NOTE_ON,49,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,1183521,1184529,1008,0,LYR_AND_G3,440,616418.831279167,616943.832679167,525.00139999995,NOTE_OFF,50,84.677314
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,1712881,1712881,1,30,LYR_AND_B4,177.364942370367,892127.899834722,892127.899834722,0,NOTE_ON,51,0.000000
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,1712881,1712881,1,0,LYR_AND_B4,177.364942370367,892127.899834722,892127.899834722,0,NOTE_OFF,52,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,1545432,1546440,1008,120,LYR_AND_G3,440,804914.646433333,805439.647833333,525.00139999995,NOTE_ON,53,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,1545432,1546440,1008,0,LYR_AND_G3,440,804914.646433333,805439.647833333,525.00139999995,NOTE_OFF,54,84.677314
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,2074793,2074793,1,30,LYR_AND_B4,177.364942370367,1080624.23582361,1080624.23582361,0,NOTE_ON,55,0.000000
//////6,9,32,Guitar harmonics,8190,177.364942370367,174.610000000002,71,2074793,2074793,1,0,LYR_AND_B4,177.364942370367,1080624.23582361,1080624.23582361,0,NOTE_OFF,56,0.000000
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,1907344,1908352,1008,120,LYR_AND_G3,440,993410.982422222,993935.983822222,525.001400000066,NOTE_ON,57,84.677314
//////9,9,1,Acoustic Grand Piano,8190,440,440,55,1907344,1908352,1008,0,LYR_AND_G3,440,993410.982422222,993935.983822222,525.001400000066,NOTE_OFF,58,84.677314
//////6,6,1,Acoustic Grand Piano,8190,174.610000000002,177.364942370367,71,0,1008,1008,93,LYR_AND_B4,174.610000000002,0,525.0014,525.0014,NOTE_ON,59,65.779643
//////6,6,1,Acoustic Grand Piano,8190,174.610000000002,177.364942370367,71,0,1008,1008,0,LYR_AND_B4,174.610000000002,0,525.0014,525.0014,NOTE_OFF,60,65.779643
//////4,4,112,Shanai,8190,440,441.428887406143,71,1008,2016,1008,43,LYR_AND_B4,440,525.0014,1050.0028,525.0014,NOTE_ON,61,30.640509
//////4,4,112,Shanai,8190,440,441.428887406143,71,1008,2016,1008,0,LYR_AND_B4,440,525.0014,1050.0028,525.0014,NOTE_OFF,62,30.640509
// for the lyrical kind of data we can have several other calculations to handle
if (___string_array_current_line_splitted.Length >= 12)
{
int ___int_track_number_read___col_0 = 0;
int ___int_channel_number_read___col_1 = 0;
int ___int_patch_number_read___col_2 = 0;
string ___string_track_name_read___col_3 = "";
double ___double_pitch_bend_number___col_4 = 0;
double ___double_note_frequency_linier_y_start_data_col_5 = 0;
double ___double_note_frequency_linier_y_final_data_col_6 = 0;
string ___string_note_name_read___col_7 = "";
long ___long_note_start_time_from_linier_x_data_col_8 = 0;
long ___long_note_final_time_from_linier_x_data_col_9 = 0;
double ___double_note_duration_col_10 = 0;
int ___int_note_velocity_col_11 = 0;
string ___string_lyrcs_text_found___col_12 = "";
long ___long_lyrcs_abs_pos_found____col_13 = 0;
///ADDITIONAL COLUMNS ARE BELOW
///ADDITIONAL COLUMNS ARE BELOW
///ADDITIONAL COLUMNS ARE BELOW
//////"\r\n col 0 track(number categorizing like dxf layers)" +
//////"\r\n col 1 ,channel(9 for percussions only 0 to 15 only)" +
//////"\r\n col 2 ,patch_number(0 to 127)" +
//////"\r\n col 3 ,patch_name" +
//////"\r\n col 3+ ,pitch_bend_number(0 to 8190 to 16368 original note has no change frequency at 8190)" +
//////"\r\n col 3++ ,note_frequency_linier_y_start_data_OR_START_RADIUS(0,0,0 has zero frequency)" +
//////"\r\n col 6 ,note_frequency_linier_y_final_data_OR_FINAL_RADIUS(0,0,0 has zero frequency)" +
//////"\r\n col 7 ,note_name_FOUND_FROM_START_SIDES_FREQUENCY" +
//////"\r\n col 8 ,note_start_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE" +
//////"\r\n col 9 ,note_final_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE" +
//////"\r\n col 10 ,note_duration_IN_MIDITICKS_CALCULATED_FROM_THE_DEGREES_AND_TOTAL_DURATIONS_MICROSECONDS" +
//////"\r\n col 10+1 ,note_velocity_TRICKY_CALCULATION_OR_FROM_LAYERS" +
//////"\r\n col 10+2 ,grabbed_lyrics_text_FROM_LAYERS_NAMES_DATA" +
//////"\r\n col 10+3 ,grabbed_lyrics_Absolute_times_IN_LAYERS_DATA_FOR_TRACK_ZERO_WITH_MIDITICKS" +
//////"\r\n col 10+3+1 ,OPTIONAL_MILLISECONDS_DATA_FOR_START" +
//////"\r\n col 10+3+2 ,OPTIONAL_MILLISECONDS_DATA_FOR_FINAL" +
////// "\r\n col 10+3+3 ,OPTIONAL_MILLISECONDS_DATA_FOR_DURATIONS(normally 100 to 4300)" +
////// "\r\n col 10+3+3 +1 ,OPTIONAL_NOTE_OR_OTHER_CONTROLLER_LIKE_PITCH_BEND(DECIDER_TO_PROCESS)" +
////// "\r\n col 10+3+3 +2 ,OPTIONAL_THE_RAW_MIDI_EVENT_COUNTER_PRESERVED_FOR_SORTING_WHILE_EXPORTING" +
////// "\r\n col 10+3+3 +3 ,OPTIONAL_SIN_THETA_ADJUSTED_SLOPE_FOR_VELOCITY_CONTROLLER"
double ___millisecond_start_col_14 = 0;
double ___millisecond_final_col_15 = 0;
double ___millisecond_durations_col_16 = 0;
string ___controller_type___NOTE_ON_PITCH_BEND_col_17 = "";
double ___raw_mids_events_counter_col_18 = 0;
double ___data_collected_from_the_arcsin_degrees_angles_for_velocity_calculations_freqdiff_to_length_of_line_segment_of_note_col_19 = 0;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___int_track_number_read___col_0
=
Convert.ToInt32(___string_array_current_line_splitted[0].TrimEnd().TrimStart().Trim())
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___int_channel_number_read___col_1
=
Convert.ToInt32(___string_array_current_line_splitted[1].TrimEnd().TrimStart().Trim())
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___int_patch_number_read___col_2
=
Convert.ToInt32(___string_array_current_line_splitted[2].TrimEnd().TrimStart().Trim())
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___string_track_name_read___col_3
=
//////Convert.ToInt32
(___string_array_current_line_splitted[3].TrimEnd().TrimStart().Trim());
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___double_pitch_bend_number___col_4
=
Convert.ToDouble
(___string_array_current_line_splitted[3 + 1].TrimEnd().TrimStart().Trim());
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___double_note_frequency_linier_y_start_data_col_5
=
Convert.ToDouble
(___string_array_current_line_splitted[3 + 2].TrimEnd().TrimStart().Trim());
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___double_note_frequency_linier_y_final_data_col_6
=
Convert.ToDouble
(___string_array_current_line_splitted[3 + 3].TrimEnd().TrimStart().Trim());
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___string_note_name_read___col_7
=
// Convert.ToDouble
(___string_array_current_line_splitted[7].TrimEnd().TrimStart().Trim());
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___long_note_start_time_from_linier_x_data_col_8
=
(long)
(Convert.ToDouble
(___string_array_current_line_splitted[8].TrimEnd().TrimStart().Trim())
)
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___long_note_final_time_from_linier_x_data_col_9
=
(long)
(Convert.ToDouble
(___string_array_current_line_splitted[9].TrimEnd().TrimStart().Trim())
)
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___double_note_duration_col_10
=
(Convert.ToDouble
(___string_array_current_line_splitted[10].TrimEnd().TrimStart().Trim())
)
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___int_note_velocity_col_11
=
(Convert.ToInt32
(___string_array_current_line_splitted[10 + 1].TrimEnd().TrimStart().Trim())
)
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (___string_array_current_line_splitted.Length >= 14)
{
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___string_lyrcs_text_found___col_12
=
// (Convert.ToInt32
// (
___string_array_current_line_splitted[11 + 1].TrimEnd().TrimStart().Trim()
// )
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___long_lyrcs_abs_pos_found____col_13
=
(long)(Convert.ToDouble
(___string_array_current_line_splitted[10 + 3].TrimEnd().TrimStart().Trim())
)
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
}// if (___string_array_current_line_splitted.Length >= 14)
if (___string_array_current_line_splitted.Length >= 17+2 +1)
{
___millisecond_start_col_14 = 0;
___millisecond_final_col_15 = 0;
___millisecond_durations_col_16 = 0;
___controller_type___NOTE_ON_PITCH_BEND_col_17 = "";
___raw_mids_events_counter_col_18 = 0;
___data_collected_from_the_arcsin_degrees_angles_for_velocity_calculations_freqdiff_to_length_of_line_segment_of_note_col_19 = 0;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___millisecond_start_col_14
=
(Convert.ToDouble
(___string_array_current_line_splitted[10+3+1].TrimEnd().TrimStart().Trim())
)
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___millisecond_final_col_15
=
(Convert.ToDouble
(___string_array_current_line_splitted[10 + 3 + 2].TrimEnd().TrimStart().Trim())
)
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___millisecond_durations_col_16
=
(Convert.ToDouble
(___string_array_current_line_splitted[10 + 3 + 3].TrimEnd().TrimStart().Trim())
)
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___controller_type___NOTE_ON_PITCH_BEND_col_17
=
(
(___string_array_current_line_splitted[10 + 3 + 3+1].TrimEnd().TrimStart().Trim())
)
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___raw_mids_events_counter_col_18
=
(Convert.ToDouble
(___string_array_current_line_splitted[10 + 3 + 3+2].TrimEnd().TrimStart().Trim())
)
;
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
___data_collected_from_the_arcsin_degrees_angles_for_velocity_calculations_freqdiff_to_length_of_line_segment_of_note_col_19
=
(Convert.ToDouble
(___string_array_current_line_splitted[10 + 3 + 3 + 3].TrimEnd().TrimStart().Trim())
)
;
//////tested ok for the new versions System.Windows.Forms.MessageBox.Show("Checking ___data_collected_from_the_arcsin_degrees_angles_for_velocity_calculations_freqdiff_to_length_of_line_segment_of_note_col_19 = " + ___data_collected_from_the_arcsin_degrees_angles_for_velocity_calculations_freqdiff_to_length_of_line_segment_of_note_col_19);
}
catch (Exception _convertions_exceptions)
{
}//catch(Exception _convertions_exceptions)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// 0 TO 19 TOTAL 20 COLUMNS NOW UPTO VELOCITY IS ASSIGNED
}// if (___string_array_current_line_splitted.Length >= 17+2 +1)
////// for references
//////int ___int_track_number_read___col_0 = 0;
//////int ___int_channel_number_read___col_1 = 0;
//////int ___int_patch_number_read___col_2 = 0;
//////string ___string_track_name_read___col_3 = "";
//////double ___double_pitch_bend_number___col_4 = 0;
//////double ___double_note_frequency_linier_y_start_data_col_5 = 0;
//////double ___double_note_frequency_linier_y_final_data_col_6 = 0;
//////string ___string_note_name_read___col_7 = "";
//////long ___long_note_start_time_from_linier_x_data_col_8 = 0;
//////long ___long_note_final_time_from_linier_x_data_col_9 = 0;
//////double ___double_note_duration_col_10 = 0;
//////int ___int_note_velocity_col_11 = 0;
///___string_lyrcs_text_found___col_12
///___long_lyrcs_abs_pos_found____col_13
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_INT_SAAN___TRACK_NUMBER
= ___int_track_number_read___col_0;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_INT_SAAN___CHANNEL_NUMBER
= ___int_channel_number_read___col_1;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER
= ___int_patch_number_read___col_2;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_STRING_SAAN___EVENT_NOTE_NUMBER_FOUND
=
___string_note_name_read___col_7
;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_FREQUENCY_IN_HERTZ
=
___double_note_frequency_linier_y_start_data_col_5;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_OFF_FREQUENCY_IN_HERTZ
=
___double_note_frequency_linier_y_final_data_col_6;
;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.Y1
=
___double_note_frequency_linier_y_start_data_col_5;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.Y2
=
___double_note_frequency_linier_y_final_data_col_6;
;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.LINIER_Y1
=
___double_note_frequency_linier_y_start_data_col_5;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.LINIER_Y2
=
___double_note_frequency_linier_y_final_data_col_6;
;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.X1
=
(Double)___long_note_start_time_from_linier_x_data_col_8
;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.X2
= (double)
___long_note_final_time_from_linier_x_data_col_9
;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.LINIER_X1
=
(Double)___long_note_start_time_from_linier_x_data_col_8
;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.LINIER_X2
= (double)
___long_note_final_time_from_linier_x_data_col_9
;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_DURATION___IS___NOTE_LENGTH
=
___double_note_duration_col_10;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY
=
___int_note_velocity_col_11;
////////////////////////////////////////////////////////////////////////////
___max_time_point_found_in_whole_process
= Math.Max
(
(double)___max_time_point_found_in_whole_process
,
(double)(_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.LINIER_X1)
);
___max_time_point_found_in_whole_process
= Math.Max
(
(double)___max_time_point_found_in_whole_process
,
(double)(_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.LINIER_X2)
);
/////// this is the layer names
//////READS THE CSV LIKE FILE AND GENERATES THE LAYER NAME FOR THE CAD DXF FILES
///AND ALSO GENERATES THE MIDI FILES
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_STRING_SAAN___TRACK_NAME_FOUND
= "NOTE_"
+
___int_track_number_read___col_0.ToString().TrimEnd().TrimStart().Trim()
+ "_" +
___int_channel_number_read___col_1.ToString().TrimEnd().TrimStart().Trim()
+ "_" +
___int_patch_number_read___col_2.ToString().TrimEnd().TrimStart().Trim()
+ "_" +
___int_note_velocity_col_11.ToString().TrimEnd().TrimStart().Trim()
;
///////////////////// too important
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_LONG_TOTAL_SONG_TIME_MICROSECOND
=
(long)___max_time_point_found_in_whole_process;
///___string_lyrcs_text_found___col_12
///___long_lyrcs_abs_pos_found____col_13
///
if (___long_lyrcs_abs_pos_found____col_13 > 0)
{
///////////////////// too important
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_STRING_SAAN___LYRIC_TEXT
=
___string_lyrcs_text_found___col_12;
///////////////////// too important
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_LONG_SAAN___LYRIC_FOUND_AT_ABSOLUTE_TIME
=
(long)___long_lyrcs_abs_pos_found____col_13;
}// if(___long_lyrcs_abs_pos_found____col_13>0)
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
///NOW ADDITIONAL VARIABLES ARE THERE
if (___string_array_current_line_splitted.Length >= 17 + 2 + 1)
{
/// <summary>
/// //these are new variables added to handle the velocity and the purpose to decorate the sounds
/// </summary>
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.___millisecond_start_col_14___in___files___SAANOWNCSVLINIERSCALEDDXFFORMIDI
= ___millisecond_start_col_14;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.___millisecond_final_col_15___in___files___SAANOWNCSVLINIERSCALEDDXFFORMIDI
= ___millisecond_final_col_15;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.___millisecond_durations_col_16___in___files___SAANOWNCSVLINIERSCALEDDXFFORMIDI_16
= ___millisecond_durations_col_16;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.___controller_type___NOTE_ON_PITCH_BEND_col_17___in___files___SAANOWNCSVLINIERSCALEDDXFFORMIDI
= ___controller_type___NOTE_ON_PITCH_BEND_col_17;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.___raw_mids_events_counter_col_18___in___files___SAANOWNCSVLINIERSCALEDDXFFORMIDI
= ___raw_mids_events_counter_col_18;
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.___data_collected_from_the_arcsin_degrees_angles_for_velocity_calculations_freqdiff_to_length_of_line_segment_of_note_col_19___in___files___SAANOWNCSVLINIERSCALEDDXFFORMIDI
= ___data_collected_from_the_arcsin_degrees_angles_for_velocity_calculations_freqdiff_to_length_of_line_segment_of_note_col_19;
}//if (___string_array_current_line_splitted.Length >= 17 + 2 + 1)
///NOW ADDITIONAL VARIABLES ARE THERE
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.LINIER_X1
,
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.LINIER_Y1
,
0,
//(_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.LINIER_X2
,
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.LINIER_Y2
,
// (_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 1000 + _log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER * ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations * 100),
0
,
"NOTE_" +
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
+ "_" +
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////// double ___temp___inst_patch_number_found = 0;
//////double ___temp___nones_pitchbends_number_found = 0;
+ "_" +
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString()
// .PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
//////.PUBLIC_CURRENT_SNAP_OF___ACCUMULATING_MIDI_EVENT_OBJECT
//////.PUBLIC_NONSTATIC_SIMPLES_TRANSIENT______INT___CURRENT_PATCH_INSTRUMENT_NUMBER
//////.ToString()
//////no it is not changing
//////+
////// _log_midi_event___for_true_scaled_notes_on_dxf___linier
//////// .PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
//////.PUBLIC_CURRENT_SNAP_OF___ACCUMULATING_MIDI_EVENT_OBJECT
//////.PUBLIC_NONSTATIC_SIMPLES_TRANSIENT______STRING___CURRENT_NOTE_NAME
////// /// ___temp___inst_patch_number_found.ToString()
/// we will not store the pitch bends here in this files
////// + "_" +
////////////_log_midi_event___for_true_scaled_notes_on_dxf___linier
////////////.PUBLIC_DOUBLE_SAAN___MIDI_PITCH_BEND_NUMBER.ToString()
//////___temp___nones_pitchbends_number_found.ToString()
+ "_" +
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
,
"XDATA",
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_INT_SAAN___CHANNEL_NUMBER
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
//////_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//////.LINIER_X1
///
(double)_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_LONG_SAAN___LYRIC_FOUND_AT_ABSOLUTE_TIME
,
//////_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//////.LINIER_Y1
(0
- 300
-
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.PUBLIC_INT_SAAN___LYRIC_COUNTER_THAT_COMES_NEAR_THIS_POSITION
* 8
)
,
0, 0, 8, "LYR_TEXT_STRING_GRABBED",
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.PUBLIC_STRING_SAAN___LYRIC_TEXT
, "XDATA",
6
);
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
if(___string_array_current_line_splitted.Length>=20)
{
if(_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.___controller_type___NOTE_ON_PITCH_BEND_col_17___in___files___SAANOWNCSVLINIERSCALEDDXFFORMIDI
=="NOTE_ON")
{
//ONLY NOTE ON CASES ARE IMPORTED HERE
//FOR THE NEW FORMATS
___local_list_of_SAANAUDS_Midi___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.Add
(
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
);
}
//////if (_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING.___controller_type___NOTE_ON_PITCH_BEND_col_17___in___files___SAANOWNCSVLINIERSCALEDDXFFORMIDI
////// == "NOTE_ON")
}
else
{
___local_list_of_SAANAUDS_Midi___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.Add
(
_entity___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
);
}// if(___string_array_current_line_splitted.Length>=20)
}// if(___string_array_current_line_splitted.Length==12)
} // for(int rrr=0;rrr< ___string_array___lines_of______file_content_for______SAANOWNCSVLINIERSCALEDDXFFORMID___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.Length; rrr++)
//////// Create a new DXF document
//////DxfDocument dxf_fresh = new DxfDocument();
//////// Create lines
//////SAANSDXF.Entities.Line line1 = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
//////SAANSDXF.Entities.Line line2 = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
/// DxfDocument dxf = new DxfDocument();
//////// Create lines
//////SAANSDXF.Entities.Line line1chk = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
//////SAANSDXF.Entities.Line line2chk = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
//////// Add lines to the model space
//////dxf.AddEntityToDocument(line1chk, true);
//////dxf.AddEntityToDocument(line2chk, true);
//////// Save the DXF file
//////dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_fresh_output.dxf");
////// // Add lines to the model space
////// dxf_fresh.AddEntity(line1);
////// dxf_fresh.AddEntity(line2);
//////// dxf_fresh
////// // Save the DXF file
////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_output.dxf");
double freq_found = -6;
int note_number_to_take_integer = -6;
string note_name_to_take_string = "";
//already calculated ___max_time_point_found_in_whole_process
//ok tested if ((freq_found >= 7.6892) && (freq_found <= 8.7466){ note_number_to_take_integer = 1; note_name_to_take_string = "NONE"; }
////// SAANSDXF.Entities.Line ___new_line = new SAANSDXF.Entities.Line();
////// ___new_line.StartPoint = new SAANSDXF.Vector3(-600000,-600000,0.003);
////// ___new_line.EndPoint = new SAANSDXF.Vector3(+600000, +600000, 0.003);
////// ___new_line.Color = new AciColor(0.3, 0.6, 0.8);
////// SAAN_dxf.AddEntityToDocument(___new_line, true);
///////// SAAN_dxf.AddEntityToDocument
////// SAAN_dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_SAANSDXF.DXF");
/////////DxfDocument doc = DxfDocument.Load("sample.dxf");
//////SAAN_dxf.Entities.ActiveLayout = SAANSDXF.Objects.Layout.ModelSpaceName;// works after it is saved with higher version with autocad
/////////
//////SAANSDXF.Collections.EntityCollection entities
////// = SAAN_dxf.Blocks[Block.DefaultModelSpaceName].Entities;
///////////////////////////////////////////////////////////////////////////////////////////
/////////
int entitycount = -1;
entitycount =
___string_array___lines_of______file_content_for______SAANOWNCSVLINIERSCALEDDXFFORMID___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
.Length;
//entities.Count;
int entitytimer = 0;
entitytimer = entitycount / 10000;
double vertsx = 0;
double vertsy = 0;
double vertsz = 0;
double vertex = 0;
double vertey = 0;
double vertez = 0;
int vertextcount = 0;
double vertx1 = 0;
double verty1 = 0;
double vertx2 = 0;
double verty2 = 0;
int roundamount = 16;
double totallength = 0;
double arclength = 0;
double linelength = 0;
double startAngle;
double endAngle;
double bulge;
double theta;
double c;
double r;
double gamma;
double phi;
double holdangle;
Vector2 p1;
Vector2 p2;
Vector2 center;
double ___saan_x_for_angle_calculation = 0;
double ___saan_y_for_angle_calculation = 0;
/// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
long total_microsecond_of_whole_song
=
this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
;
double ___total_notes_found_in_the_dxf = 0;
___total_notes_found_in_the_dxf =
entitycount;
///entities.Count;
//////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___max_time_point_found_in_whole_process
=
___local_list_of_SAANAUDS_Midi___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
.Last().PUBLIC_LONG_TOTAL_SONG_TIME_MICROSECOND;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show
("Duration = " + total_microsecond_of_whole_song
+ "\r\n\r\n\r\ntotal notes= " + ___total_notes_found_in_the_dxf
+ "\r\n\r\n\r\n the original data file has max duration (___max_time_point_found_in_whole_process)= " +
___max_time_point_found_in_whole_process
);
int MidiFileType = 1;// 0;//////saan changes this to 1
int BeatsPerMinute =
(int)this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE;
//60;
int TicksPerQuarterNote =
(int)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480;
//120;////// too important /// multiple of 480
int TrackNumber = 0;
int ChannelNumber = 1;
//////public PatchParser()
////// {
////// this.patchMap.Add("nylon", 25);
////// this.patchMap.Add("steel", 26);
////// this.patchMap.Add("jazz", 27);
////// this.patchMap.Add("clean", 28);
////// this.patchMap.Add("muted", 29);
////// this.patchMap.Add("distortion", 31);
////// this.patchMap.Add("bass", 33);
////// this.patchMap.Add("violin", 41);
////// this.patchMap.Add("viola", 42);
////// this.patchMap.Add("cello", 43);
////// this.patchMap.Add("sitar", 105);
////// this.patchMap.Add("banjo", 106);
////// this.patchMap.Add("fiddle", 111);
////// }//public PatchParser()
int Patch_number = 26;
long absoluteTime___start = 0;
long absoluteTime___final = 0;
var collection
= new
SAANAUDS.Midi.MidiEventCollection
(MidiFileType, TicksPerQuarterNote);
////////////////////////////////////////////////////////////////////////////////////////////
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " MID_COLLECTION_STARTS_FRESH collection = " + collection.ToString()
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " MidiFileType = " + MidiFileType
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " TicksPerQuarterNote = " + TicksPerQuarterNote
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " BeatsPerMinute = " + BeatsPerMinute
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " TrackNumber = " + TrackNumber
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " ChannelNumber = " + ChannelNumber
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " absoluteTime___start = " + absoluteTime___start
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " absoluteTime___final = " + absoluteTime___start
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// absoluteTime
////// ),
////// TrackNumber
////// );
//////++absoluteTime;
//////collection.AddEvent
//////(
////// new SAANAUDS.Midi.TempoEvent
//////(
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// absoluteTime
////// ),
////// TrackNumber
////// );
///
//////////// will do after some times
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// (long)((absoluteTime___start + absoluteTime___final) / 6)
////// ),
////// //TrackNumber
////// TrackNumber
////// );
//////int to_count_lyrs_found_in_layer___LYR_TEXT_STRING_GRABBED = 0;
//////foreach (SAANSDXF.Entities.Text text in entities.OfType<SAANSDXF.Entities.Text>())
////// {
////// if (text.Layer.Name.ToString().ToUpper() == "LYR_TEXT_STRING_GRABBED")
////// {
////// if (text.Value.ToString().TrimEnd().TrimStart().Trim().Length > 0)
////// {
////// to_count_lyrs_found_in_layer___LYR_TEXT_STRING_GRABBED++;
////// absoluteTime___start = (long)(text.Position.X);
////// collection
////// .AddEvent
////// (
////// new SAANAUDS.Midi.TextEvent
////// (
////// //"Note Stream LYRICS",
////// text.Value.ToString().TrimEnd().TrimStart().Trim()
////// ,
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// //(long)((absoluteTime___start + absoluteTime___final) / 6)
////// (long)(text.Position.X)
////// ),
////// //TrackNumber
////// // TrackNumber
////// 0
////// );
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .AppendLine
////// (
////// "to_count_lyrs_found_in_layer___LYR_TEXT_STRING_GRABBED ="
////// + to_count_lyrs_found_in_layer___LYR_TEXT_STRING_GRABBED.ToString()
////// + " lyr added = " + text.Value.ToString().TrimEnd().TrimStart().Trim()
////// + " absoluteTime___final = " + absoluteTime___start
////// //////+ " startAngle = " + startAngle
////// //////+ " endAngle = " + endAngle
////// //////+ " holdangle = " + holdangle
////// //////+ " arclength = " + arclength
////// );
////// }//if(text.Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
////// }// if(text.Layer.Name.ToString().ToUpper()== "LYR_TEXT_STRING_GRABBED")
////// }// foreach (SAANSDXF.Entities.Text text in entities.OfType<SAANSDXF.Entities.Text>())
////// //LYR_TEXT_STRING_GRABBED LAYER DATA TO LYRICS
////// ////// will do after some times
////// ///LYR_TEXT_STRING_GRABBED
////// ///
////// /// KKK
/////////////////////////////// interesting styles ////////////////////
///
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"SanjoyNathGeometrifyingTrigonometry(C)"
,
SAANAUDS.Midi.MetaEventType.Copyright
,
// absoluteTime
(long)(absoluteTime___start)
),
//TrackNumber
// 0
TrackNumber
);
////////////////////////////////////////////////////////////////////////////////
////// will do after some times
// ++absoluteTime;
collection.AddEvent
(
new SAANAUDS.Midi.TempoEvent
(
Local_CalculateMicrosecondsPerQuaterNote
(
BeatsPerMinute
),
/// absoluteTime
absoluteTime___start
),
// TrackNumber
TrackNumber
);
////////////////////////////////////////////////
///
//////////////static void Main(string[] args)
////////////// {
////////////// string inputMidiFile = "input.mid"; // Replace with your MIDI file
////////////// string outputMidiFile = "output.mid"; // Replace with the output file
////////////// string copyrightText = "Copyright © 2023 Your Company"; // Your copyright notice
////////////// // Load the MIDI file
////////////// MidiFile midiFile = new MidiFile(inputMidiFile, false);
////////////// // Create a meta-event to set the copyright text
////////////// MetaEvent copyrightEvent = new MetaEvent(MetaType.Copyright, copyrightText);
////////////// // Locate the track where you want to insert the copyright event
////////////// int targetTrackIndex = 0; // Adjust as needed
////////////// if (targetTrackIndex < midiFile.Tracks.Count)
////////////// {
////////////// MidiTrack targetTrack = midiFile.Tracks[targetTrackIndex];
////////////// // Add the copyright event to the track
////////////// targetTrack.AddEvent(copyrightEvent);
////////////// }
////////////// else
////////////// {
////////////// Console.WriteLine("Invalid track index.");
////////////// return;
////////////// }
////////////// // Save the modified MIDI file
////////////// midiFile.Save(outputMidiFile);
////////////// Console.WriteLine("Copyright event added successfully.");
////////////// }
////////////// saan thinks it will work
////// ////////////// // Create a meta-event to set the copyright text
////// SAANAUDS.Midi.TextEvent copyrightEvent___SAAN
////// =
////// new
////// SAANAUDS.Midi.TextEvent
////// (
////// SAANAUDS.Midi.MetaEventType.Copyright
////// ,
////// 50
////// ,
////// absoluteTime___start
////// )
////// ;
////// //"SanjoyNathGeometrifyingTrigonometry(C)"
////// copyrightEvent___SAAN
////// .absoluteTime
////// collection.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
//////(
//////,
////// /// absoluteTime
////// ),
////// // TrackNumber
////// TrackNumber
////// );
////////////////////////////////////////////////
///
var patchParser = new SAANAUDS_CHECKING.PatchParser();
int patchNumber = patchParser.Patch("steel");//////////////////// i will configure this from layers
/////////////////// first entries so absolute time is zero
collection.AddEvent(
new
SAANAUDS.Midi.PatchChangeEvent
(
0
,
ChannelNumber
, patchNumber
)
, TrackNumber
);
//////const int NoteVelocity = 100;
////// const int NoteDuration =
////// ///3 * TicksPerQuarterNote / 4;
////// const long SpaceBetweenNotes
////// = TicksPerQuarterNote;
int NoteVelocity = 100;
long NoteDuration = 0;
double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
///3 * TicksPerQuarterNote / 4;
long SpaceBetweenNotes
= 0;// TicksPerQuarterNote;
////// absoluteTime += SpaceBetweenNotes;
////// foreach (var note in allNotes)
////// {
//////collection.AddEvent(new NoteOnEvent(absoluteTime, ChannelNumber, note.MidiValue, NoteVelocity, NoteDuration), TrackNumber);
//////collection.AddEvent(new NoteEvent(absoluteTime + NoteDuration, ChannelNumber, MidiCommandCode.NoteOff, note.MidiValue, 0), TrackNumber);
////// absoluteTime += SpaceBetweenNotes;
////// }//foreach (var note in allNotes)
////// collection.PrepareForExport();
////// /// MidiFile.Export(fileName, collection);
////// ///
////// SAANAUDS.Midi.MidiFile.Export(fileName_for_midi_from_the_dxf, collection);
///////// }//public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
double line_Segments_counter = 0;
double line_Segments_count = 0;
double ___degrees_1 = 0;
double ___degrees_2 = 0;
double ___dist_1 = 0;
double ___dist_2 = 0;
double freq_found_from_the_nearest = 0;
double freq_found_from_the_furthest = 0;
double ___distance_of_current_line_segment_min_out_of_two = 0;
double ___distance_of_current_line_segment_max_out_of_two = 0;
int note_number_found_from_the_nearest_frequency_Hertz = 0;
int note_number_found_from_the_furthest_frequency_Hertz = 0;
string note_name_found_from_the_nearest_frequency_Hertz = "";
string note_name_found_from_the_furthest_frequency_Hertz = "";
////////////////////////// these are used to put the pitch bents
double start_side_of_line_segments_angle_with_x_axis = 0;
double final_side_of_line_segments_angle_with_x_axis = 0;
////////////////////////// these are used to put the pitch bents
double start_side_of_line_segments_frequency = 0;
double final_side_of_line_segments_frequency = 0;
double delta_pitch = 0;
// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
//___local_list_of_SAANAUDS_Midi___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
foreach (SAANAUDS.Midi.SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING line___as_saan_entity_from_csv_like_data in ___local_list_of_SAANAUDS_Midi___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING)
{
// this is layer
if (line___as_saan_entity_from_csv_like_data.PUBLIC_STRING_SAAN___TRACK_NAME_FOUND.ToUpper().Contains("NOTE_"))
{
//////line___as_saan_entity_from_csv_like_data
//////.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
//this class dont have the patch numbers
SAAN_LINES_FOR_NOTES _temp____SAAN_LINES_FOR_NOTES
= new SAAN_LINES_FOR_NOTES();
//////_temp____SAAN_LINES_FOR_NOTES.x1 = line.StartPoint.X;
//////_temp____SAAN_LINES_FOR_NOTES.y1 = line.StartPoint.Y;
//////_temp____SAAN_LINES_FOR_NOTES.z1 = line.StartPoint.Z;
//////_temp____SAAN_LINES_FOR_NOTES.x2 = line.EndPoint.X;
//////_temp____SAAN_LINES_FOR_NOTES.y2 = line.EndPoint.Y;
//////_temp____SAAN_LINES_FOR_NOTES.z2 = line.EndPoint.Z;
_temp____SAAN_LINES_FOR_NOTES.x1 = line___as_saan_entity_from_csv_like_data.LINIER_X1;
_temp____SAAN_LINES_FOR_NOTES.y1 = line___as_saan_entity_from_csv_like_data.LINIER_Y1;
_temp____SAAN_LINES_FOR_NOTES.z1 = 0;// line___as_saan_entity_from_csv_like_data.LINIER_X1;
_temp____SAAN_LINES_FOR_NOTES.x2 = line___as_saan_entity_from_csv_like_data.LINIER_X2;
_temp____SAAN_LINES_FOR_NOTES.y2 = line___as_saan_entity_from_csv_like_data.LINIER_Y2;
_temp____SAAN_LINES_FOR_NOTES.z2 = 0;// line.EndPoint.Z;
_temp____SAAN_LINES_FOR_NOTES.layer = line___as_saan_entity_from_csv_like_data.PUBLIC_STRING_SAAN___TRACK_NAME_FOUND;
///line.Layer.Name;
/// _temp____SAAN_LINES_FOR_NOTES.length= line.le
///
if (line___as_saan_entity_from_csv_like_data.PUBLIC_LONG_SAAN___LYRIC_FOUND_AT_ABSOLUTE_TIME > 0)
{
_temp____SAAN_LINES_FOR_NOTES.string_lyr_data_found = line___as_saan_entity_from_csv_like_data.PUBLIC_STRING_SAAN___LYRIC_TEXT;
_temp____SAAN_LINES_FOR_NOTES.lyr_long_double__pos_found = line___as_saan_entity_from_csv_like_data.PUBLIC_LONG_SAAN___LYRIC_FOUND_AT_ABSOLUTE_TIME;
}// if(line___as_saan_entity_from_csv_like_data.PUBLIC_LONG_SAAN___LYRIC_FOUND_AT_ABSOLUTE_TIME>0)
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
_temp____SAAN_LINES_FOR_NOTES.recalculate();
___saan_list_of______SAAN_LINES_FOR_NOTES
.Add(_temp____SAAN_LINES_FOR_NOTES);
}// if (line.Layer.Name.ToUpper().Contains("NOTE_"))
}// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
___saan_list_of______SAAN_LINES_FOR_NOTES
=
___saan_list_of______SAAN_LINES_FOR_NOTES
.OrderBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.rightmost_x__of_this_line)
.ThenBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.leftmost_x__of_this_line)
.ThenBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.bottommost_y__of_this_line)
.ThenBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.topmost_y__of_this_line)
.ThenBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.slope)
.ThenBy(SAAN_LINES_FOR_NOTES => SAAN_LINES_FOR_NOTES.length)
.ToList<SAAN_LINES_FOR_NOTES>();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
double FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES = 0;
FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES
=
___saan_list_of______SAAN_LINES_FOR_NOTES
.Last<SAAN_LINES_FOR_NOTES>()
.rightmost_x__of_this_line;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show(
"public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS= "
+ public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS.ToString()
+ "\r\nFINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES= " + FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES.ToString()
);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
/// this.ref System.Windows.Forms.ProgressBar _to_update_progressbar
/// line_Segments_count = entities.OfType<SAANSDXF.Entities.Line>().Count();
line_Segments_count = ___saan_list_of______SAAN_LINES_FOR_NOTES.Count();
this.progressBarFOR_ANIMATIONS_SAVING.Maximum = (int)line_Segments_count;
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
///foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
foreach (SAAN_LINES_FOR_NOTES line___SAAN_LINES_FOR_NOTES in ___saan_list_of______SAAN_LINES_FOR_NOTES)
{
line___SAAN_LINES_FOR_NOTES.recalculate();
if (line___SAAN_LINES_FOR_NOTES.layer.ToUpper().Contains("NOTE_"))
{
line___SAAN_LINES_FOR_NOTES.recalculate();
line_Segments_counter++;
/// this list is necessary to do the analysis of the musical instruments choices for the big kinds of analysis with some other buttons
/// and for several different kinds of generative musics while handling the process of the line segments objects
////___saan_list_of______SAANSDXF_ENTITIES_LINE
//// .Add(line);
//////////////////////////////////////////////////////////////////////////
this.progressBarFOR_ANIMATIONS_SAVING.Value = (int)line_Segments_counter;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
///////////////////////////////////////////////////////////////////////////
//////vertsx = line.StartPoint.X;
//////vertsy = line.StartPoint.Y;
//////vertsz = line.StartPoint.Z;
//////vertex = line.EndPoint.X;
//////vertey = line.EndPoint.Y;
//////vertez = line.EndPoint.Z;
vertsx = line___SAAN_LINES_FOR_NOTES.x1;
vertsy = line___SAAN_LINES_FOR_NOTES.y1;
vertsz = line___SAAN_LINES_FOR_NOTES.z1;
vertex = line___SAAN_LINES_FOR_NOTES.x2;
vertey = line___SAAN_LINES_FOR_NOTES.y2;
vertez = line___SAAN_LINES_FOR_NOTES.z2;
//////////////////////////////////////////////// THESE ARE DONE FOR THE LINIER SYSTEMS OF NOTES //////
___dist_1 = Math.Abs(line___SAAN_LINES_FOR_NOTES.y1);
___dist_2 = Math.Abs(line___SAAN_LINES_FOR_NOTES.y2);
start_side_of_line_segments_frequency = ___dist_1;
final_side_of_line_segments_frequency = ___dist_2;
//////////////////////////////////////////////// THESE ARE DONE FOR THE LINIER SYSTEMS OF NOTES //////
linelength
= arclength
= Math.Sqrt((Math.Pow((vertex - vertsx), 2) + Math.Pow((vertey - vertsy), 2) + Math.Pow((vertez - vertsz), 2)));
totallength = totallength + linelength;
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"\r\nSAANDXF___DXF_LINE_SEGMENTS_"
+ " line_Segments_counter = " + line_Segments_counter
+ " of line_Segments_count = " + line_Segments_count
+ " vertsx = " + vertsx
+ " vertsy = " + vertsy
+ " vertsz = " + vertsz
+ " vertex = " + vertex
+ " vertey = " + vertey
+ " vertez = " + vertez
+ " current lines length = " + line___SAAN_LINES_FOR_NOTES.length.ToString()
+ " current lines slope = " + line___SAAN_LINES_FOR_NOTES.slope.ToString()
+ " linelength=" + linelength
);
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
if (vertsy >= 0 && vertsx > 0)
{
___saan_x_for_angle_calculation = vertsx;
___saan_y_for_angle_calculation = vertsy;
}
else if (vertsy >= 0 && vertsx < 0)
{
___saan_x_for_angle_calculation = (-1) * vertsx;
___saan_y_for_angle_calculation = vertsy;
}
else if (vertsy < 0 && vertsx < 0)
{
___saan_x_for_angle_calculation = (-1) * vertsx;
___saan_y_for_angle_calculation = (-1) * vertsy;
}
else if (vertsy < 0 && vertsx > 0)
{
___saan_x_for_angle_calculation = vertsx;
___saan_y_for_angle_calculation = (-1) * vertsy;
}
else
{
___saan_x_for_angle_calculation = 0.0000001;
___saan_y_for_angle_calculation = vertsy;
}
___degrees_1 = 0;
////// ___degrees_1
////// =
//////// Math.Abs
////// (
////// Math.Atan(Math.Abs(vertsy)/Math.Abs(Math.Max(0.0001,Math.Min(0.00001, vertsx)))
////// )
////// )
////// *360/Math.PI
////// ;
///
___degrees_1
=
// Math.Abs
(
// Math.Atan2(vertsy,vertsx)
Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
)
* 360 / Math.PI
;
//////___degrees_1 = Math.Abs(___degrees_1);
//////if (vertsy >= 0 && vertsx >= 0)
////// {
////// ___degrees_1 = ___degrees_1;
////// }
//////else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___degrees_1 = 180 - ___degrees_1;
////// }
//////else if (vertsy < 0 && vertsx < 0)
////// {
////// ___degrees_1 = 270 - ___degrees_1;
////// }
//////else if (vertsy < 0 && vertsx >= 0)
////// {
////// ___degrees_1 = 360 - ___degrees_1;
////// }
//////else
////// {
////// ___degrees_1 = 60;
////// }
//////___degrees_2 = 0;
//////___degrees_2
////// =
////// // Math.Abs
////// (
////// Math.Atan(Math.Abs(vertey) /Math.Abs( Math.Max(0.0001,Math.Min(0.00001, vertex)))
////// )
////// )
////// *( 360 / Math.PI)
////// ;
////// ___degrees_2
//////=
//////// Math.Abs
//////(
////// Math.Atan2(vertey,vertex)
////// )
////// * 360 / Math.PI
////// ;
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
if (vertey >= 0 && vertex > 0)
{
___saan_x_for_angle_calculation = vertex;
___saan_y_for_angle_calculation = vertey;
}
else if (vertey >= 0 && vertex < 0)
{
___saan_x_for_angle_calculation = (-1) * vertex;
___saan_y_for_angle_calculation = vertey;
}
else if (vertey < 0 && vertex < 0)
{
___saan_x_for_angle_calculation = (-1) * vertex;
___saan_y_for_angle_calculation = (-1) * vertey;
}
else if (vertey < 0 && vertex > 0)
{
___saan_x_for_angle_calculation = vertex;
___saan_y_for_angle_calculation = (-1) * vertey;
}
else
{
___saan_x_for_angle_calculation = 0.0000001;
___saan_y_for_angle_calculation = vertey;
}
////// ___degrees_2
//////=
//////// Math.Abs
//////(
////// // Math.Atan2(vertsy,vertsx)
////// Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
////// )
////// * 360 / Math.PI
////// ;
////// ___degrees_2 = Math.Abs(___degrees_2);
////// if (vertsy >= 0 && vertsx >= 0)
////// {
////// ___degrees_2 = ___degrees_2;
////// }
////// else if (vertsy >= 0 && vertsx < 0)
////// {
////// ___degrees_2 = 180 - ___degrees_2;
////// }
////// else if (vertsy < 0 && vertsx < 0)
////// {
////// ___degrees_2 = 270 - ___degrees_2;
////// }
////// else if (vertsy < 0 && vertsx >= 0)
////// {
////// ___degrees_2 = 360 - ___degrees_2;
////// }
////// else
////// {
////// ___degrees_2 = 60;
////// }
//////long absoluteTime___start = 0;
//////long absoluteTime___final = 0;
////// absoluteTime___start
////// =
////// //////(long)(
////// ////// Math.Min
////// ////// (
////// ////// ___degrees_1, ___degrees_2
////// ////// )
////// ////// *
////// ////// (Math.PI / 180) *
////// ////// // this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
////// ////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// ////// )
////// ///
////// (long)(
////// (
////// (double)line___SAAN_LINES_FOR_NOTES
////// .leftmost_x__of_this_line
////// /
////// (double)FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES
////// )
////// /// * public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
///////// *this.public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480
////// * (double)this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////// )
////// ;
absoluteTime___start
=
(long)
(
(double)(
((double)line___SAAN_LINES_FOR_NOTES.leftmost_x__of_this_line)
/
((double)FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES)
)
* ((double)this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS)
)
;
//////////////if
////////////// (
////////////// Math.Min
////////////// (
////////////// ___degrees_1, ___degrees_2
////////////// )
////////////// == ___degrees_1
////////////// )
////////////// {
////////////// start_side_of_line_segments_angle_with_x_axis
////////////// = ___degrees_1;
////////////// final_side_of_line_segments_angle_with_x_axis
////////////// = ___degrees_2;
////////////// start_side_of_line_segments_frequency = ___dist_1;
////////////// final_side_of_line_segments_frequency = ___dist_2;
////////////// }
////////////////////if
//////////////////// (
//////////////////// Math.Min
//////////////////// (
//////////////////// ___degrees_1, ___degrees_2
//////////////////// )
//////////////////// == ___degrees_1
//////////////////// )
//////if
////// (
////// line___SAAN_LINES_FOR_NOTES.bottommost_y__of_this_line
////// ==
////// line___SAAN_LINES_FOR_NOTES.y1
////// )
////// {
////// start_side_of_line_segments_angle_with_x_axis
////// = ___degrees_1;
////// final_side_of_line_segments_angle_with_x_axis
////// = ___degrees_2;
////// ////// FOR THE LINIER SYSTEMS THESE CALCULATIONS ARE IRRELEVANT
////// start_side_of_line_segments_frequency = line___SAAN_LINES_FOR_NOTES.y1;///////////___dist_1;
////// final_side_of_line_segments_frequency = line___SAAN_LINES_FOR_NOTES.y2; ;// ___dist_2;
////// }
////////////if
//////////// (
//////////// Math.Min
//////////// (
//////////// ___degrees_1, ___degrees_2
//////////// )
//////////// == ___degrees_1
//////////// )
////// ////// FOR THE LINIER SYSTEMS THESE CALCULATIONS ARE IRRELEVANT
////// if
////// (
//////Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_2
////// )
////// {
////// start_side_of_line_segments_angle_with_x_axis
////// = ___degrees_2;
////// final_side_of_line_segments_angle_with_x_axis
////// = ___degrees_1;
////// start_side_of_line_segments_frequency = ___dist_2;
////// final_side_of_line_segments_frequency = ___dist_1;
////// }
//////if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_1
////// )
////// ////// FOR THE LINIER SYSTEMS THESE CALCULATIONS ARE IRRELEVANT
//////if
////// (
////// line___SAAN_LINES_FOR_NOTES.bottommost_y__of_this_line
////// ==
////// line___SAAN_LINES_FOR_NOTES.y2
////// )
////// {
////// start_side_of_line_segments_angle_with_x_axis
////// = ___degrees_2;
////// final_side_of_line_segments_angle_with_x_axis
////// = ___degrees_1;
////// //////start_side_of_line_segments_frequency = ___dist_2;
////// //////final_side_of_line_segments_frequency = ___dist_1;
////// ///
////// ////// FOR THE LINIER SYSTEMS THESE CALCULATIONS ARE IRRELEVANT
////// start_side_of_line_segments_frequency = line___SAAN_LINES_FOR_NOTES.y2;///////////___dist_1;
////// final_side_of_line_segments_frequency = line___SAAN_LINES_FOR_NOTES.y1; ;// ___dist_2;
////// }
////////////if
//////////// (
//////////// Math.Min
//////////// (
//////////// ___degrees_1, ___degrees_2
//////////// )
//////////// == ___degrees_1
//////////// )
////////////// absoluteTime___final
////////////// =
////////////// //////(long)(
////////////// ////// Math.Max
////////////// ////// (
////////////// ////// ___degrees_1, ___degrees_2
////////////// ////// )
////////////// ////// *
////////////// ////// (Math.PI / 180) *
////////////// ////// // this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
////////////// ////// this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////////////// ////// )
////////////// (long) ( (
////////////// (double) line___SAAN_LINES_FOR_NOTES
////////////// .rightmost_x__of_this_line
////////////// /
////////////// (double) FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES
////////////// )
////////////// /// *public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
////////////// ///
////////////// ///* this.public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480
////////////// ///
////////////// *(double) this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
////////////// )
//////////////;
absoluteTime___final
=
(long)
(
(double)(
((double)line___SAAN_LINES_FOR_NOTES.rightmost_x__of_this_line)
/
((double)FINAL_VALUE_OF_X_TO_CALIBRATE_ABSOLUTE_TIMES)
)
* ((double)this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS)
)
;
//////(long)
////// Math.Max
////// (
////// ___degrees_1, ___degrees_2
////// )
////// *
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// ;
////// will do after some times
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// ( ( absoluteTime___start + absoluteTime___final)/2)
////// ),
////// //TrackNumber
////// 0
////// );
////// will do after some times
// ++absoluteTime;
//////collection.AddEvent
//////(
////// new SAANAUDS.Midi.TempoEvent
//////(
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// /// absoluteTime
////// absoluteTime___start
////// ),
////// // TrackNumber
////// 0
////// );
////////////////////////////////////////////////
___dist_1
=
//////Math.Sqrt
//////(
//////(line.StartPoint.X * line.StartPoint.X)
//////+
////// (line.StartPoint.Y * line.StartPoint.Y)
////// )
///line___SAAN_LINES_FOR_NOTES.bottommost_y__of_this_line;
line___SAAN_LINES_FOR_NOTES.y1;
;
___dist_2
=
//////Math.Sqrt
//////(
//////(line.EndPoint.X * line.EndPoint.X)
//////+
////// (line.EndPoint.Y * line.EndPoint.Y)
////// )
/// line___SAAN_LINES_FOR_NOTES.topmost_y__of_this_line
line___SAAN_LINES_FOR_NOTES.y2;
;
freq_found_from_the_nearest
=
Math.Min
(
___dist_1, ___dist_2
);
freq_found_from_the_furthest
=
Math.Max
(
___dist_1, ___dist_2
);
////// dxf_fresh.AddEntityToDocument(line,false);
// Add lines to the model space
// dxf_fresh.AddEntity(line1);
// dxf_fresh.AddEntity(line2);
// dxf_fresh
// Save the DXF file
//dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
////////////////////tooooo important ///////////////////////////
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
___distance_of_current_line_segment_min_out_of_two = 0;
___distance_of_current_line_segment_max_out_of_two = 0;
___distance_of_current_line_segment_min_out_of_two
=
freq_found_from_the_nearest;
___distance_of_current_line_segment_max_out_of_two
=
freq_found_from_the_furthest;
note_number_found_from_the_nearest_frequency_Hertz = 0;
note_number_found_from_the_furthest_frequency_Hertz = 0;
note_name_found_from_the_nearest_frequency_Hertz = "";
note_name_found_from_the_furthest_frequency_Hertz = "";
/// calling conventions
/// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
note_number_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_int_get_note_number_from_frequency_Hertz
(
freq_found_from_the_nearest
);
note_name_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_nearest
);
note_number_found_from_the_furthest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_int_get_note_number_from_frequency_Hertz
(
freq_found_from_the_furthest
);
note_name_found_from_the_furthest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_furthest
);
////////note_number_found_from_the_nearest_frequency_Hertz
//////if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_nearest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
//note_number_found_from_the_nearest_frequency_Hertz
if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 127)
{
note_number_found_from_the_nearest_frequency_Hertz = 69;
}//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
// long NoteDuration = 0;
////////note_number_found_from_the_furthest_frequency_Hertz
//////if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_furthest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
//note_number_found_from_the_furthest_frequency_Hertz
if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 127)
{
note_number_found_from_the_furthest_frequency_Hertz = 69;
}//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
// long NoteDuration = 0;
/////////////////////////////////////////////////////////
///
NoteDuration
=
Math.Abs(
Math.Max(
Math.Abs(absoluteTime___final)
,
Math.Abs(absoluteTime___start)
)
-
Math.Abs(
Math.Min(
Math.Abs(absoluteTime___final)
,
Math.Abs(absoluteTime___start)
)
)
)
;
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
///
/// double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
slope_in_linear_time
=
Math.Atan2
((double)(freq_found_from_the_furthest - freq_found_from_the_nearest), (double)NoteDuration);
slope_in_linear_time
= slope_in_linear_time * 360 / Math.PI;/// taken 10 times the angles
slope_in_linear_time
= slope_in_linear_time * 100;
TrackNumber
=
///too slow ((int)slope_in_linear_time);//i want the raw data for different slopes integer values % 16;
((int)slope_in_linear_time) % 16;
TrackNumber = Math.Min(TrackNumber, 3);
ChannelNumber
= TrackNumber;
////// upto 18102020plusplusplus this was there to get a safe side data
///and i was getting too much of cleronets for long notes
//////patchNumber
////// =
////// TrackNumber;
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
if (
//((double)Math.Abs(absoluteTime___final - absoluteTime___start))
((double)NoteDuration)
<=
this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE)
{
patchNumber
=
SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
((int)slope_in_linear_time)
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
else
{
patchNumber
=
SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
((int)slope_in_linear_time)
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
///////// end of else case
///////// if(((double)Math.Abs(absoluteTime___final - absoluteTime___start))
////// <=
////// public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE )
////// for references variable names
////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////////////////////= new List<double>();
////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////////////////////.Clear();
if (public_list_of_6_digit_double_precission_unique_slopes_found
.Contains(Math.Round(slope_in_linear_time, 6)))
{
}
else
{
public_list_of_6_digit_double_precission_unique_slopes_found
.Add
(
Math.Round(slope_in_linear_time, 6)
);
}
//////if (public_list_of_6_digit_double_precission_unique_slopes_found
////// .Contains(Math.Round(slope_in_linear_time, 6)))
/////////////////////////////////////////////////////////////////////////
if (ChannelNumber >= 15)
{
ChannelNumber = 9;
TrackNumber = 9;
/// patchNumber = 26;/// upto 18102020plusplusplus this was there
}//if(ChannelNumber>=15)
if (ChannelNumber <= 0)
{
ChannelNumber = 6;
TrackNumber = 6;
/// patchNumber = 41;/// upto 18102020plusplusplus this was there
}//if (ChannelNumber <=0)
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
if (line___SAAN_LINES_FOR_NOTES.layer.ToUpper().Contains("NOTE_"))
{
if (line___SAAN_LINES_FOR_NOTES.layer.Contains("_"))
{
string[] ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
=
line___SAAN_LINES_FOR_NOTES.layer.ToUpper().Split
(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries);
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length > 1)
{
try
{
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted[0] == "NOTE")
{
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length == 5)
{
////// patchNumber
////// = Convert.ToInt16
//////(
////// ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length - 1]
////// );
///
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
/// ChannelNumber = 6;
/// TrackNumber = 6;
///
if (
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[1].TrimEnd().TrimStart().Trim()
.Length > 0
)
{
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[1].TrimEnd().TrimStart().Trim() != "0"
)
{
TrackNumber
= Convert.ToInt16
(
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[1].TrimEnd().TrimStart().Trim()
);
}
//////if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [1].TrimEnd().TrimStart().Trim() != "0"
////// )
}
//////if (
////// ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [1].TrimEnd().TrimStart().Trim()
////// .Length > 0
////// )
///
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
if (
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[2].TrimEnd().TrimStart().Trim()
.Length > 0
)
{
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[2].TrimEnd().TrimStart().Trim() != "0"
)
{
ChannelNumber
= Convert.ToInt16
(
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[2].TrimEnd().TrimStart().Trim()
);
}
//////if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [2].TrimEnd().TrimStart().Trim() != "0"
////// )
///
}
//////if (
////// ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [2].TrimEnd().TrimStart().Trim()
////// .Length > 0
////// )
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
if (
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3 + 1].TrimEnd().TrimStart().Trim()
.Length > 0
)
{
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3 + 1].TrimEnd().TrimStart().Trim() != "0"
)
{
NoteVelocity
= Convert.ToInt16
(
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3 + 1].TrimEnd().TrimStart().Trim()
);
}
//////if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [3 + 1].TrimEnd().TrimStart().Trim() != "0"
////// )
}
//////if (
////// ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [3 + 1].TrimEnd().TrimStart().Trim()
////// .Length > 0
////// )
///
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
if (
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3].TrimEnd().TrimStart().Trim()
.Length > 0
)
{
if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3].TrimEnd().TrimStart().Trim() != "0"
)
{
patchNumber
= Convert.ToInt16
(
___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
[3].TrimEnd().TrimStart().Trim()
);
/// end of if for non zero checks for patch numbers
}
{
///else cases where the patch number is zero
///
if (NoteDuration > 0)
{
if (
//((double)Math.Abs(absoluteTime___final - absoluteTime___start))
((double)NoteDuration)
<=
this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE)
{
patchNumber
=
SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
///////////////////////////////// here the max is taken
((int)(Math.Max(slope_in_linear_time * NoteVelocity, NoteDuration * NoteVelocity)))
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
else
{
patchNumber
=
SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
///////////////////////////////// here the min is taken
((int)(Math.Min(slope_in_linear_time * NoteVelocity, NoteDuration * NoteVelocity)))
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
///////// end of else case
///////// if(((double)Math.Abs(absoluteTime___final - absoluteTime___start))
////// <=
////// public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE )
}// if (NoteDuration > 0)
}
//////if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [3].TrimEnd().TrimStart().Trim() != "0"
////// )
}
//////if (
////// ___splitted_array_of_NOTE_track_channel_patch___underscore_plitted
////// [3].TrimEnd().TrimStart().Trim()
////// .Length > 0
////// )
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
//if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length ==5)
}
else
{
//start of //if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length ==5)
System.Windows.Forms.MessageBox.Show("LAYERS\r\n NOT \r\n have 3+2 \r\n columns \r\n after \r\n splitting \r\n with \r\n _ \r\n data ");
}//end of else of if (___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length ==5)
}// if(___splitted_array_of_NOTE_track_channel_patch___underscore_plitted[0]=="NOTE")
}
catch (Exception _excp_to_get_patch_number)
{
/// patchNumber from the slope
}//catch (Exception _excp_to_get_patch_number)
}//if(___splitted_array_of_NOTE_track_channel_patch___underscore_plitted.Length>1)
}//if(line___SAAN_LINES_FOR_NOTES.layer.Contains("_"))
}// if (line___SAAN_LINES_FOR_NOTES.layer.ToUpper().Contains("NOTE_"))
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
///////////////////////// all previous patch numbers are overridden if these data are found //////
collection.AddEvent(
new
SAANAUDS.Midi.PatchChangeEvent
(
///saan puts this here
absoluteTime___start
,
ChannelNumber
, patchNumber
)
, TrackNumber
);
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
////// /////////////////////////////// interesting styles ////////////////////
////// ///
////// collection
////// .AddEvent
//////(
//////new SAANAUDS.Midi.TextEvent
//////(
//////"SanjoyNathGeometrifyingTrigonometry(C)"
//////,
//////SAANAUDS.Midi.MetaEventType.Copyright
//////,
//////// absoluteTime
//////(long)(absoluteTime___start)
//////),
////////TrackNumber
//////// 0
//////TrackNumber
//////);
////// ////////////////////////////////////////////////////////////////////////////////
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.Append
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_nearest_frequency_Hertz = " + note_number_found_from_the_nearest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
);
//////if ((absoluteTime___final - absoluteTime___start) > 1000)
////// {
////// ////////////////////// new things adding
////// ////// will do after some times
////// collection
////// .AddEvent
////// (
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// (long)((absoluteTime___start + (absoluteTime___final - absoluteTime___start) / 6))
////// ),
////// //TrackNumber
////// 0
////// );
////// }//if((absoluteTime___final - absoluteTime___start)>1000)
//////this.string_lyr_data_found = "";
//////this.lyr_long_double__pos_found = 0;
if (line___SAAN_LINES_FOR_NOTES.lyr_long_double__pos_found > 0)
{
if (line___SAAN_LINES_FOR_NOTES.string_lyr_data_found.TrimEnd().TrimStart().Trim().Length > 0)
{
// if ((absoluteTime___final - absoluteTime___start) > 1000)
// {
////////////////////// new things adding
////// will do after some times
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
// "Note Stream LYRICS"
line___SAAN_LINES_FOR_NOTES.string_lyr_data_found
,
SAANAUDS.Midi.MetaEventType.TextEvent
,
// absoluteTime
// (long)((absoluteTime___start + (absoluteTime___final - absoluteTime___start) / 6))
(long)line___SAAN_LINES_FOR_NOTES.lyr_long_double__pos_found
),
//TrackNumber
0
);
// }//if((absoluteTime___final - absoluteTime___start)>1000)
}// if (line___SAAN_LINES_FOR_NOTES.string_lyr_data_found.TrimEnd().TrimStart().Trim().Length>0)
}// if (line___SAAN_LINES_FOR_NOTES.lyr_long_double__pos_found>0)
/////////////////////////////////////////////////////////
collection.AddEvent
(
new SAANAUDS.Midi.NoteOnEvent
(
////// absoluteTime
absoluteTime___start
,
ChannelNumber
,
// note.MidiValue
note_number_found_from_the_nearest_frequency_Hertz
,
NoteVelocity
,
(int)Math.Min(NoteDuration, 1)
)
,
TrackNumber
);
/////////////////////////////////////////////////////////
//////absoluteTime___final
////// = Math.Min(30, absoluteTime___final);
if (start_side_of_line_segments_frequency < final_side_of_line_segments_frequency)
{
//////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
{
delta_pitch = (final_side_of_line_segments_frequency - start_side_of_line_segments_frequency) / 60;
for (int rrr = 0; rrr < 60; rrr++)
{
collection.AddEvent
(
new
SAANAUDS.Midi.PitchWheelChangeEvent
(
(long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
,
ChannelNumber
,
/// Math.Min(16368, (int)(start_side_of_line_segments_frequency +(delta_pitch * (final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency)) * 8192))
Math.Max(16368, (int)(8190 + (rrr * delta_pitch)))
)
, TrackNumber
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.Append
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
+ " rrr= " + rrr
+ " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
+ " pitch bent value = " + Math.Max(16368, (int)(8190 + rrr * delta_pitch))
);
//delta_pitch
}// for(int rrr=0;rrr<60;rrr++)
}
//////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
}// if(start_side_of_line_segments_frequency< final_side_of_line_segments_frequency)
if (start_side_of_line_segments_frequency > final_side_of_line_segments_frequency)
{
//////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
{
delta_pitch = (start_side_of_line_segments_frequency - final_side_of_line_segments_frequency) / 60;
for (int rrr = 0; rrr < 60; rrr++)
{
collection.AddEvent
(
new
SAANAUDS.Midi.PitchWheelChangeEvent
(
(long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
,
ChannelNumber
,
/// (int)((1-(delta_pitch / start_side_of_line_segments_frequency)) * 8192)
///
// (int)(delta_pitch *(final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency) * 8192)
Math.Max(6, (int)(8190 - rrr * delta_pitch))
)
, TrackNumber
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
+ " rrr= " + rrr
+ " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
+ " pitch bent value = " + Math.Max(6, (int)(8190 - rrr * delta_pitch))
);
//delta_pitch
}// for(int rrr=0;rrr<60;rrr++)
}
//////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
}// if(start_side_of_line_segments_frequency> final_side_of_line_segments_frequency)
collection.AddEvent
(
new
SAANAUDS.Midi.NoteEvent
(
/// absoluteTime + NoteDuration
absoluteTime___final
,
ChannelNumber
,
SAANAUDS.Midi
.MidiCommandCode
.NoteOff
,
// note.MidiValue
note_number_found_from_the_nearest_frequency_Hertz
,
0
////// note off has the velocity zero
),
TrackNumber
);
// absoluteTime += SpaceBetweenNotes;
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
public_list_of_long_type_note_durations
.Add
(
(absoluteTime___final - absoluteTime___start)
);
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////// THIS IS FOR THE LINEAR NOTES SYSTEMS
}//if(line.Layer.Name.ToUpper().Contains("NOTE_"))
}// foreach (SAAN_LINES_FOR_NOTES line___SAAN_LINES_FOR_NOTES in ___saan_list_of______SAAN_LINES_FOR_NOTES)
// foreach (SAANSDXF.Entities.Line line in ___saan_list_of______SAANSDXF_ENTITIES_LINE)
//////////////public List<double> public_list_of_6_digit_double_precission_unique_slopes_found = null;
//////////////public List<long> public_list_of_long_type_note_durations = null;
string fileName_for_midi_from_the_dxf = "";
fileName_for_midi_from_the_dxf
=
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
+ "_BPM=" + this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
+ "_TPQN=" + this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
+ "_TS=" + this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.ToString()
+ "_" + this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.ToString()
+ "_totslps=" + this.public_list_of_6_digit_double_precission_unique_slopes_found.Count.ToString()
+ "_tot_notes=" + this.public_list_of_long_type_note_durations.Count.ToString()
+ ".mid";
//////System.IO.File.WriteAllText
////// (
////// fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// ,
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .ToString()
////// );
//////System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
//////System.Windows.Forms.MessageBox.Show(" MIDI files collection.PrepareForExport(); starts");
/////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
/////////caution caution caution we will add these later
//////collection.PrepareForExport();
/////////caution caution caution we will add these later MidiFile.Export(fileName, collection);
/////////
///////// caution caution caution we will add these later
/////////
//////System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
////////public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
///////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
//////SAANAUDS.Midi.MidiFile.Export
////// (
////// fileName_for_midi_from_the_dxf
////// , collection
////// );
//////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////
System.Windows.Forms.MessageBox.Show("all entities in SAANOWNCSVLINIERSCALEDDXFFORMIDI reading done\r\n\r\n\r\n SO MIDI files collection.PrepareForExport(); starts");
///caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
///caution caution caution we will add these later
collection.PrepareForExport();
///caution caution caution we will add these later MidiFile.Export(fileName, collection);
///
/// caution caution caution we will add these later
///
System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
//public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
/// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
SAANAUDS.Midi.MidiFile.Export
(
fileName_for_midi_from_the_dxf
, collection
);
////////////////////////////////////////////////////////////////////////////////////////////////////
///
totallength = Math.Round(totallength * roundamount, 0) / roundamount;
string tempstring = "Total length of entities in SAANOWNCSVLINIERSCALEDDXFFORMIDI = " + totallength.ToString();
////////////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
System.Windows.Forms.MessageBox.Show("starting writing log files at " + fileName_for_midi_from_the_dxf + "_strbldr_log_data_linier.txt");
System.IO.File.WriteAllText
(
fileName_for_midi_from_the_dxf + "_strbldr_log_data_linier.txt"
,
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.ToString()
);
//////System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
System.Windows.Forms.MessageBox.Show("text logs saving Done" + fileName_for_midi_from_the_dxf + "_strbldr_log_data_linier.txt");
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
///while writing THE MIDI FILE FIRST WE NEED TO READ THE DXF FILE FOR THE LINE SEGMENTS //////
///AND THEN CALCULATING THE TOTAL DURATIONS AND THEN PUTTING THE WHOLE RECALCULATIONS DONE FIRST
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
=
new List<double>();
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Sort();
//////double large_radius_to_use_for_gridding =
////// ___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
////// *
////// ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
////// + 3000;
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
/// and while writing the midi files first we will prepare track zero events for lyrics and the copyrights
/// where we will put the data for these things there from the dxf line segments data as read there
///
foreach (
double six_digit_radian_in_list
in
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
)
{
double six_digit_radian
= 0;
// in previous loop we have already found this
/// ___temp_total_length___of_the_song
///
six_digit_radian = Math.Round(six_digit_radian_in_list, 6);
string ___GRIDS_TIMES_TEXT_DATA = "";
//////___GRIDS_TIMES_TEXT_DATA
////// =
////// (System.Math.Round(___temp_total_length___of_the_song * six_digit_radian, 0)).ToString();
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//////double ___temp_x1_for_grids_end
////// = large_radius_to_use_for_gridding * System.Math.Cos(six_digit_radian);
//////double ___temp_y1_for_grids_end
////// = large_radius_to_use_for_gridding * System.Math.Sin(six_digit_radian);
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_circle_WITH_BLOCK_LEVEL_COLOR
////// (0, 0, 0,
////// large_radius_to_use_for_gridding, "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// );
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
////// (
////// 0, 0, -600000,
////// ___temp_x1_for_grids_end
////// ,
////// ___temp_y1_for_grids_end
////// ,
////// -600000,
////// "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// );
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_text_ON_TOP_VIEW_WITH_BLOCK_LEVEL_COLOR
////// (
////// ___temp_x1_for_grids_end
////// ,
////// ___temp_y1_for_grids_end
////// ,
////// -600000, 0, 60,
////// "LAYER_GRIDS_CIRCLE",
////// ___GRIDS_TIMES_TEXT_DATA
////// ,
////// "XDATA", 6
////// );
}
//////foreach (
//////double six_digit_radian_in_list
//////in
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
//////.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
//////)
//////textBox2.Text = tempstring;
//////textBox2.Refresh();`
/////////// great https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
//////foreach (Layout layout in SAAN_dxf.Layouts)
////// {
////// List<DxfObjectReference> entities = SAAN_dxf.Layouts.GetReferences(layout);
////// foreach (DxfObjectReference o__dxfobjectreference_entity in entities)
////// {
////// EntityObject entity = o__dxfobjectreference_entity as EntityObject;
////// }//foreach (DxfObject o in entities)
////// }// foreach (Layout layout in SAAN_dxf.Layouts)
//////// foreach (var entity in SAAN_dxf.Entities)
//////foreach (var entity in SAAN_dxf)
////// {
////// if (entity is Circle)
////// {
////// // Handle Circle entity
////// Circle circle = (Circle)entity;
////// DrawCircle(g, circle);
////// }
////// else if (entity is Line)
////// {
////// // Handle Line entity
////// Line line = (Line)entity;
////// DrawLine(g, line);
////// }//if (entity is Circle)
////// // Add more conditions to handle other entities (e.g., Arc, Text, etc.)
////// }//foreach (EntityObject entity in dxf.Modelspace)
//////// Specify the path to your CSV file
//////string csvFilePath = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// + "chkers.csv";// ;// "d:\\chkers.csv";
//////// Load CSV data
//////string[] csvLines = System.IO.File.ReadAllLines(csvFilePath);
// Parse CSV data and extract information
// You'll need to implement your own logic to extract tempo, time signature, key signature, and channel-wise data.
//////// Create a new MIDI file
//////SAANAUDS.Midi.MidiFile midiFile = new SAANAUDS.Midi.MidiFile(csvFilePath+"_new.mid");
//////// Set tempo (example value, replace with your own)
//////// midiFile.DeltaTicksPerQuarterNote = 960;
//////midiFile.DeltaTicksPerQuarterNote = 960;
/// SAANAUDS.Midi.MidiEvent tempoEvent = new SAANAUDS.Midi.TempoEvent(500000); // Tempo in microseconds per quarter note (e.g., 500,000 for 120 BPM)
// Create a new MIDI track for your data
// SAANAUDS.Midi.MidiTrack track = new SAANAUDS.Midi.MidiTrack();
/// SAANAUDS.Midi. track = new SAANAUDS.Midi.MidiTrack();
/// midiFile.Tracks.Add(track);
/////////////// we cannot prepare the midi file object to save the midi file
///instead we need to prepare MidiEventCollection and then need to save that to file through
///static method of the MidiFile
///
// Add tempo event
/// track.AddEvent(tempoEvent);
///
///refer F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL
///\excelformulaparser
///\DOING_GT06012020plus
///\DSMSETS_ANI_DNGIFGTTODOINOFFICE
///\ExcelFormulaParserSample\SAANAUDS\SAANAUDS_CHECKING_SimpleMidiFileWriter.cs
///
/////// SAANAUDS.Midi.MidiEventCollection ___saanauds_midieventscollection = new SAANAUDS.Midi.MidiEventCollection();
//////// Add your note events and pitch bend events to the track
//////foreach (string line in csvLines)
////// {
////// string[] parts = line.Split(',');
////// if (parts.Length >= 5)
////// {
////// int channel = int.Parse(parts[1]);
////// int noteNumber = int.Parse(parts[2]);
////// int velocity = int.Parse(parts[3]);
////// long absoluteTime = long.Parse(parts[4]);
////// // Create note on and note off events, and pitch bend events
////// var noteOn = new NoteOnEvent(absoluteTime, channel, noteNumber, velocity);
////// var noteOff = new NoteEvent(absoluteTime + 1000, channel, MidiCommandCode.NoteOff, noteNumber, velocity);
////// var pitchBend = new PitchBendEvent(absoluteTime, channel, 8192); // Example pitch bend value
////// // Add events to the track
////// track.AddEvent(noteOn);
////// track.AddEvent(noteOff);
////// track.AddEvent(pitchBend);
////// }
////// }
//////// Save the MIDI file
//////string outputFile = "output.mid";
//////midiFile.Save(outputFile);
}
//if if(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.EndsWith("SAANOWNCSVLINIERSCALEDDXFFORMID"))
{
System.Windows.Forms.MessageBox.Show("Reads only SAANOWNCSVLINIERSCALEDDXFFORMID");
}//else case of if(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.EndsWith("SAANOWNCSVLINIERSCALEDDXFFORMID"))
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.finalizer_dxf_for_sbuilder_for_dxf();
System.IO.File.WriteAllText
(
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
+ ".dxf"
,
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.sbuilder_for_dxf
.ToString()
);
}
catch (Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
{
System.Windows.Forms.MessageBox.Show
("_excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX" + _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.Message + "\r\n\r\n\r\n"
+ _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.StackTrace.ToString()
);
}//catch(Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
}// private void button_generate_mifi_dxf_from___SAANOWNCSVLINIERSCALEDDXFFORMIDI_Click(object sender, EventArgs e)
private void button_PLAY_PRELISTEN_GENERATED_FILES_MIDI_Click(object sender, EventArgs e)
{
//////SAAN_FRESH_MIDSLCSMIDI.MidiStream _play___able_SAAN_FRESH_MIDSLCSMIDI_MidiStream;
//////SAAN_FRESH_MIDSLCSMIDI.MidiFile _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile;
//////SAAN_FRESH_MIDSLCSMIDI.MidiFile _processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile;
try
{
SAAN_FRESH_MIDSLCSMIDI_mididevices_0_devs = SAAN_FRESH_MIDSLCSMIDI.MidiDevice.Outputs[0];
if (SAAN_FRESH_MIDSLCSMIDI_mididevices_0_devs != null)
{
/// _play = (OutputComboBox.SelectedItem as MidiOutputDevice).Stream;
SAAN_FRESH_MIDSLCSMIDI.MidiOutputDevice outputDevice = (((SAAN_FRESH_MIDSLCSMIDI.MidiOutputDevice)SAAN_FRESH_MIDSLCSMIDI_mididevices_0_devs) as SAAN_FRESH_MIDSLCSMIDI.MidiOutputDevice);
_play___able_SAAN_FRESH_MIDSLCSMIDI_MidiStream = outputDevice.Stream;
string _tracksLabelFormat;
//////bool _dirty=true;
//////bool _reseekDirty=true;
//////bool _dirty = false;
//////bool _reseekDirty = false;
bool _dirty = true;
bool _reseekDirty = true;
//yes tested System.Windows.Forms.MessageBox.Show("MidiDevice SAAN_FRESH_MIDSLCSMIDI_mididevices_0_devs[0] name = " + SAAN_FRESH_MIDSLCSMIDI_mididevices_0_devs.Name.ToString());
if ("Stop" == this.button_PLAY_PRELISTEN_GENERATED_FILES_MIDI.Text)
{
if (null != _play___able_SAAN_FRESH_MIDSLCSMIDI_MidiStream)
{
_play___able_SAAN_FRESH_MIDSLCSMIDI_MidiStream.Close();
}
//////MidiFileBox.Enabled = true;
//////BrowseButton.Enabled = true;
//////OutputComboBox.Enabled = true;
//////PreviewButton.Text = "Preview";
this.button_PLAY_PRELISTEN_GENERATED_FILES_MIDI.Text = "PLAYMIDI";
return;
}// if ("Stop" == this.button_PLAY_PRELISTEN_GENERATED_FILES_MIDI.Text)
if (null != _play___able_SAAN_FRESH_MIDSLCSMIDI_MidiStream)
{
_play___able_SAAN_FRESH_MIDSLCSMIDI_MidiStream.Close();
}
//////MidiFileBox.Enabled = false;
//////BrowseButton.Enabled = false;
//////OutputComboBox.Enabled = false;
///PreviewButton.Text = "Preview";
this.button_PLAY_PRELISTEN_GENERATED_FILES_MIDI.Text = "Stop";
if (_dirty)
{
_processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile = _ProcessFile();
}
// var
SAAN_FRESH_MIDSLCSMIDI.MidiFile mf = _processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile;
if (mf != null)
{
if (mf.Tracks.Count > 0)
{
////// _play = (OutputComboBox.SelectedItem as SAAN_FRESH_MIDSLCSMIDI.MidiOutputDevice).Stream;
SAAN_FRESH_MIDSLCSMIDI.MidiStream stm = _play___able_SAAN_FRESH_MIDSLCSMIDI_MidiStream;
// we use 100 events, which should be safe and allow
// for some measure of SYSEX messages in the stream
// without bypassing the 64kb limit
const int MAX_EVENT_COUNT = 100;
const int RATE_TICKS = 500;
// our current cursor pos
var pos = 0;
// for tracking deltas
var ofs = 0;
// for tracking the song position
var songPos = 0;
// merge our file for playback
var seq = SAAN_FRESH_MIDSLCSMIDI.MidiSequence.Merge(mf.Tracks);
var events = seq.Events;
// the number of events in the seq
var len = events.Count;
// stores the next set of events
var eventList = new List<SAAN_FRESH_MIDSLCSMIDI.MidiEvent>(MAX_EVENT_COUNT);
// open the stream
stm.Open();
// start it
stm.Start();
// first set the timebase
stm.TimeBase = mf.TimeBase;
// set up our send complete handler
stm.SendComplete += delegate (object s, EventArgs ea)
{
try
{
BeginInvoke(new Action(delegate ()
{
// clear the list
eventList.Clear();
mf = _processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile;
if (_dirty)
{
if (_reseekDirty)
{
var time = _processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile.Tracks[0].GetContext(songPos, _processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile.TimeBase).Time;
_processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile = _ProcessFile();
songPos = _processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile.Tracks[0].GetPositionAtTime(time, _processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile.TimeBase);
mf = _processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile;
seq = SAAN_FRESH_MIDSLCSMIDI.MidiSequence.Merge(mf.Tracks);
events = new List<SAAN_FRESH_MIDSLCSMIDI.MidiEvent>(seq.GetNextEventsAtPosition(songPos, true));
len = events.Count;
pos = 0;
}
else
{
_processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile = _ProcessFile();
mf = _processedFile___SAAN_FRESH_MIDSLCSMIDI_MidiFile;
seq = SAAN_FRESH_MIDSLCSMIDI.MidiSequence.Merge(mf.Tracks);
events = seq.Events;
}
/// Visualizer.Sequence = seq;
/// Visualizer.Width = Math.Max(VisualizerPanel.Width, Visualizer.Sequence.Length / 4);
}// if (_dirty)
ofs = 0;
len = events.Count;
// iterate through the next events
var next = pos + MAX_EVENT_COUNT;
for (; pos < next && ofs <= RATE_TICKS; ++pos)
{
// if it's past the end, loop it
if (len <= pos)
{
pos = 0;
songPos = 0;
events = seq.Events;
break;
}// if (len <= pos)
var ev = events[pos];
ofs += ev.Position;
songPos += pos;
if (ev.Position < RATE_TICKS && RATE_TICKS < ofs)
{
break;
}
// otherwise add the next event
eventList.Add(ev);
}
// send the list of events
if (SAAN_FRESH_MIDSLCSMIDI.MidiStreamState.Closed != stm.State && 0 != eventList.Count)
{
this.button_PLAY_PRELISTEN_GENERATED_FILES_MIDI.Text = "STOP_" + eventList.Count.ToString();
stm.SendDirect(eventList);
}
}));
}
catch { }
};
// add the first events
for (pos = 0; pos < MAX_EVENT_COUNT && ofs <= RATE_TICKS; ++pos)
{
// if it's past the end, loop it
if (len <= pos)
{
pos = 0;
songPos = 0;
events = seq.Events;
break;
}// if (len <= pos)
var ev = events[pos];
ofs += ev.Position;
if (ev.Position < RATE_TICKS && RATE_TICKS < ofs)
{
break;
}/// if (ev.Position < RATE_TICKS && RATE_TICKS < ofs)
// otherwise add the next event
eventList.Add(ev);
}// for (pos = 0; pos < MAX_EVENT_COUNT && ofs <= RATE_TICKS; ++pos)
// send the list of events
if (0 != eventList.Count)
{
this.button_PLAY_PRELISTEN_GENERATED_FILES_MIDI.Text = "STOP_" + eventList.Count.ToString();
stm.SendDirect(eventList);
}//if (0 != eventList.Count)
}//if(mf.Tracks.Count>0)
}// if(mf!=null)
}//if(SAAN_FRESH_MIDSLCSMIDI_mididevices_0_devs!=null)
}
catch (Exception ___temp_excp_create_midi_streams_and_to_play)
{
this.button_PLAY_PRELISTEN_GENERATED_FILES_MIDI.Text = "PLAYMIDI";
System.Windows.Forms.MessageBox.Show("(only when there is the exceptions we show this infos ) MidiDevice SAAN_FRESH_MIDSLCSMIDI_mididevices_0_devs[0] name = " + SAAN_FRESH_MIDSLCSMIDI_mididevices_0_devs.Name.ToString());
System.Windows.Forms.MessageBox.Show("___temp_excp_create_midi_streams_and_to_play " + ___temp_excp_create_midi_streams_and_to_play.Message + "\r\n\r\n\r\n" + ___temp_excp_create_midi_streams_and_to_play.StackTrace.ToString());
}//catch(Exception ___temp_excp_create_midi_streams_and_to_play)
}//private void button_PLAY_PRELISTEN_GENERATED_FILES_MIDI_Click(object sender, EventArgs e)
//trying with new Class_SAAN_IMAGE_LIST_TO_ANIMATED_GIF.public_static_list_of_______BITMAP______POPULATED_FROM_THE_SAVE_CONTROL_IMAGES.Add(bmp);
SAAN_FRESH_MIDSLCSMIDI.MidiFile _ProcessFile()
{
// first we clone the file to be safe
// that way in case there's no modifications
// specified in the UI we'll still return
// a copy.
SAAN_FRESH_MIDSLCSMIDI.MidiFile result = _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.Clone();
if (_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile != null)
{
//end of if(_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile!=null)
// transpose it if specified
//////if (0 != TransposeUpDown.Value)
////// {
////// result = result.Transpose((sbyte)TransposeUpDown.Value, WrapCheckBox.Checked, !DrumsCheckBox.Checked);
////// }
// resample if specified
//////if (ResampleUpDown.Value != _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.TimeBase)
////// { result = result.Resample(unchecked((short)ResampleUpDown.Value)); }
// compute our offset and length in ticks or beats/quarter-notes
//////var ofs = OffsetUpDown.Value;
//////var len = LengthUpDown.Value;
///
///
decimal ofs___FirstDownBeat = 0;// OffsetUpDown.Value;
decimal ofs___FirstNoteOn = 0;// OffsetUpDown.Value;
decimal len = 0;// LengthUpDown.Value;
///////////////////////////// saan need these calculations so saan has taken this
//////private void UnitsCombo_SelectedIndexChanged(object sender, EventArgs e)
////// {
/// OffsetUpDown.Value = 0;
decimal OFFSET_IN_THE_BEATS_VALUE_FOUND___DECIMAL = 0;
decimal OFFSET_IN_THE_TICKS_VALUE_FOUND___DECIMAL = 0;
decimal LENGTH_IN_THE_BEATS_VALUE_FOUND___DECIMAL = 0;
decimal LENGTH_IN_THE_TICKS_VALUE_FOUND___DECIMAL = 0;
if (null != _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile) // sanity
{
//////if (0 == UnitsCombo.SelectedIndex) // beats
////// {
//////LengthUpDown.Maximum = Math.Ceiling(_file.Length / (decimal)_file.TimeBase);
//////OffsetUpDown.Maximum = LengthUpDown.Maximum - 1;
LENGTH_IN_THE_BEATS_VALUE_FOUND___DECIMAL = Math.Ceiling(_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.Length / (decimal)_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.TimeBase);
OFFSET_IN_THE_BEATS_VALUE_FOUND___DECIMAL = LENGTH_IN_THE_BEATS_VALUE_FOUND___DECIMAL - 1;
_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile
.LENGTH_IN_THE_BEATS_VALUE_FOUND___DECIMAL
=
LENGTH_IN_THE_BEATS_VALUE_FOUND___DECIMAL;
_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile
.OFFSET_IN_THE_BEATS_VALUE_FOUND___DECIMAL
=
OFFSET_IN_THE_BEATS_VALUE_FOUND___DECIMAL;
////// }
//////else // ticks
////// {
//////LengthUpDown.Maximum = _file.Length;
//////OffsetUpDown.Maximum = LengthUpDown.Maximum - 1;
LENGTH_IN_THE_TICKS_VALUE_FOUND___DECIMAL = _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.Length;
OFFSET_IN_THE_TICKS_VALUE_FOUND___DECIMAL = LENGTH_IN_THE_TICKS_VALUE_FOUND___DECIMAL - 1;
_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile
.LENGTH_IN_THE_TICKS_VALUE_FOUND___DECIMAL
=
LENGTH_IN_THE_TICKS_VALUE_FOUND___DECIMAL;
_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile
.OFFSET_IN_THE_TICKS_VALUE_FOUND___DECIMAL
=
OFFSET_IN_THE_TICKS_VALUE_FOUND___DECIMAL;
////// }//if(0==UnitsCombo.SelectedIndex) // beats
/// LengthUpDown.Value = LengthUpDown.Maximum;
/// _dirty = true;
}//if(null!=_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile) // sanity
////// }//private void UnitsCombo_SelectedIndexChanged(object sender, EventArgs e)
/// if (0 == UnitsCombo.SelectedIndex) // beats
if (true) // beats
{
len = Math.Min(len * _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.TimeBase, _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.Length);
ofs___FirstDownBeat = Math.Min(ofs___FirstDownBeat * _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.TimeBase, _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.Length);
ofs___FirstNoteOn = Math.Min(ofs___FirstNoteOn * _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.TimeBase, _file___SAAN_FRESH_MIDSLCSMIDI_MidiFile.Length);
}
//////switch (StartCombo.SelectedIndex)
////// {
////// case 1:
////// ofs += result.FirstDownBeat;
////// break;
////// case 2:
////// ofs += result.FirstNoteOn;
////// break;
///
ofs___FirstDownBeat += result.FirstDownBeat;
ofs___FirstNoteOn += result.FirstNoteOn;
// nseq holds our patch and timing info
var nseq = new SAAN_FRESH_MIDSLCSMIDI.MidiSequence();
/// if (0 != ofs && CopyTimingPatchCheckBox.Checked)
if (0 != ofs___FirstNoteOn && true)
{
// we only want to scan until the
// first note on
// we need to check all tracks so
// we merge them into mtrk and scan
// that
var mtrk = SAAN_FRESH_MIDSLCSMIDI.MidiSequence.Merge(result.Tracks);
var end = mtrk.FirstNoteOn;
if (0 == end) // break later:
{
end = mtrk.Length;
}
var ins = 0;
for (int ic = mtrk.Events.Count, i = 0; i < ic; ++i)
{
var ev = mtrk.Events[i];
if (ev.Position >= end)
break;
var m = ev.Message;
switch (m.Status)
{
// the reason we don't check for MidiMessageMetaTempo
// is a user might have specified MidiMessageMeta for
// it instead. we want to handle both
case 0xFF:
var mm = m as SAAN_FRESH_MIDSLCSMIDI.MidiMessageMeta;
switch (mm.Data1)
{
case 0x51: // tempo
case 0x54: // smpte
if (0 == nseq.Events.Count)
{
nseq.Events.Add(new SAAN_FRESH_MIDSLCSMIDI.MidiEvent(0, ev.Message.Clone()));
}
else
{
nseq.Events.Insert(ins, new SAAN_FRESH_MIDSLCSMIDI.MidiEvent(0, ev.Message.Clone()));
}
++ins;
break;
}//switch (mm.Data1)
break;
default:
// check if it's a patch change
if (0xC0 == (ev.Message.Status & 0xF0))
{
if (0 == nseq.Events.Count)
{
nseq.Events.Add(new SAAN_FRESH_MIDSLCSMIDI.MidiEvent(0, ev.Message.Clone()));
}
else
{
nseq.Events.Insert(ins, new SAAN_FRESH_MIDSLCSMIDI.MidiEvent(0, ev.Message.Clone()));
}
// increment the insert count
++ins;
}// if (0xC0 == (ev.Message.Status & 0xF0))
break;
}
}
// set the track to the loop length
nseq.Events.Add(new SAAN_FRESH_MIDSLCSMIDI.MidiEvent((int)len, new SAAN_FRESH_MIDSLCSMIDI.MidiMessageMetaEndOfTrack()));
}
// see if track 0 is checked
/// var hasTrack0 = TrackList.GetItemChecked(0);
// slice our loop out of it
//////if (0 != ofs || result.Length != len)
////// { result = result.GetRange((int)ofs, (int)len, CopyTimingPatchCheckBox.Checked, false); }
// normalize it!
//////if (NormalizeCheckBox.Checked)
////// { result = result.NormalizeVelocities(); }
// scale levels
//////if (1m != LevelsUpDown.Value)
////// { result = result.ScaleVelocities((double)LevelsUpDown.Value); }
// create a temporary copy of our
// track list
var l = new List<SAAN_FRESH_MIDSLCSMIDI.MidiSequence>(result.Tracks);
// now clear the result
result.Tracks.Clear();
for (int ic = l.Count, i = 0; i < ic; ++i)
{
// if the track is checked in the list
// add it back to result
//////if (TrackList.GetItemChecked(i))
////// {
result.Tracks.Add(l[i]);
////// }
}
if (0 < nseq.Events.Count)
{
// if we don't have track zero we insert
// one.
//////if (!hasTrack0)
////// {
////// result.Tracks.Insert(0, nseq);
////// }
//////else
////// {
////// // otherwise we merge with track 0
////// result.Tracks[0] = SAAN_FRESH_MIDSLCSMIDI.MidiSequence.Merge(nseq, result.Tracks[0]);
////// }
result.Tracks.Insert(0, nseq);
}
// next adjust the tempo
//////if (_file.Tempo != (double)TempoUpDown.Value)
////// {
////// result = result.AdjustTempo((double)TempoUpDown.Value);
////// }
// stretch the result. we do this
// here so the track lengths are
// correct and we don't need ofs
// or len anymore
//////if (1m != StretchUpDown.Value)
////// {
////// result = result.Stretch((double)StretchUpDown.Value, AdjustTempoCheckBox.Checked);
////// }
// if merge is checked merge the
// tracks
//////if (MergeTracksCheckBox.Checked)
////// {
////// var trk = MidiSequence.Merge(result.Tracks);
////// result.Tracks.Clear();
////// result.Tracks.Add(trk);
////// }
//////_dirty = false;
//////_reseekDirty = false;
///
}
else
{
//start of else case for if(_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile!=null)
}//end of else case for if(_file___SAAN_FRESH_MIDSLCSMIDI_MidiFile!=null)
return result;
}
private void waveViewer_FOR_GTWAVS_Load(object sender, EventArgs e)
{
}//private void waveViewer_FOR_GTWAVS_Load(object sender, EventArgs e)
private void generatorPanel_GT_WAV_SIGNALS_Load(object sender, EventArgs e)
{
}//private void generatorPanel_GT_WAV_SIGNALS_Load(object sender, EventArgs e)
private void waveViewer_FOR_GTWAVS_Load_1(object sender, EventArgs e)
{
}
private void generatorPanel_GT_WAV_SIGNALS_ChangeUICues(object sender, UICuesEventArgs e)
{
//waveViewer_FOR_GTWAVS
// this.waveViewer_FOR_GTWAVS.WaveStream=this.generatorPanel_GT_WAV_SIGNALS.str
}//private void generatorPanel_GT_WAV_SIGNALS_ChangeUICues(object sender, UICuesEventArgs e)
private void button_GTWAVS_OPEN_WAV_FILES_Click(object sender, EventArgs e)
{
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "wav/wav Files (.wav)|*.wav|GTWAVS/GTWAVS_Files (.wave)|*.wave|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_waves_files_name = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
//////PUBLIC_STATIC_CLASS_SAAN_STYLE_WAV_FILES_READERS
////// .INDEPENDENT_ExtractAndWriteChannelAmplitudes
////// (___temp_waves_files_name);
// Replace "your-audio-file.wav" with the path to your .wav file
string audioFilePath = ___temp_waves_files_name;// "your-audio-file.wav";
// Create a WaveFileReader to read the audio file
using (var waveReader = new SAANAUDS.Wave.WaveFileReader(audioFilePath))
{
/// this SAANAUDS.Wave.WaveFileReader dumps the data to text
// this.waveViewer_FOR_GTWAVS.WaveStream = (SAANAUDS.Wave.WaveStream)waveReader.SAAN_Wav_Streams;// this.generatorPanel_GT_WAV_SIGNAL
// this.waveViewer_FOR_GTWAVS.Invalidate();
// Create a WaveOutEvent to play the audio
this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text = waveReader.TotalTime.TotalMilliseconds.ToString();
System.Windows.Forms.MessageBox.Show("for big files part takes lot of times using (var waveReader = new SAANAUDS.Wave.WaveFileReader(audioFilePath))");
/// nothing happens and hangs
//////using (var waveOut = new SAANAUDS.Wave.WaveOutEvent())
////// {
////// // Set the desired WaveFormat (e.g., 16-bit PCM with 44.1kHz sample rate)
////// waveOut.Init(new SAANAUDS.Wave.WaveChannel32(waveReader));
////// // Start playing the audio
////// // Console.WriteLine("Press Enter to start playing...");
////// // Console.ReadLine();
////// waveOut.Play();
////// // Wait for the user to press Enter again to stop playing
////// // Console.WriteLine("Press Enter to stop playing...");
////// // Console.ReadLine();
////// }//using (var waveOut = new WaveOutEvent())
///
}//using (var waveReader = new WaveFileReader(audioFilePath))
//////System.Windows.Forms.MessageBox.Show(" part complete ExtractAndWriteChannelAmplitudes______SAAN_STYLE_CHANNELS_AMPLITUDES_DUMPER done");
//////PUBLIC_STATIC_CLASS_SAAN_STYLE_WAV_FILES_READERS
//////.ExtractAndWriteChannelAmplitudes______SAAN_STYLE_CHANNELS_AMPLITUDES_DUMPER
//////(audioFilePath);
}//private void button_GTWAVS_OPEN_WAV_FILES_Click(object sender, EventArgs e)
private void button_TO_CONVERT_TEXT_OR_CSV_TO_WAV_FILES_Click(object sender, EventArgs e)
{
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "txt/txt Files (.txt)|*.txt|CSV/CSV_Files (.CSV)|*.CSV|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_txt_or_csv_files_name = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
System.Windows.Forms.MessageBox.Show("Reads sorted_channel,sorted_sample_counter,unnormalized_amplitude,(optional)unnormalized_decibel");
// txt_files_names
//////private void buttonSave_Click(object sender, EventArgs e)
////// {
////// btnStop_Click(this, e);
////// var sfd = new SaveFileDialog();
////// sfd.Filter = "WAV File|*.wav";
////// if (sfd.ShowDialog() == DialogResult.OK)
////// {
////// var osp = new OffsetSampleProvider(wg);
////// osp.TakeSamples = wg.WaveFormat.SampleRate * 20 * wg.WaveFormat.Channels;
////// WaveFileWriter.CreateWaveFile16(sfd.FileName, osp);
////// }// if (sfd.ShowDialog() == DialogResult.OK)
////// }// private void buttonSave_Click(object sender, EventArgs e)
// Replace "your-audio-file.wav" with the path to your .wav file
string audioFilePath = ___temp_txt_or_csv_files_name + "_saan_converts.wav";// "your-audio-file.wav";
double converted_durs = 0;
try
{
converted_durs
=
Convert.ToDouble(this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text.ToString().TrimEnd().TrimStart().Trim());
converted_durs = (int)Math.Floor(converted_durs / 1000);
}
catch (Exception _excp_to_convert)
{
}//catch(Exception _excp_to_convert)
double _durations_millis = Math.Min(100, converted_durs);
/// SAANAUDS.Wave.PUBLIC_CLASS_SAAN_CHANNEL_SAMPLECOUNT_NORMALIZED_AMPLITUDE_DECIBEL
try
{
//////var osp = new OffsetSampleProvider(wg);
//////osp.TakeSamples = wg.WaveFormat.SampleRate * 20 * wg.WaveFormat.Channels;
//////WaveFileWriter.CreateWaveFile16(sfd.FileName, osp);
/// SAANAUDS.Wave.WaveFileWriter _wavswriter = new SAANAUDS.Wave.WaveFileWriter();
//////_wavswriter.
//////READ_CHANNEL_SAMPLES_NUMBER_AMPLITUDES_UNNORMALIZED_FROM_TXT_FILES(audioFilePath, _durations_millis);
//////SAANAUDS.Wave.WaveFileWriter
////// .READ_CHANNEL_SAMPLES_NUMBER_AMPLITUDES_UNNORMALIZED_FROM_TXT_FILES(audioFilePath, _durations_millis);
// Task.Run(async () => await WriteWavFileFromList(txt_files_names + "_saan_converts.wav", waveFormat)).Wait();
int num_channels = 2;//default
int bit_depth = 16;//default
int samples_rate = 44100;//default///autocalculates
int durations_millis = 60000;//default
string _str_bit_wavs_durations_found = "";
_str_bit_wavs_durations_found = this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text.ToString().TrimEnd().TrimStart().Trim();
try
{
durations_millis = Convert.ToInt32(_str_bit_wavs_durations_found);
}
catch (Exception _excp_convertions_exception)
{
durations_millis = 60000;
}//catch(Exception _excp_convertions_exception)
string ___str_bit_depth = "";
___str_bit_depth = this.textBox_BIT_DEPTH.Text.ToString().TrimEnd().TrimStart().Trim();
try
{
bit_depth = Convert.ToInt32(___str_bit_depth);
}
catch (Exception _excp_convertions_exception)
{
bit_depth = 16;
}//catch(Exception _excp_convertions_exception)
string _str_channel_count = "";
_str_channel_count = this.textBox_CHANNEL_COUNTS.ToString().TrimEnd().TrimStart().Trim();
try
{
num_channels = Convert.ToInt32(_str_channel_count);
}
catch (Exception _excp_convertions_exception)
{
num_channels = 2;
}//catch(Exception _excp_convertions_exception)
int sampleRate = SAANAUDS.Wave.WaveFileWriter
.CalculateSamplesPerSecond___SAAN
(
durations_millis
,
num_channels
,
bit_depth
);
//////////////trying specially here with BufferedWaveProvider ___temp_buffered_wav_provider
///
////// BufferedWaveProvider ___temp_buffered_wav_provider
Task.Run(
async () => await
SAANAUDS.Wave.WaveFileWriter
.THE___Main______GENERATE_WAV_FILE_FROM_TEXT_CSV_WITH_AMPLITUDES____RAW_DATA_WITHOUT_API
(
___temp_txt_or_csv_files_name
,
___temp_txt_or_csv_files_name + "_SAAN_WITHOUT_API.WAV"
,
(ushort)num_channels
,
(uint)sampleRate
,
(ushort)bit_depth
)
).Wait();
System.Windows.Forms.MessageBox.Show("done THE___Main______GENERATE_WAV_FILE_FROM_TEXT_CSV_WITH_AMPLITUDES____RAW_DATA_WITHOUT_API");
//////public static async Task THE___Main______GENERATE_WAV_FILE_FROM_TEXT_CSV_WITH_AMPLITUDES____RAW_DATA_WITHOUT_API
////// (
////// string csvFilePath
////// ,
////// string wavesFilePath
////// ,
////// ushort numChannels
////// ,
////// uint sampleRate
////// ,
////// ushort bitsPerSample
////// )
Task.Run(
async () => await
SAANAUDS.Wave.WaveFileWriter
.Main_FUNCTION_TO_READ_LARGE_TEXT_DATA_WITH_ALL_PROCESSORS(___temp_txt_or_csv_files_name)
).Wait();
System.Windows.Forms.MessageBox.Show("Counting stages done processors data done");
string filename_csvtxt = "";
//////int num_channels = 2;
//////int bit_depth = 16;
//////int samples_rate = 44100;
//////int durations_millis = 60000;
Task.Run(
async () => await
SAANAUDS.Wave.WaveFileWriter
.ReadTOO_LARGE_OVER_110_MBS_File___line_to_line_and_generate_wav
(
filename_csvtxt
,
num_channels
,
bit_depth
,
samples_rate
,
durations_millis
)
).Wait();
System.Windows.Forms.MessageBox.Show("First stages done");
Task.Run(
async () => await
SAANAUDS.Wave.WaveFileWriter
.READ_CHANNEL_SAMPLES_NUMBER_AMPLITUDES_UNNORMALIZED_FROM_TXT_FILES(___temp_txt_or_csv_files_name, _durations_millis)
).Wait();
}
catch (Exception _excp_wav_files_writer_constructions)
{
System.Windows.Forms.MessageBox.Show("_excp_wav_files_writer_constructions " + _excp_wav_files_writer_constructions.Message + _excp_wav_files_writer_constructions.StackTrace.ToString());
}//catch(Exception _excp_wav_files_writer_constructions)
}//private void button_TO_CONVERT_TEXT_OR_CSV_TO_WAV_FILES_Click(object sender, EventArgs e)
private void textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS_TextChanged(object sender, EventArgs e)
{
////////////DEFAULT VALUES
//////ExcelFormulaParser_GT_PARSER
//////.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_DURATIONS_MILLISECONDS_FOUND
//////= 30000;
////////////DEFAULT VALUES
//////ExcelFormulaParser_GT_PARSER
//////.GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SECOND_FOUND
////// = 44200;
double ___temp_data_for_duration_in_seconds = 3000;
try
{
___temp_data_for_duration_in_seconds
=
Convert.ToDouble(this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text.ToString().TrimEnd().TrimStart().Trim());
// this.generatorPanel_for_saan_gt_systems.public_non_static_double_durations_in_milliseconds
// = ___temp_data_for_duration_in_seconds;
}
catch (Exception _excp)
{
___temp_data_for_duration_in_seconds = 3000;
}//catch(Exception _excp)
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_DURATIONS_MILLISECONDS_FOUND
=
___temp_data_for_duration_in_seconds;
//CALLING CONVENTION
/// ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS.PUBLIC_STATIC_DOUBLE_TOTAL_MICROSECONDS___TAKEN_FROM_WAV_TAB_FOR_FORMS
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_DOUBLE_TOTAL_MICROSECONDS___TAKEN_FROM_WAV_TAB_FOR_FORMS
=
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_DURATIONS_MILLISECONDS_FOUND
* 1000000;
//this.generatorPanel_GT_WAV_SIGNALS.TOTAL_FILES_DURATION_in_second = ___temp_data_for_duration_in_seconds / 1000;
}// private void textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS_TextChanged(object sender, EventArgs e)
private void button_TO_CONVERT_ANYBIN_TO_WAVS_Click(object sender, EventArgs e)
{
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "anybins/anybins Files (.bin)|*.bin|already_wav/wav_Files (.wav)|*.wav|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_files_any_binary_files = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
System.Windows.Forms.MessageBox.Show("Reads any large binary file or any existing wav file or whatever to convert to playable wav files");
string filename_any_binary_files_read = "";//default
filename_any_binary_files_read = ___temp_files_any_binary_files;
int num_channels = 2;//default
int bit_depth = 16;//default
int samples_rate = 44100;//default///autocalculates
int durations_millis = 60000;//default
string _str_bit_wavs_durations_found = "";
_str_bit_wavs_durations_found = this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text.ToString().TrimEnd().TrimStart().Trim();
try
{
durations_millis = Convert.ToInt32(_str_bit_wavs_durations_found);
}
catch (Exception _excp_convertions_exception)
{
durations_millis = 60000;
}//catch(Exception _excp_convertions_exception)
string ___str_bit_depth = "";
___str_bit_depth = this.textBox_BIT_DEPTH.Text.ToString().TrimEnd().TrimStart().Trim();
try
{
bit_depth = Convert.ToInt32(___str_bit_depth);
}
catch (Exception _excp_convertions_exception)
{
bit_depth = 16;
}//catch(Exception _excp_convertions_exception)
string _str_channel_count = "";
_str_channel_count = this.textBox_CHANNEL_COUNTS.ToString().TrimEnd().TrimStart().Trim();
try
{
num_channels = Convert.ToInt32(_str_channel_count);
}
catch (Exception _excp_convertions_exception)
{
num_channels = 2;
}//catch(Exception _excp_convertions_exception)
///for references
//////public static async Task READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main
////// (
//////string binaryFilePath,
//////String outputFilePath_FOR_WAV_FILES,
//////int durationsInMilliseconds,
//////int numberOfChannels,
//////int bitsPerSample
////// )
/// PUBLIC_STATIC_SAAN_READS_BINARY_FILES_TO_GENERATE_WAV_FILES___Main(string filePath_to_read, int durationsInMilliseconds, int channelCount, int bitsPerSample)
//////public static async Task CreateWavFileFromAudioData______FRESH_WAV_FILES_GENERATOR
//////(
//////byte[] audioData,
//////string wavFilePath,
//////int durationsInMilliseconds,
//////int channelCount,
//////int bitsPerSample
//////)
///
try
{
Task.Run(
async () => await
////// SAANAUDS.Wave.WaveFileWriter
////// .
//////public static async Task CreateWavFileFromAudioData______FRESH_WAV_FILES_GENERATOR
//////(
//////byte[] audioData,
//////string wavFilePath,
//////int durationsInMilliseconds,
//////int channelCount,
//////int bitsPerSample
//////)
////// ).Wait();
/// public static async Task PUBLIC_STATIC_SAAN_READS_BINARY_FILES_TO_GENERATE_WAV_FILES___Main(string filePath_to_read, string output_wavs_file_path, int durationsInMilliseconds, int channelCount, int bitsPerSample)
SAANAUDS.Wave.WaveFileWriter
.PUBLIC_STATIC_SAAN_READS_BINARY_FILES_TO_GENERATE_WAV_FILES___Main
(
___temp_files_any_binary_files
,
___temp_files_any_binary_files + "_fresh_saans.wav"
,
durations_millis
,
num_channels
,
bit_depth
)
).Wait();
}
catch (Exception _excp_to______CreateWavFileFromAudioData______FRESH_WAV_FILES_GENERATOR)
{
System.Windows.Forms.MessageBox.Show("_excp_to______CreateWavFileFromAudioData______FRESH_WAV_FILES_GENERATOR " + _excp_to______CreateWavFileFromAudioData______FRESH_WAV_FILES_GENERATOR.Message + " \r\n" + _excp_to______CreateWavFileFromAudioData______FRESH_WAV_FILES_GENERATOR.StackTrace.ToString());
}//catch(Exception _excp_to______CreateWavFileFromAudioData______FRESH_WAV_FILES_GENERATOR)
////// try
////// {
////// Task.Run(
//////async () => await
//////SAANAUDS.Wave.WaveFileWriter
//////.PUBLIC_STATIC_SAAN_READS_BINARY_FILES_TO_GENERATE_WAV_FILES___Main
//////(
////// filename_any_binary_files_read
////// ,
////// filename_any_binary_files_read + "_saan.wav"
////// ,
////// durations_millis
////// ,
////// num_channels
////// ,
////// bit_depth
//////)
//////).Wait();
////// }
////// catch (Exception _excp_to______READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main)
////// {
////// System.Windows.Forms.MessageBox.Show("_excp_to______READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main " + _excp_to______READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main.Message + " \r\n" + _excp_to______READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main.StackTrace.ToString());
////// }//catch(Exception _excp_to______READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main)
try
{
Task.Run(
async () => await
SAANAUDS.Wave.WaveFileWriter
.READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main
(
filename_any_binary_files_read
,
filename_any_binary_files_read + "_saan.wav"
,
durations_millis
,
num_channels
,
bit_depth
)
).Wait();
}
catch (Exception _excp_to______READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main)
{
System.Windows.Forms.MessageBox.Show("_excp_to______READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main " + _excp_to______READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main.Message + " \r\n" + _excp_to______READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main.StackTrace.ToString());
}//catch(Exception _excp_to______READ_LARGE_BINARY_FILE_AND_CONVERT_TO_WAV_PLAYABLE_Main)
System.Windows.Forms.MessageBox.Show("Wav files generated " + filename_any_binary_files_read + "_saan.wav");
}//private void button_TO_CONVERT_ANYBIN_TO_WAVS_Click(object sender, EventArgs e)
//////private void SAAN_UpdateWaveform(object sender, EventArgs e)
////// {
////// // Update the waveform periodically
////// //////waveformPainter.AddMax(generatorPanel.MaxSampleValues);
////// //////waveformPainter.Invalidate();
////// this.waveformPainter_GTWAVS.AddMax(this.generatorPanel_for_saan_gt_systems.MaxSampleValues);
////// this.waveformPainter_GTWAVS.Invalidate();
////// }// private void SAAN_UpdateWaveform(object sender, EventArgs e)
//////private void SAAN_UpdateWaveform(object sender, EventArgs e)
////// {
////// // Create a waveform from the generator's output
////// /// var waveformBuilder = new WaveformBuilder(generatorPanel.WaveStream);
////// //////WaveFormBuilder waveFormBuilder = new WaveformBuilder(generatorPanel.WaveStream);
////// ////// var waveform = waveformBuilder.Build();
////// // Update the waveform painter
////// //////waveformPainter.Waveform = waveform;
////// //////waveformPainter.Invalidate();
////// ///
////// this.waveformPainter_GTWAVS.AddMax(this.generatorPanel_for_saan_gt_systems.MaxSampleValues);
////// this.waveformPainter_GTWAVS.Invalidate();
////// }//private void SAAN_UpdateWaveform(object sender, EventArgs e)
//////private void generatorPanel1_Load(object sender, EventArgs e)
////// {
////// }
//////private void generatorPanel_for_saan_gt_systems_MouseMove(object sender, MouseEventArgs e)
////// {
////// // Set the waveform data for the WaveViewer
////// //////waveViewer.WaveStream = generatorPanel.WaveStream;
////// /// this.waveViewer_FOR_GTWAVS.WaveStream=this.generatorPanel_for_saan_gt_systems.wav
////// /// CustomSampleProvider
////// }// private void generatorPanel_for_saan_gt_systems_MouseMove(object sender, MouseEventArgs e)
/// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
/// /// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
/// /// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
private void button_TO_PLAY_CURRENT_GT_SIMPLEX_WAVE_FILES_Click(object sender, EventArgs e)
{
/// too important class now we have added several functions there F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
//////F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
///\SAANSAUDSAPI_Wave_WaveOutputs_WaveFileWriter.CS
///
///
///
////// //////// Calculate sample rate based on total samples and total duration
////// ///////// int sampleRate = (int)(totalSamples / totalDuration);
////// //////// Adjust these values based on your requirements
////// /// int sample_rate_calculated_readjusted = (int)(totalSamples / totalDuration);
////// //////int sampleRate = sample_rate_calculated;// 44100;
////// //////int channels = 1;
////// int totalSamples = 30;
////// double total_durations_in_milliseconds = 3000;
////// try
////// {
////// total_durations_in_milliseconds = Convert.ToDouble(this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text.TrimEnd().TrimStart().Trim());
////// }catch(Exception _excp_for_durations_parsing)
////// {
////// System.Windows.Forms.MessageBox.Show
////// (
////// "the exceptions is _excp_for_durations_parsing for this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text.TrimEnd().TrimStart().Trim() = "
////// +
////// this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text.TrimEnd().TrimStart().Trim()
////// +
////// _excp_for_durations_parsing.Message
////// +"\r\n"+
////// _excp_for_durations_parsing.StackTrace.ToString()
////// )
////// ;
////// }//catch(Exception _excp_for_durations_parsing)
////// System.Windows.Forms.MessageBox.Show
////// (
////// "Estimated duration = "
////// +
////// (int)
////// (
////// ExcelFormulaParser_GT_PARSERSample.Program
////// .
////// PUBLIC_STATIC_DOUBLE___TOTAL_SECONDS_WAV_FILES_DURATIONS_REVERSE_CALCULATED_FROM_SAMPLES_ACCUMULATED___WITH___SAMPLES_PER_SECOND
////// )
////// +
////// "\r\n whereas in textbox for wavs tabs "
////// +
////// "total_durations_in_milliseconds = " + total_durations_in_milliseconds
////// );
////// ExcelFormulaParser_GT_PARSER
////// .GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_DURATIONS_MILLISECONDS_FOUND
////// =
////// total_durations_in_milliseconds
////// ;
////// //////ExcelFormulaParser_GT_PARSER
////// //////.GT_PARSERS
////// //////.public_static_class_simulations_CONTROLLER_for_gt_Class
////// //////.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_DURATIONS_MILLISECONDS_FOUND
////// ////// total_durations_in_milliseconds
////// ////// =
////// ////// Math.Max
////// ////// (
////// ////// (int)
////// ////// ExcelFormulaParser_GT_PARSER
////// ////// .GT_PARSERS
////// ////// .public_static_class_simulations_CONTROLLER_for_gt_Class
////// //////.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_DURATIONS_MILLISECONDS_FOUND
////// //////,
////// ////// (int)
////// ////// ExcelFormulaParser_GT_PARSERSample.Program
////// ////// .
////// ////// PUBLIC_STATIC_DOUBLE___TOTAL_SECONDS_WAV_FILES_DURATIONS_REVERSE_CALCULATED_FROM_SAMPLES_ACCUMULATED___WITH___SAMPLES_PER_SECOND
////// ////// );
////// double total_samples_per_second_found_for_waves_files = 8000;// 44200;
////// try
////// {
////// total_samples_per_second_found_for_waves_files
////// = Convert.ToDouble
////// (
////// this.textbox_FOR_TXT_TO_WAVS_SAMPLES_PER_SEGMENT.Text.TrimEnd().TrimStart().Trim()
////// );
////// }catch(Exception _excp_for_samples_per_second)
////// {
////// System.Windows.Forms.MessageBox.Show
////// (
////// "the exceptions is _excp_for_samples_per_second for this.textbox_FOR_TXT_TO_WAVS_SAMPLES_PER_SEGMENT.Text.TrimEnd().TrimStart().Trim() = "
////// +
////// this.textbox_FOR_TXT_TO_WAVS_SAMPLES_PER_SEGMENT.Text.TrimEnd().TrimStart().Trim()
////// +
////// _excp_for_samples_per_second.Message
////// +"\r\n"+
////// _excp_for_samples_per_second.StackTrace.ToString()
////// )
////// ;
////// }//catch(Exception _excp_for_samples_per_second)
////// string _current_gtsimplex_files_name = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder + "current_gtsimplex_file_current_commandstring_only_muswavs_amplitudes_samples.GTAMPS";
////// string[] ___total_samples_found_in_current_file_stringsarray
////// =
////// System.IO.File.ReadAllLines(_current_gtsimplex_files_name);
////// totalSamples = ___total_samples_found_in_current_file_stringsarray.Length - 1;///first line is Amplitudes
////// double ___temp_current_files_max_data_for_amplitude_found = Double.MinValue;
//////ExcelFormulaParser_GT_PARSER
//////.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.
//////PUBLIC_STATIC_DOUBLE___TOTAL_SAMPLES_FOUND_IN_FILES_LOADED_FOR_AMPLITUDES_DATA
//////=
//////totalSamples;
////// if (___total_samples_found_in_current_file_stringsarray[0]!="Amplitudes")
////// {
////// System.Windows.Forms.MessageBox.Show("Simple Caution is that first line dont have Amplitudes writen there");
////// }// if(___total_samples_found_in_current_file_stringsarray[0]!="Amplitudes")
////// this.progressBarFOR_ANIMATIONS_SAVING.Maximum = totalSamples + 3;
////// int sample_loads_counter = 0;
////// foreach (string ___amplitude_line in ___total_samples_found_in_current_file_stringsarray)
////// {
////// double _current_amplitudes_value = 6;
////// sample_loads_counter++;
////// this.progressBarFOR_ANIMATIONS_SAVING.Value = sample_loads_counter;
////// //////////////////////////////////////////////////////////////////////////////////
////// this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
////// this.progressBarFOR_ANIMATIONS_SAVING.Update();
////// try
////// {
////// _current_amplitudes_value
////// =
////// Convert.ToDouble(___amplitude_line.TrimEnd().TrimStart().Trim());
////// }
////// catch (Exception _excp)
////// {
////// }//catch(Exception _excp)
////// ___temp_current_files_max_data_for_amplitude_found
////// =
////// Math.Max(___temp_current_files_max_data_for_amplitude_found, _current_amplitudes_value);
////// }//foreach (string ___amplitude_line in ___total_samples_found_in_current_file_stringsarray)
////// System.Windows.Forms.MessageBox.Show(" reading the amplitudes data from " + _current_gtsimplex_files_name + "\r\n total_samples_per_second_found_for_waves_files = " + total_samples_per_second_found_for_waves_files);
////// double ___checking___max_amplitudes_abs_value_found_in_file = ___temp_current_files_max_data_for_amplitude_found;// 15626;// 30000;
////// System.Windows.Forms.MessageBox.Show("durations found in wavstabs (Max out of reverse calculated to estimated and the text box data) \r\n and\r\n textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS = " + total_durations_in_milliseconds);
////// double totalDuration = total_durations_in_milliseconds / 1000;
////// int sample_rate_calculated_readjusted = (int) (totalSamples / totalDuration);
////// System.Windows.Forms.MessageBox.Show
////// (
////// "sample_rate_calculated_readjusted = " + sample_rate_calculated_readjusted
////// + "\r\n" +
////// "___checking___max_amplitudes_abs_value_found_in_file = " + ___checking___max_amplitudes_abs_value_found_in_file
////// +"\r\n"+
////// "totalSamples = " + totalSamples
////// + "\r\n" +
////// "total_durations_in_milliseconds = " + total_durations_in_milliseconds
////// + "\r\n" +
////// "Entering into SAAN___AmplitudeFilePlayer ___TEMP_SAAN_FILE_FOR_GTSIMPLEX = new SAAN___AmplitudeFilePlayer(_current_gtsimplex_files_name, sample_rate_calculated_readjusted, ___checking___max_amplitudes_abs_value_found_in_file, totalSamples, total_durations_in_milliseconds);"
////// );
////// try
////// {
////// SAAN___AmplitudeFilePlayer ___TEMP_SAAN_FILE_FOR_GTSIMPLEX
////// = new SAAN___AmplitudeFilePlayer(_current_gtsimplex_files_name, sample_rate_calculated_readjusted, ___checking___max_amplitudes_abs_value_found_in_file, totalSamples, total_durations_in_milliseconds);
////// }
////// catch (Exception _excp___wavs_______TEMP_SAAN_FILE_FOR_GTSIMPLEX)
////// {
////// System.Windows.Forms.MessageBox.Show
////// (
////// "_excp___wavs_______TEMP_SAAN_FILE_FOR_GTSIMPLEX "+ _excp___wavs_______TEMP_SAAN_FILE_FOR_GTSIMPLEX.Message
////// +"\r\n"+
////// _excp___wavs_______TEMP_SAAN_FILE_FOR_GTSIMPLEX.StackTrace.ToString()
////// );
////// }//catch (Exception _excp___wavs_______TEMP_SAAN_FILE_FOR_GTSIMPLEX)
System.Windows.Forms.MessageBox.Show("READS THE GTAMPLITUDES FILES WITH COLUMN NAME Amplitudes and list large number of amplitudes data \r\n and \r\n fits with above durations milliseconds");
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "AMPS/AMPS Files (.GTAMPS)|*.GTAMPS|TXT/TXT_Files (.TXT)|*.TXT|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_gtmidiamps_files_name = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
double total_durations_in_milliseconds = Convert.ToDouble(this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text.TrimEnd().TrimStart().Trim());
int int_duration_in_millisecond = (int)total_durations_in_milliseconds;
// Replace "your-audio-file.wav" with the path to your .wav file
/// string gtmidiampsforwavs = ___temp_gtmidiamps_files_name;// "your-audio-file.wav";
///
// this function is in same file public class WaveFileWriter : Stream
//seperate public static class is defined there
PUBLIC_STATIC_CLASS_SAAN_WAVE_FILES_WRITER
.public_static_void_read_saan_styles_amplitude_text_file__to_float_Array_and_durations_and_generate_mono_channel_wav_files___Main
(
___temp_gtmidiamps_files_name
,
___temp_gtmidiamps_files_name + "_saan.wav"
,
int_duration_in_millisecond
);
System.Windows.Forms.MessageBox.Show("done");
}// private void button_TO_PLAY_CURRENT_GT_SIMPLEX_WAVE_FILES_Click(object sender, EventArgs e)
private void button_LOAD_WAV_FILES_Click(object sender, EventArgs e)
{
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "wav/wav Files (.wav)|*.wav|GTWAVS/GTWAVS_Files (.wave)|*.wave|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_waves_files_name = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
// Replace "your-audio-file.wav" with the path to your .wav file
string audioFilePath = ___temp_waves_files_name; // "your-audio-file.wav"
///flushes first
if (saan_Customs_Audio_player != null)
{
saan_Customs_Audio_player.Stop();
saan_Customs_Audio_player.Dispose();
}// if(saan_Customs_Audio_player!=null)
// private SAAN_CustomAudioPlayer SAAN___audioPlayer;
//////SAAN_CustomAudioPlayer SAAN___audioPlayer;
if(System.IO.File.Exists(audioFilePath))
{
InitializeAudio(audioFilePath, this.trackBar_FOR_VOLUMES, this.trackBar______sampleRateSlider);
}// if(System.IO.File.Exists(audioFilePath))
}//private void button_LOAD_WAV_FILES_Click(object sender, EventArgs e)
private void trackBar_FOR_VOLUMES_Scroll(object sender, EventArgs e)
{
this.label_FOR_VOLUMES.Text = "FOR_VOLUMES_ = " + this.trackBar_FOR_VOLUMES.Value.ToString();
try
{
if (saan_Customs_Audio_player != null)
{
saan_Customs_Audio_player.SetVolume(this.trackBar_FOR_VOLUMES.Value);
}//if (saan_Customs_Audio_player != null)
}
catch (Exception ___excp)
{
if (saan_Customs_Audio_player != null)
{
saan_Customs_Audio_player.Stop();
}// if (saan_Customs_Audio_player != null)
}//catch(Exception ___excp)
}// private void trackBar_FOR_VOLUMES_Scroll(object sender, EventArgs e)
private void trackBar______sampleRateSlider_Scroll(object sender, EventArgs e)
{
this.trackBar______sampleRateSlider.SmallChange = 8000;
this.trackBar______sampleRateSlider.LargeChange = 16000;
/// this.trackBar______sampleRateSlider.Value = Math.Max(this.trackBar______sampleRateSlider.Minimum,(int)(this.trackBar______sampleRateSlider.Value / 8000));
this.label_sample_rate_slider.Text = "SAMPLE_RATES = " + this.trackBar______sampleRateSlider.Value.ToString();
try
{
if (saan_Customs_Audio_player!=null)
{
saan_Customs_Audio_player.Stop();
int practs_slider_vals= Math.Max(this.trackBar______sampleRateSlider.Minimum, (int)(this.trackBar______sampleRateSlider.Value / 8000)); ;
// saan_Customs_Audio_player.SetSampleRate(this.trackBar______sampleRateSlider.Value);
saan_Customs_Audio_player.SetSampleRate(practs_slider_vals);
this.label_sample_rate_slider.Text = "SAMPLE_RATES = " + practs_slider_vals;
saan_Customs_Audio_player.Start();
}// if(saan_Customs_Audio_player!=null)
}
catch (Exception ___excp)
{
if (saan_Customs_Audio_player != null)
{
saan_Customs_Audio_player.Stop();
}// if (saan_Customs_Audio_player != null)
}//catch(Exception ___excp)
}// private void trackBar______sampleRateSlider_Scroll(object sender, EventArgs e)
private void button_PREVIEW_WAV_FILES_Click(object sender, EventArgs e)
{
if (saan_Customs_Audio_player != null)
{
saan_Customs_Audio_player.Start();
}// if(saan_Customs_Audio_player!=null)
}// private void button_PREVIEW_WAV_FILES_Click(object sender, EventArgs e)
private void button_STOP_WAV_FILES_Click(object sender, EventArgs e)
{
if (saan_Customs_Audio_player != null)
{
saan_Customs_Audio_player.Stop();
}// if(saan_Customs_Audio_player!=null)
}//private void button_STOP_WAV_FILES_Click(object sender, EventArgs e)
private void SampleForm_FormClosed(object sender, FormClosedEventArgs e)
{
System.IO.File.WriteAllText
(
// _current_gtsimplex_files_name
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "current_gtsimplex_file_current_commandstring_only_muswavs_amplitudes_samples.GTAMPS"
, "Amplitudes\r\n DELETED ON CLOSES FORMS"
);
///flushes first
if (saan_Customs_Audio_player != null)
{
saan_Customs_Audio_player.Stop();
saan_Customs_Audio_player.Dispose();
}// if(saan_Customs_Audio_player!=null)
//////////////////////////////SAVES THE SVG FILE FIRST AND THEN CLEARS THE STRING BUILDERS CONTENTS //////////
///WHEN NEW COMMANDS STARTS ///////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+
public_static_class_simulations_CONTROLLER_for_gt_Class.command_string
+ "_" +
System.DateTime.Now.ToString("mmddyyyyhhmmss")
+ "___combined_GTSIMPLEX_command_changed_"
+ ".html"
,
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_GTSIMPLEX_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.ToString()
+ "\r\n" +
"</body>"
+ "\r\n" +
"</html>"
);
///////////////////////////// fresh svg generated ////////////////////
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_GTSIMPLEX_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.Clear();
///////////////////////////// fresh svg generated ////////////////////
////////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class
//////public static StringBuilder
////// public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_CUMULSUMS_OUTPUT_COMPLS_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
////// = new StringBuilder();
//////////////////////////////SAVES THE SVG FILE FIRST AND THEN CLEARS THE STRING BUILDERS CONTENTS //////////
///WHEN NEW COMMANDS STARTS ///////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+
public_static_class_simulations_CONTROLLER_for_gt_Class.command_string
+ "_" +
System.DateTime.Now.ToString("mmddyyyyhhmmss")
+ "___combined_CUMULSUMS_command_changed_"
+ ".html"
,
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_CUMULSUMS_OUTPUT_COMPLS_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.ToString()
+ "\r\n" +
"</body>"
+ "\r\n" +
"</html>"
);
//////////////////////////////////////////////////////////////////
PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ALL_SVG_HOLDER_ONLY_GTSIMPLEX_HTML_FILE_WITH_HEADERS_SCRIPTS_CSS_ALSO
.Clear();
//////PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class.
//////public_static_stringbuilder_in___PUBLIC_STATIC_FACTORY_CLASS_FOR_GRAPHICS_GT_Class___STRINGBUILDER_FOR_ONLY_SINGLE_STATE_CUMULSUMS_OUTPUT_COMPL_SVG
//////.Clear();
} // private void SampleForm_FormClosed(object sender, FormClosedEventArgs e)
private void button_TO_READ_THE_AMPLITUDES_FILES_GENERATE_WAVS_Click(object sender, EventArgs e)
{
System.Windows.Forms.MessageBox.Show("READS THE SINGLE COLUMNS GTAMPLITUDES FILES WITH COLUMN NAME Amplitudes and list large number of amplitudes data \r\n and \r\n fits with above durations milliseconds");
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "GTAMPS/GTAMPS Files (.GTAMPS)|*.GTAMPS|MONOAMPS/GTMONOAMPS Files (.GTMONOAMPS)|*.GTMONOAMPS|TXT/TXT_Files (.TXT)|*.TXT|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_gtmidiamps_files_name = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
double total_durations_in_milliseconds = Convert.ToDouble(this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text.TrimEnd().TrimStart().Trim());
int int_duration_in_millisecond = (int)total_durations_in_milliseconds;
// this is auto calculated from the samples available and durations
//c
// Replace "your-audio-file.wav" with the path to your .wav file
/// string gtmidiampsforwavs = ___temp_gtmidiamps_files_name;// "your-audio-file.wav";
///
// this function is in same file public class WaveFileWriter : Stream
//seperate public static class is defined there
PUBLIC_STATIC_CLASS_SAAN_WAVE_FILES_WRITER
.public_static_void_read_saan_styles_amplitude_text_file__to_float_Array_and_durations_and_generate_mono_channel_wav_files___Main
(
___temp_gtmidiamps_files_name
,
___temp_gtmidiamps_files_name+"_saanS_MONO.wav"
,
int_duration_in_millisecond
);
System.Windows.Forms.MessageBox.Show("done ___temp_gtmidiamps_files_name = " + ___temp_gtmidiamps_files_name);
}//private void button_TO_READ_THE_AMPLITUDES_FILES_GENERATE_WAVS_Click(object sender, EventArgs e)
/// <summary>
/// private void button_TO_READ_THE_AMPLITUDES_FILES_GENERATE_WAVS_Click(object sender, EventArgs e)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
/// this was generating only fixed durations wav files
////// private void button_TO_READ_THE_AMPLITUDES_FILES_GENERATE_WAVS_Click(object sender, EventArgs e)
////// {
////// System.Windows.Forms.MessageBox.Show("READS THE GTAMPLITUDES FILES WITH COLUMN NAME Amplitudes and list large number of amplitudes data \r\n and \r\n fits with above durations milliseconds");
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "AMPS/AMPS Files (.GTAMPS)|*.GTAMPS|TXT/TXT_Files (.TXT)|*.TXT|All Files (*.*)|*.*";
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
////// string ___temp_gtmidiamps_files_name = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////// // Replace "your-audio-file.wav" with the path to your .wav file
////// string gtmidiampsforwavs = ___temp_gtmidiamps_files_name;// "your-audio-file.wav";
////// //////// Calculate sample rate based on total samples and total duration
////// ///////// int sampleRate = (int)(totalSamples / totalDuration);
////// //////// Adjust these values based on your requirements
////// /// int sample_rate_calculated_readjusted = (int)(totalSamples / totalDuration);
////// //////int sampleRate = sample_rate_calculated;// 44100;
////// //////int channels = 1;
////// int totalSamples = 30;
////// double total_durations_in_milliseconds = 3000;
////// total_durations_in_milliseconds = Convert.ToDouble(this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text.TrimEnd().TrimStart().Trim());
////// //we will not do this
////// string _current_gtsimplex_files_name = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder + "current_gtsimplex_file_current_commandstring_only_muswavs_amplitudes_samples.GTAMPS";
////// string[] ___total_samples_found_in_current_file_stringsarray
////// =
////// System.IO.File.ReadAllLines(gtmidiampsforwavs);
////// totalSamples = ___total_samples_found_in_current_file_stringsarray.Length - 1;///first line is Amplitudes
////// double ___temp_current_files_max_data_for_amplitude_found = Double.MinValue;
////// this.progressBarFOR_ANIMATIONS_SAVING.Maximum = totalSamples + 3;
////// int sample_loads_counter = 0;
////// foreach (string ___amplitude_line in ___total_samples_found_in_current_file_stringsarray)
////// {
////// double _current_amplitudes_value = 6;
////// sample_loads_counter++;
////// this.progressBarFOR_ANIMATIONS_SAVING.Value = sample_loads_counter;
////// //////////////////////////////////////////////////////////////////////////////////
////// this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
////// this.progressBarFOR_ANIMATIONS_SAVING.Update();
////// try
////// {
////// _current_amplitudes_value
////// =
////// Convert.ToDouble(___amplitude_line.TrimEnd().TrimStart().Trim());
////// }
////// catch (Exception _excp)
////// {
////// }//catch(Exception _excp)
////// ___temp_current_files_max_data_for_amplitude_found
////// =
////// Math.Max(___temp_current_files_max_data_for_amplitude_found, _current_amplitudes_value);
////// }//foreach (string ___amplitude_line in ___total_samples_found_in_current_file_stringsarray)
////// System.Windows.Forms.MessageBox.Show(" reading the amplitudes data from " + gtmidiampsforwavs);
////// double ___checking___max_amplitudes_abs_value_found_in_file = ___temp_current_files_max_data_for_amplitude_found;// 15626;// 30000;
////// System.Windows.Forms.MessageBox.Show("durations found in wavstabs textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS = " + total_durations_in_milliseconds);
////// double totalDuration = total_durations_in_milliseconds / 1000;
////// int sample_rate_calculated_readjusted = (int)(totalSamples / totalDuration);
////// //////SAAN___AmplitudeFilePlayer ___TEMP_SAAN_FILE_FOR_GTSIMPLEX
////// ////// = new SAAN___AmplitudeFilePlayer(gtmidiampsforwavs, sample_rate_calculated_readjusted, ___checking___max_amplitudes_abs_value_found_in_file, totalSamples, total_durations_in_milliseconds);
////// SAAN___AmplitudeFilePlayer ___TEMP_SAAN_FILE_FOR_GTSIMPLEX
//////= new SAAN___AmplitudeFilePlayer(gtmidiampsforwavs, sample_rate_calculated_readjusted, ___checking___max_amplitudes_abs_value_found_in_file, totalSamples, total_durations_in_milliseconds);
////// }//private void button_TO_READ_THE_AMPLITUDES_FILES_GENERATE_WAVS_Click(object sender, EventArgs e)
private void button_PRAAT_FREQUENCY_TEXT_READER_Click(object sender, EventArgs e)
{
try
{
//////track,channel,patch_number,patch_name,pitch_bend_number,note_frequency_linier_y_start_data,note_frequency_linier_y_final_data,note_name,note_start_time_from_linier_x_data,note_final_time_from_linier_x_data,note_duration,note_velocity
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,2880,3360,480,88
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,3360,3600,240,79
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,3600,4080,480,89
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,4080,4320,240,76
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,4320,4800,480,86
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,4800,5040,240,79
//////3,3,0,___,0,41.2,41.2,NON_PERCUSSION_E2,5040,5268,228,79
//////3,3,0,___,0,32.7,32.7,NON_PERCUSSION_C2,5280,5520,240,79
//////3,3,0,___,0,34.65,34.65,NON_PERCUSSION_C#2,5520,5760,240,77
//////3,3,0,___,0,36.71,36.71,NON_PERCUSSION_D2,5760,6480,720,89
//////3,3,0,___,0,46.25,46.25,NON_PERCUSSION_F#2,6480,7200,720,78
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,7200,7920,720,78
//////3,3,0,___,0,61.74,61.74,NON_PERCUSSION_B2,7920,8640,720,79
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,8640,9120,480,86
//////3,3,0,___,0,55,55,NON_PERCUSSION_A2,9120,9360,240,79
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,9360,9840,480,86
//////3,3,0,___,0,49,49,NON_PERCUSSION_G2,9840,10080,240,77
//////Time_s F0_Hz
//////0.622324--undefined--
//////0.637324--undefined--
//////0.652324--undefined--
//////0.667324--undefined--
//////0.682324--undefined--
//////0.697324--undefined--
//////0.712324--undefined--
//////0.727324--undefined--
//////0.742324--undefined--
//////0.757324--undefined--
//////0.772324--undefined--
//////0.787324--undefined--
//////0.802324--undefined--
//////0.817324--undefined--
//////0.832324--undefined--
//////0.847324--undefined--
//////41.722324 134.105002
//////41.737324 133.745202
//////41.752324 133.473460
//////41.767324 133.989221
//////41.782324 134.908648
//////41.797324 135.843901
//////41.812324 136.506688
//////41.827324 136.444371
//////41.842324 136.075995
//////41.857324 134.330716
//////41.872324 129.514929
//////41.887324 123.308738
///
double ___temp_millisecond_found = 0;
double ___temp_frequency_found = 0;
StringBuilder Raw_StringBuilder_for_valid_frequencies = new StringBuilder();
Raw_StringBuilder_for_valid_frequencies.Clear();
Raw_StringBuilder_for_valid_frequencies
.AppendLine
(
"track,channel,patch_number,patch_name,pitch_bend_number,note_frequency_linier_y_start_data,note_frequency_linier_y_final_data,note_name,note_start_time_from_linier_x_data,note_final_time_from_linier_x_data,note_duration,note_velocity,grabbed_lyrics_text,grabbed_lyrics_Absolute_times"
);
double FIRST_RUN_LONG_SILENCE_DETECTOR___MS_60 = 60;
List<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES> LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES = new List<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>();
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Clear();
//////openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "SAANOWNCSVLINIERSCALEDDXFFORMIDI Files (.SAANOWNCSVLINIERSCALEDDXFFORMIDI)|*.SAANOWNCSVLINIERSCALEDDXFFORMIDI|All Files (*.*)|*.*";
//////openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
//////string ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "PRAAT_FREQUENCY Files (.txt)|*.txt|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_praat_frequency_files_text_files = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
string ___temp_praat_frequency_file_content = "";
___temp_praat_frequency_file_content
=
System.IO.File.ReadAllText(___temp_praat_frequency_files_text_files);
if(___temp_praat_frequency_file_content.TrimEnd().TrimStart().Trim().Length==0)
{
return;
}//if(___temp_praat_frequency_file_content.TrimEnd().TrimStart().Trim().Length==0)
string[] _temp_lines_string_array_found_in_praat_frequency_file
=
___temp_praat_frequency_file_content.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
int ___lines_counter = 0;
//progressBarFOR_ANIMATIONS_SAVING
this.progressBarFOR_ANIMATIONS_SAVING.Maximum
=
_temp_lines_string_array_found_in_praat_frequency_file.Length+3;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Update();
int ___temp_first_runs_valid_note_counter = 0;
foreach (string _line_in__praat_freq_file in _temp_lines_string_array_found_in_praat_frequency_file)
{
___lines_counter++;
this.progressBarFOR_ANIMATIONS_SAVING.Value
=
___lines_counter;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Update();
///no i will not do like this if(_line_in__praat_freq_file.Contains("undefined"))
string ___temp_current_line = _line_in__praat_freq_file;
___temp_current_line
=
___temp_current_line
.TrimEnd().TrimStart()
.Replace("\t", "######")
.Replace(" ", "######")
.Replace(" ", "######")
.Replace(" ", "######")
.Replace(" ", "######")
.Replace(" ", "######")
.Replace(" ", "######")
.Replace(" ", "######")
.Replace(" ", "######")
.Replace(" ", "######")
.Replace(" ", "######")
.Replace(" ", "######");
string[] ___temp_cols_in_current_line
=
___temp_current_line.Split(new string[] { "######" }, StringSplitOptions.RemoveEmptyEntries);
if(___temp_cols_in_current_line.Length==2)
{
___temp_millisecond_found = 0; /// flushing first
___temp_frequency_found = 0; /// flushing first
try
{
___temp_millisecond_found
=
Convert.ToDouble(___temp_cols_in_current_line[0].TrimEnd().TrimStart().Trim());
___temp_millisecond_found
=
___temp_millisecond_found * 1000;
}
catch(Exception ___converting_millisecond_exceptions)
{
___temp_millisecond_found = 0;
}//catch(Exception ___converting_millisecond_exceptions)
try
{
___temp_frequency_found
=
Convert.ToDouble(___temp_cols_in_current_line[1].TrimEnd().TrimStart().Trim());
}
catch (Exception ___converting_frequency_exceptions)
{
___temp_frequency_found = 0;
}// catch (Exception ___converting_frequency_exceptions)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (___temp_frequency_found>0)
{
if(___temp_millisecond_found>0)
{
PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES _TEMP_FREQS_DATA
= new PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES();
___temp_first_runs_valid_note_counter++;
_TEMP_FREQS_DATA.FIRST_RUN_RAW_NOTE_COUNTER = ___temp_first_runs_valid_note_counter;
_TEMP_FREQS_DATA.SECOND_RUN_RAW_NOTE_COUNTER = 0;
_TEMP_FREQS_DATA.TO_TAKE_THIS_NOTE_IN_SECOND_RUN___FALSE_OR_TRUE = false;
_TEMP_FREQS_DATA.TIME_IN_MILLISECONDS = ___temp_millisecond_found;
_TEMP_FREQS_DATA.FREQUENCY_IN_HERTZ = ___temp_frequency_found;
_TEMP_FREQS_DATA.NEAREST_LOWER_NOTE_NUMBER_FOUND
=
PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.FrequencyToMidiNoteNumber(___temp_frequency_found);
_TEMP_FREQS_DATA.NEAREST_LOWER_NOTE_NAME_FOUND
=
PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.GET_STRING_NOTE_NAME_FROM_GIVEN_NOTE_NUMBER___SAAN
(
_TEMP_FREQS_DATA.NEAREST_LOWER_NOTE_NUMBER_FOUND
);
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count>=2)
{
//////////////////////////////////////////////////////////////////////////////////
_TEMP_FREQS_DATA
.ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN
=
_TEMP_FREQS_DATA
.TIME_IN_MILLISECONDS
-
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.Last()
.
TIME_IN_MILLISECONDS
;
}//if(LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count>=2)
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.Add
(
_TEMP_FREQS_DATA
);
if(LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES!=null)
{
if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count>0)
{
if(LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last()!=null)
{
try
{
try
{
if (
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count >=2
)
{
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN
=
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 0
)
.TIME_IN_MILLISECONDS
-
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.TIME_IN_MILLISECONDS
;
//////////////////////////////////////////////////////////////////////////////////
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 2
)
.ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN
=
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.TIME_IN_MILLISECONDS
-
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 2
)
.TIME_IN_MILLISECONDS
);
}// if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count >=2)
}
catch (Exception _excp_to_fill_rough_duration)
{
}//catch(Exception _excp_to_fill_rough_duration)
//////////////////////////////////////////////////////////////////////////////
//////special calculations for cumulations
if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 3)
{
if (
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count-2
).NEAREST_LOWER_NOTE_NUMBER_FOUND
==
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count - 1
).NEAREST_LOWER_NOTE_NUMBER_FOUND
)
{
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count - 1
)
.TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
=
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count - 1
)
.TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
+
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count - 1
).TIME_IN_MILLISECONDS
-
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count - 2
).TIME_IN_MILLISECONDS
)
;
}
//////if (
////// LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
////// .ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
////// (
////// LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count - 2
////// ).NEAREST_LOWER_NOTE_NUMBER_FOUND
////// ==
////// LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
////// .ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
////// (
////// LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count - 1
////// ).NEAREST_LOWER_NOTE_NUMBER_FOUND
////// )
}// if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 3)
//////special calculations for cumulations
}
catch (Exception _excp_special_cases)
{
}//catch(Exception _excp_special_cases)
if (
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2
&&
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN
<
FIRST_RUN_LONG_SILENCE_DETECTOR___MS_60
)
)
{
//we will not log the last entry object for the case where
// we are not at the initial boundary of list
//we are inside if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
Raw_StringBuilder_for_valid_frequencies
.AppendLine
(
//////"track" +
//////",channel" +
//////",patch_number" +
//////",patch_name" +
//////",pitch_bend_number" +
//////",note_frequency_linier_y_start_data" +
//////",note_frequency_linier_y_final_data" +
//////",note_name" +
//////",note_start_time_from_linier_x_data" +
//////",note_final_time_from_linier_x_data" +
//////",note_duration,note_velocity" +
//////",grabbed_lyrics_text" +
//////",grabbed_lyrics_Absolute_times"
///
"6" +
",3" +
",26" +
",patch_name" +
",pitch_bend_number" +
"," +
//note_frequency_linier_y_start_data" +
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
// .Last()
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.
FREQUENCY_IN_HERTZ.ToString("G17")
+
"," +
//note_frequency_linier_y_final_data" +
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
// .Last()
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.FREQUENCY_IN_HERTZ.ToString("G17")
+
"," +
//"note_name" +
// _TEMP_FREQS_DATA.NEAREST_LOWER_NOTE_NUMBER_FOUND
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
//.Last()
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.NEAREST_LOWER_NOTE_NUMBER_FOUND
+ "_name=" + LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
// .Last()
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.NEAREST_LOWER_NOTE_NAME_FOUND.TrimEnd().TrimStart().Trim().Replace(";", "_")
+ ","
// "note_start_time_from_linier_x_data" +
+
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
// .Last()
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.TIME_IN_MILLISECONDS
.ToString("G17")
+ "," +
// "note_final_time_from_linier_x_data"
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
//.Last()
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.TIME_IN_MILLISECONDS
//+ 50
+
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN
)
.ToString("G17")
+
// LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last().TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
// ",note_duration,note_velocity" +
",100"
+
"," +
"lyrs_"
+ LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
//.Last()
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.NEAREST_LOWER_NOTE_NAME_FOUND
.TrimEnd().TrimStart().Trim().Replace(";", "_")
+
"_durs_"
+
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.
ElementAt< PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES >
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
-2
)
.ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN
+"_"+
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN
+ ","
+
//",grabbed_lyrics_Absolute_times"
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
//.Last()
.
ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
(
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
- 1
)
.TIME_IN_MILLISECONDS.ToString("G17")
);
//end of if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//end of if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//end of if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//end of if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//end of if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//end of if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//end of if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//end of if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
}
else
{
//start of else if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//start of else if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//start of else if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//start of else if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//start of else if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//start of else if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//start of else if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
//start of else if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
///new conditions added to detect silences
//////////////////////////////////////////////////////if (
//////////////////////////////////////////////////////LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2
//////////////////////////////////////////////////////&&
//////////////////////////////////////////////////////(
//////////////////////////////////////////////////////LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
//////////////////////////////////////////////////////.
//////////////////////////////////////////////////////ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
//////////////////////////////////////////////////////(
//////////////////////////////////////////////////////LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
//////////////////////////////////////////////////////- 1
//////////////////////////////////////////////////////)
//////////////////////////////////////////////////////.ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN
//////////////////////////////////////////////////////<
//////////////////////////////////////////////////////FIRST_RUN_LONG_SILENCE_DETECTOR___MS_60
//////////////////////////////////////////////////////)
Raw_StringBuilder_for_valid_frequencies
.AppendLine
(
//////"track" +
//////",channel" +
//////",patch_number" +
//////",patch_name" +
//////",pitch_bend_number" +
//////",note_frequency_linier_y_start_data" +
//////",note_frequency_linier_y_final_data" +
//////",note_name" +
//////",note_start_time_from_linier_x_data" +
//////",note_final_time_from_linier_x_data" +
//////",note_duration,note_velocity" +
//////",grabbed_lyrics_text" +
//////",grabbed_lyrics_Absolute_times"
///
"6" +
",3" +
",26" +
",patch_name" +
",pitch_bend_number" +
","+
//note_frequency_linier_y_start_data" +
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last().FREQUENCY_IN_HERTZ.ToString("G17")
+
","+
//note_frequency_linier_y_final_data" +
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last().FREQUENCY_IN_HERTZ.ToString("G17")
+
","+
//"note_name" +
// _TEMP_FREQS_DATA.NEAREST_LOWER_NOTE_NUMBER_FOUND
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last().NEAREST_LOWER_NOTE_NUMBER_FOUND
+"_name="+ LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last().NEAREST_LOWER_NOTE_NAME_FOUND.TrimEnd().TrimStart().Trim().Replace(";","_")
+ ","
// "note_start_time_from_linier_x_data" +
+
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last().TIME_IN_MILLISECONDS.ToString("G17")
+ "," +
// "note_final_time_from_linier_x_data"
( LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last().TIME_IN_MILLISECONDS+50).ToString("G17")
+
// LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last().TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
// ",note_duration,note_velocity" +
",100"
+
","+
"lyrs_"
+ LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last().NEAREST_LOWER_NOTE_NAME_FOUND.TrimEnd().TrimStart().Trim().Replace(";", "_")
+","
+
//",grabbed_lyrics_Absolute_times"
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last().TIME_IN_MILLISECONDS.ToString("G17")
);
}
//end of else if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2)
// end of else case (the silence detector is also added now in first scan)
////////////////if (
//////////////// LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count > 2
//////////////// &&
//////////////// (
//////////////// LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
//////////////// .
//////////////// ElementAt<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
//////////////// (
//////////////// LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count
//////////////// - 1
//////////////// )
//////////////// .ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN
//////////////// <
//////////////// FIRST_RUN_LONG_SILENCE_DETECTOR___MS_60
//////////////// )
}
//if(LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last()!=null)
}//if(LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count>0)
}//if(LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES!=null)
}// if(___temp_millisecond_found>0)
}// if(___temp_frequency_found>0)
}// if(___temp_cols_in_current_line.Length==2)
}//foreach(string _line_in__praat_freq_file in _temp_lines_string_array_found_in_praat_frequency_file)
this.progressBarFOR_ANIMATIONS_SAVING.Value
=
this.progressBarFOR_ANIMATIONS_SAVING.Maximum;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Update();
int ___temp_total_raw_notes = 0;
if(LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES!=null)
{
if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count>0)
{
___temp_millisecond_found
=
Math.Floor(LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Last().TIME_IN_MILLISECONDS);
___temp_total_raw_notes
=
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count;
}// if (LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.Count>0)
}// if(LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES!=null)
System.IO.File.WriteAllText
(
___temp_praat_frequency_files_text_files
+ "_FIRST_RUN_durs_"+
((int)___temp_millisecond_found).ToString()
+
"_notes_"+ ___temp_total_raw_notes
+
"_raw_data_found.SAANOWNCSVLINIERSCALEDDXFFORMIDI"
,
Raw_StringBuilder_for_valid_frequencies.ToString()
);
System.Windows.Forms.MessageBox.Show
(
"FIRST RUN COMPLETES NOW SECOND RUN WILL START\r\n\r\n\r\n"+
___temp_praat_frequency_files_text_files
+ "_FIRST_RUN_durs_" +
((int)___temp_millisecond_found).ToString()
+
"_notes_" + ___temp_total_raw_notes
+
"_raw_data_found.SAANOWNCSVLINIERSCALEDDXFFORMIDI"
);
//////////////////////////////////////////////////second run starts///////////
/////////////////////////////////////////////////////second run starts///////////
/////////////////////////////////////////////////////second run starts///////////
/////////////////////////////////////////////////////second run starts///////////
/////////////////////////////////////////////////////second run starts///////////
/////////////////////////////////////////////////////second run starts///////////
///
StringBuilder REFINED_SECOND_RUN_NOTES_PURGED_NON_STRUMBLING_NOTES_StringBuilder_for_valid_frequencies = new StringBuilder();
REFINED_SECOND_RUN_NOTES_PURGED_NON_STRUMBLING_NOTES_StringBuilder_for_valid_frequencies.Clear();
REFINED_SECOND_RUN_NOTES_PURGED_NON_STRUMBLING_NOTES_StringBuilder_for_valid_frequencies
.AppendLine
(
"track,channel,patch_number,patch_name,pitch_bend_number,note_frequency_linier_y_start_data,note_frequency_linier_y_final_data,note_name,note_start_time_from_linier_x_data,note_final_time_from_linier_x_data,note_duration,note_velocity,grabbed_lyrics_text,grabbed_lyrics_Absolute_times"
);
StringBuilder STRINGBUILDER_TO_LOG_SECOND_RUNS = new StringBuilder();
STRINGBUILDER_TO_LOG_SECOND_RUNS.Clear();
//////_TEMP_FREQS_DATA.FIRST_RUN_RAW_NOTE_COUNTER = ___temp_first_runs_valid_note_counter;
//////_TEMP_FREQS_DATA.SECOND_RUN_RAW_NOTE_COUNTER = 0;
//////_TEMP_FREQS_DATA.TO_TAKE_THIS_NOTE_IN_SECOND_RUN___FALSE_OR_TRUE = false;
PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES[]
___sorted_times_array_for_second_run_scanning_to_purge_notes
=
LIST_OF_PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
.OrderBy(PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES => PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES.TIME_IN_MILLISECONDS)
.ToArray<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>();
int ___second_run_look_forward_scanner_counter = 50;
List<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
= new List<PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES>();
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Clear();
this.progressBarFOR_ANIMATIONS_SAVING.Maximum
=
___sorted_times_array_for_second_run_scanning_to_purge_notes.Length + 3;
//////////////////////////////////////////////////////////////////////////
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;// (int)line_Segments_counter;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
///////////////////////////////////////////////////////////////////////////
if (___sorted_times_array_for_second_run_scanning_to_purge_notes.Length > 0)
{
for (
int ___second_run_iterator=0;
___second_run_iterator
<
___sorted_times_array_for_second_run_scanning_to_purge_notes.Length;
___second_run_iterator++
)
{
goto_here_after_adding_the_next_data_for_new_note_found:;
//////////////////////////////////////////////////////////////////////////
this.progressBarFOR_ANIMATIONS_SAVING.Value = ___second_run_iterator;// (int)line_Segments_counter;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
///////////////////////////////////////////////////////////////////////////
///
if (___second_run_iterator==0)
{
////////////////TOOOOOOOOOOOOOO IMPORTANT /////////////////////////
___sorted_times_array_for_second_run_scanning_to_purge_notes[0]
.TO_TAKE_THIS_NOTE_IN_SECOND_RUN___FALSE_OR_TRUE
= true;
////////////////TOOOOOOOOOOOOOO IMPORTANT /////////////////////////
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Add
(
___sorted_times_array_for_second_run_scanning_to_purge_notes[0]
);
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.FINAL_FREQUENCY_FOUND_WHILE_NOTES_CLUBBED_INsECOND_RUN
=
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.FREQUENCY_IN_HERTZ
;
}
else
{
int _iterate_forward = 1;
/////////////////////////// THIS PART IS TRICKY TO AVOID THE OVERFLOW IN ITERATIONS//////
/////////////////////////// THIS PART IS TRICKY TO AVOID THE OVERFLOW IN ITERATIONS//////
/////////////////////////// THIS PART IS TRICKY TO AVOID THE OVERFLOW IN ITERATIONS//////
/// ___sorted_times_array_for_second_run_scanning_to_purge_notes.Length
___second_run_look_forward_scanner_counter
=
Math.Min
(
___second_run_look_forward_scanner_counter
,
(
___sorted_times_array_for_second_run_scanning_to_purge_notes.Length
-
___second_run_iterator
)
);
/////////////////////////// THIS PART IS TRICKY TO AVOID THE OVERFLOW IN ITERATIONS//////
/////////////////////////// THIS PART IS TRICKY TO AVOID THE OVERFLOW IN ITERATIONS//////
/////////////////////////// THIS PART IS TRICKY TO AVOID THE OVERFLOW IN ITERATIONS//////
/// double ___club_the_duration = 0;
////////////////////////////////CAUTION CAUTION CAUTION _iterate_forward STARTS AT 1
/// ////////////////////////////////CAUTION CAUTION CAUTION _iterate_forward STARTS AT 1
/// ////////////////////////////////CAUTION CAUTION CAUTION _iterate_forward STARTS AT 1
for ( _iterate_forward=1; _iterate_forward < ___second_run_look_forward_scanner_counter; _iterate_forward++)
{
if((___second_run_iterator + _iterate_forward) < ___sorted_times_array_for_second_run_scanning_to_purge_notes.Length)
{
if(
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.NEAREST_LOWER_NOTE_NUMBER_FOUND
==
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator ]
.NEAREST_LOWER_NOTE_NUMBER_FOUND
)
{
//////___sorted_times_array_for_second_run_scanning_to_purge_notes
//////[___second_run_iterator]
//////.
//////TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
//////=
//////___sorted_times_array_for_second_run_scanning_to_purge_notes
//////[___second_run_iterator]
//////.
//////TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
//////+
//////(
//////___sorted_times_array_for_second_run_scanning_to_purge_notes
//////[___second_run_iterator + _iterate_forward]
//////.TIME_IN_MILLISECONDS
//////-
//////___sorted_times_array_for_second_run_scanning_to_purge_notes
//////[___second_run_iterator + _iterate_forward -1]
//////.TIME_IN_MILLISECONDS
//////);
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator]
.
TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
=
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.TIME_IN_MILLISECONDS
-
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator]
.TIME_IN_MILLISECONDS
;
/////////////////////////
///
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator]
.FINAL_FREQUENCY_FOUND_WHILE_NOTES_CLUBBED_INsECOND_RUN
=
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.FREQUENCY_IN_HERTZ;
////// everytime it is updated while clubbing the data to current notes
///////////////////// this is tricky thing /////////////
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator]
.SECOND_RUN_RAW_NOTE_COUNTER
=
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Count
+1;
///////////////////// this is tricky thing /////////////
///
///
///
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator]
.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN
=
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator]
.TIME_IN_MILLISECONDS
+
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator]
.
TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
;
///////////////////////////////// THE ABOVE DATA IS UPDATED EVERY TIMES ///
/////////////////////////////////////////////////////////////////////////
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator]
.THE_BEST_FIT_PITCH_BEND_CALCULATED_WITH_CURRENT_VALID_NOTE_FREQUENCY_AND_NEXT_VALID_NOTE_FREQUENCY
=
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator]
.THE_BEST_FIT_PITCH_BEND_CALCULATED_WITH_CURRENT_VALID_NOTE_FREQUENCY_AND_NEXT_VALID_NOTE_FREQUENCY
+
"_pitch_bend_t=" +
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.TIME_IN_MILLISECONDS
.ToString("G17")
//.ToString("B17")
+ "f=" +
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.FREQUENCY_IN_HERTZ
.ToString("G17")
//.ToString("B17")
;
//////this.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN = 0;
//////this.ALL_INTERMEDIATE_FREQUENCIES_FOR_PITCHBENDS_ACCUMULATED_AT_SECOND_RUN___WITH_MILLISECS_PITCH = "";
//////this.FINAL_FREQUENCY_FOUND_WHILE_NOTES_CLUBBED_INsECOND_RUN = 0;
}
else
{
/// else case starts
/// which means new note to start in second loop scanning
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
/// the moment when the note is not matching we first add the currently gathered object
/// then we proceed with other tasks such that we can then proceed with next tasks
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Add
(
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator]
);
/// the moment when the note is not matching we first add the currently gathered object
/// then we proceed with other tasks such that we can then proceed with next tasks
////////////////TOOOOOOOOOOOOOO IMPORTANT /////////////////////////
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
=
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN;
////////////////TOOOOOOOOOOOOOO IMPORTANT /////////////////////////
///
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN
=
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.TIME_IN_MILLISECONDS
+
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN;
////////////////TOOOOOOOOOOOOOO IMPORTANT /////////////////////////
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.TO_TAKE_THIS_NOTE_IN_SECOND_RUN___FALSE_OR_TRUE
= true;
////////////////TOOOOOOOOOOOOOO IMPORTANT /////////////////////////
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.
TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
=
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
;
////////////////TOOOOOOOOOOOOOO IMPORTANT /////////////////////////
///
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN
=
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN;
////////////////TOOOOOOOOOOOOOO IMPORTANT /////////////////////////
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.
FINAL_FREQUENCY_FOUND_WHILE_NOTES_CLUBBED_INsECOND_RUN
=
___sorted_times_array_for_second_run_scanning_to_purge_notes
[___second_run_iterator + _iterate_forward]
.
FINAL_FREQUENCY_FOUND_WHILE_NOTES_CLUBBED_INsECOND_RUN
;
////////////////TOOOOOOOOOOOOOO IMPORTANT /////////////////////////
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.TO_TAKE_THIS_NOTE_IN_SECOND_RUN___FALSE_OR_TRUE
= true;
///JUMPS TO THE NEXT VALID NOTE TO ACCUMULATE THAT
///
___second_run_iterator
=
___second_run_iterator + _iterate_forward;
////////////////TOOOOOOOOOOOOOO IMPORTANT /////////////////////////
/// SIMPLY PROCEED AHEAD THE NEXT ENTRY OF THE DATA WILL DO OTHER THINGS
////////////////TOOOOOOOOOOOOOO IMPORTANT /////////////////////////
//////REFINED_SECOND_RUN_NOTES_PURGED_NON_STRUMBLING_NOTES_StringBuilder_for_valid_frequencies
//////.AppendLine
//////(
//////"track,channel,patch_number,patch_name,pitch_bend_number,note_frequency_linier_y_start_data,note_frequency_linier_y_final_data,note_name,note_start_time_from_linier_x_data,note_final_time_from_linier_x_data,note_duration,note_velocity,grabbed_lyrics_text,grabbed_lyrics_Absolute_times"
//////);
STRINGBUILDER_TO_LOG_SECOND_RUNS
.AppendLine
(
"TESTING LIST LEN"+
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Count
+ " SEC NOTE COUNT " +
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.SECOND_RUN_RAW_NOTE_COUNTER
+ " START TIME MS " +
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.TIME_IN_MILLISECONDS
+ " FINAL TIME MS " +
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN
+ " DURATION " +
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN
+ " NOTE NUMS " +
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.NEAREST_LOWER_NOTE_NUMBER_FOUND
+ " NOTES NAMES " +
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.NEAREST_LOWER_NOTE_NAME_FOUND
+ " PITCH BEND " +
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
.Last()
.THE_BEST_FIT_PITCH_BEND_CALCULATED_WITH_CURRENT_VALID_NOTE_FREQUENCY_AND_NEXT_VALID_NOTE_FREQUENCY
);
/// to avoid the overrun to avoid over checking
/// to avoid the overrun to avoid over checking
/// to avoid the overrun to avoid over checking
goto goto_here_after_adding_the_next_data_for_new_note_found;
}
//end of else case
////////////if (
////////////___sorted_times_array_for_second_run_scanning_to_purge_notes
////////////[___second_run_iterator + _iterate_forward]
////////////.NEAREST_LOWER_NOTE_NUMBER_FOUND
////////////==
////////////___sorted_times_array_for_second_run_scanning_to_purge_notes
////////////[___second_run_iterator]
////////////.NEAREST_LOWER_NOTE_NUMBER_FOUND
////////////)
}//if((___second_run_iterator + _iterate_forward) < ___sorted_times_array_for_second_run_scanning_to_purge_notes.Length)
}// for (int _iterate_forward=1; _iterate_forward < ___second_run_look_forward_scanner_counter; _iterate_forward++)
}// if(___second_run_iterator==0)
}
//////for (
//////int ___second_run_iterator = 0;
//////___second_run_iterator
//////<
//////___sorted_times_array_for_second_run_scanning_to_purge_notes.Length;
//////___second_run_iterator++
//////)
}//if (___sorted_times_array_for_second_run_scanning_to_purge_notes.Length>0)
//////////////////////////////////////////////////////////////////////////
this.progressBarFOR_ANIMATIONS_SAVING.Value = this.progressBarFOR_ANIMATIONS_SAVING.Maximum;// (int)line_Segments_counter;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
///////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
___temp_praat_frequency_files_text_files
+ "_TESTING___SEC_RUNS_durs_" +
((int)___temp_millisecond_found).ToString()
+
"_RN_" + ___temp_total_raw_notes
+
"_raw_data_found.TEST LOG FOR SAANOWNCSVLINIERSCALEDDXFFORMIDI"
,
STRINGBUILDER_TO_LOG_SECOND_RUNS
.ToString()
);
//////////////////////////////////////////////////////////////////////////////////////
int ___SECOND_RUNS_VALID_NOTES_COUNTER = 0;
foreach
(
PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
_to_log_secondruns_objects
in
___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
)
{
if(_to_log_secondruns_objects.TO_TAKE_THIS_NOTE_IN_SECOND_RUN___FALSE_OR_TRUE)
{
___SECOND_RUNS_VALID_NOTES_COUNTER++;
if
(
Math.Floor(
_to_log_secondruns_objects.TIME_IN_MILLISECONDS
+
// _to_log_secondruns_objects.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN
Math.Floor
(
_to_log_secondruns_objects.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN
-
_to_log_secondruns_objects.TIME_IN_MILLISECONDS
)
)
>0
)
{
if(
_to_log_secondruns_objects.FINAL_FREQUENCY_FOUND_WHILE_NOTES_CLUBBED_INsECOND_RUN > 0
)
{
///////////////////////////////ok
}
else
{
_to_log_secondruns_objects.FINAL_FREQUENCY_FOUND_WHILE_NOTES_CLUBBED_INsECOND_RUN
=
_to_log_secondruns_objects.FREQUENCY_IN_HERTZ;
}
//////if (
//////_to_log_secondruns_objects.FINAL_FREQUENCY_FOUND_WHILE_NOTES_CLUBBED_INsECOND_RUN > 0
//////)
REFINED_SECOND_RUN_NOTES_PURGED_NON_STRUMBLING_NOTES_StringBuilder_for_valid_frequencies
.AppendLine
(
//////"track" +
//////",channel" +
//////",patch_number" +
//////",patch_name" +
//////",pitch_bend_number" +
//////",note_frequency_linier_y_start_data" +
//////",note_frequency_linier_y_final_data" +
//////",note_name" +
//////",note_start_time_from_linier_x_data" +
//////",note_final_time_from_linier_x_data" +
//////",note_duration,note_velocity" +
//////",grabbed_lyrics_text" +
//////",grabbed_lyrics_Absolute_times"
///
"6,3,74,flute,0,"
+
Math.Floor( _to_log_secondruns_objects.FREQUENCY_IN_HERTZ)
+","+
Math.Floor(_to_log_secondruns_objects.FINAL_FREQUENCY_FOUND_WHILE_NOTES_CLUBBED_INsECOND_RUN)
+ "," +
(_to_log_secondruns_objects.NEAREST_LOWER_NOTE_NUMBER_FOUND)
+ "," +
Math.Floor(_to_log_secondruns_objects.TIME_IN_MILLISECONDS)
+ "," +
Math.Floor(
_to_log_secondruns_objects.TIME_IN_MILLISECONDS
+
// _to_log_secondruns_objects.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN
Math.Floor(
_to_log_secondruns_objects.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN
-
_to_log_secondruns_objects.TIME_IN_MILLISECONDS
)
)
+ "," +
//Math.Floor(_to_log_secondruns_objects.TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN)
Math.Floor(
_to_log_secondruns_objects.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN
-
_to_log_secondruns_objects.TIME_IN_MILLISECONDS
)
+ "," +
100
+ "," +
_to_log_secondruns_objects.NEAREST_LOWER_NOTE_NAME_FOUND
+ "," +
Math.Floor(_to_log_secondruns_objects.TIME_IN_MILLISECONDS)
);
}
////////////if
////////////(
////////////Math.Floor(
////////////_to_log_secondruns_objects.TIME_IN_MILLISECONDS
////////////+
////////////// _to_log_secondruns_objects.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN
////////////Math.Floor
////////////(
////////////_to_log_secondruns_objects.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN
////////////-
////////////_to_log_secondruns_objects.TIME_IN_MILLISECONDS
////////////)
////////////)
////////////> 0
////////////)
///
}//if(_to_log_secondruns_objects.TO_TAKE_THIS_NOTE_IN_SECOND_RUN___FALSE_OR_TRUE)
}
//////foreach
////// (
////// PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
////// _to_log_secondruns_objects
////// in
////// ___temp_List_of___PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES_for_second_run
////// )
System.IO.File.WriteAllText
(
___temp_praat_frequency_files_text_files
+ "_SEC_RUNS_durs_" +
((int)___temp_millisecond_found).ToString()
+
"_RN_" + ___temp_total_raw_notes+"_valid_"+ ___SECOND_RUNS_VALID_NOTES_COUNTER
+
"_raw_data_found.SAANOWNCSVLINIERSCALEDDXFFORMIDI"
,
REFINED_SECOND_RUN_NOTES_PURGED_NON_STRUMBLING_NOTES_StringBuilder_for_valid_frequencies
.ToString()
);
System.Windows.Forms.MessageBox.Show("Second Run completes");
}
catch (Exception _excp_to_read___PRAAT_FREQUENCY_TEXT_READER)
{
System.Windows.Forms.MessageBox.Show("_excp_to_read___PRAAT_FREQUENCY_TEXT_READER " + _excp_to_read___PRAAT_FREQUENCY_TEXT_READER.Message + " " + _excp_to_read___PRAAT_FREQUENCY_TEXT_READER.StackTrace.ToString());
}//catch(Exception _excp_to_read___PRAAT_FREQUENCY_TEXT_READER)
}// private void button_PRAAT_FREQUENCY_TEXT_READER_Click(object sender, EventArgs e)
private void textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2_TextChanged(object sender, EventArgs e)
{
string ______the_denominator_found_string
=
this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.Text.ToString().TrimEnd().TrimStart().Trim();
// if not starts with = then do the reverse calculations of denominator with log
//////if(______the_denominator_found_string.StartsWith("="))
////// {
////// //dont revise this data
////// }
//////else
////// {
////// try
////// {
////// ______the_denominator_found_string
////// }
////// catch(Exception _excp)
////// {
////// }//catch(Exception _excp)
////// }//end of else cases if(______the_denominator_found_string.StartsWith("="))
///
double _calculate_denominator_double_data
= 0;
double ___found_the_power_of_two
= 0;
try
{
_calculate_denominator_double_data
=
Convert.ToDouble
(
______the_denominator_found_string
);
___found_the_power_of_two
=
/// Math.Pow(_calculate_denominator_double_data, 2);
Math.Pow(2,_calculate_denominator_double_data);
this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT.Text
= "=" + ___found_the_power_of_two;
}
catch (Exception _excp)
{
}//catch(Exception _excp)
}//private void textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2_TextChanged(object sender, EventArgs e)
private void textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT_TextChanged(object sender, EventArgs e)
{
//////try
////// {
////// string ___found_text_string_in_direct_denominator = "";
////// ___found_text_string_in_direct_denominator
////// =
////// this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT.Text.ToString().TrimEnd().TrimStart().Trim();
////// if(___found_text_string_in_direct_denominator.StartsWith("="))
////// {
////// // dont calculate when it is already calculated data
////// // this is done to avoid the circular loops
////// }else
////// {
////// double ___found_direct_TS_denominator
////// = Convert.ToDouble(___found_text_string_in_direct_denominator);
////// double ___the_TS_denominator_which_is_log_two
////// = Math.Log(___found_direct_TS_denominator) / Math.Log(2);
////// this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.Text
////// = ___the_TS_denominator_which_is_log_two.ToString("G27"); ;
////// }// end of if(___found_text_string_in_direct_denominator.StartsWith("="))
////// }
//////catch(Exception ___excp)
////// {
////// }//catch(Exception ___excp)
}// private void textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT_TextChanged(object sender, EventArgs e)
private void textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT_Leave(object sender, EventArgs e)
{
try
{
string ___found_text_string_in_direct_denominator = "";
___found_text_string_in_direct_denominator
=
this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT.Text.ToString().TrimEnd().TrimStart().Trim();
if (___found_text_string_in_direct_denominator.StartsWith("="))
{
// dont calculate when it is already calculated data
// this is done to avoid the circular loops
}
else
{
double ___found_direct_TS_denominator
= Convert.ToDouble(___found_text_string_in_direct_denominator);
double ___the_TS_denominator_which_is_log_two
= Math.Log(___found_direct_TS_denominator) / Math.Log(2);
this.textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.Text
= ___the_TS_denominator_which_is_log_two.ToString("G27"); ;
}// end of if(___found_text_string_in_direct_denominator.StartsWith("="))
}
catch (Exception ___excp)
{
}//catch(Exception ___excp)
}//private void textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_DIRECT_Leave(object sender, EventArgs e)
private void textbox_FOR_TXT_TO_WAVS_SAMPLES_PER_SEGMENT_TextChanged(object sender, EventArgs e)
{
double ___temp_data_for_samples_in_SEGMENT = 3000;
double ___temp_data_for_samples_per_segment_for_wav_files_generator_is_reverse_calculated_from_samples_found_and_durations_milliseconds = 30;// 44100;
try
{
//////////////////////300 CAUTION_DO_YOU_NEED_THE_WAV_FILES_SAMPLES_FOR_GTSTATES___YES_NO N
//////////////////////301 CAUTION_FACTOR_GAINS___distances_for_given____NUMBER 1.01
//////////////////////302 CAUTION_FACTOR_GAINS___distances_for_output____NUMBER 1.01
//////////////////////303 CAUTION_FACTOR_GAINS___distances_for_complement____NUMBER 1.01
//////////////////////304 CAUTION_FACTOR_GAINS___distances_for_distances_for_output_cumulations____NUMBER 1.01
//////////////////////305 CAUTION_FACTOR_GAINS___distances_for_distances_for_complement_cumulations____NUMBER 1.01
//////////////////////306 CAUTION_FACTOR_GAINS___distances_for_hypotenuses_cumulations____NUMBER 1.01
//////////////////////307 CAUTION_FACTOR_GAINS___distances_for_bases_cumulations____NUMBER 1.01
//////////////////////308 CAUTION_FACTOR_GAINS___distances_for_perpendiculars_cumulations____NUMBER 1.01
//////////////////////309 CAUTION_SAMPLE_POINTS_PER_HYPOTENUSE_IN_GT_SIMPLEX_SEGMENT____NUMBER 33
//////////////////////310 CAUTION_SAMPLE_POINTS_PER_PERPENDICULAR_IN_GT_SIMPLEX_SEGMENT____NUMBER 37
//////////////////////311 CAUTION_SAMPLE_POINTS_PER_BASE_IN_GT_SIMPLEX_SEGMENT____NUMBER 21
//////////////////////312 CAUTION_SAMPLE_POINTS_PER_CUMULATIONS_SEGMENTS_IN____NUMBER 11
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
System.Windows.Forms.MessageBox.Show
(
"cross verify the data in data grids 303 to 312 rows\r\n" +
"" +
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SEGMENT_FOUND
+"\r\n"+
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_SAMPLE_POINTS_PER_CUMULATIONS_SEGMENTS_IN____NUMBER___312
);
___temp_data_for_samples_in_SEGMENT
=
Convert.ToDouble(this.textbox_FOR_TXT_TO_WAVS_SAMPLES_PER_SEGMENT.Text.ToString().TrimEnd().TrimStart().Trim());
___temp_data_for_samples_in_SEGMENT
= Math.Max
(
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SEGMENT_FOUND
,
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class.
CAUTION_SAMPLE_POINTS_PER_CUMULATIONS_SEGMENTS_IN____NUMBER___312
);
// this.generatorPanel_for_saan_gt_systems.public_non_static_double_durations_in_milliseconds
// = ___temp_data_for_duration_in_seconds;
}
catch (Exception _excp)
{
___temp_data_for_samples_in_SEGMENT = 30;// 44200;
}//catch(Exception _excp)
___temp_data_for_samples_per_segment_for_wav_files_generator_is_reverse_calculated_from_samples_found_and_durations_milliseconds
= 30;// 44100;//default
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SECOND_FOUND
= ___temp_data_for_samples_per_segment_for_wav_files_generator_is_reverse_calculated_from_samples_found_and_durations_milliseconds;
//
// ___temp_data_for_samples_in_SEGMENT;
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_SAMPLES_PER_SEGMENT_FOUND
= ___temp_data_for_samples_in_SEGMENT;
}// private void textbox_FOR_TXT_TO_WAVS_SAMPLES_PER_SEGMENT_TextChanged(object sender, EventArgs e)
private void button_DUMP_WAV_TO_CHANNEL_AMPLITUDES_Click(object sender, EventArgs e)
{
///dls files to samples dumps
///C:\Program Files (x86)\Extreme Sample Converter 3
///D:\SAANSWAVESDSPS\NWaves\SAANSWAVESDSPS\too important exsc_3.6.1_demo
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "wav/wav Files (.wav)|*.wav|GTWAVS/GTWAVS_Files (.wave)|*.wave|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_waves_files_name = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
if (this.textBox_BIT_DEPTH.Text.ToString().TrimEnd().TrimStart().Trim().Length > 0)
{
try
{
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_INT_BIT_DEPTH_FOR_WAV_FILES_EXPORT___TAKEN_FROM_WAV_TAB_FOR_FORMS
=
Convert.ToInt16(this.textBox_BIT_DEPTH.Text.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _to_convert)
{
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_INT_BIT_DEPTH_FOR_WAV_FILES_EXPORT___TAKEN_FROM_WAV_TAB_FOR_FORMS
= 16;//default
}//catch(Exception _to_convert)
}
else
{
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_INT_BIT_DEPTH_FOR_WAV_FILES_EXPORT___TAKEN_FROM_WAV_TAB_FOR_FORMS
= 16;//default
}//else cases if(this.textBox_BIT_DEPTH.Text.ToString().TrimEnd().TrimStart().Trim().Length>0)
// tested ok
PUBLIC_STATIC_CLASS_SAAN_STYLE_WAV_FILES_READERS
.INDEPENDENT_ExtractAndWriteChannelAmplitudes
(___temp_waves_files_name);
////////////////////////////////////////////////////////////////////////////////////////////////
this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS
.Text
=
ExcelFormulaParser_GT_PARSER
.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___WAV_FILES_AMPLITUDE_GENERATOR_DURATIONS_MILLISECONDS_FOUND
.ToString();
////////////////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("Channel wise Amplitudes dumped in .GTAMPS files");
}//private void button_DUMP_WAV_TO_CHANNEL_AMPLITUDES_Click(object sender, EventArgs e)
private void button_SAAN_SYLLABLES_TO_AMPLITUDES_SAMPLES_Click(object sender, EventArgs e)
{
System.Windows.Forms.MessageBox.Show("reads the comma seperated files with first cols as lysylls and second columns as durs ms these are .SAANLYRSYLLS or .csv or .txt");
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "SAANLYRSYLLS/SAANLYRSYLLS Files (.SAANLYRSYLLS)|*.SAANLYRSYLLS|TXT/TXT (.txt)|*.txt|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___saan_temp_lyrsylls_files_name = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
SAAGIRID.ClassToGenerateSAANSAAGIRID_DXF_Reports_26092019.initialize_dxf_for_sbuilder_for_dxf();
SAANAUDS.Wave
.ConstructIrregularConvexClosedPolygonSmoothe_rollable_with_initial_ordered_counterclock_sequential_edge_lengths_list
.public_static_void_read_lyrs_file_to_iterate_find_smoothe_polygon
(
___saan_temp_lyrsylls_files_name
,
1000
,
50
);
//////////////////////////////////////////////////////////////////////////////////////////
this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text
=
SAANAUDS.Wave
.ConstructIrregularConvexClosedPolygonSmoothe_rollable_with_initial_ordered_counterclock_sequential_edge_lengths_list
.___initial_total_duration_found_in_lyrs_sylls_files
.ToString()
;
//////////////////////////////////////////////////////////////////////////////////////////
SAAGIRID.ClassToGenerateSAANSAAGIRID_DXF_Reports_26092019.finalizer_dxf_for_sbuilder_for_dxf();
//////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
___saan_temp_lyrsylls_files_name+"_"+System.DateTime.Now.ToString("MMddyyyyhhmmss")+"_rolled.dxf"
,
SAAGIRID.ClassToGenerateSAANSAAGIRID_DXF_Reports_26092019
.sbuilder_for_dxf.ToString()
);
//////////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("images saved data saved and ultimately wioll generate .GTAMPS");
//////////////////////////////////////////////////////////////////////////////////////////
}// private void button_SAAN_SYLLABLES_TO_AMPLITUDES_SAMPLES_Click(object sender, EventArgs e)
private void button___READ_THE_STEREO_AMPLITUDES_FILES_GENERATE_WAVS_Click(object sender, EventArgs e)
{
System.Windows.Forms.MessageBox.Show("READS THE STEREO MULTIPLE COLS GTAMPLITUDES FILES WITH COLUMN NAME Amplitudes and list large number of amplitudes data \r\n and \r\n fits with above durations milliseconds");
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "STEREOAMPS/STEREOAMPS Files (.STEREOAMPS)|*.STEREOAMPS|TXT/TXT_Files (.TXT)|*.TXT|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_gtmidiamps_files_name = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
double total_durations_in_milliseconds = Convert.ToDouble(this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text.TrimEnd().TrimStart().Trim());
int int_duration_in_millisecond = (int)total_durations_in_milliseconds;
// Replace "your-audio-file.wav" with the path to your .wav file
/// string gtmidiampsforwavs = ___temp_gtmidiamps_files_name;// "your-audio-file.wav";
///
// this function is in same file public class WaveFileWriter : Stream
//seperate public static class is defined there
PUBLIC_STATIC_CLASS_SAAN_WAVE_FILES_WRITER
.GenerateStereoWavFilesFromCSV___FOR___MULTIPLE_COLUMNS_AMPLITUDES_FOR_STEREO_CHANNELS
(
___temp_gtmidiamps_files_name
,
___temp_gtmidiamps_files_name + "_saan_STEREO.wav"
,
int_duration_in_millisecond
);
}
private void textBox_BIT_DEPTH_TextChanged(object sender, EventArgs e)
{
///default 16 bits
///textBox_BIT_DEPTH
///
if(this.textBox_BIT_DEPTH.Text.ToString().TrimEnd().TrimStart().Trim().Length>0)
{
try
{
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_INT_BIT_DEPTH_FOR_WAV_FILES_EXPORT___TAKEN_FROM_WAV_TAB_FOR_FORMS
=
Convert.ToInt16(this.textBox_BIT_DEPTH.Text.ToString().TrimEnd().TrimStart().Trim());
}
catch(Exception _to_convert)
{
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_INT_BIT_DEPTH_FOR_WAV_FILES_EXPORT___TAKEN_FROM_WAV_TAB_FOR_FORMS
= 16;//default
}//catch(Exception _to_convert)
}
else
{
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_INT_BIT_DEPTH_FOR_WAV_FILES_EXPORT___TAKEN_FROM_WAV_TAB_FOR_FORMS
= 16;//default
}//else cases if(this.textBox_BIT_DEPTH.Text.ToString().TrimEnd().TrimStart().Trim().Length>0)
}//private void textBox_BIT_DEPTH_TextChanged(object sender, EventArgs e)
private void generatorPanelIITS_IMPORTANT_FOR_WAVES_SAMPLES_ANALYSIS_Load(object sender, EventArgs e)
{
}//private void generatorPanelIITS_IMPORTANT_FOR_WAVES_SAMPLES_ANALYSIS_Load(object sender, EventArgs e)
private void button_WAV_FILES_TO_DATA_BANK_ASCII_Click(object sender, EventArgs e)
{
///dls files to samples dumps
///C:\Program Files (x86)\Extreme Sample Converter 3
///D:\SAANSWAVESDSPS\NWaves\SAANSWAVESDSPS\too important exsc_3.6.1_demo
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "wav/wav Files (.wav)|*.wav|GTWAVS/GTWAVS_Files (.wave)|*.wave|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_waves_files_name = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
string folderPath_FOR_WAV_BANKS = Path.GetDirectoryName(___temp_waves_files_name);
SAAGIRID.ClassToGenerateSAANSAAGIRID_DXF_Reports_26092019.initialize_dxf_for_sbuilder_for_dxf();
System.IO.File.WriteAllText
(
folderPath_FOR_WAV_BANKS + "\\within_reader_SAAN_SOUNDS_BANKS_COMPILED_output.txt"
,
/// "\r\n" + ___internal_stringbuilder_for_direct_files_appending.ToString()
"\r\nwriting_all_text______inside______________button_WAV_FILES_TO_DATA_BANK_ASCII_Click to clear previous contents in this file\r\n"
);
///for references
////////////___internal_stringbuilder_for_small_rows_appending
//////////// .AppendLine
//////////// (
//////////// $"" +
//////////// $",{___temp_samples_count_for_this_channel}" +
//////////// $",{amplitude.ToString("F6")}"
//////////// );
System.IO.File.WriteAllText
(
folderPath_FOR_WAV_BANKS + "\\simplest_csv_like_data.txt"
,
/// "\r\n" + ___internal_stringbuilder_for_direct_files_appending.ToString()
"\r\nwriting_all_text______inside______________button_WAV_FILES_TO_DATA_BANK_ASCII_Click to clear previous contents in this file\r\n"
+"filename,sample_count,amplitude_float\r\n"
);
SAANAUDS
.Wave.
PUBLIC_STATIC_CLASS_SAAN_STYLE_WAV_FILES_READERS
.READ_ALL_WAV_FILES_IN_SOUNDSBANK_FOLDER_TO_REPORT_SAMPLES_DATA___Main
(
folderPath_FOR_WAV_BANKS
,
ref this.progressBarFOR_ANIMATIONS_SAVING
)
;
SAAGIRID
.ClassToGenerateSAANSAAGIRID_DXF_Reports_26092019
.finalizer_dxf_for_sbuilder_for_dxf();
System.IO.File.WriteAllText
(
folderPath_FOR_WAV_BANKS
+ "\\reporting_complete_selected_waves_data.dxf"
,
SAAGIRID
.ClassToGenerateSAANSAAGIRID_DXF_Reports_26092019
.sbuilder_for_dxf
.ToString()
);
System.Windows.Forms.MessageBox.Show("sounds banks data ASCII_Fied");
}//private void button_WAV_FILES_TO_DATA_BANK_ASCII_Click(object sender, EventArgs e)
/// private async Task button_LARGE_WAV_FILES_TO_DXF_CSV_SPECTRO_CORRELOS_AMPS_PATTERNS_ClickAsync(object sender, EventArgs e)
/// /// this is the trick private async void
/// /// /// this is the trick private async void
/// /// /// this is the trick private async void
private async void button_LARGE_WAV_FILES_TO_DXF_CSV_SPECTRO_CORRELOS_AMPS_PATTERNS_Click(object sender, EventArgs e)
{
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "WAV(.WAV)|*.WAV|SAAN_IOTAMPSBIN_FILE(.IOTAMPSBIN)|*.IOTAMPSBIN|All Files (*.*)|*.*";
// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
// string FILENAMES_FOR_WAVS_SAAN_IOT_AMPS_BINS = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName;
// System.Windows.Forms.MessageBox.Show("FILENAMES_FOR_WAVS_SAAN_IOT_AMPS_BINS = " + FILENAMES_FOR_WAVS_SAAN_IOT_AMPS_BINS);
//////SAANAUDS.Wave.PUBLIC_STATIC_CLASS_SAAN_STYLE_WAV_FILES_READERS
////// .
//////PUBLIC_STATIC_VOID_INDEPENDENT_READ_SINGLE_WAV_FILE_TO_CONVERT_ITS_REPORT_TO_DXF
//////(FILENAMES_FOR_WAVS_SAAN_IOT_AMPS_BINS, ref progressBarFOR_ANIMATIONS_SAVING);
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Title = "Select a WAV File";
/////////////////////////////////////////////////////////////////////////////////////////////
var tasks = new List<Task>();
/////////////////////////////////////////////////////////////////////////////////////////////
if (openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog() == DialogResult.OK)
{
string wavFilePath = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName;
// Create progress reporter
Progress<int> progress = new Progress<int>(percent =>
{
// Update progress bar or display progress
//progressBar.Value = percent;
this.progressBarFOR_ANIMATIONS_SAVING.Value = percent;
});
/////////////////////////////////////////////////////////////////////////////////////////////
try
{
// Task ___ttt=
// Call the method asynchronously
// await SAANAUDS.Wave.PUBLIC_STATIC_CLASS_SAAN_STYLE_WAV_FILES_READERS
// .ReadSingleWavFileToConvertItsReportToDxf(wavFilePath, progress);
/// tasks.Add
///
// for (int channel = 0; channel < public_static_int_channels; channel++)
// {
// tasks.Add(ReadChannelData(folder_path, inputFilePath, binaryReader, channel, bytesPerSample, public_static_int_sampleRate, progress));
/////////////////////////////////////////////////////////////////////////////////////////////
tasks.Add
(
SAANAUDS.Wave.PUBLIC_STATIC_CLASS_SAAN_STYLE_WAV_FILES_READERS
.ReadSingleWavFileToConvertItsReportToDxf(wavFilePath, progress)
);
/////////////////////////////////////////////////////////////////////////////////////////////
///
// }//for (int channel = 0; channel < channels; channel++)
/////////////////////////////////////////////////////////////////////////////////////////////
await Task.WhenAll(tasks);
/////////////////////////////////////////////////////////////////////////////////////////////
///
// Process completed successfully
MessageBox.Show("File processing completed successfully.");
}
catch (Exception ex)
{
// Handle any exceptions
MessageBox.Show("An error occurred: " + ex.Message);
}// catch (Exception ex)
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
}//private void button_LARGE_WAV_FILES_TO_DXF_CSV_SPECTRO_CORRELOS_AMPS_PATTERNS_Click(object sender, EventArgs e)
private void textBox___GT___PARSED_REPORT_Click(object sender, EventArgs e)
{
// ExcelFormulaParser_GT_PARSER.SIMPLE_MATH_PARSER_TK.PUBLICSTATICCLASSFORCHATGPTSAANGTPARSER.SAAN_GEOMETRIFY_CLEAN_FORMALIZE_FIRST
string ___temp_input_string = "";
___temp_input_string = this.textBox___INPUT_GT_TEXT.Text;
___temp_input_string
=
___temp_input_string
.Replace
(
"= SanjoyNath_Geometrify[", ""
)
.Replace("]","");
string ___temp_gt_report_output = "";
//F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SIMPLE_MATH_PARSER_TK\PUBLICSTATICCLASSFORCHATGPTSAANGTPARSER.cs
___temp_gt_report_output
=
// MathExpressionParser
// ExcelFormulaParser_GT_PARSER
// .
// .MathExpressionParser
// .
//.PUBLICSTATICCLASSFORCHATGPTSAANGTPARSER
// .SAAN_GEOMETRIFY_CLEAN_FORMALIZE_FIRST
MathExpressionParser_Whapp
.WHAPPProgram
.CALLING_THIS_FUNCTIONS___TO_PARSE_TREE_Main___whappparser
(___temp_input_string);
//////___temp_gt_report_output
////// =
//////ExcelFormulaParser_GT_PARSER
////// .SIMPLE_MATH_PARSER_TK
////// .PUBLICSTATICCLASSFORCHATGPTSAANGTPARSER
////// .SAAN_GEOMETRIFY_CLEAN_FORMALIZE_FIRST
////// (___temp_input_string);
this.textBox___GT___PARSED_REPORT.Text = ___temp_gt_report_output;
}// private void textBox___GT___PARSED_REPORT_Click(object sender, EventArgs e)
private void textBox___GT___PARSED_REPORT_TextChanged(object sender, EventArgs e)
{
}
private void button___TEST_ALL_INSTS_NOTES_DURATIONS_Click(object sender, EventArgs e)
{
try
{
/////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
///WRITEN IN THE MIDIFILE CS FILES
SAANAUDS.Midi
.SAAN_INSTRUMENTS_TESTER
.all_instruments_all_notes_all_durations___Main
(
ExcelFormulaParser_GT_PARSERSample
.Program
.public_static_string_GT_folder
+ "saans_midi_tests"
);
/////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_generate_the_instruments_mids_files)
{
System.Windows.Forms.MessageBox.Show("___excp_to_generate_the_instruments_mids_files " + ___excp_to_generate_the_instruments_mids_files.Message + ___excp_to_generate_the_instruments_mids_files.StackTrace.ToString());
System.IO.File.WriteAllText
(
ExcelFormulaParser_GT_PARSERSample
.Program
.public_static_string_GT_folder
+ "saan_tests_al_insts_all_durations_all_notes___logging.txt"
,
"___excp_to_generate_the_instruments_mids_files " + ___excp_to_generate_the_instruments_mids_files.Message + ___excp_to_generate_the_instruments_mids_files.StackTrace.ToString()
);
}//catch(Exception ___excp_to_generate_the_instruments_mids_files)
}// private void button___TEST_ALL_INSTS_NOTES_DURATIONS_Click(object sender, EventArgs e)
private void button___CIRCDXFGUITSMIDS_Click(object sender, EventArgs e)
{
try
{
/////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("layers prefers NOTE_trknos_chnlsnos_patchnos_velocity");
////////////////////REFERENCES FOR THE LAYER NAMES
////////////////////////////"NOTE_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___TRACK_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_INT_SAAN___CHANNEL_NUMBER.ToString()
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_INSTRUMENT_NUMBER_PATCH_NUMBER.ToString().TrimEnd().TrimStart().Trim()
////////////////////////////// not taking the pitch bends in the layers names
////////////////////////////+ "_" +
////////////////////////////_log_midi_event.PUBLIC_DOUBLE_SAAN___MIDI_NOTE_ON_THE_VELOCITY.ToString()
///
//D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.
PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
();
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////SAANAUDSFRESH.MidiUtils.MidiConverter
////// _saan_checking_MidiFile_Converter = new SAANAUDSFRESH.MidiUtils.MidiConverter();
//////SAANAUDSFRESH.MidiUtils.MainForm _to_chk_main_form = new SAANAUDSFRESH.MidiUtils.MainForm();
//////_to_chk_main_form.Show();
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
=
new List<double>();
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
////// System.Windows.Forms.MessageBox.Show("THE FIRST RUN DOES DIFFERENT THING(EXPERIMENTING)\r\n THE SECOND RUN GENERATES THE MIDI WITH THE PITCH BETS ON THE NOTES FROM STARTING");
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "DXF Files (.dxf)|*.dxf|All Files (*.*)|*.*";
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
////// string ___temp_dxf_file_to_read_for_mids
////// =
////// openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////// ////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
////// ///////////////yes running
////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile(___temp_dxf_file_to_read_for_mids, false);
////// /// / yes running
//////// _midf.Describe();
////// System.IO.File.WriteAllText(___temp_dxf_file_to_read_for_mids+ "TO ADD THIS _midf.Describe().TXT", _midf.ToString());
////// ////////////////////////////////////// yessssssssssssssssssssss worked
////// System.Windows.Forms.MessageBox.Show(___temp_dxf_file_to_read_for_mids);
}
catch (Exception _excp_to_read_or_prepare_log_the_midi_files)
{
System.Windows.Forms.MessageBox.Show
("_excp_to_read_or_prepare_log_the_midi_files" + _excp_to_read_or_prepare_log_the_midi_files.Message + "\r\n\r\n\r\n"
+ _excp_to_read_or_prepare_log_the_midi_files.StackTrace.ToString()
);
}//catch(Exception _excp_to_read_or_prepare_log_the_midi_files)
////////////////////////////////////////////////////////////////////////////////////////////
///doing with the new kind of converting
///
try
{
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.
PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
();
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
ExcelFormulaParser_GT_PARSER
.SAANAUDS
.
PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS.PUBLIC_STATIC_VOID___CREATE_LISTS_FLUSH_CLEAR_THE_PUBLIC_STATIC_LISTS_FOR_EVERY_TIME_BUTTON_CLICKED
();
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
//////////////////////////////////////// TOOOOO IMPORTANT FUNCTION CALL TO FLUSH AND CLEAR PREVIOUS DATA AS USED IN THE BUTTON CALLS /////////////////////////////////////////////////////////
// TO DO TO PLAY MIDI NOTES
//////https://stackoverflow.com/questions/30349066/cannot-play-a-note-with-naudio-midi
///
////////////using System;
////////////using System.Collections.Generic;
////////////using System.ComponentModel;
////////////using System.Data;
////////////using System.Drawing;
////////////using System.Linq;
////////////using System.Text;
////////////using System.Windows.Forms;
////////////using NAudio.Midi;
////////////using System.Threading;
////////////namespace SoundVision10
//////////// {
//////////// public partial class Form1 : Form
//////////// {
//////////// public Form1()
//////////// {
//////////// InitializeComponent();
//////////// }
//////////// private void Form1_Load(object sender, EventArgs e)
//////////// {
//////////// }
//////////// private void button1_Click(object sender, EventArgs e)
//////////// {
//////////// //Thread.Sleep inside GUI is just for example
//////////// using (MidiOut midiOut = new MidiOut(0))
//////////// {
//////////// midiOut.Volume = 65535;
//////////// midiOut.Send(MidiMessage.StartNote(60, 127, 0).RawData);
//////////// MessageBox.Show("Sent");
//////////// Thread.Sleep(1000);
//////////// midiOut.Send(MidiMessage.StopNote(60, 0, 0).RawData);
//////////// Thread.Sleep(1000);
//////////// }
//////////// }
//////////// }
//////////// }
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
RECALCULATE_THE_MIDI_DATA_MICROSECONDS_NOTES_ETC();
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///
public_list_of_6_digit_double_precission_unique_slopes_found
= new List<double>();
public_list_of_6_digit_double_precission_unique_slopes_found
.Clear();
public_list_of_long_type_note_durations
= new List<long>();
public_list_of_long_type_note_durations
.Clear();
StringBuilder ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
= new StringBuilder();
___sbuilder_within_the_button_to_log_details_for_mid_event_notes.Clear();
//////http://www.synthfont.com/SFSPEC21.PDF
//////http://www.synthfont.com/SFSPEC21.PDF
/////////http://www.synthfont.com/SFSPEC21.PDF
//D:\SAANDXF_NEW+TO_DO\PDFsharp-1.5-master___2012\PDFsharp-1.5-master\src\PdfSharp\Drawing
//////https://markheath.net/category/naudio
///
////// ///TESTED IT IS WORKING AND PLAYING ALSO
////// string[] strs = {
////// "" +
////// "D:\\dekhte_haiisko___guitar.mid"
////// , "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
//////SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.Filter = "DXF Files (.dxf)|*.dxf|All Files (*.*)|*.*";
openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.ShowDialog();
string ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX = openFileDialog_FOR_SEVERAL_PURPOSES_FOR_MIDI_FILES.FileName.Replace("\\", "\\\\");
////////////////////////https://www.inspiredacoustics.com/en/MIDI_note_numbers_and_center_frequencies
///////////////yes running
///////////////
//////////// SAANAUDS.Midi.MidiFile _midf = new SAANAUDS.Midi.MidiFile("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID", false);
///////////////yes running
/////////////// _midf.Describe()
///////////////
////////////System.IO.File.WriteAllText("F:\\sanjoy_workouts\\dnlds\\Tum Hi Ho.MID.txt", _midf.ToString());
////////////////////////////////////// yessssssssssssssssssssss worked
///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
/// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
/// ///TESTED IT IS WORKING AND PLAYING ALSO and opens properly in the midieditor also
string[] strs = {
"" +
/// "D:\\dekhte_haiisko___guitar.mid"
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_HARDCODED_NOTES.MID"
, "E3", "A3", "D4", "G4", "B4", "E5" , "E3", "A3", "D4", "G4", "B4", "E5" };
SAANAUDS_CHECKING.SAANAUDS_MIDIS_Program.SAANAUDS_MIDIS_Program___Main(strs);
System.Windows.Forms.MessageBox.Show(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
//https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
// Create a Graphics object from the PictureBox
Graphics g = pictureBox_TO_TRY_SAANDXF.CreateGraphics();// // e.Graphics;
// Load the DXF file
SAANSDXF.DxfDocument SAAN_dxf = SAANSDXF.DxfDocument.Load(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX);
//////// Create a new DXF document
//////DxfDocument dxf_fresh = new DxfDocument();
//////// Create lines
//////SAANSDXF.Entities.Line line1 = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
//////SAANSDXF.Entities.Line line2 = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
/// DxfDocument dxf = new DxfDocument();
//////// Create lines
//////SAANSDXF.Entities.Line line1chk = new SAANSDXF.Entities.Line(new Vector2(0, 0), new Vector2(10, 10));
//////SAANSDXF.Entities.Line line2chk = new SAANSDXF.Entities.Line(new Vector2(0, 5), new Vector2(10, 5));
//////// Add lines to the model space
//////dxf.AddEntityToDocument(line1chk, true);
//////dxf.AddEntityToDocument(line2chk, true);
//////// Save the DXF file
//////dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_fresh_output.dxf");
////// // Add lines to the model space
////// dxf_fresh.AddEntity(line1);
////// dxf_fresh.AddEntity(line2);
//////// dxf_fresh
////// // Save the DXF file
////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX+"_output.dxf");
double freq_found = -6;
int note_number_to_take_integer = -6;
string note_name_to_take_string = "";
//ok tested if ((freq_found >= 7.6892) && (freq_found <= 8.7466){ note_number_to_take_integer = 1; note_name_to_take_string = "NONE"; }
////// SAANSDXF.Entities.Line ___new_line = new SAANSDXF.Entities.Line();
////// ___new_line.StartPoint = new SAANSDXF.Vector3(-600000,-600000,0.003);
////// ___new_line.EndPoint = new SAANSDXF.Vector3(+600000, +600000, 0.003);
////// ___new_line.Color = new AciColor(0.3, 0.6, 0.8);
////// SAAN_dxf.AddEntityToDocument(___new_line, true);
///////// SAAN_dxf.AddEntityToDocument
////// SAAN_dxf.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_SAANSDXF.DXF");
///DxfDocument doc = DxfDocument.Load("sample.dxf");
SAAN_dxf.Entities.ActiveLayout = SAANSDXF.Objects.Layout.ModelSpaceName;// works after it is saved with higher version with autocad
///
SAANSDXF.Collections.EntityCollection entities
= SAAN_dxf.Blocks[Block.DefaultModelSpaceName].Entities;
/////////////////////////////////////////////////////////////////////////////////////
int entitycount = -1;
entitycount = entities.Count;
int entitytimer = 0;
entitytimer = entitycount / 10000;
double vertsx = 0;
double vertsy = 0;
double vertsz = 0;
double vertex = 0;
double vertey = 0;
double vertez = 0;
int vertextcount = 0;
double vertx1 = 0;
double verty1 = 0;
double vertx2 = 0;
double verty2 = 0;
int roundamount = 16;
double totallength = 0;
double arclength = 0;
double linelength = 0;
double startAngle;
double endAngle;
double bulge;
double theta;
double c;
double r;
double gamma;
double phi;
double holdangle;
Vector2 p1;
Vector2 p2;
Vector2 center;
double ___saan_x_for_angle_calculation = 0;
double ___saan_y_for_angle_calculation = 0;
/// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
long total_microsecond_of_whole_song
=
this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS
;
double ___total_notes_found_in_the_dxf = 0;
___total_notes_found_in_the_dxf =
entities.Count;
//////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show
("Duration = " + total_microsecond_of_whole_song
+ "\r\n\r\n\r\ntotal notes= " + ___total_notes_found_in_the_dxf
);
foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
{
r = myarc.Radius;
startAngle = myarc.StartAngle;
endAngle = myarc.EndAngle;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_ARC_DETAIL_"
+ " radius = " + r
+ " startAngle = " + startAngle
+ " endAngle = " + endAngle
+ " holdangle = " + holdangle
+ " arclength = " + arclength
);
}// foreach (SAANSDXF.Entities.Arc myarc in entities.OfType<SAANSDXF.Entities.Arc>())
//////////////////////////////////////////////////////////
//////string fileName_for_midi_from_the_dxf = "";
//////fileName_for_midi_from_the_dxf
////// =
////// ___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + ".mid";
/// public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
/// {
//////const int MidiFileType = 0;
//////const int BeatsPerMinute = 60;
//////const int TicksPerQuarterNote = 120;
//////const int TrackNumber = 0;
//////const int ChannelNumber = 1;
///
////// cant we take TicksPerQuarterNote as multiple of 60 ?
//////ChatGPT
//////In MIDI, TicksPerQuarterNote is often used as a multiple of 60 because it provides a convenient resolution for expressing tempo changes.However, it's not a strict requirement, and you can technically set TicksPerQuarterNote to any integer value based on your specific needs.
//////Using a multiple of 60, like 480(60 multiplied by 8), is common because it allows for easy tempo calculations in beats per minute(BPM) and makes it simple to represent note durations.It's a practical choice because it aligns well with common musical timing values.
//////That said, you can choose other values for TicksPerQuarterNote if your MIDI application requires different resolutions or if you have specific reasons to do so.Just be aware that using a value that's not a multiple of 60 may make it less intuitive when working with tempos in BPM and traditional musical notation.
//////public long public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS = 0;
//////public long public_long_total_miditicks_of_song___FOR___label_TOT_MICROSECONDS_DURATION_NX480 = 0;
//////public long public_long_total_RECALCULATED_WITH_MULTIPLE_OF_480_OR_TPQN__FROM_THE_TPQN_TEXT_BOX_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS = 0;
//////public double PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE = 0;
//////public long public_long_FOR___label_CALCULATED_DATA_MICROTEMPO_THAT_IS_MICROSECONDS_PER_BEAT = 0;
//////public int public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT = 0;
//////public int public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2 = 0;
//////public double public_double_calculated_data_from_bpm_from_ticks_per_beat_k_times_480___for___label_CALCULATED_VALUE_MICROSECOND_PER_MIDI_TICK = 0;
//////public long public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS = 0;
//////public double public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480 = 0;
int MidiFileType = 1;// 0;//////saan changes this to 1
int BeatsPerMinute =
(int)this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE;
//60;
int TicksPerQuarterNote =
(int)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480;
//120;////// too important /// multiple of 480
int TrackNumber = 0;
int ChannelNumber = 1;
//////public PatchParser()
////// {
////// this.patchMap.Add("nylon", 25);
////// this.patchMap.Add("steel", 26);
////// this.patchMap.Add("jazz", 27);
////// this.patchMap.Add("clean", 28);
////// this.patchMap.Add("muted", 29);
////// this.patchMap.Add("distortion", 31);
////// this.patchMap.Add("bass", 33);
////// this.patchMap.Add("violin", 41);
////// this.patchMap.Add("viola", 42);
////// this.patchMap.Add("cello", 43);
////// this.patchMap.Add("sitar", 105);
////// this.patchMap.Add("banjo", 106);
////// this.patchMap.Add("fiddle", 111);
////// }//public PatchParser()
int Patch_number = 26;
long absoluteTime___start = 0;
long absoluteTime___final = 0;
// var collection
SAANAUDS.Midi.MidiEventCollection collection
= new
SAANAUDS.Midi.MidiEventCollection
(MidiFileType, TicksPerQuarterNote);
////////////////////////////////////////////////////////////////////////////////////////////
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " MID_COLLECTION_STARTS_FRESH collection = " + collection.ToString()
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " MidiFileType = " + MidiFileType
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " TicksPerQuarterNote = " + TicksPerQuarterNote
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " BeatsPerMinute = " + BeatsPerMinute
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " TrackNumber = " + TrackNumber
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " ChannelNumber = " + ChannelNumber
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " absoluteTime___start = " + absoluteTime___start
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"SAANDXF___DXF_MidiFileType_"
+ " absoluteTime___final = " + absoluteTime___start
//////+ " startAngle = " + startAngle
//////+ " endAngle = " + endAngle
//////+ " holdangle = " + holdangle
//////+ " arclength = " + arclength
);
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// absoluteTime
////// ),
////// TrackNumber
////// );
//////++absoluteTime;
//////collection.AddEvent
//////(
////// new SAANAUDS.Midi.TempoEvent
//////(
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// absoluteTime
////// ),
////// TrackNumber
////// );
///
////// will do after some times
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"Note Stream LYRICS",
SAANAUDS.Midi.MetaEventType.TextEvent
,
// absoluteTime
(long)((absoluteTime___start + absoluteTime___final) / 6)
),
//TrackNumber
TrackNumber
);
/////////////////////////////// interesting styles ////////////////////
///
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"SanjoyNathGeometrifyingTrigonometry(C)"
,
SAANAUDS.Midi.MetaEventType.Copyright
,
// absoluteTime
(long)(absoluteTime___start)
),
//TrackNumber
// 0
TrackNumber
);
////////////////////////////////////////////////////////////////////////////////
////// will do after some times
// ++absoluteTime;
collection.AddEvent
(
new SAANAUDS.Midi.TempoEvent
(
Local_CalculateMicrosecondsPerQuaterNote
(
BeatsPerMinute
),
/// absoluteTime
absoluteTime___start
),
// TrackNumber
TrackNumber
);
////////////////////////////////////////////////
///
//////////////static void Main(string[] args)
////////////// {
////////////// string inputMidiFile = "input.mid"; // Replace with your MIDI file
////////////// string outputMidiFile = "output.mid"; // Replace with the output file
////////////// string copyrightText = "Copyright © 2023 Your Company"; // Your copyright notice
////////////// // Load the MIDI file
////////////// MidiFile midiFile = new MidiFile(inputMidiFile, false);
////////////// // Create a meta-event to set the copyright text
////////////// MetaEvent copyrightEvent = new MetaEvent(MetaType.Copyright, copyrightText);
////////////// // Locate the track where you want to insert the copyright event
////////////// int targetTrackIndex = 0; // Adjust as needed
////////////// if (targetTrackIndex < midiFile.Tracks.Count)
////////////// {
////////////// MidiTrack targetTrack = midiFile.Tracks[targetTrackIndex];
////////////// // Add the copyright event to the track
////////////// targetTrack.AddEvent(copyrightEvent);
////////////// }
////////////// else
////////////// {
////////////// Console.WriteLine("Invalid track index.");
////////////// return;
////////////// }
////////////// // Save the modified MIDI file
////////////// midiFile.Save(outputMidiFile);
////////////// Console.WriteLine("Copyright event added successfully.");
////////////// }
////////////// saan thinks it will work
////// ////////////// // Create a meta-event to set the copyright text
////// SAANAUDS.Midi.TextEvent copyrightEvent___SAAN
////// =
////// new
////// SAANAUDS.Midi.TextEvent
////// (
////// SAANAUDS.Midi.MetaEventType.Copyright
////// ,
////// 50
////// ,
////// absoluteTime___start
////// )
////// ;
////// //"SanjoyNathGeometrifyingTrigonometry(C)"
////// copyrightEvent___SAAN
////// .absoluteTime
////// collection.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
//////(
//////,
////// /// absoluteTime
////// ),
////// // TrackNumber
////// TrackNumber
////// );
////////////////////////////////////////////////
///
var patchParser = new SAANAUDS_CHECKING.PatchParser();
int patchNumber = patchParser.Patch("steel");//////////////////// i will configure this from layers
/////////////////// first entries so absolute time is zero
collection.AddEvent(
new
SAANAUDS.Midi.PatchChangeEvent
(
0
,
ChannelNumber
, patchNumber
)
, TrackNumber
);
//////const int NoteVelocity = 100;
////// const int NoteDuration =
////// ///3 * TicksPerQuarterNote / 4;
////// const long SpaceBetweenNotes
////// = TicksPerQuarterNote;
int NoteVelocity = 100;
long NoteDuration = 0;
double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
///3 * TicksPerQuarterNote / 4;
long SpaceBetweenNotes
= 0;// TicksPerQuarterNote;
////// absoluteTime += SpaceBetweenNotes;
////// foreach (var note in allNotes)
////// {
//////collection.AddEvent(new NoteOnEvent(absoluteTime, ChannelNumber, note.MidiValue, NoteVelocity, NoteDuration), TrackNumber);
//////collection.AddEvent(new NoteEvent(absoluteTime + NoteDuration, ChannelNumber, MidiCommandCode.NoteOff, note.MidiValue, 0), TrackNumber);
////// absoluteTime += SpaceBetweenNotes;
////// }//foreach (var note in allNotes)
////// collection.PrepareForExport();
////// /// MidiFile.Export(fileName, collection);
////// ///
////// SAANAUDS.Midi.MidiFile.Export(fileName_for_midi_from_the_dxf, collection);
///////// }//public void SaveToFile(string fileName, IEnumerable<Pitch> allNotes)
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
////////////////////////////////////////////// TOOOOOOOOOOOOOOOOOOO IMPORTANT PART OF THE CODE FOR THE LINE SEGMENTS ///////////
double line_Segments_counter = 0;
double line_Segments_count = 0;
double ___degrees_1 = 0;
double ___degrees_2 = 0;
double ___dist_1 = 0;
double ___dist_2 = 0;
double freq_found_from_the_nearest = 0;
double freq_found_from_the_furthest = 0;
double ___distance_of_current_line_segment_min_out_of_two = 0;
double ___distance_of_current_line_segment_max_out_of_two = 0;
int note_number_found_from_the_nearest_frequency_Hertz = 0;
int note_number_found_from_the_furthest_frequency_Hertz = 0;
string note_name_found_from_the_nearest_frequency_Hertz = "";
string note_name_found_from_the_furthest_frequency_Hertz = "";
////////////////////////// these are used to put the pitch bents
double start_side_of_line_segments_angle_with_x_axis = 0;
double final_side_of_line_segments_angle_with_x_axis = 0;
////////////////////////// these are used to put the pitch bents
double start_side_of_line_segments_frequency = 0;
double final_side_of_line_segments_frequency = 0;
double delta_pitch = 0;
double notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
double notes_finals___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
/// this.ref System.Windows.Forms.ProgressBar _to_update_progressbar
line_Segments_count = entities.OfType<SAANSDXF.Entities.Line>().Count();
this.progressBarFOR_ANIMATIONS_SAVING.Maximum = (int)line_Segments_count;
this.progressBarFOR_ANIMATIONS_SAVING.Value = 0;
foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
{
line_Segments_counter++;
//////////////////////////////////////////////////////////////////////////
this.progressBarFOR_ANIMATIONS_SAVING.Value = (int)line_Segments_counter;
this.progressBarFOR_ANIMATIONS_SAVING.Invalidate();
this.progressBarFOR_ANIMATIONS_SAVING.Refresh();
///////////////////////////////////////////////////////////////////////////
vertsx = line.StartPoint.X;
vertsy = line.StartPoint.Y;
vertsz = line.StartPoint.Z;
vertex = line.EndPoint.X;
vertey = line.EndPoint.Y;
vertez = line.EndPoint.Z;
linelength = arclength = Math.Sqrt((Math.Pow((vertex - vertsx), 2) + Math.Pow((vertey - vertsy), 2) + Math.Pow((vertez - vertsz), 2)));
totallength = totallength + linelength;
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"\r\nSAANDXF___DXF_LINE_SEGMENTS_"
+ " line_Segments_counter = " + line_Segments_counter
+ " of line_Segments_count = " + line_Segments_count
+ " vertsx = " + vertsx
+ " vertsy = " + vertsy
+ " vertsz = " + vertsz
+ " vertex = " + vertex
+ " vertey = " + vertey
+ " vertez = " + vertez
+ " linelength=" + linelength
);
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
if (vertsy >= 0 && vertsx > 0)
{
___saan_x_for_angle_calculation = vertsx;
___saan_y_for_angle_calculation = vertsy;
}
else if (vertsy >= 0 && vertsx < 0)
{
___saan_x_for_angle_calculation = (-1) * vertsx;
___saan_y_for_angle_calculation = vertsy;
}
else if (vertsy < 0 && vertsx < 0)
{
___saan_x_for_angle_calculation = (-1) * vertsx;
___saan_y_for_angle_calculation = (-1) * vertsy;
}
else if (vertsy < 0 && vertsx > 0)
{
___saan_x_for_angle_calculation = vertsx;
___saan_y_for_angle_calculation = (-1) * vertsy;
}
else
{
___saan_x_for_angle_calculation = 0.0000001;
___saan_y_for_angle_calculation = vertsy;
}
___degrees_1 = 0;
////// ___degrees_1
////// =
//////// Math.Abs
////// (
////// Math.Atan(Math.Abs(vertsy)/Math.Abs(Math.Max(0.0001,Math.Min(0.00001, vertsx)))
////// )
////// )
////// *360/Math.PI
////// ;
///
___degrees_1
=
// Math.Abs
(
// Math.Atan2(vertsy,vertsx)
Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
)
* 360 / Math.PI
;
___degrees_1 = Math.Abs(___degrees_1);
if (vertsy >= 0 && vertsx >= 0)
{
___degrees_1 = ___degrees_1;
}
else if (vertsy >= 0 && vertsx < 0)
{
___degrees_1 = 180 - ___degrees_1;
}
else if (vertsy < 0 && vertsx < 0)
{
___degrees_1 = 270 - ___degrees_1;
}
else if (vertsy < 0 && vertsx >= 0)
{
___degrees_1 = 360 - ___degrees_1;
}
else
{
___degrees_1 = 60;
}
___degrees_2 = 0;
//////___degrees_2
////// =
////// // Math.Abs
////// (
////// Math.Atan(Math.Abs(vertey) /Math.Abs( Math.Max(0.0001,Math.Min(0.00001, vertex)))
////// )
////// )
////// *( 360 / Math.PI)
////// ;
////// ___degrees_2
//////=
//////// Math.Abs
//////(
////// Math.Atan2(vertey,vertex)
////// )
////// * 360 / Math.PI
////// ;
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
___saan_x_for_angle_calculation = 0;
___saan_y_for_angle_calculation = 0;
if (vertey >= 0 && vertex > 0)
{
___saan_x_for_angle_calculation = vertex;
___saan_y_for_angle_calculation = vertey;
}
else if (vertey >= 0 && vertex < 0)
{
___saan_x_for_angle_calculation = (-1) * vertex;
___saan_y_for_angle_calculation = vertey;
}
else if (vertey < 0 && vertex < 0)
{
___saan_x_for_angle_calculation = (-1) * vertex;
___saan_y_for_angle_calculation = (-1) * vertey;
}
else if (vertey < 0 && vertex > 0)
{
___saan_x_for_angle_calculation = vertex;
___saan_y_for_angle_calculation = (-1) * vertey;
}
else
{
___saan_x_for_angle_calculation = 0.0000001;
___saan_y_for_angle_calculation = vertey;
}
___degrees_2
=
// Math.Abs
(
// Math.Atan2(vertsy,vertsx)
Math.Atan2(___saan_y_for_angle_calculation, ___saan_x_for_angle_calculation)
)
* 360 / Math.PI
;
___degrees_2 = Math.Abs(___degrees_2);
if (vertsy >= 0 && vertsx >= 0)
{
___degrees_2 = ___degrees_2;
}
else if (vertsy >= 0 && vertsx < 0)
{
___degrees_2 = 180 - ___degrees_2;
}
else if (vertsy < 0 && vertsx < 0)
{
___degrees_2 = 270 - ___degrees_2;
}
else if (vertsy < 0 && vertsx >= 0)
{
___degrees_2 = 360 - ___degrees_2;
}
else
{
___degrees_2 = 60;
}
//////long absoluteTime___start = 0;
//////long absoluteTime___final = 0;
absoluteTime___start
=
(long)(
Math.Min
(
___degrees_1, ___degrees_2
)
*
(Math.PI / 180) *
// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
)
;
if
(
Math.Min
(
___degrees_1, ___degrees_2
)
== ___degrees_1
)
{
start_side_of_line_segments_angle_with_x_axis
= ___degrees_1;
final_side_of_line_segments_angle_with_x_axis
= ___degrees_2;
start_side_of_line_segments_frequency = ___dist_1;
final_side_of_line_segments_frequency = ___dist_2;
}
//////if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_1
////// )
if
(
Math.Min
(
___degrees_1, ___degrees_2
)
== ___degrees_2
)
{
start_side_of_line_segments_angle_with_x_axis
= ___degrees_2;
final_side_of_line_segments_angle_with_x_axis
= ___degrees_1;
start_side_of_line_segments_frequency = ___dist_2;
final_side_of_line_segments_frequency = ___dist_1;
}
//////if
////// (
////// Math.Min
////// (
////// ___degrees_1, ___degrees_2
////// )
////// == ___degrees_1
////// )
absoluteTime___final
=
(long)(
Math.Max
(
___degrees_1, ___degrees_2
)
*
(Math.PI / 180) *
// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MICROSECONDS)
this.public_long___calculated_data_for___label___for___CALCULATED_TOTAL_DURATION_WITH_MIDITICKS
)
;
//////(long)
////// Math.Max
////// (
////// ___degrees_1, ___degrees_2
////// )
////// *
////// this.public_long_total_microsecond_of_song___from___textBox_FOR_MIDI_TOTAL_DURATIONS_MILLISECONDS
////// ;
////// will do after some times
//////collection
//////.AddEvent
//////(
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// ( ( absoluteTime___start + absoluteTime___final)/2)
////// ),
////// //TrackNumber
////// 0
////// );
////// will do after some times
// ++absoluteTime;
//////collection.AddEvent
//////(
////// new SAANAUDS.Midi.TempoEvent
//////(
////// Local_CalculateMicrosecondsPerQuaterNote
////// (
////// BeatsPerMinute
////// ),
////// /// absoluteTime
////// absoluteTime___start
////// ),
////// // TrackNumber
////// 0
////// );
////////////////////////////////////////////////
___dist_1
=
Math.Sqrt
(
(line.StartPoint.X * line.StartPoint.X)
+
(line.StartPoint.Y * line.StartPoint.Y)
);
___dist_2
=
Math.Sqrt
(
(line.EndPoint.X * line.EndPoint.X)
+
(line.EndPoint.Y * line.EndPoint.Y)
);
freq_found_from_the_nearest
=
Math.Min
(
___dist_1, ___dist_2
);
freq_found_from_the_furthest
=
Math.Max
(
___dist_1, ___dist_2
);
////// dxf_fresh.AddEntityToDocument(line,false);
// Add lines to the model space
// dxf_fresh.AddEntity(line1);
// dxf_fresh.AddEntity(line2);
// dxf_fresh
// Save the DXF file
//dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
////////////////////tooooo important ///////////////////////////
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
___distance_of_current_line_segment_min_out_of_two = 0;
___distance_of_current_line_segment_max_out_of_two = 0;
___distance_of_current_line_segment_min_out_of_two
=
freq_found_from_the_nearest;
___distance_of_current_line_segment_max_out_of_two
=
freq_found_from_the_furthest;
note_number_found_from_the_nearest_frequency_Hertz = 0;
note_number_found_from_the_furthest_frequency_Hertz = 0;
note_name_found_from_the_nearest_frequency_Hertz = "";
note_name_found_from_the_furthest_frequency_Hertz = "";
/// calling conventions
/// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_int_get_note_number_from_frequency_Hertz(double freq_hertz)
/// calling conventions SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
/// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
/// public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
//public_static_string_get_note_name_from_frequency_Hertz(double freq_hertz)
note_number_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_int_get_note_number_from_frequency_Hertz
(
freq_found_from_the_nearest
);
////// notes_starts___delta_pitch = 0;
////// notes_finals___delta_pitch = 0;
////// //////double notes_starts___delta_pitch = 0;
////// //////double notes_finals___delta_pitch = 0;
////// //////public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// //////public_static_double_get_note_number_ACTUAL_HIGHER_NEAREST_NOTES_frequency_Hertz
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// notes_starts___delta_pitch
////// =
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// (
////// freq_found_from_the_nearest
////// )
////// -
////// freq_found_from_the_nearest
////// ;
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
note_name_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_nearest
);
note_number_found_from_the_furthest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_int_get_note_number_from_frequency_Hertz
(
freq_found_from_the_furthest
);
note_name_found_from_the_furthest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_furthest
);
////////note_number_found_from_the_nearest_frequency_Hertz
//////if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_nearest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
//note_number_found_from_the_nearest_frequency_Hertz
if (note_number_found_from_the_nearest_frequency_Hertz < 6 || note_number_found_from_the_nearest_frequency_Hertz > 127)
{
note_number_found_from_the_nearest_frequency_Hertz = 69;
}//if(note_number_found_from_the_nearest_frequency_Hertz<0 || note_number_found_from_the_nearest_frequency_Hertz>0)
// long NoteDuration = 0;
////////note_number_found_from_the_furthest_frequency_Hertz
//////if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 20000)
////// {
////// note_number_found_from_the_furthest_frequency_Hertz = 69;
////// }//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
//note_number_found_from_the_furthest_frequency_Hertz
if (note_number_found_from_the_furthest_frequency_Hertz < 6 || note_number_found_from_the_furthest_frequency_Hertz > 127)
{
note_number_found_from_the_furthest_frequency_Hertz = 69;
}//if(note_number_found_from_the_furthest_frequency_Hertz<0 || note_number_found_from_the_furthest_frequency_Hertz>0)
// long NoteDuration = 0;
/////////////////////////////////////////////////////////
///
NoteDuration
=
Math.Abs(
Math.Max(
Math.Abs(absoluteTime___final)
,
Math.Abs(absoluteTime___start)
)
-
Math.Abs(
Math.Min(
Math.Abs(absoluteTime___final)
,
Math.Abs(absoluteTime___start)
)
)
)
;
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
///
/// double slope_in_linear_time = 0; ////// 16 different slopes in linear time calculated
slope_in_linear_time
= Math.Atan2((double)(freq_found_from_the_furthest - freq_found_from_the_nearest), (double)NoteDuration);
slope_in_linear_time
= slope_in_linear_time * 360 / Math.PI;/// taken 10 times the angles
slope_in_linear_time
= slope_in_linear_time * 100;
TrackNumber
=
///too slow ((int)slope_in_linear_time);//i want the raw data for different slopes integer values % 16;
((int)slope_in_linear_time) % 16;
ChannelNumber
= TrackNumber;
////// upto 18102020plusplusplus this was there to get a safe side data
///and i was getting too much of cleronets for long notes
//////patchNumber
////// =
////// TrackNumber;
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
= SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT.Length;
if (
//((double)Math.Abs(absoluteTime___final - absoluteTime___start))
((double)NoteDuration)
<=
this.public_double___label_CALCULATED_THE_MIDITICKS_PER_NOTE)
{
patchNumber
=
SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
((int)slope_in_linear_time)
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_STRINGS_SHORT_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
else
{
patchNumber
=
SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
[
((int)slope_in_linear_time)
%
PUBLIC_INT_LENGTH_OF___SAANS_FACVORITE_AIR_LONG_DURATIONS_PATCHES_PUBLIC_ARRAY_INT
];
}
///////// end of else case
///////// if(((double)Math.Abs(absoluteTime___final - absoluteTime___start))
////// <=
////// public_double___label_CALCULATED_DURATION_OF_MIDI_NOTES_IN_TICKS_OF_MIDI___INTEGER___MIDITKS_PER_NOTE )
////// for references variable names
////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////////////////////= new List<double>();
////////////////////public_list_of_6_digit_double_precission_unique_slopes_found
////////////////////.Clear();
if (public_list_of_6_digit_double_precission_unique_slopes_found
.Contains(Math.Round(slope_in_linear_time, 6)))
{
}
else
{
public_list_of_6_digit_double_precission_unique_slopes_found
.Add
(
Math.Round(slope_in_linear_time, 6)
);
}
//////if (public_list_of_6_digit_double_precission_unique_slopes_found
////// .Contains(Math.Round(slope_in_linear_time, 6)))
/////////////////////////////////////////////////////////////////////////
if (ChannelNumber >= 15)
{
ChannelNumber = 9;
TrackNumber = 9;
/// patchNumber = 26;/// upto 18102020plusplusplus this was there
}//if(ChannelNumber>=15)
if (ChannelNumber <= 0)
{
ChannelNumber = 6;
TrackNumber = 6;
/// patchNumber = 41;/// upto 18102020plusplusplus this was there
}//if (ChannelNumber <=0)
///////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
//////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
//////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
//////if (NoteDuration < 110)
//////{
////// note_number_found_from_the_nearest_frequency_Hertz
////// =
////// 22;
////// ChannelNumber = 9;
////// patchNumber = 115;
//////}// if(NoteDuration<300)
///////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
//////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
//////////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
/////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
///
/////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
if (NoteDuration < 600)
{
note_number_found_from_the_nearest_frequency_Hertz
=
22;
// ChannelNumber = 9;
// patchNumber = 115;
}// if(NoteDuration<600)
/////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
if (NoteDuration < 600)
{
if (
note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
// note_number_found_from_the_nearest_frequency_Hertz >=94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
48;
ChannelNumber = 9;
// patchNumber = 115;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
if (
// note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
note_number_found_from_the_nearest_frequency_Hertz >= 94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
// 94;
22;
// patchNumber = 38;
// ChannelNumber = 9;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
}// if (NoteDuration < 600)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
if (NoteDuration > 600)
{
if (
note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
// note_number_found_from_the_nearest_frequency_Hertz >=94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
(int)(note_number_found_from_the_nearest_frequency_Hertz * 1.11);
// ChannelNumber = 9;
patchNumber = 74;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
if (
// note_number_found_from_the_nearest_frequency_Hertz <= 48
// ||
note_number_found_from_the_nearest_frequency_Hertz >= 94
)
{
note_number_found_from_the_nearest_frequency_Hertz
=
// 94;
//22;
(int)(note_number_found_from_the_nearest_frequency_Hertz * 0.68);
patchNumber = 76;
// ChannelNumber = 9;
}//
//////if (
////// note_number_found_from_the_nearest_frequency_Hertz <= 48
////// ||
////// note_number_found_from_the_nearest_frequency_Hertz >= 94
////// )
}// if (NoteDuration < 600)
/////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
////////////////////////////////////////////////////////////////// i have added this to put the good effects //////
collection.AddEvent(
new
SAANAUDS.Midi.PatchChangeEvent
(
///saan puts this here
absoluteTime___start
,
ChannelNumber
,
patchNumber
)
, TrackNumber
);
///////////////////////////////// AFTER TESTING WITH THE MIDIEDITOR AND DATA I AM PUTTING THESE NOW//////
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.Append
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
);
if ((absoluteTime___final - absoluteTime___start) > 1000)
{
////////////////////// new things adding
////// will do after some times
collection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"Note Stream LYRICS",
SAANAUDS.Midi.MetaEventType.TextEvent
,
// absoluteTime
(long)((absoluteTime___start + (absoluteTime___final - absoluteTime___start) / 6))
),
//TrackNumber
0
);
}//if((absoluteTime___final - absoluteTime___start)>1000)
/////////////////////////////////////////////////////////
collection.AddEvent
(
new SAANAUDS.Midi.NoteOnEvent
(
////// absoluteTime
absoluteTime___start
,
ChannelNumber
,
// note.MidiValue
note_number_found_from_the_nearest_frequency_Hertz
,
NoteVelocity
,
(int)Math.Min(NoteDuration, 1)
)
,
TrackNumber
);
/////////////////////////////////////////////////////////
//////absoluteTime___final
////// = Math.Min(30, absoluteTime___final);
//to implement this check
notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
notes_finals___delta_pitch___if_it_is_higher_than_nearest_note_frequency = 0;
//////double notes_starts___delta_pitch = 0;
//////double notes_finals___delta_pitch = 0;
//////public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
//////public_static_double_get_note_number_ACTUAL_HIGHER_NEAREST_NOTES_frequency_Hertz
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency
=
start_side_of_line_segments_frequency
-
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
(
start_side_of_line_segments_frequency
)
;
//final_side_of_line_segments_frequency
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
notes_finals___delta_pitch___if_it_is_higher_than_nearest_note_frequency
=
final_side_of_line_segments_frequency
-
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
(
final_side_of_line_segments_frequency
)
;
//final_side_of_line_segments_frequency
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///putting the pitch bends at the starting sides
int ___necessary_pitch_bend_to_put_at_start_side_of_note = 0;
//////if(notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency > 0 && notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency < 8190)
//////{
//////}// if(notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency>0 && notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency < 8190)
//////___necessary_pitch_bend_to_put_at_start_side_of_note =
//////Math.Max(6, (int)(8190 - notes_starts___delta_pitch));
////// kkk
///
note_name_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_nearest
);
/////////////////////////////////////////////////////////////////////////////////////////////
///
try
{
//////SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .CalculatePitchBends___AND_APPLY___FROM_FREQ_1___TO___FREQ_2___ON_NOTE_NUMBER_AND_DURATIONS_WITH_MIDITICKS
////// (
////// ref collection
////// , ChannelNumber
////// , TrackNumber
////// ,
////// start_side_of_line_segments_frequency
////// ,
////// final_side_of_line_segments_frequency
////// , note_number_found_from_the_nearest_frequency_Hertz
////// , absoluteTime___start
////// ,
////// (int)Math.Min(NoteDuration, 1)
////// ,
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// // . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// // .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
////// // .public_static_int_get_note_number_from_frequency_Hertz
////// .public_static_double_get_note_number_ACTUAL_LOWER_NEAREST_NOTES_frequency_Hertz
////// (
////// start_side_of_line_segments_frequency
////// )
////// );
///////////////////////////////////////////////////////////////////////////////////////////////////////
///
}
catch (Exception ___excp_to_generate_new_styles_of_pitchbends)
{
System.Windows.Forms.MessageBox.Show
(
"___excp_to_generate_new_styles_of_pitchbends" + "\r\n" +
___excp_to_generate_new_styles_of_pitchbends.Message
+ "\r\n"
+ ___excp_to_generate_new_styles_of_pitchbends.StackTrace.ToString()
);
}//catch(Exception ___excp_to_generate_new_styles_of_pitchbends)
#region PREVIOUSSAANSTYLESOFPITCHBENDCALCULATIONS
//////if (notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency>0)
//////{
//////collection.AddEvent
////// (
////// new
////// SAANAUDS.Midi.PitchWheelChangeEvent
////// (
////// /// (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / 60) * rrr)
////// absoluteTime___start
////// /// zero delay putting the pitch bend at the position of note starts
////// ,
////// ChannelNumber
////// ,
////// /// (int)((1-(delta_pitch / start_side_of_line_segments_frequency)) * 8192)
////// ///
////// // (int)(delta_pitch *(final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency) * 8192)
////// /// Math.Max(6, (int)(8190 - rrr * delta_pitch))
////// /// Math.Max((int)(notes_starts___delta_pitch - 8190, (int)(8190 - notes_starts___delta_pitch))/// now adding this to
////// Math.Max(6, (int)(8190 - notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency))
////// )
////// , TrackNumber
////// );
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////}//if(notes_starts___delta_pitch___if_it_is_higher_than_nearest_note_frequency>0)
note_name_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_string_get_note_name_from_frequency_Hertz
(
freq_found_from_the_nearest
);
///NoteDuration
int ___delta___pitch___slabs_finder = 3;
/// ___delta___pitch___slabs_finder =( int)(NoteDuration / 330);
___delta___pitch___slabs_finder = Math.Min(11, (int)(NoteDuration / 600));
if (start_side_of_line_segments_frequency < final_side_of_line_segments_frequency)
{
//////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
{
delta_pitch = (final_side_of_line_segments_frequency - start_side_of_line_segments_frequency) / ___delta___pitch___slabs_finder;
for (int rrr = 0; rrr < ___delta___pitch___slabs_finder; rrr++)
{
collection.AddEvent
(
new
SAANAUDS.Midi.PitchWheelChangeEvent
(
(long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / ___delta___pitch___slabs_finder) * rrr)
,
ChannelNumber
,
/// Math.Min(16368, (int)(start_side_of_line_segments_frequency +(delta_pitch * (final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency)) * 8192))
Math.Max(16368, (int)(8190 + (rrr * delta_pitch)))
)
, TrackNumber
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.Append
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
+ " rrr= " + rrr
+ " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / ___delta___pitch___slabs_finder) * rrr)
+ " pitch bent value = " + Math.Max(16368, (int)(8190 + rrr * delta_pitch))
);
//delta_pitch
}// for(int rrr=0;rrr<___delta___pitch___slabs_finder;rrr++)
}
//////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
}// if(start_side_of_line_segments_frequency< final_side_of_line_segments_frequency)
if (start_side_of_line_segments_frequency > final_side_of_line_segments_frequency)
{
//////for (double ___pitch_bent_iterator= start_side_of_line_segments_frequency+1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
{
delta_pitch = (start_side_of_line_segments_frequency - final_side_of_line_segments_frequency) / ___delta___pitch___slabs_finder;
for (int rrr = 0; rrr < ___delta___pitch___slabs_finder; rrr++)
{
collection.AddEvent
(
new
SAANAUDS.Midi.PitchWheelChangeEvent
(
(long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / ___delta___pitch___slabs_finder) * rrr)
,
ChannelNumber
,
/// (int)((1-(delta_pitch / start_side_of_line_segments_frequency)) * 8192)
///
// (int)(delta_pitch *(final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency) * 8192)
Math.Max(6, (int)(8190 - rrr * delta_pitch))
)
, TrackNumber
);
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
// "SAANDXF___DXF_LINE_SEGMENTS_"
"TrackNumber =" + TrackNumber
+ " ChannelNumber =" + ChannelNumber
+ " ___degrees_1 = " + ___degrees_1
+ " ___degrees_2 = " + ___degrees_2
+ " absoluteTime___start(min of two degrees) = " + absoluteTime___start
+ " absoluteTime___final(max of two degrees) = " + absoluteTime___final
+ " ___dist_1(= frequency1) = " + ___dist_1
+ " ___dist_2(= frequency2) = " + ___dist_2
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " note_number_found_from_the_furthest_frequency_Hertz = " + note_number_found_from_the_furthest_frequency_Hertz
+ " NoteDuration=" + NoteDuration
+ " note_name_found_from_the_nearest_frequency_Hertz=" + note_name_found_from_the_nearest_frequency_Hertz
+ " note_name_found_from_the_furthest_frequency_Hertz=" + note_name_found_from_the_furthest_frequency_Hertz
+ " slope_in_linear_time = " + slope_in_linear_time
+ " rrr= " + rrr
+ " pitch bent time=" + (long)(absoluteTime___start + ((absoluteTime___final - absoluteTime___start) / ___delta___pitch___slabs_finder) * rrr)
+ " pitch bent value = " + Math.Max(6, (int)(8190 - rrr * delta_pitch))
);
//delta_pitch
}// for(int rrr=0;rrr<___delta___pitch___slabs_finder;rrr++)
}
//////for (double ___pitch_bent_iterator = start_side_of_line_segments_frequency + 1;
////// ___pitch_bent_iterator < final_side_of_line_segments_frequency;
////// ___pitch_bent_iterator++)
}// if(start_side_of_line_segments_frequency> final_side_of_line_segments_frequency)
#endregion PREVIOUSSAANSTYLESOFPITCHBENDCALCULATIONS
collection.AddEvent
(
new
SAANAUDS.Midi.NoteEvent
(
/// absoluteTime + NoteDuration
absoluteTime___final
,
ChannelNumber
,
SAANAUDS.Midi
.MidiCommandCode
.NoteOff
,
// note.MidiValue
note_number_found_from_the_nearest_frequency_Hertz
, 0
),
TrackNumber
);
// absoluteTime += SpaceBetweenNotes;
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
public_list_of_long_type_note_durations
.Add
(
(absoluteTime___final - absoluteTime___start)
);
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
/////////////////////////////////////// too important to log the note durations ///////////
}// foreach (SAANSDXF.Entities.Line line in entities.OfType<SAANSDXF.Entities.Line>())
//////////////public List<double> public_list_of_6_digit_double_precission_unique_slopes_found = null;
//////////////public List<long> public_list_of_long_type_note_durations = null;
string fileName_for_midi_from_the_dxf = "";
fileName_for_midi_from_the_dxf
=
___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX
+ "_BPM=" + this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
+ "_TPQN=" + this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
+ "_TS=" + this.public_integer_time_signatures_numerator_value_taken_from_text_box_textBox_TS_NUMERATOR_IS_BEATS_PER_MEASURE_OR_BARSIZE_PER_TPQN_TO_REPRESENT.ToString()
+ "_" + this.public_integer_time_signatures_denominators_value_taken_from_text_box_directly_for_textBox_TS_DENOMINATOR_IS_THE_NOTES_PER_BEAT_OF_TIME_SIGNATURE_NOTES_PER_BEAT_IT_IS_N_TH_POWER_OF_2.ToString()
+ "_totslps=" + this.public_list_of_6_digit_double_precission_unique_slopes_found.Count.ToString()
+ "_tot_notes=" + this.public_list_of_long_type_note_durations.Count.ToString()
+ "_mdtks.mid";
//////System.IO.File.WriteAllText
////// (
////// fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// ,
////// ___sbuilder_within_the_button_to_log_details_for_mid_event_notes
////// .ToString()
////// );
//////System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
//////System.Windows.Forms.MessageBox.Show(" MIDI files collection.PrepareForExport(); starts");
/////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
////////////caution caution caution we will add these later
/////////caution caution caution we will add these later
//////collection.PrepareForExport();
/////////caution caution caution we will add these later MidiFile.Export(fileName, collection);
/////////
///////// caution caution caution we will add these later
/////////
//////System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
////////public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
///////// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
//////SAANAUDS.Midi.MidiFile.Export
////// (
////// fileName_for_midi_from_the_dxf
////// , collection
////// );
//////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////
////////// SAAN IS ADDING THIS FOR SPECIAL PURPOSE NEEDS FOR THE PITCH CIRCLES
foreach (SAANSDXF.Entities.Circle CIRC_SAANS_ADDS in entities.OfType<SAANSDXF.Entities.Circle>())
{
double _circ_center_x = CIRC_SAANS_ADDS.Center.X;
double _circ_center_y = CIRC_SAANS_ADDS.Center.Y;
double _circ_center_z = CIRC_SAANS_ADDS.Center.Z;
double _circ_radius = CIRC_SAANS_ADDS.Radius;
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.AppendLine
(
"CIRCLE_FOUND\r\n"
+ " center_x= " + _circ_center_x
+ " center_y= " + _circ_center_y
+ " center_z= " + _circ_center_z
+ " _circ_radius= " + _circ_radius
);
}// foreach (SAANSDXF.Entities.Circle CIRC_SAANS_ADDS in entities.OfType<SAANSDXF.Entities.Circle>())
////////// SAAN IS ADDING THIS FOR SPECIAL PURPOSE NEEDS FOR THE PITCH CIRCLES
foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[0].Position.X;
verty1 = poly2d.Vertexes[0].Position.Y;
vertx2 = poly2d.Vertexes[1].Position.X;
verty2 = poly2d.Vertexes[1].Position.Y;
bulge = poly2d.Vertexes[0].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
//i have the radius, finally again
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
/////////////////////////////////////////////////////////////////
for (int z = 1; z < vertextcount - 1; z++)
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[z].Position.X;
verty1 = poly2d.Vertexes[z].Position.Y;
vertx2 = poly2d.Vertexes[z + 1].Position.X;
verty2 = poly2d.Vertexes[z + 1].Position.Y;
bulge = poly2d.Vertexes[z].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
}
///////////////////////////////////////////////////////////////// is a closed polyline?
if (poly2d.IsClosed)
{
vertextcount = poly2d.Vertexes.Count;
new SAANSDXF.Entities.Polyline2DVertex(new Vector2(0, 0));
vertx1 = poly2d.Vertexes[vertextcount - 1].Position.X;
verty1 = poly2d.Vertexes[vertextcount - 1].Position.Y;
vertx2 = poly2d.Vertexes[0].Position.X;
verty2 = poly2d.Vertexes[0].Position.Y;
bulge = poly2d.Vertexes[vertextcount - 1].Bulge;
p1 = new Vector2(vertx1, verty1);
p2 = new Vector2(vertx2, verty2);
theta = 4 * Math.Atan(Math.Abs(bulge));
c = Vector2.Distance(p1, p2) / 2.0;
r = c / Math.Sin(theta / 2.0);
gamma = (Math.PI - theta) / 2;
phi = Vector2.Angle(p1, p2) + Math.Sign(bulge) * gamma;
center = new Vector2(p1.X + r * Math.Cos(phi), p1.Y + r * Math.Sin(phi));
if (!MathHelper.IsZero(bulge))
{
startAngle = MathHelper.RadToDeg * Vector2.Angle(p1 - center);
endAngle = startAngle + MathHelper.RadToDeg * theta;
holdangle = endAngle - startAngle;
arclength = (2 * Math.PI) * r * (holdangle / 360);
totallength = totallength + arclength;
}
else
{
linelength = Math.Sqrt((Math.Pow((vertx1 - vertx2), 2)) + Math.Pow((verty1 - verty2), 2));
totallength = totallength + linelength;
}
}
poly2d.Normal = new Vector3(0, 0, 1);
}//foreach (SAANSDXF.Entities.Polyline2D poly2d in entities.OfType<SAANSDXF.Entities.Polyline2D>())
System.Windows.Forms.MessageBox.Show("all entities in dxf reading done\r\n\r\n\r\n SO MIDI files collection.PrepareForExport(); starts");
///caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
//////caution caution caution we will add these later
///caution caution caution we will add these later
collection.PrepareForExport();
///caution caution caution we will add these later MidiFile.Export(fileName, collection);
///
/// caution caution caution we will add these later
///
System.Windows.Forms.MessageBox.Show(" MIDI files SAANAUDS.Midi.MidiFile.Export; starts");
//public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480
/// this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE
SAANAUDS.Midi.MidiFile.Export
(
fileName_for_midi_from_the_dxf
, collection
);
////////////////////////////////////////////////////////////////////////////////////////////////////
///
totallength = Math.Round(totallength * roundamount, 0) / roundamount;
string tempstring = "Total length of entities in dxf = " + totallength.ToString();
////////////// dxf_fresh.Save(___temp_dxf_file_to_read_for_GRAPHS_ON_PBOX + "_output.dxf");
System.Windows.Forms.MessageBox.Show("starting writing log files at " + fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt");
System.IO.File.WriteAllText
(
fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt"
,
___sbuilder_within_the_button_to_log_details_for_mid_event_notes
.ToString()
);
//////System.Diagnostics.Process.Start
////// (
////// "notepad.exe", fileName_for_midi_from_the_dxf + "_strbldr_log_data.txt"
////// );
System.Windows.Forms.MessageBox.Show("text logs saving Done" + fileName_for_midi_from_the_dxf + "_strbldr_log_data_circular.txt");
////////////////////////////////// CAUTION CAUTION CAUTION ////////////////////////////////////////////
///WE CANNOT POPULATE THIS LIST UNTIL WHOLE FILE IS READ COMPLETELY ONCE ///////////////////////////////
///UNTIL TOTAL DURATION OF THE SONG IS FOUND WE CANNOT CALCULATE THE DATA FOR THE RADIANS ////////////////
///while writing THE MIDI FILE FIRST WE NEED TO READ THE DXF FILE FOR THE LINE SEGMENTS //////
///AND THEN CALCULATING THE TOTAL DURATIONS AND THEN PUTTING THE WHOLE RECALCULATIONS DONE FIRST
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
=
new List<double>();
ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Clear();
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
.Sort();
//////double large_radius_to_use_for_gridding =
////// ___temp_found_the_maximum_hertz_for_all_notes___for_gridding_radius
////// *
////// ___scale_factor_for_dxf_used_to_give_clarity_in_the_frequency_times_3d_generations
////// + 3000;
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
///////////////////////// this is necessary to draw the radial grids for the timelines /////////////////////////
/// and while writing the midi files first we will prepare track zero events for lyrics and the copyrights
/// where we will put the data for these things there from the dxf line segments data as read there
///
foreach (
double six_digit_radian_in_list
in
ExcelFormulaParser_GT_PARSER.SAANAUDS
.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
)
{
double six_digit_radian
= 0;
// in previous loop we have already found this
/// ___temp_total_length___of_the_song
///
six_digit_radian = Math.Round(six_digit_radian_in_list, 6);
string ___GRIDS_TIMES_TEXT_DATA = "";
//////___GRIDS_TIMES_TEXT_DATA
////// =
////// (System.Math.Round(___temp_total_length___of_the_song * six_digit_radian, 0)).ToString();
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//////double ___temp_x1_for_grids_end
////// = large_radius_to_use_for_gridding * System.Math.Cos(six_digit_radian);
//////double ___temp_y1_for_grids_end
////// = large_radius_to_use_for_gridding * System.Math.Sin(six_digit_radian);
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_circle_WITH_BLOCK_LEVEL_COLOR
////// (0, 0, 0,
////// large_radius_to_use_for_gridding, "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// );
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
////// (
////// 0, 0, -600000,
////// ___temp_x1_for_grids_end
////// ,
////// ___temp_y1_for_grids_end
////// ,
////// -600000,
////// "LAYER_GRIDS_CIRCLE", "XDATA", 6
////// );
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
////// .draw_dxf_text_ON_TOP_VIEW_WITH_BLOCK_LEVEL_COLOR
////// (
////// ___temp_x1_for_grids_end
////// ,
////// ___temp_y1_for_grids_end
////// ,
////// -600000, 0, 60,
////// "LAYER_GRIDS_CIRCLE",
////// ___GRIDS_TIMES_TEXT_DATA
////// ,
////// "XDATA", 6
////// );
}
//////foreach (
//////double six_digit_radian_in_list
//////in
//////ExcelFormulaParser_GT_PARSER.SAANAUDS.PUBLIC_STATIC_SAAN_LOGGER_VARIABLES_FOR_TRANSIENT_DATA_FOR_MIDI_EVENTS
//////.PUBLIC_STATIC_LIST___OF___NON_DUPLICATE_6_DIGIT_PRECISSION_DOUBLES___FOR_RADIANS___OF___NOTES_____FOR_GRIDDING
//////)
//////textBox2.Text = tempstring;
//////textBox2.Refresh();`
/////////// great https://github.com/GTMIDSDXFSAAGIRID/netDxf/discussions/420
////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
//////foreach (Layout layout in SAAN_dxf.Layouts)
////// {
////// List<DxfObjectReference> entities = SAAN_dxf.Layouts.GetReferences(layout);
////// foreach (DxfObjectReference o__dxfobjectreference_entity in entities)
////// {
////// EntityObject entity = o__dxfobjectreference_entity as EntityObject;
////// }//foreach (DxfObject o in entities)
////// }// foreach (Layout layout in SAAN_dxf.Layouts)
//////// foreach (var entity in SAAN_dxf.Entities)
//////foreach (var entity in SAAN_dxf)
////// {
////// if (entity is Circle)
////// {
////// // Handle Circle entity
////// Circle circle = (Circle)entity;
////// DrawCircle(g, circle);
////// }
////// else if (entity is Line)
////// {
////// // Handle Line entity
////// Line line = (Line)entity;
////// DrawLine(g, line);
////// }//if (entity is Circle)
////// // Add more conditions to handle other entities (e.g., Arc, Text, etc.)
////// }//foreach (EntityObject entity in dxf.Modelspace)
//////// Specify the path to your CSV file
//////string csvFilePath = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// + "chkers.csv";// ;// "d:\\chkers.csv";
//////// Load CSV data
//////string[] csvLines = System.IO.File.ReadAllLines(csvFilePath);
// Parse CSV data and extract information
// You'll need to implement your own logic to extract tempo, time signature, key signature, and channel-wise data.
//////// Create a new MIDI file
//////SAANAUDS.Midi.MidiFile midiFile = new SAANAUDS.Midi.MidiFile(csvFilePath+"_new.mid");
//////// Set tempo (example value, replace with your own)
//////// midiFile.DeltaTicksPerQuarterNote = 960;
//////midiFile.DeltaTicksPerQuarterNote = 960;
/// SAANAUDS.Midi.MidiEvent tempoEvent = new SAANAUDS.Midi.TempoEvent(500000); // Tempo in microseconds per quarter note (e.g., 500,000 for 120 BPM)
// Create a new MIDI track for your data
// SAANAUDS.Midi.MidiTrack track = new SAANAUDS.Midi.MidiTrack();
/// SAANAUDS.Midi. track = new SAANAUDS.Midi.MidiTrack();
/// midiFile.Tracks.Add(track);
/////////////// we cannot prepare the midi file object to save the midi file
///instead we need to prepare MidiEventCollection and then need to save that to file through
///static method of the MidiFile
///
// Add tempo event
/// track.AddEvent(tempoEvent);
///
///refer F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL
///\excelformulaparser
///\DOING_GT06012020plus
///\DSMSETS_ANI_DNGIFGTTODOINOFFICE
///\ExcelFormulaParserSample\SAANAUDS\SAANAUDS_CHECKING_SimpleMidiFileWriter.cs
///
/////// SAANAUDS.Midi.MidiEventCollection ___saanauds_midieventscollection = new SAANAUDS.Midi.MidiEventCollection();
//////// Add your note events and pitch bend events to the track
//////foreach (string line in csvLines)
////// {
////// string[] parts = line.Split(',');
////// if (parts.Length >= 5)
////// {
////// int channel = int.Parse(parts[1]);
////// int noteNumber = int.Parse(parts[2]);
////// int velocity = int.Parse(parts[3]);
////// long absoluteTime = long.Parse(parts[4]);
////// // Create note on and note off events, and pitch bend events
////// var noteOn = new NoteOnEvent(absoluteTime, channel, noteNumber, velocity);
////// var noteOff = new NoteEvent(absoluteTime + 1000, channel, MidiCommandCode.NoteOff, noteNumber, velocity);
////// var pitchBend = new PitchBendEvent(absoluteTime, channel, 8192); // Example pitch bend value
////// // Add events to the track
////// track.AddEvent(noteOn);
////// track.AddEvent(noteOff);
////// track.AddEvent(pitchBend);
////// }
////// }
//////// Save the MIDI file
//////string outputFile = "output.mid";
//////midiFile.Save(outputFile);
}
catch (Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
{
System.Windows.Forms.MessageBox.Show
("_excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX" + _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.Message + "\r\n\r\n\r\n"
+ _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX.StackTrace.ToString()
);
}//catch(Exception _excp____temp_dxf_file_to_read_for_GRAPHS_ON_PBOX)
}// private void button___CIRCDXFGUITSMIDS_Click(object sender, EventArgs e)
private void checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR_CheckedChanged(object sender, EventArgs e)
{
// System.Windows.Forms.MessageBox.Show("checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR_CheckedChanged = " + this.checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.ToString());
System.Windows.Forms.MessageBox.Show("checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR_CheckedChanged = " + this.checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.ToString() + "\r\nChecked = " + this.checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR.Checked.ToString()+"\r\n NOTE THAT I HAVE NOT STORED THIS VALUE TO ANY KIND OF VARIABLE AND DIRECTLY CALLED THIS IN THE BUTTON CALLS FOR MIDI GENERATORS FOR PITCH BENDS CALCULATIONS");
}// private void checkBox_LOG_2_PITCH_ADJUST_INSTEAD_OF_LINEAR_CheckedChanged(object sender, EventArgs e)
private void checkBox_AUTO_SIN_THETA_ADJUST_VELOCITY_WITH_LENGTHS_SLOPES_CheckedChanged(object sender, EventArgs e)
{
System.Windows.Forms.MessageBox.Show("checkBox_AUTO_SIN_THETA_ADJUST_VELOCITY_WITH_LENGTHS_SLOPES_CheckedChanged = " + this.checkBox_AUTO_SIN_THETA_ADJUST_VELOCITY_WITH_LENGTHS_SLOPES.ToString() + "\r\nChecked = " + this.checkBox_AUTO_SIN_THETA_ADJUST_VELOCITY_WITH_LENGTHS_SLOPES.Checked.ToString() + "\r\n NOTE THAT I HAVE NOT STORED THIS VALUE TO ANY KIND OF VARIABLE AND DIRECTLY CALLED THIS IN THE BUTTON CALLS FOR MIDI GENERATORS FOR VELOCITY ASSIGNMENTS CALCULATIONS WITH REAL LINE SEGMENTS LENGTHS AND WITH MILLISECONDS ADJUSTED SLOPES ABSOLUTES");
}// private void checkBox_AUTO_SIN_THETA_ADJUST_VELOCITY_WITH_LENGTHS_SLOPES_CheckedChanged(object sender, EventArgs e)
private void textBox_DRUMS_RECOGNITIONS_MILLISECONDS_TextChanged(object sender, EventArgs e)
{
}
private void label_MILLISEC_PER_CENTIDEGREES_Click(object sender, EventArgs e)
{
}
private void button_TO_FILL_DEFAULT_PATCHES_320_TO_387_Click(object sender, EventArgs e)
{
//////////////////////// THESE ARE NEW VARIABLES TO DO THE CUSTOMIZABLE PATCHES FOR 68 DIFFERENT INSTRUMENTS FOR 68 DIFFERENT TRACKS //////
//////////////////////// THESE ARE NEW VARIABLES TO DO THE CUSTOMIZABLE PATCHES FOR 68 DIFFERENT INSTRUMENTS FOR 68 DIFFERENT TRACKS //////
//////////////////////// THESE ARE NEW VARIABLES TO DO THE CUSTOMIZABLE PATCHES FOR 68 DIFFERENT INSTRUMENTS FOR 68 DIFFERENT TRACKS //////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[1].Value = "32";//////"TRACK_2_GTMIDS_PATCH_1___320_DRUMS_1____20TH_TO_19TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[320].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[1].Value = "33";//////"TRACK_3_GTMIDS_PATCH_2___321_DRUMS_2____19TH_TO_18TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[321].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[1].Value = "34";//////"TRACK_4_GTMIDS_PATCH_3___322_DRUMS_3____18TH_TO_17TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[322].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[1].Value = "35";//////"TRACK_5_GTMIDS_PATCH_4___323_DRUMS_4____17TH_TO_16TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[323].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[1].Value = "36";//////"TRACK_6_GTMIDS_PATCH_5___324_DRUMS_5____16TH_TO_15TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[324].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[1].Value = "37";//////"TRACK_7_GTMIDS_PATCH_6___325_DRUMS_6____15TH_TO_14TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[325].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[1].Value = "38";//////"TRACK_8_GTMIDS_PATCH_7___326_DRUMS_7____14TH_TO_13TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[326].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[1].Value = "39";//////"TRACK_9_GTMIDS_PATCH_8___327_DRUMS_8____13TH_TO_12TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[327].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[1].Value = "40";//////"TRACK_10_GTMIDS_PATCH_9___328_DRUMS_9____12TH_TO_11TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[328].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[1].Value = "41";//////"TRACK_11_GTMIDS_PATCH_10___329_DRUMS_10____11TH_TO_10TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[329].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[1].Value = "42";//////"TRACK_12_GTMIDS_PATCH_11___330_DRUMS_11____10TH_TO_9TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[330].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[1].Value = "50";//////"TRACK_13_GTMIDS_PATCH_12___331_DRUMS_12____9TH_TO_8TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[331].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[1].Value = "51";//////"TRACK_14_GTMIDS_PATCH_13___332_DRUMS_13____9TH_TO_7TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[332].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[1].Value = "52";//////"TRACK_15_GTMIDS_PATCH_14___333_DRUMS_14____7TH_TO_6TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[333].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[1].Value = "53";//////"TRACK_16_GTMIDS_PATCH_15___334_DRUMS_15____6TH_TO_5TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[334].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[1].Value = "54";//////"TRACK_17_GTMIDS_PATCH_16___335_DRUMS_16____5TH_TO_4TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[335].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[1].Value = "55";//////"TRACK_18_GTMIDS_PATCH_17___336_DRUMS_17____4TH_TO_3RD";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[336].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[1].Value = "56";//////"TRACK_19_GTMIDS_PATCH_18___337_DRUMS_18____3RD_TO_2ND";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[337].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[1].Value = "57";//////"TRACK_20_GTMIDS_PATCH_19___338_DRUMS_19____2ND_TO_1ST";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[338].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[1].Value = "58";//////"TRACK_21_GTMIDS_PATCH_20___339_DRUMS_20____1ST_TO_0TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[0].Style.BackColor = Color.LightGreen;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[339].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
/////////////////////////////////////// DRUMS ASSIGNING COMPLETE NOW WE WILL ADD THE STRINGS ASSIGNMENSTS //////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[1].Value = "14";//////"TRACK_22_GTMIDS_PATCH_21___340_STRINGS_1____20TH_TO_19TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[340].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[1].Value = "25";//////"TRACK_23_GTMIDS_PATCH_22___341_STRINGS_2____19TH_TO_18TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[341].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[1].Value = "26";//////"TRACK_24_GTMIDS_PATCH_23___342_STRINGS_3____18TH_TO_17TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[342].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[1].Value = "27";//////"TRACK_25_GTMIDS_PATCH_24___343_STRINGS_4____17TH_TO_16TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[343].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[1].Value = "28";//////"TRACK_26_GTMIDS_PATCH_25___344_STRINGS_5____16TH_TO_15TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[344].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[1].Value = "29";//////"TRACK_27_GTMIDS_PATCH_26___345_STRINGS_6____15TH_TO_14TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[345].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[1].Value = "30";//////"TRACK_28_GTMIDS_PATCH_27___346_STRINGS_7____14TH_TO_13TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[346].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[1].Value = "31";//////"TRACK_29_GTMIDS_PATCH_28___347_STRINGS_8____13TH_TO_12TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[347].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[1].Value = "32";//////"TRACK_30_GTMIDS_PATCH_29___348_STRINGS_9____12TH_TO_11TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[348].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[1].Value = "41";//////"TRACK_31_GTMIDS_PATCH_30___349_STRINGS_10____11TH_TO_10TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[349].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[1].Value = "42";//////"TRACK_32_GTMIDS_PATCH_31___350_STRINGS_11____10TH_TO_9TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[350].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[1].Value = "43";//////"TRACK_33_GTMIDS_PATCH_32___351_STRINGS_12____9TH_TO_8TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[351].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[1].Value = "44";//////"TRACK_34_GTMIDS_PATCH_33___352_STRINGS_13____8TH_TO_7TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[352].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[1].Value = "45";//////"TRACK_35_GTMIDS_PATCH_34___353_STRINGS_14____7TH_TO_6TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[353].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[1].Value = "46";//////"TRACK_36_GTMIDS_PATCH_35___354_STRINGS_15____6TH_TO_5TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[354].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[1].Value = "47";//////"TRACK_37_GTMIDS_PATCH_36___355_STRINGS_16____5TH_TO_4TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[355].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[1].Value = "48";//////"TRACK_38_GTMIDS_PATCH_37___356_STRINGS_17____4TH_TO_3RD";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[356].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[1].Value = "49";//////"TRACK_39_GTMIDS_PATCH_38___357_STRINGS_18____3RD_TO_2ND";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[357].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[1].Value = "50";//////"TRACK_40_GTMIDS_PATCH_39___358_STRINGS_19____2ND_TO_1ST";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[358].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[1].Value = "51";//////"TRACK_41_GTMIDS_PATCH_40___359_STRINGS_20____1ST_TO_0TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[0].Style.BackColor = Color.LightCyan;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[359].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////DRUMS DONE STRINGS DONE NOW WE WILL ADD THE WINDS PATCHES ////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[1].Value = "65";//////"TRACK_42_GTMIDS_PATCH_41___360_WINDS_1____20TH_TO_19TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[360].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[1].Value = "66";//////"TRACK_43_GTMIDS_PATCH_42___361_WINDS_2____19TH_TO_18TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[361].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[1].Value = "67";//////"TRACK_44_GTMIDS_PATCH_43___362_WINDS_3____18TH_TO_17TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[362].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[1].Value = "68";//////"TRACK_45_GTMIDS_PATCH_44___363_WINDS_4____17TH_TO_16TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[363].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[1].Value = "69";//////"TRACK_46_GTMIDS_PATCH_45___364_WINDS_5____16TH_TO_15TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[364].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[1].Value = "70";//////"TRACK_47_GTMIDS_PATCH_46___365_WINDS_6____15TH_TO_14TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[365].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[1].Value = "71";//////"TRACK_48_GTMIDS_PATCH_47___366_WINDS_7____14TH_TO_13TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[366].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[1].Value = "72";//////"TRACK_49_GTMIDS_PATCH_48___367_WINDS_8____13TH_TO_12TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[367].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[1].Value = "73";//////"TRACK_50_GTMIDS_PATCH_49___368_WINDS_9____12TH_TO_11TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[368].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[1].Value = "74";//////"TRACK_51_GTMIDS_PATCH_50___369_WINDS_10____11TH_TO_10TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[369].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[1].Value = "75";//////"TRACK_52_GTMIDS_PATCH_51___370_WINDS_11____10TH_TO_9TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[370].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[1].Value = "76";//////"TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[1].Value = "77";//////"TRACK_54_GTMIDS_PATCH_53___372_WINDS_13____8TH_TO_7TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[372].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[1].Value = "109";//////"TRACK_55_GTMIDS_PATCH_54___373_WINDS_14____7TH_TO_6TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[373].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[1].Value = "110";//////"TRACK_56_GTMIDS_PATCH_55___374_WINDS_15____6TH_TO_5TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[374].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
///
///
///
///
///
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[1].Value = "111";//////"TRACK_57_GTMIDS_PATCH_56___375_WINDS_16____5TH_TO_4TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[375].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[1].Value = "111";//////"TRACK_58_GTMIDS_PATCH_57___376_WINDS_17____4TH_TO_3RD";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[376].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[1].Value = "111";//////"TRACK_59_GTMIDS_PATCH_58___377_WINDS_18____3RD_TO_2ND";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[377].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[1].Value = "111";//////"TRACK_60_GTMIDS_PATCH_59___378_WINDS_19____2ND_TO_1ST";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[378].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[1].Value = "111";//////"TRACK_61_GTMIDS_PATCH_60___379_WINDS_20____1ST_TO_0TH";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[0].Style.BackColor = Color.LightGray;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[379].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////// WINDS DONE NOW LONG NOTES //////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[1].Value = "111";//////"TRACK_62_GTMIDS_PATCH_61___380_LONG_NOTES_1";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[0].Style.BackColor = Color.LightBlue;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[380].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[1].Value = "74";//////"TRACK_63_GTMIDS_PATCH_62___381_LONG_NOTES_2";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[0].Style.BackColor = Color.LightBlue;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[381].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[1].Value = "111";//////"TRACK_64_GTMIDS_PATCH_63___382_LONG_NOTES_3";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[0].Style.BackColor = Color.LightBlue;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[382].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[1].Value = "111";//////"TRACK_65_GTMIDS_PATCH_64___383_LONG_NOTES_4";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[0].Style.BackColor = Color.LightBlue;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[383].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[1].Value = "74";//////"TRACK_66_GTMIDS_PATCH_65___384_LONG_NOTES_5";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[0].Style.BackColor = Color.LightBlue;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[384].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[1].Value = "111";//////"TRACK_67_GTMIDS_PATCH_66___385_LONG_NOTES_6";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[0].Style.BackColor = Color.LightBlue;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[385].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[1].Value = "74";//////"TRACK_68_GTMIDS_PATCH_67___386_LONG_NOTES_7";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[0].Style.BackColor = Color.LightBlue;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[386].Cells[0].Style.ForeColor = Color.Black;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///
///
///
///
///
///
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[1].Value = "111";//////"TRACK_69_GTMIDS_PATCH_68___387_LONG_NOTES_8";
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[0].Style.BackColor = Color.LightBlue;
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[387].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}// private void button_TO_FILL_DEFAULT_PATCHES_320_TO_387_Click(object sender, EventArgs e)
private void button_TO_FILL_ALL_320_TO_387_WITH_SAME_PATCHES_Click(object sender, EventArgs e)
{
string ___string_patchnumberread = "";
___string_patchnumberread = this.textBox___TO_FILL_DEFAULT_PATCH_NUMBER_FOR_320_TO_387.Text.TrimEnd().TrimStart().Trim().Replace(" ", "");
int _int_patch_number_found = 0;
try
{
_int_patch_number_found= Convert.ToInt32(___string_patchnumberread);
}
catch(Exception ___excp_to_convert)
{
_int_patch_number_found = 0;
}// catch(Exception ___excp_to_convert)
if(_int_patch_number_found>=0 && _int_patch_number_found<=127)
{
//ok
}
else
{
_int_patch_number_found = 0;
}//endof else of if(_int_patch_number_found>=0 && _int_patch_number_found<=127)
for(int rrr=320;rrr<=387;rrr++)
{
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.dataGridViewFOR_GT_PRESETS_DATA.Rows[rrr].Cells[1].Value
= _int_patch_number_found.ToString().TrimEnd().TrimStart().Trim().Replace(" ", "");
//////this.dataGridViewFOR_GT_PRESETS_DATA.Rows[rrr].Cells[0].Style.BackColor = Color.LightBlue;
//////this.dataGridViewFOR_GT_PRESETS_DATA.Rows[rrr].Cells[0].Style.ForeColor = Color.Black;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}// for(int rrr=320;rrr<=387;rrr++)
}// private void button_TO_FILL_ALL_320_TO_387_WITH_SAME_PATCHES_Click(object sender, EventArgs e)
private void PlayNextNote(object sender, EventArgs e)
{
// SAAN_TEMPS_midiNotes = temp_notesarray;
////// for references temp_notesarray = new int[___temp_array_of___.Length];
////// for references temp_durationsarray = new double[___temp_array_of___.Length];
////// for references temp_velocity_array = new int[___temp_array_of___.Length];
////// for references temp_patch_array = new int[___temp_array_of___.Length];
if(SAAN_TEMPS_midiNotes!=null)
{
try
{
if (SAANS_TEMP_currentNoteIndex > 0 && (SAANS_TEMP_currentNoteIndex < (SAAN_TEMPS_midiNotes.Length)) )
{
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS +=
"\r\nif (SAANS_TEMP_currentNoteIndex > 0) SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StopNote(SAAN_TEMPS_midiNotes[SAANS_TEMP_currentNoteIndex - 1], 0, 1).RawData);";
// Turn off the previous note
/// SAANS_TEMP_midiOut.Send(SAANAUDS.Midi.MidiMessage.StopNote(SAAN_TEMPS_midiNotes[SAANS_TEMP_currentNoteIndex - 1], 127).RawData);
//////SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StopNote(SAAN_TEMPS_midiNotes[SAANS_TEMP_currentNoteIndex - 1], 127,1).RawData);
// SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StopNote(SAAN_TEMPS_midiNotes[SAANS_TEMP_currentNoteIndex - 1], temp_velocity_array[SAANS_TEMP_currentNoteIndex - 1] , 1).RawData);
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StopNote(SAAN_TEMPS_midiNotes[SAANS_TEMP_currentNoteIndex - 1], temp_velocity_array[SAANS_TEMP_currentNoteIndex - 1], 1).RawData);//velocity is zero for stop notes
}//if (SAANS_TEMP_currentNoteIndex > 0)
else if (SAANS_TEMP_currentNoteIndex < SAAN_TEMPS_midiNotes.Length)
{
// Play the current note
//TAKEN CHANNEL =1
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS +=
"\r\nSAANS_TEMP_currentNoteIndex =" + SAANS_TEMP_currentNoteIndex + " SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StartNote(SAAN_TEMPS_midiNotes[SAANS_TEMP_currentNoteIndex], temp_velocity_array[SAANS_TEMP_currentNoteIndex], 1).RawData); then SAANS_TEMP_currentNoteIndex++;";
//////SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StartNote(SAAN_TEMPS_midiNotes[SAANS_TEMP_currentNoteIndex], 127, 1).RawData);
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StartNote(SAAN_TEMPS_midiNotes[SAANS_TEMP_currentNoteIndex], temp_velocity_array[SAANS_TEMP_currentNoteIndex], 1).RawData);
SAANS_TEMP_currentNoteIndex++;
}
else
{
// Stop the timer and reset the sequence
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS +=
"\r\n SAANS_TEMP_playTimer.Stop(); SAANS_TEMP_currentNoteIndex = 0; SAANS_TEMP_currentNoteIndex = " + SAANS_TEMP_currentNoteIndex;
SAANS_TEMP_playTimer.Stop();
SAANS_TEMP_currentNoteIndex = 0;
}
}
catch (Exception excptoPlayNextNote)
{
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
System.Windows.Forms.MessageBox.Show("excptoPlayNextNote = " + excptoPlayNextNote.Message + " " + excptoPlayNextNote.StackTrace.ToString() + " SAANS_TEMP_currentNoteIndex = " + SAANS_TEMP_currentNoteIndex + " SAAN_TEMPS_midiNotes length = " + SAAN_TEMPS_midiNotes.Length + " temp_velocity_array length = " + temp_velocity_array.Length);
}//if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
Console.WriteLine("excptoPlayNextNote = " + excptoPlayNextNote.Message + " " + excptoPlayNextNote.StackTrace.ToString() + " SAANS_TEMP_currentNoteIndex = " + SAANS_TEMP_currentNoteIndex + " SAAN_TEMPS_midiNotes length = " + SAAN_TEMPS_midiNotes.Length + " temp_velocity_array length = " + temp_velocity_array.Length);
// Stop the timer and reset the sequence
SAANS_TEMP_playTimer.Stop();
SAANS_TEMP_currentNoteIndex = 0;
}//catch(Exception excptoPlayNextNote)
}// if(SAAN_TEMPS_midiNotes!=null)
else
{
System.Windows.Forms.MessageBox.Show("SAAN_TEMPS_midiNotes IS NULL");
}//END OF ELSE OF if(SAAN_TEMPS_midiNotes!=null)
}// private void PlayNextNote(object sender, EventArgs e)
private static async void GenerateNoteBitmaps(double eventCounter, int notesNumber, string outputDirectory)
{
int width = 1280;//1000;
int height = 720;//200;
int whiteKeyCount = 52;
int whiteKeyWidth = width / whiteKeyCount;
int blackKeyWidth = whiteKeyWidth / 2;
int blackKeyHeight = (int)(height * 0.6);
Dictionary<int, string> NoteNames_DICTIONARY = new Dictionary<int, string>
{
{ 21, "A0" }, { 22, "A#0" }, { 23, "B0" },
{ 24, "C1" }, { 25, "C#1" }, { 26, "D1" },
{ 27, "D#1" }, { 28, "E1" }, { 29, "F1" },
{ 30, "F#1" }, { 31, "G1" }, { 32, "G#1" },
{ 33, "A1" }, { 34, "A#1" }, { 35, "B1" },
{ 36, "C2" }, { 37, "C#2" }, { 38, "D2" },
{ 39, "D#2" }, { 40, "E2" }, { 41, "F2" },
{ 42, "F#2" }, { 43, "G2" }, { 44, "G#2" },
{ 45, "A2" }, { 46, "A#2" }, { 47, "B2" },
{ 48, "C3" }, { 49, "C#3" }, { 50, "D3" },
{ 51, "D#3" }, { 52, "E3" }, { 53, "F3" },
{ 54, "F#3" }, { 55, "G3" }, { 56, "G#3" },
{ 57, "A3" }, { 58, "A#3" }, { 59, "B3" },
{ 60, "C4" }, { 61, "C#4" }, { 62, "D4" },
{ 63, "D#4" }, { 64, "E4" }, { 65, "F4" },
{ 66, "F#4" }, { 67, "G4" }, { 68, "G#4" },
{ 69, "A4" }, { 70, "A#4" }, { 71, "B4" },
{ 72, "C5" }, { 73, "C#5" }, { 74, "D5" },
{ 75, "D#5" }, { 76, "E5" }, { 77, "F5" },
{ 78, "F#5" }, { 79, "G5" }, { 80, "G#5" },
{ 81, "A5" }, { 82, "A#5" }, { 83, "B5" },
{ 84, "C6" }, { 85, "C#6" }, { 86, "D6" },
{ 87, "D#6" }, { 88, "E6" }, { 89, "F6" },
{ 90, "F#6" }, { 91, "G6" }, { 92, "G#6" },
{ 93, "A6" }, { 94, "A#6" }, { 95, "B6" },
{ 96, "C7" }, { 97, "C#7" }, { 98, "D7" },
{ 99, "D#7" }, { 100, "E7" }, { 101, "F7" },
{ 102, "F#7" }, { 103, "G7" }, { 104, "G#7" },
{ 105, "A7" }, { 106, "A#7" }, { 107, "B7" },
{ 108, "C8" }
};//Dictionary<int, string> NoteNames_DICTIONARY = new Dictionary<int, string>
//foreach (int noteNumber in listOfNoteNumbers)
{
string ___formattedstringforeventcounter = (new String('0', 20 - eventCounter.ToString().Length))+ eventCounter.ToString();
string noteName = NoteNames_DICTIONARY.ContainsKey(notesNumber) ? NoteNames_DICTIONARY[notesNumber] : $"Unknown {notesNumber}";
// string outputBmp = Path.Combine(outputDirectory, $"{eventCounter}_{notesNumber}_{noteName}.bmp");
//___formattedstringforeventcounter
string outputBmp = Path.Combine(outputDirectory, $"{___formattedstringforeventcounter}_{notesNumber}_{noteName}.bmp");
using (Bitmap bmp = new Bitmap(width, height))
{
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.White);
// Draw white keys
int whiteKeyIndex = 0;
//starting from 21 so we are taking 88 21+88 = 109
float playingnotestext___x = 0;
for (int i = 0; i < 88; i++)
{
//starting from 21 so we are taking 88 21+88 = 109
int midiNote = 21 + i;//starting from 21 so we are taking 88 21+88 = 109
if (!IsBlackKey(midiNote))
{
int x = whiteKeyIndex * whiteKeyWidth;
var color = notesNumber == midiNote ? Color.LightGreen : Color.White;
g.FillRectangle(new SolidBrush(color), x, 0, whiteKeyWidth, height);
g.DrawRectangle(Pens.Black, x, 0, whiteKeyWidth, height);
// playingnotestext___x = (float)x;
if (color == Color.LightGreen)
{
playingnotestext___x = (float)x;
}//if(color==Color.LightGreen)
//////// Draw note name
//////string noteText = $"{noteName} ({notesNumber})";
//////Font font = new Font("Arial", 12);
//////SizeF textSize = g.MeasureString(noteText, font);
//////float xText = x;// (width - textSize.Width) / 2;
//////float yText = (height - textSize.Height)/ 2;
//////g.DrawString(noteText, font, Brushes.Black, xText, yText + 6 * (textSize.Height));
//////string noteText90 = $"{noteName} ({notesNumber})";
//////Font noteFont = new Font("Arial", 12);
//////SizeF noteSize = g.MeasureString(noteText, noteFont);
//////float xNote = x;// (width - noteSize.Width) / 2;
//////float yNote = (height - 3 * noteSize.Height) / 2;
//////g.TranslateTransform(xNote + noteSize.Width / 2, yNote + noteSize.Height / 2);
//////g.RotateTransform(90);
//////g.DrawString(noteText, noteFont, Brushes.Black, -noteSize.Width / 2, -noteSize.Height / 2);
//////g.ResetTransform();
whiteKeyIndex++;
}//if (!IsBlackKey(midiNote))
}//for (int i = 0; i < 88; i++)
// Draw black keys
whiteKeyIndex = 0;
//starting from 21 so we are taking 88 21+88 = 109
for (int i = 0; i < 88; i++)
{
//starting from 21 so we are taking 88 21+88 = 109
int midiNote = 21 + i;
if (!IsBlackKey(midiNote))
{
whiteKeyIndex++;
}
else
{
int x = whiteKeyIndex * whiteKeyWidth - blackKeyWidth / 2;
var color = notesNumber == midiNote ? Color.Green : Color.Black;
g.FillRectangle(new SolidBrush(color), x, 0, blackKeyWidth, blackKeyHeight);
if(color==Color.Green)
{
playingnotestext___x = (float)x;
}//if(color==Color.Green)
//////// Draw note name
//////string noteText = $"{noteName} ({notesNumber})";
//////Font font = new Font("Arial", 12);
//////SizeF textSize = g.MeasureString(noteText, font);
//////float xText = x;// (width - textSize.Width) / 2;
//////float yText = (height - textSize.Height) / 2;
//////g.DrawString(noteText, font, Brushes.Black, xText, yText + 6 * (textSize.Height));
//////string noteText90 = $"{noteName} ({notesNumber})";
//////Font noteFont = new Font("Arial", 12);
//////SizeF noteSize = g.MeasureString(noteText, noteFont);
//////float xNote = x;// (width - noteSize.Width) / 2;
//////float yNote = (height - 3*noteSize.Height) / 2;
//////g.TranslateTransform(xNote + noteSize.Width / 2, yNote + noteSize.Height / 2);
//////g.RotateTransform(90);
//////g.DrawString(noteText, noteFont, Brushes.Black, -noteSize.Width / 2, -noteSize.Height / 2);
//////g.ResetTransform();
}// if (!IsBlackKey(midiNote))
}//for (int i = 0; i < 88; i++)
//////// Draw note name
string noteText = $"{noteName} ({notesNumber})";
Font font = new Font("Arial", 12);
SizeF textSize = g.MeasureString(noteText, font);
float xText = (width - textSize.Width) / 2;
float yText = (height - textSize.Height) / 2;
// g.DrawString(noteText, font, Brushes.Black, xText, yText + 3 * (textSize.Height));
g.DrawString(noteText, font, Brushes.Black, playingnotestext___x + 30 , yText + 6 * (textSize.Height));
// Draw header text
string headerText = "Sanjoy Nath's Geometrifying Trigonometry SAAGIRID";
string headerText___ANOTHER = "Sanjoy Nath's QHENOMENOLOGY ";
string headerText___ANOTHER_ANOTHER = "Sanjoy Nath's WHENOMENOLOGY AND NAFECADSMIPA";
Font headerFont = new Font("Arial", 34);
SizeF headerSize = g.MeasureString(headerText, headerFont);
float xHeader = ((width - headerSize.Width) / 2) - 60 ;
float yHeader = (height - headerSize.Height) / 2;
//////::contentReference[oaicite:0]{index=0}
// Draw header text
//////string headerText = "Geometrifying Trigonometry";
//////Font headerFont = new Font("Arial", 16);
//////SizeF headerSize = g.MeasureString(headerText, headerFont);
//////float xHeader = (width - headerSize.Width) / 2;
//////g.DrawString(headerText, headerFont, Brushes.Black, xHeader, yHeader + 3 * (headerSize.Height));
g.DrawString(headerText, headerFont, Brushes.Black, xHeader, (float)(height - 3.3 * headerSize.Height));
g.DrawString(headerText___ANOTHER, headerFont, Brushes.Black, xHeader, (float)(height - 2.3 * headerSize.Height));
g.DrawString(headerText___ANOTHER_ANOTHER, headerFont, Brushes.Black, xHeader, (float)(height - 1.3 * headerSize.Height));
// Draw note name with 90-degree rotation
//////string noteText = $"{noteName} ({notesNumber})";
//////Font noteFont = new Font("Arial", 12);
//////SizeF noteSize = g.MeasureString(noteText, noteFont);
//////float xNote = (width - noteSize.Width) / 2;
//////float yNote = (height - noteSize.Height) / 2;
//////g.TranslateTransform(xNote + noteSize.Width / 2, yNote + noteSize.Height / 2);
//////g.RotateTransform(90);
//////g.DrawString(noteText, noteFont, Brushes.Black, -noteSize.Width / 2, -noteSize.Height / 2);
//////g.ResetTransform();
// Save the bitmap to the specified output path
bmp.Save(outputBmp);
}//using (Graphics g = Graphics.FromImage(bmp))
}//using (Bitmap bmp = new Bitmap(width, height))
}//foreach (int noteNumber in listOfNoteNumbers)
}//public static void GenerateNoteBitmaps(List<int> listOfNoteNumbers, long eventCounter, int notesNumber, string outputDirectory)
// Helper method to determine if a MIDI note is a black key
private static bool IsBlackKey(int midiNote)
{
int noteInOctave = midiNote % 12;
return noteInOctave == 1 || noteInOctave == 3 || noteInOctave == 6 || noteInOctave == 8 || noteInOctave == 10;
}// private static bool IsBlackKey(int midiNote)
private async void button___PLAY_MIDI_STREAMS_Click(object sender, EventArgs e)
{
//https://demonstrations.wolfram.com/MIDIFrequencyCalculator/
//////this part of the code looks good and now i want to make a system where i will supply the file(text file) where the columns will have the data
//////start_millisecond, durations_in milliseconds, frequency_to_play i will save that data in a text file where the columns are ###### separated columns in a file input_selected_files_names.flutes_melody_data and place the necessary waves samples there. if i put dash in the frequency or 0 in the frequency columns then generate pure silence there
////// these are three columns only and read that text file using the below styles generate a complete mono single channel wav file 8000 samples per second 16 bit depth float(highest possible quality with 16 bit depth float(dont use short data types) save the wav file in input_selected_files_names.flutes_melody_data_mono_8000_16pcms.wav
StringBuilder ___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
= new StringBuilder();
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.Clear();
StringBuilder ___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
= new StringBuilder();
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.Clear();
double ______temp______________PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS = 0;
////////////Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES
////////////Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES
////////////Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES
////////////Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20
////////////Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
string ___initialsmessages_for_22_cols___SAANOWNCSVLINIERSCALEDDXFFORMIDI =
// "___initialsmessages_for_22_cols___SAANOWNCSVLINIERSCALEDDXFFORMIDI"+
//"\r\n ," +
"col 0 track(number categorizing like dxf layers)" +
"\r\n ,col 1 channel(9 for percussions only 0 to 15 only)" +
"\r\n ,col 2 patch_number(0 to 127)" +
"\r\n ,col 3 patch_name" +
"\r\n ,col 3+ pitch_bend_number(0 to 8190 to 16368 original note has no change frequency at 8190)" +
"\r\n ,col 3++ note_frequency_linier_y_start_data_OR_START_RADIUS(0,0,0 has zero frequency)" +
"\r\n ,col 6 note_frequency_linier_y_final_data_OR_FINAL_RADIUS(0,0,0 has zero frequency)" +
"\r\n ,col 7 note_name_FOUND_FROM_START_SIDES_FREQUENCY" +
"\r\n ,col 8 note_start_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE" +
"\r\n ,col 9 note_final_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE" +
"\r\n ,col 10 note_duration_IN_MIDITICKS_CALCULATED_FROM_THE_DEGREES_AND_TOTAL_DURATIONS_MICROSECONDS" +
"\r\n ,col 10+1 note_velocity_TRICKY_CALCULATION_OR_FROM_LAYERS" +
"\r\n ,col 10+2 grabbed_lyrics_text_FROM_LAYERS_NAMES_DATA" +
"\r\n ,col 10+3 grabbed_lyrics_Absolute_times_IN_LAYERS_DATA_FOR_TRACK_ZERO_WITH_MIDITICKS" +
"\r\n ,col 10+3+1 OPTIONAL_MILLISECONDS_DATA_FOR_START" +
"\r\n ,col 10+3+2 OPTIONAL_MILLISECONDS_DATA_FOR_FINAL" +
"\r\n ,col 10+3+3 OPTIONAL_MILLISECONDS_DATA_FOR_DURATIONS(normally 100 to 4300 to 30000 etc per notes)" +
"\r\n ,col 10+3+3 +1 OPTIONAL_NOTE_OR_OTHER_CONTROLLER_LIKE_PITCH_BEND(DECIDER_TO_PROCESS)" +
"\r\n ,col 10+3+3 +2 OPTIONAL_THE_RAW_MIDI_EVENT_COUNTER_PRESERVED_FOR_SORTING_WHILE_EXPORTING" +
"\r\n ,col 10+3+3 +3 OPTIONAL_SIN_THETA_ADJUSTED_SLOPE_FOR_VELOCITY_CONTROLLER" +
"\r\n ,col 10+3+3 +3+1 DEGREE_DIFF_TO_TRACK_BLANK_REGIONS" +
"\r\n ,col 21 DEGREE_START" +
"\r\n ,col 22 DEGREE_FINAL";
StringBuilder LOCAL_STRINGBUILDER_FOR___22_COLS___SAANOWNCSVLINIERSCALEDDXFFORMIDI = new StringBuilder();
LOCAL_STRINGBUILDER_FOR___22_COLS___SAANOWNCSVLINIERSCALEDDXFFORMIDI.Clear();
string STRING_CURRENT_REPEAT_CYCLES_COUNT = this.textBox___FOR_COMPOSERS_REPEAT_CYCLES_COUNT.Text.ToString().TrimEnd().TrimStart().Trim();
//////////////////////////////////////////////////////////////////////////////////////////////////////
LOCAL_STRINGBUILDER_FOR___22_COLS___SAANOWNCSVLINIERSCALEDDXFFORMIDI
.AppendLine
(___initialsmessages_for_22_cols___SAANOWNCSVLINIERSCALEDDXFFORMIDI
.Replace("\r\n", "")
.Replace("___initialsmessages_for_22_cols___SAANOWNCSVLINIERSCALEDDXFFORMIDI,","")
);
//////////////////////////////////////////////////////////////////////////////////////////////////////
// col 0 track(number categorizing like dxf layers) ,col 1 channel(9 for percussions only 0 to 15 only) ,col 2 patch_number(0 to 127) ,col 3 patch_name ,col 3 + pitch_bend_number(0 to 8190 to 16368 original note has no change frequency at 8190) ,col 3++ note_frequency_linier_y_start_data_OR_START_RADIUS(0, 0, 0 has zero frequency) ,col 6 note_frequency_linier_y_final_data_OR_FINAL_RADIUS(0, 0, 0 has zero frequency) ,col 7 note_name_FOUND_FROM_START_SIDES_FREQUENCY ,col 8 note_start_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE ,col 9 note_final_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE ,col 10 note_duration_IN_MIDITICKS_CALCULATED_FROM_THE_DEGREES_AND_TOTAL_DURATIONS_MICROSECONDS ,col 10 + 1 note_velocity_TRICKY_CALCULATION_OR_FROM_LAYERS ,col 10 + 2 grabbed_lyrics_text_FROM_LAYERS_NAMES_DATA ,col 10 + 3 grabbed_lyrics_Absolute_times_IN_LAYERS_DATA_FOR_TRACK_ZERO_WITH_MIDITICKS ,col 10 + 3 + 1 OPTIONAL_MILLISECONDS_DATA_FOR_START ,col 10 + 3 + 2 OPTIONAL_MILLISECONDS_DATA_FOR_FINAL ,col 10 + 3 + 3 OPTIONAL_MILLISECONDS_DATA_FOR_DURATIONS(normally 100 to 4300 to 30000 etc per notes) ,col 10 + 3 + 3 + 1 OPTIONAL_NOTE_OR_OTHER_CONTROLLER_LIKE_PITCH_BEND(DECIDER_TO_PROCESS) ,col 10 + 3 + 3 + 2 OPTIONAL_THE_RAW_MIDI_EVENT_COUNTER_PRESERVED_FOR_SORTING_WHILE_EXPORTING ,col 10 + 3 + 3 + 3 OPTIONAL_SIN_THETA_ADJUSTED_SLOPE_FOR_VELOCITY_CONTROLLER ,col 10 + 3 + 3 + 3 + 1 DEGREE_DIFF_TO_TRACK_BLANK_REGIONS ,col 21 DEGREE_START ,col 22 DEGREE_FINAL
//////LOCAL_STRINGBUILDER_FOR___22_COLS___SAANOWNCSVLINIERSCALEDDXFFORMIDI
////// .AppendLine
////// (
////// // col 0 track(number categorizing like dxf layers) ,col 1 channel(9 for percussions only 0 to 15 only) ,col 2 patch_number(0 to 127) ,col 3 patch_name ,col 3 + pitch_bend_number(0 to 8190 to 16368 original note has no change frequency at 8190) ,col 3++ note_frequency_linier_y_start_data_OR_START_RADIUS(0, 0, 0 has zero frequency) ,col 6 note_frequency_linier_y_final_data_OR_FINAL_RADIUS(0, 0, 0 has zero frequency) ,col 7 note_name_FOUND_FROM_START_SIDES_FREQUENCY ,col 8 note_start_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE ,col 9 note_final_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE ,col 10 note_duration_IN_MIDITICKS_CALCULATED_FROM_THE_DEGREES_AND_TOTAL_DURATIONS_MICROSECONDS ,col 10 + 1 note_velocity_TRICKY_CALCULATION_OR_FROM_LAYERS ,col 10 + 2 grabbed_lyrics_text_FROM_LAYERS_NAMES_DATA ,col 10 + 3 grabbed_lyrics_Absolute_times_IN_LAYERS_DATA_FOR_TRACK_ZERO_WITH_MIDITICKS ,col 10 + 3 + 1 OPTIONAL_MILLISECONDS_DATA_FOR_START ,col 10 + 3 + 2 OPTIONAL_MILLISECONDS_DATA_FOR_FINAL ,col 10 + 3 + 3 OPTIONAL_MILLISECONDS_DATA_FOR_DURATIONS(normally 100 to 4300 to 30000 etc per notes) ,col 10 + 3 + 3 + 1 OPTIONAL_NOTE_OR_OTHER_CONTROLLER_LIKE_PITCH_BEND(DECIDER_TO_PROCESS) ,col 10 + 3 + 3 + 2 OPTIONAL_THE_RAW_MIDI_EVENT_COUNTER_PRESERVED_FOR_SORTING_WHILE_EXPORTING ,col 10 + 3 + 3 + 3 OPTIONAL_SIN_THETA_ADJUSTED_SLOPE_FOR_VELOCITY_CONTROLLER ,col 10 + 3 + 3 + 3 + 1 DEGREE_DIFF_TO_TRACK_BLANK_REGIONS ,col 21 DEGREE_START ,col 22 DEGREE_FINAL
////// );
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
System.Windows.Forms.MessageBox.Show(___initialsmessages_for_22_cols___SAANOWNCSVLINIERSCALEDDXFFORMIDI);
}//if(this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper()=="CHECKED")
if (STRING_CURRENT_REPEAT_CYCLES_COUNT.Length == 0)
{
this.textBox___FOR_COMPOSERS_REPEAT_CYCLES_COUNT.Text = "300";
STRING_CURRENT_REPEAT_CYCLES_COUNT = this.textBox___FOR_COMPOSERS_REPEAT_CYCLES_COUNT.Text.ToString().TrimEnd().TrimStart().Trim();
}//if(STRING_CURRENT_REPEAT_CYCLES_COUNT.Length==0)
int INT_CURRENT_REPEAT_CYCLES_COUNT = 1;
INT_CURRENT_REPEAT_CYCLES_COUNT = Convert.ToInt16(STRING_CURRENT_REPEAT_CYCLES_COUNT);
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Maximum = INT_CURRENT_REPEAT_CYCLES_COUNT;
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Value = 0;
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Invalidate();
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Update();//added newlys
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Refresh();
this.button___PLAY_MIDI_STREAMS.Enabled = false;
double THE_DOUBLE_POPULATOR_NOTES_COUNTER_FOR_EVERY_INDIVIDUAL_NOTES = 0;
double THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS = 0;
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
// TO LOAD THE DATA GRIDS FOR DIVISORS NON DIVISORS ALSO
this.pictureBox_FOR_GT_DISPLAYS.Invalidate();
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
///yes it looks real time updation of graphics when the cell content is changed and the focus is shifted from the current cell of datagridsview object
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
RECALCULATE_THE_MIDI_DATA_MICROSECONDS_NOTES_ETC();
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///
string ___dummyfilesnamesformids =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ (("PLAY_MIDI_STREAMS_" + INT_CURRENT_REPEAT_CYCLES_COUNT.ToString().TrimEnd().TrimStart().Trim() + "_loops_").TrimEnd().TrimStart().Trim() + System.DateTime.Now.ToString("ddmmyyyyhhmmss")).TrimEnd().TrimStart().Trim() + ".mid";
if (this.___selected_filesnames_for_inputdataGridView___COMPOSER_files.TrimEnd().TrimStart().Trim().Length>0)
{
___dummyfilesnamesformids
=
___dummyfilesnamesformids.Replace("PLAY_MIDI_STREAMS_",System.IO.Path.GetFileNameWithoutExtension(this.___selected_filesnames_for_inputdataGridView___COMPOSER_files));
System.Windows.Forms.MessageBox.Show("CAUTION ___dummyfilesnamesformids = " + ___dummyfilesnamesformids);
}//if(this.___selected_filesnames_for_inputdataGridView___COMPOSER_files.TrimEnd().TrimStart().Trim().Length>0)
int MidiFileType = 1;// 0;//////saan changes this to 1
int BeatsPerMinute =
(int)this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE;
//60;
int TicksPerQuarterNote =
(int)this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480;
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
System.Windows.Forms.MessageBox.Show("TPQN_MDTKSPERBTS= " + this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480);
}//if(this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper()=="CHECKED")
//120;////// too important /// multiple of 480
double ___temp_note_freq_found = 0;
int TrackNumber = 0;
int ChannelNumber = 1;
//////public PatchParser()
int Patch_number = 26;
long abstimesinmillis = 0;
long absoluteTime___start___midstksunits = 0;
long absoluteTime___final___midstksunits = 0;
//////long absoluteTime___start___millis_units = 0;
//////long absoluteTime___final___millis_units = 0;
///
double absoluteTime___start___millis_units = 0;
double absoluteTime___final___millis_units = 0;
int ___necessary_pitch_bend_to_put_at_start_side_of_note = 0;
double DOUBLE_FREQUENCY_FOUND = 0;
string STRING_NOTE_NAME_FOUND = "";
// var collection
SAANAUDS.Midi.MidiEventCollection SAANSMIDSEVENTScollection
= new
SAANAUDS.Midi.MidiEventCollection
(MidiFileType, TicksPerQuarterNote);
/////////////////////////////////////////////////////////////////////////////////////////
/////we will do this notewise
int pitchBendRange = 12;// 1;// 3;// 12; // semitone range: -6 to +6 = total 12
//WE WILL DO THESE CAlculations
//////SAANSMIDSEVENTScollection
////// .AddEvent
////// (
////// new SAANAUDS.Midi.TextEvent
////// (
////// "Note Stream LYRICS",
////// SAANAUDS.Midi.MetaEventType.TextEvent
////// ,
////// // absoluteTime
////// (long)((absoluteTime___start___midstksunits + absoluteTime___final___midstksunits) / 6)
////// ),
////// //TrackNumber
////// TrackNumber
////// );
/////////////////////////////// interesting styles ////////////////////
///
SAANSMIDSEVENTScollection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
"SanjoyNathGeometrifyingTrigonometry(C)"
,
SAANAUDS.Midi.MetaEventType.Copyright
,
// absoluteTime
(long)(absoluteTime___start___midstksunits)
),
//TrackNumber
// 0
TrackNumber
);
THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
////////////////////////////////////////////////////////////////////////////////
////// will do after some times
// ++absoluteTime;
SAANSMIDSEVENTScollection.AddEvent
(
new SAANAUDS.Midi.TempoEvent
(
Local_CalculateMicrosecondsPerQuaterNote
(
BeatsPerMinute
),
/// absoluteTime
absoluteTime___start___midstksunits
),
// TrackNumber
TrackNumber
);
THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
//////reads the data from the GTDXFMIDI TABS FIRST RECALCULATES THINGS FIRST
//////reads the data from the GTDXFMIDI TABS FIRST RECALCULATES THINGS FIRST
//////reads the data from the GTDXFMIDI TABS FIRST RECALCULATES THINGS FIRST
//i dont think it heres RECALCULATE_THE_MIDI_DATA_MICROSECONDS_NOTES_ETC();
//////reads the data from the GTDXFMIDI TABS FIRST RECALCULATES THINGS FIRST
//////reads the data from the GTDXFMIDI TABS FIRST RECALCULATES THINGS FIRST
//////reads the data from the GTDXFMIDI TABS FIRST RECALCULATES THINGS FIRST
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
///////////////////////////////// TOOOOO IMPORTANT CALL FOR MIDI SYSTEMS /////////////////
////// SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
//////.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
//////.PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
//////.Clear();
/////instead we need the proper constructions of the lists and the clearing the data
// this prepares the list clears the data structures first before loading the selected notes data everytime before prelistening
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.public_static_void_prepare_notes_sequences_for_prelistening_populate_to_rows();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
string string_to_check_the_data_loading = "";
/// now we ill load the data for the selected rows to the notes
///
// Iterate through selected rows and add their data to the list
int ___temp_note_counter = 0;
long ___current_start_ticks_to_assign_for_current_note = 0;
double ___TEMP___DOUBLE_TOTAL_MILLISECONDS_FOR_SINGLE_PRELISTENS_CYCLES = 0;
______temp______________PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS = 0;
try
{
if (this.dataGridView___COMPOSER.SelectedRows.Count == 0)
{
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
System.Windows.Forms.MessageBox.Show("Fill the note numbers and other data and select the rows first");
}//if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
}//if(this.dataGridView___COMPOSER.SelectedRows.Count==0)
foreach (DataGridViewRow row in this.dataGridView___COMPOSER.SelectedRows)
{
//////if (row.Cells["Id"].Value != null && row.Cells["Name"].Value != null && row.Cells["Genre"].Value != null)
//////{
////// selectedRowsData.Add(new ComposerData
////// {
////// Id = Convert.ToInt32(row.Cells["Id"].Value),
////// Name = row.Cells["Name"].Value.ToString(),
////// Genre = row.Cells["Genre"].Value.ToString()
////// });
//////}// if (row.Cells["Id"].Value != null && row.Cells["Name"].Value != null && row.Cells["Genre"].Value != null)
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
//////.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
//////.PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
/// this.dataGridViewFOR_GT_PRESETS_DATA.Rows[6].Cells[1].Value.ToString()
//////if (row.Cells["Id"].Value != null && row.Cells["Name"].Value != null && row.Cells["Genre"].Value != null)
//////{
//////}
///
////// if (row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value != null &&
//////row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null &&
//////row.Cells["Column_NOTES_VELOCITY"].Value != null &&
//////row.Cells["Column_CURRENT_NOTES_PATCH"].Value != null &&
//////row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value != null &&
//////row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value != null)
if (row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value != null)
{
___temp_note_counter++;
if (SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.Count > 0
)
{
___current_start_ticks_to_assign_for_current_note
=
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.Last()
.LONG_START_ABSOLUTE_TIME_FOR_CURRENT_NOTE
+
(long)
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.Last()
.LONG_TICKS_DURATIONS_FOR_CURRENT_NOTE;
}
//////if (SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
////// .PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .Count > 0
////// )
////// SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
//////.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
//////.PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
___temp_new_note_to_populate
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
();
string_to_check_the_data_loading = string_to_check_the_data_loading + "\r\n";
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString();
/////////////////////////////////////////////////////////////////////////////////
___temp_new_note_to_populate
.INT_SERIAL_NUMBER_OF_NOTE = ___temp_note_counter;
___temp_new_note_to_populate
.
INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
= ___temp_note_counter;
/////////////////////////////////////////////////////////////////////////////////
try
{
___temp_new_note_to_populate.PUBLIC_STRING_THE_LYR_FOUND = "";
/////////////////////////////////////////////////////////////////////////////////////////////////////////
if(row.Cells["Column_LYRIK_SYLLABLES"].Value!=null)
{
if (row.Cells["Column_LYRIK_SYLLABLES"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
{
___temp_new_note_to_populate.PUBLIC_STRING_THE_LYR_FOUND
=
row.Cells["Column_LYRIK_SYLLABLES"].Value.ToString()
;
}//if (row.Cells["Column_LYRIK_SYLLABLES"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
else
{
___temp_new_note_to_populate.PUBLIC_STRING_THE_LYR_FOUND = "";
}//end of else of if (row.Cells["Column_LYRIK_SYLLABLES"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
}//if(row.Cells["Column_LYRIK_SYLLABLES"].Value!=null)
else
{
___temp_new_note_to_populate.PUBLIC_STRING_THE_LYR_FOUND = "";
}//end of else of if(row.Cells["Column_LYRIK_SYLLABLES"].Value!=null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_new_note_to_populate.PUBLIC_STRING_THE_INDINOTE_FOUND = "";
/////////////////////////////////////////////////////////////////////////////////////////////////////////
if (row.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value != null)
{
if (row.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0)
{
___temp_new_note_to_populate.PUBLIC_STRING_THE_INDINOTE_FOUND
=
row.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString()
;
}//if (row.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
else
{
___temp_new_note_to_populate.PUBLIC_STRING_THE_INDINOTE_FOUND = "";
}//end of else of if (row.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
}//if(row.Cells[""].Value!=null)
else
{
___temp_new_note_to_populate.PUBLIC_STRING_THE_INDINOTE_FOUND = "";
}//end of else of if(row.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value!=null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_new_note_to_populate
.INT_NOTE_NUMBER_TO_PLAY_0_TO_127
= Convert.ToInt16(row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim());
row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Style.BackColor = Color.White;
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[1].Value = "76";//////"TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH";
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.BackColor = Color.LightGray;
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.ForeColor = Color.Black;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception _____excptoconvert)
{
___temp_new_note_to_populate
.INT_NOTE_NUMBER_TO_PLAY_0_TO_127
= 61;
row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value = 61;
row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Style.BackColor = Color.PaleVioletRed;
___temp_new_note_to_populate
.INT_NOTE_NUMBER_TO_PLAY_0_TO_127
= Convert.ToInt16(row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim());
}//catch(Exception _____excptoconvert)
//////////////////////////////////////////////////////////////////////////////
if (
___temp_new_note_to_populate
.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 < 0
||
___temp_new_note_to_populate
.INT_NOTE_NUMBER_TO_PLAY_0_TO_127
> 127
)
{
row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Style.BackColor = Color.PaleVioletRed;
___temp_new_note_to_populate
.INT_NOTE_NUMBER_TO_PLAY_0_TO_127
= 61;
}
//////if (
////// ___temp_new_note_to_populate
////// .INT_NOTE_NUMBER_TO_PLAY_0_TO_127 < 0
////// ||
//////___temp_new_note_to_populate
////// .INT_NOTE_NUMBER_TO_PLAY_0_TO_127
////// > 127
////// )
///else
///
{
//proper note numbers are filled
row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Style.BackColor = Color.White;
}//end of else cases
DOUBLE_FREQUENCY_FOUND = 0;
STRING_NOTE_NAME_FOUND = "";
// INT_NOTE_NUMBER_TO_PLAY_0_TO_127
STRING_NOTE_NAME_FOUND
=
//////SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
//////.public_static_string_get_note_name_from_frequency_Hertz
//////(DOUBLE_FREQUENCY_FOUND);
///
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING___RETURN_NOTE_NAME_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
(___temp_new_note_to_populate.INT_NOTE_NUMBER_TO_PLAY_0_TO_127);
row.Cells["Column_CONVENTIONAL_NOTES_NUMBERS"].Value = STRING_NOTE_NAME_FOUND;
//////current_note_name_found_from_note_number = "";
//////current_note_name_found_from_note_number
////// =
//////SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
//////.PUBLIC_STATIC_STRING___RETURN_NOTE_NAME_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
//////(note_number_found_from_the_nearest_frequency_Hertz);
// DOUBLE_FREQUENCY_FOUND =
/////////////////////////////////////////////////////////////////////////////////
if (row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null)
{
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString();
}
else
{
row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value = "1000";
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString();
}//end of else of if(row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value!=null)
try
{
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
___temp_new_note_to_populate
.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY
=
Convert.ToDouble(row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim());
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
row.Cells["Column_NOTES_DURATIONS_MILLIS"].Style.BackColor = Color.White;
}
catch (Exception _____excptoconvert)
{
___temp_new_note_to_populate
.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY
= 680;
row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value = 680;
___temp_new_note_to_populate
.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY
= Convert.ToDouble(row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim());
row.Cells["Column_NOTES_DURATIONS_MILLIS"].Style.BackColor = Color.PaleVioletRed;
}//catch(Exception _____excptoconvert)
/////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/////// WE WILL ADD THIS WITH CYCLES COUNTERS
___TEMP___DOUBLE_TOTAL_MILLISECONDS_FOR_SINGLE_PRELISTENS_CYCLES
=
___TEMP___DOUBLE_TOTAL_MILLISECONDS_FOR_SINGLE_PRELISTENS_CYCLES
+
___temp_new_note_to_populate
.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY;
///////////////////////////////////////////////////////////////////////////////////////////
/////////////////// CAUTION CAUTION CAUTION WE DO THE DATA ACCUMULATIONS FIRST AND THEN WE ADD THE CUMULATIONS //////
___temp_new_note_to_populate
.
PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
=
______temp______________PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS;
/////////////////// CAUTION CAUTION CAUTION WE DO THE DATA ACCUMULATIONS FIRST AND THEN WE ADD THE CUMULATIONS //////
/////////////////// CAUTION CAUTION CAUTION WE DO THE DATA ACCUMULATIONS FIRST AND THEN WE ADD THE CUMULATIONS //////
/////////////////// CAUTION CAUTION CAUTION WE DO THE DATA ACCUMULATIONS FIRST AND THEN WE ADD THE CUMULATIONS //////
______temp______________PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
=
______temp______________PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
+
___temp_new_note_to_populate
.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY;
/////////////////// CAUTION CAUTION CAUTION WE DO THE DATA ACCUMULATIONS FIRST AND THEN WE ADD THE CUMULATIONS //////
/////// WE WILL ADD THIS WITH CYCLES COUNTERS
////////////////////////////////////////////////////////////////////////////////
if (row.Cells["Column_NOTES_VELOCITY"].Value != null)
{
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_NOTES_VELOCITY"].Value.ToString();
}
else
{
row.Cells["Column_NOTES_VELOCITY"].Value = "127";
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_NOTES_VELOCITY"].Value.ToString();
}//end of else of if (row.Cells["Column_NOTES_VELOCITY"].Value != null)
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
try
{
___temp_new_note_to_populate
.INT_CURRENT_NOTES_VELOCITY_0_TO_127
=
Convert.ToInt16(row.Cells["Column_NOTES_VELOCITY"].Value.ToString().TrimEnd().TrimStart().Trim());
row.Cells["Column_NOTES_VELOCITY"].Style.BackColor = Color.White;
}
catch (Exception _____excptoconvert)
{
___temp_new_note_to_populate
.INT_CURRENT_NOTES_VELOCITY_0_TO_127
= 127;
row.Cells["Column_NOTES_VELOCITY"].Value = 127;
row.Cells["Column_NOTES_VELOCITY"].Style.BackColor = Color.PaleVioletRed;
___temp_new_note_to_populate
.INT_CURRENT_NOTES_VELOCITY_0_TO_127
= Convert.ToInt16(row.Cells["Column_NOTES_VELOCITY"].Value.ToString().TrimEnd().TrimStart().Trim());
}//catch(Exception _____excptoconvert)
/////////////////////////////////////////////////////////////////////////////////
if (
___temp_new_note_to_populate
.INT_CURRENT_NOTES_VELOCITY_0_TO_127 < 0
||
___temp_new_note_to_populate
.INT_CURRENT_NOTES_VELOCITY_0_TO_127
> 127
)
{
//proper note numbers are filled
row.Cells["Column_NOTES_VELOCITY"].Style.BackColor = Color.PaleVioletRed;
___temp_new_note_to_populate
.INT_CURRENT_NOTES_VELOCITY_0_TO_127
= 127;
}
//////if (
////// ___temp_new_note_to_populate
////// .INT_CURRENT_NOTES_VELOCITY_0_TO_127 < 0
////// ||
//////___temp_new_note_to_populate
////// .INT_CURRENT_NOTES_VELOCITY_0_TO_127
////// > 127
////// )
else
{
row.Cells["Column_NOTES_VELOCITY"].Style.BackColor = Color.White;
}
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
if (row.Cells["Column_CURRENT_NOTES_PATCH"].Value != null)
{
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString();
}
else
{
row.Cells["Column_CURRENT_NOTES_PATCH"].Value = "127";
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString();
}//end of else of if (row.Cells["Column_CURRENT_NOTES_PATCH"].Value != null)
try
{
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
___temp_new_note_to_populate
.INT_CURRENT_NOTES_PATCH_0_TO_127
=
Convert.ToInt16(row.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim());
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
}
catch (Exception _____excptoconvert)
{
___temp_new_note_to_populate
.INT_CURRENT_NOTES_PATCH_0_TO_127
= 73;
row.Cells["Column_CURRENT_NOTES_PATCH"].Value = 73;
row.Cells["Column_CURRENT_NOTES_PATCH"].Style.BackColor = Color.PaleVioletRed;
___temp_new_note_to_populate
.INT_CURRENT_NOTES_PATCH_0_TO_127
= Convert.ToInt16(row.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim());
}//catch(Exception _____excptoconvert)
/////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
if (
___temp_new_note_to_populate
.INT_CURRENT_NOTES_PATCH_0_TO_127 < 0
||
___temp_new_note_to_populate
.INT_CURRENT_NOTES_PATCH_0_TO_127
> 127
)
{
row.Cells["Column_CURRENT_NOTES_PATCH"].Style.BackColor = Color.PaleVioletRed;
___temp_new_note_to_populate
.INT_CURRENT_NOTES_PATCH_0_TO_127
= 73;
}
//////if (
////// ___temp_new_note_to_populate
////// .INT_CURRENT_NOTES_PATCH_0_TO_127 < 0
////// ||
//////___temp_new_note_to_populate
////// .INT_CURRENT_NOTES_PATCH_0_TO_127
////// > 127
////// )
///else
///
{
//proper note numbers are filled
row.Cells["Column_CURRENT_NOTES_PATCH"].Style.BackColor = Color.White;
}//end of else cases
if (row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value != null)
{
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value.ToString();
___temp_new_note_to_populate
.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS
= row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim();
}
else
{
row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value = "0,100";
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value.ToString();
___temp_new_note_to_populate
.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS
= row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim();
}//end of else of if (row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value != null)
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
if (row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value != null)
{
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value.ToString();
___temp_new_note_to_populate
.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES
= row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value.ToString().TrimEnd().TrimStart().Trim();
}
else
{
row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value = "8192,8192";
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value.ToString();
___temp_new_note_to_populate
.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES
= row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value.ToString().TrimEnd().TrimStart().Trim();
}//end of else of if (row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value != null)
////////////////////////////////////////////////////////////////////////////////////////////////
// we have to do a lot of calculations for this
////////////////////////////////////////////////////////////////////////////////////////////////
if (row.Cells["Column_FOR_CHANNEL"].Value != null)
{
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_FOR_CHANNEL"].Value.ToString();
}
else
{
row.Cells["Column_FOR_CHANNEL"].Value = "3";
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_FOR_CHANNEL"].Value.ToString();
}//end of else of if (row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value != null)
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
try
{
___temp_new_note_to_populate
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
= Convert.ToInt16(row.Cells["Column_FOR_CHANNEL"].Value.ToString().TrimEnd().TrimStart().Trim());
row.Cells["Column_FOR_CHANNEL"].Style.BackColor = Color.White;
}
catch (Exception _____excptoconvert)
{
___temp_new_note_to_populate
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
= 3;
row.Cells["Column_FOR_CHANNEL"].Value = 3;
row.Cells["Column_FOR_CHANNEL"].Style.BackColor = Color.PaleVioletRed;
___temp_new_note_to_populate
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
= Convert.ToInt16(row.Cells["Column_FOR_CHANNEL"].Value.ToString().TrimEnd().TrimStart().Trim());
}//catch(Exception _____excptoconvert)
//////////////////////////////////////////////////////////////////////////////
if (
___temp_new_note_to_populate
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 < 0
||
___temp_new_note_to_populate
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
> 15
)
{
row.Cells["Column_FOR_CHANNEL"].Style.BackColor = Color.PaleVioletRed;
___temp_new_note_to_populate
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
= 3;
}
//////if (
////// ___temp_new_note_to_populate
////// .PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 < 0
////// ||
//////___temp_new_note_to_populate
////// .PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
////// > 127
////// )
///else
///
{
//proper CHANNEL are filled
row.Cells["Column_FOR_CHANNEL"].Style.BackColor = Color.White;
}//end of else cases
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
if (row.Cells["Column_FOR_TRACK"].Value != null)
{
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_FOR_TRACK"].Value.ToString();
}
else
{
row.Cells["Column_FOR_TRACK"].Value = "3";
string_to_check_the_data_loading = string_to_check_the_data_loading + " " + row.Cells["Column_FOR_TRACK"].Value.ToString();
}//end of else of if (row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value != null)
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
try
{
___temp_new_note_to_populate
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= Convert.ToInt16(row.Cells["Column_FOR_TRACK"].Value.ToString().TrimEnd().TrimStart().Trim());
row.Cells["Column_FOR_TRACK"].Style.BackColor = Color.White;
}
catch (Exception _____excptoconvert)
{
___temp_new_note_to_populate
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= 3;
row.Cells["Column_FOR_TRACK"].Value = 3;
row.Cells["Column_FOR_TRACK"].Style.BackColor = Color.PaleVioletRed;
___temp_new_note_to_populate
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= Convert.ToInt16(row.Cells["Column_FOR_TRACK"].Value.ToString().TrimEnd().TrimStart().Trim());
}//catch(Exception _____excptoconvert)
//Column_PITCHBEND_JERKS_MILLIS_GAP
___temp_new_note_to_populate
.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 0;//default zero
//if this is zero then the jerks are not there as per the updater codes
//saan has designed the systems of updaters in that styles
if (row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value != null)
{
try
{
___temp_new_note_to_populate
.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP
=
Convert.ToInt16
(row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _excptoconver)
{
row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value = "0";
___temp_new_note_to_populate
.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP
= 0;//easily recogs
}//catch(Exception _excptoconver)
}//if (selected_row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value != null)
else
{
row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value = 30;//on the blank data it puts this data as non zero
//if the user need the non jerky things then the user has to put the zero data there
___temp_new_note_to_populate
.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 30; //saan decides that user need to fill 0 deliberately for these data
// saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
}//end of else of if (selected_row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value != null)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_new_note_to_populate
.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 0;
if (row.Cells["Column_JUERK_UP_PITCHBEND"].Value != null)
{
try
{
___temp_new_note_to_populate
.PUBLIC_INT___Column_JUERK_UP_PITCHBEND
=
Convert.ToInt16
(row.Cells["Column_JUERK_UP_PITCHBEND"].Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _excptoconver)
{
row.Cells["Column_JUERK_UP_PITCHBEND"].Value = "0";
___temp_new_note_to_populate
.PUBLIC_INT___Column_JUERK_UP_PITCHBEND
= 0;//easily recogs
}//catch(Exception _excptoconver)
}//if (selected_row.Cells["Column_JUERK_UP_PITCHBEND"].Value != null)
else
{
row.Cells["Column_JUERK_UP_PITCHBEND"].Value = 60;
___temp_new_note_to_populate
.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 60; //saan decides that user need to fill 0 deliberately for these data
// saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
}//end of else of if (selected_row.Cells["Column_JUERK_UP_PITCHBEND"].Value != null)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_new_note_to_populate
.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 0;
if (row.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value != null)
{
try
{
___temp_new_note_to_populate
.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND
=
Convert.ToInt16
(row.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _excptoconver)
{
row.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value = "0";
___temp_new_note_to_populate
.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND
= 0;//easily recogs // saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
}//catch(Exception _excptoconver)
}//if (selected_row.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value != null)
else
{
//important populator
row.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value
= 60;// saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
// saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
___temp_new_note_to_populate
.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 60;//saan decides that user need to enforce 0 for non disturbances with jerks
//saan decides that user need to fill 0 deliberately for these data
}//end of else of if (selected_row.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value != null)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//CAUTION WE DONT GATHER DATA FROM THE CELLS FOR THESE
//CAUTION WE DONT GATHER DATA FROM THE CELLS FOR THESE
//CAUTION WE DONT GATHER DATA FROM THE CELLS FOR THESE
///CAUTION STRICT NOTE THAT WE CANNOT DECORATE THE PURE MELODY NOTES
///CAUTION STRICT NOTE THAT WE CANNOT DECORATE THE PURE MELODY NOTES
///CAUTION STRICT NOTE THAT WE CANNOT DECORATE THE PURE MELODY NOTES
row.Cells["Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES"].Value = "0";
___temp_new_note_to_populate
.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES
=
___temp_new_note_to_populate
.
PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
;
row.Cells["Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES"].Value
=
___temp_new_note_to_populate
.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES
;
///CAUTION STRICT NOTE THAT WE CANNOT DECORATE THE PURE MELODY NOTES
///CAUTION STRICT NOTE THAT WE CANNOT DECORATE THE PURE MELODY NOTES
///CAUTION STRICT NOTE THAT WE CANNOT DECORATE THE PURE MELODY NOTES
///
//to do to do to do
___temp_new_note_to_populate
.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES
=
___temp_new_note_to_populate
.
PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
;
/////////////////////////////////////////////////////////////////////////////////////////
///
//WE WILL CUMULATE THE MELODY NOTES AND WE WILL PUT THE OFFSETTED DATA FOR THESE DECORATIVE NOTES
___temp_new_note_to_populate
.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES
= 0;
if (
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == "@"
||
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == "|"
||
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == "\\"
||
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == "/"
||
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == "~"
||
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == "^"
||
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == "("
||
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == ")"
||
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == "{"
||
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == "}"
||
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == "["
||
___temp_new_note_to_populate
.PUBLIC_STRING_THE_INDINOTE_FOUND == "]"
)
{
___temp_new_note_to_populate
.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES
=
___temp_new_note_to_populate
.
PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
;
}
//////if (
////// ___temp_new_note_to_populate
////// .PUBLIC_STRING_THE_INDINOTE_FOUND == "@"
////// ||
////// ___temp_new_note_to_populate
////// .PUBLIC_STRING_THE_INDINOTE_FOUND == "|"
////// ||
////// ___temp_new_note_to_populate
////// .PUBLIC_STRING_THE_INDINOTE_FOUND == "^"
////// ||
////// ___temp_new_note_to_populate
////// .PUBLIC_STRING_THE_INDINOTE_FOUND == "("
////// ||
////// ___temp_new_note_to_populate
////// .PUBLIC_STRING_THE_INDINOTE_FOUND == ")"
////// ||
////// ___temp_new_note_to_populate
////// .PUBLIC_STRING_THE_INDINOTE_FOUND == "{"
////// ||
////// ___temp_new_note_to_populate
////// .PUBLIC_STRING_THE_INDINOTE_FOUND == "}"
////// ||
////// ___temp_new_note_to_populate
////// .PUBLIC_STRING_THE_INDINOTE_FOUND == "["
////// ||
////// ___temp_new_note_to_populate
////// .PUBLIC_STRING_THE_INDINOTE_FOUND == "]"
////// )
//to check soundfont https://drive.google.com/file/d/1ZFGlutBEJA6ezBAv2-z56k06LUa7sb1M/view
//FOR THE PERCUSSIONS CASES OR FOR THE DECORATIONS CASES WE GRAB THE DATA FROM THE CELLS
///WE DONT ALLOW THE DATA GRABBING FOR THE MELODY NOTES
if (row.Cells["Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES"].Value != null)
{
try
{
//FOR THE PERCUSSIONS CASES OR FOR THE DECORATIONS CASES WE GRAB THE DATA FROM THE CELLS
///WE DONT ALLOW THE DATA GRABBING FOR THE MELODY NOTES
___temp_new_note_to_populate
.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES
=
Convert.ToInt16
(row.Cells["Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _excptoconver)
{
row.Cells["Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES"].Value
= "0";
___temp_new_note_to_populate
.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES
=
___temp_new_note_to_populate
.
PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
;
;//easily recogs // saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
}//catch(Exception _excptoconver)
}//if (selected_row.Cells["Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES"].Value != null)
else
{
//FOR THE PERCUSSIONS CASES OR FOR THE DECORATIONS CASES WE GRAB THE DATA FROM THE CELLS
///WE DONT ALLOW THE DATA GRABBING FOR THE MELODY NOTES
////////////////////////// WE GATHER THESE DATA FIRST EVERYTIMES/////////////////////////
//WE TAKE THE DATA FIRST FROM HERE FOR PERCUSSIONS CASES //////////////////////////
//important populator
row.Cells["Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES"].Value
=
___temp_new_note_to_populate
.
PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS;
;// saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
// saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
//FOR THE PERCUSSIONS CASES OR FOR THE DECORATIONS CASES WE GRAB THE DATA FROM THE CELLS
///WE DONT ALLOW THE DATA GRABBING FOR THE MELODY NOTES
___temp_new_note_to_populate
.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES
=
___temp_new_note_to_populate
.
PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS;
row.Cells["Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES"].Value
=
___temp_new_note_to_populate
.
PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
;
;//saan decides that user need to enforce 0 for non disturbances with jerks
//saan decides that user need to fill 0 deliberately for these data
}//end of else of if (selected_row.Cells["Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES"].Value != null)
___temp_new_note_to_populate
.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20
= 6;
if (row.Cells["Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20"].Value != null)
{
try
{
___temp_new_note_to_populate
.
PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20
=
Convert.ToInt16
(row.Cells["Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20"]
.Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _excptoconver)
{
row.Cells["Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20"].Value
= "6";
___temp_new_note_to_populate
.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20
= 6;//easily recogs // saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
}//catch(Exception _excptoconver)
}//if (selected_row.Cells["Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20"].Value != null)
else
{
//if null
//important populator
row.Cells["Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20"].Value
= 6;// saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
// saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
___temp_new_note_to_populate
.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20
= 6;//saan decides that user need to enforce 0 for non disturbances with jerks
//saan decides that user need to fill 0 deliberately for these data
}//end of else of if (selected_row.Cells["Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20"].Value != null)
pitchBendRange
=
___temp_new_note_to_populate
.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20;
//////////////////////MIDI CC
//////////////////////10 Pan Controls the left and right balance, generally for mono patches.
//////////////////////0 = hard left, 64 = center, 127 = hard right 0 - 127
___temp_new_note_to_populate
.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
= 64;// (int)(127/2);
if (row.Cells["Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT"].Value != null)
{
try
{
___temp_new_note_to_populate
.
PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
=
Convert.ToInt16
(row.Cells["Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT"]
.Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _excptoconver)
{
row.Cells["Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT"].Value = "64";
___temp_new_note_to_populate
.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
= 64;//easily recogs // saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
}//catch(Exception _excptoconver)
}//if (selected_row.Cells["Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT"].Value != null)
else
{
//if null
//important populator
row.Cells["Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT"].Value
= 64;// saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
// saan has checked that tehse are important since 1 cent is 16384/400 = 40.96 pitchbend per cent
___temp_new_note_to_populate
.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
= 64;//saan decides that user need to enforce 0 for non disturbances with jerks
//saan decides that user need to fill 0 deliberately for these data
}//end of else of if (selected_row.Cells["Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT"].Value != null)
///////////////////////////////////////////
/////////////////////////////////////////////////////////// after crossing the checking and the validations //////
////////////////////////////////////////////////// populate the list //////////////////////////
////////////////////////// TO POPULATE THE LISTS OF THE DATA FOR THE PITCH BENDS DATA CONDITIONS ////////////////////
////////////////////////// TO POPULATE THE LISTS OF THE DATA FOR THE PITCH BENDS DATA CONDITIONS ////////////////////
////////////////////////// TO POPULATE THE LISTS OF THE DATA FOR THE PITCH BENDS DATA CONDITIONS ////////////////////
//////___temp_new_note_to_populate
////// .PUBLIC_NONSTATIC_VOID_UPDATE_CURRENT_NOTE_TO_UPDATE_PITCHBENDS_AND_OTHER_EFFECTS_FOR_CURRENT_NOTES_WITH_CURRENT_STARTING_ABSOLUTE_TIME_LONG
////// (
////// //DONT DO IT HERE SINCE THE DATA POPULATIONS ARE REVERSE HERE
////// );
////////////////////////// TO POPULATE THE LISTS OF THE DATA FOR THE PITCH BENDS DATA CONDITIONS ////////////////////
////////////////////////// TO POPULATE THE LISTS OF THE DATA FOR THE PITCH BENDS DATA CONDITIONS ////////////////////
////////////////////////// TO POPULATE THE LISTS OF THE DATA FOR THE PITCH BENDS DATA CONDITIONS ////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.Add
(
___temp_new_note_to_populate
);
////////////////////////////////////////////////// populate the list //////////////////////////
}//if (row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value != null)
}//foreach (DataGridViewRow row in this.dataGridView___COMPOSER.SelectedRows)
}
catch (Exception _excptoloaddata)
{
System.Windows.Forms.MessageBox.Show("_excptoloaddata = " + _excptoloaddata.Message + " " + _excptoloaddata.StackTrace.ToString());
}//catch(Exception _excptoloaddata)
System.Windows.Forms.MessageBox.Show(string_to_check_the_data_loading);
//////private MidiOut SAANS_TEMP_midiOut;
//////private Timer SAANS_TEMP_playTimer;
//////private int SAANS_TEMP_currentNoteIndex = 0;
//////private int[] SAAN_TEMPS_midiNotes = { 60, 62, 64, 65, 68, 69, 71, 72 }; // MIDI notes for C major scale
//////private int SAANS_TEMP_duration = 500; // Duration for each note in milliseconds
///
//load the list of the composer data first
////////private int[] SAAN_TEMPS_midiNotes = { 60, 62, 64, 65, 68, 69, 71, 72 }; // MIDI notes for C major scale // i will populate these from the data grids
////////private double[] SAAN_TEMPS_midiNotes_durations = { 600, 620, 640, 650, 680, 690, 710, 720 };
Array.Clear(SAAN_TEMPS_midiNotes, 0, SAAN_TEMPS_midiNotes.Length);
Array.Clear(SAAN_TEMPS_midiNotes_durations, 0, SAAN_TEMPS_midiNotes_durations.Length);
//i have seen taht the data loading is getting reversed
//so we are trying to get it re ordered again
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.Reverse();
////////////////////////////////////////////////////////////////////////
/////////WE HAVE STRAIGHTENED THE SEQUENCES ARRAY DATA HERE////////////////////////////
/////////WE HAVE STRAIGHTENED THE SEQUENCES ARRAY DATA HERE////////////////////////////
/////////WE HAVE STRAIGHTENED THE SEQUENCES ARRAY DATA HERE////////////////////////////
/////////WE HAVE STRAIGHTENED THE SEQUENCES ARRAY DATA HERE////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS[]
___temp_array_of___PRELISTENERNOTES
=
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.ToArray();
//////////////////////////////////////////////////////////////////
Array.Clear(temp_notesarray, 0, temp_notesarray.Length);
Array.Clear(temp_durationsarray, 0, temp_durationsarray.Length);
Array.Clear(temp_velocity_array, 0, temp_velocity_array.Length);
Array.Clear(temp_patch_array, 0, temp_patch_array.Length);
Array.Clear( ___TEMP___PITCHBEND_PERCENT_DURATIONS_ARRAY_OF_NOTES, 0, ___TEMP___PITCHBEND_PERCENT_DURATIONS_ARRAY_OF_NOTES.Length);
Array.Clear(___TEMP___PITCHBEND_DATAVALUES_8192_TO_16383_ARRAY_OF_NOTES, 0, ___TEMP___PITCHBEND_DATAVALUES_8192_TO_16383_ARRAY_OF_NOTES.Length);
temp_notesarray = new int[___temp_array_of___PRELISTENERNOTES.Length];
temp_durationsarray = new double[___temp_array_of___PRELISTENERNOTES.Length];
temp_velocity_array = new int[___temp_array_of___PRELISTENERNOTES.Length];
temp_patch_array = new int[___temp_array_of___PRELISTENERNOTES.Length];
temp_channelsarray = new int[___temp_array_of___PRELISTENERNOTES.Length];
___TEMP___PITCHBEND_PERCENT_DURATIONS_ARRAY_OF_NOTES = new string[___temp_array_of___PRELISTENERNOTES.Length];
___TEMP___PITCHBEND_DATAVALUES_8192_TO_16383_ARRAY_OF_NOTES = new string[___temp_array_of___PRELISTENERNOTES.Length];
string ___string_to_check_array_is_loaded_properly = "";
for (int i = 0; i < ___temp_array_of___PRELISTENERNOTES.Length; i++)
{
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
notes_element
=
___temp_array_of___PRELISTENERNOTES[i];
////////////////////////////////////////////////////////////////////////////////////////////////////////////
temp_notesarray[i] = notes_element.INT_NOTE_NUMBER_TO_PLAY_0_TO_127;
temp_durationsarray[i] = notes_element.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY;
temp_velocity_array[i] = notes_element.INT_CURRENT_NOTES_VELOCITY_0_TO_127;
temp_patch_array[i] = notes_element.INT_CURRENT_NOTES_PATCH_0_TO_127;
temp_channelsarray[i] = notes_element.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15;
___TEMP___PITCHBEND_PERCENT_DURATIONS_ARRAY_OF_NOTES[i] = notes_element.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS;
___TEMP___PITCHBEND_DATAVALUES_8192_TO_16383_ARRAY_OF_NOTES[i] = notes_element.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES;
___string_to_check_array_is_loaded_properly = ___string_to_check_array_is_loaded_properly + "\r\n";
___string_to_check_array_is_loaded_properly = ___string_to_check_array_is_loaded_properly + i + " " + temp_notesarray[i] + " ";
___string_to_check_array_is_loaded_properly = ___string_to_check_array_is_loaded_properly + temp_durationsarray[i] + " ";
___string_to_check_array_is_loaded_properly = ___string_to_check_array_is_loaded_properly + temp_velocity_array[i] + " ";
___string_to_check_array_is_loaded_properly = ___string_to_check_array_is_loaded_properly + temp_patch_array[i];
////////////////////////////////// trying to check ////////
//saan adds this line while the conditions of the prelisten to stop
___temp_array_of___PRELISTENERNOTES[i]
.PUBLIC_NONSTATIC_VOID_UPDATE_CURRENT_NOTE_TO_UPDATE_PITCHBENDS_AND_OTHER_EFFECTS_FOR_CURRENT_NOTES_WITH_CURRENT_STARTING_ABSOLUTE_TIME_LONG
(
0
,
1
//////,
//////30
//////,
//////60
//////,
//////30
);
////////////////////////////////// trying to check ////////
}// for(int i=0; i< ___temp_array_of___PRELISTENERNOTES.Length; i++)
SAAN_TEMPS_midiNotes = temp_notesarray;
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
System.Windows.Forms.MessageBox.Show("___string_to_check_array_is_loaded_properly\r\n" + ___string_to_check_array_is_loaded_properly);
}// if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
////////////////////////////////////////////////////////////////////////////////////////////////
//SAANSAUDSAPI_Midi_MidiOut
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS = "";
/////////////////////////////////////////////////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS = " SAANS_TEMP_SAANAUDS_Midi_MidiOut = new SAANAUDS.Midi.MidiOut(0); ";
if (SAANS_TEMP_SAANAUDS_Midi_MidiOut != null)
{
}//if(SAANS_TEMP_SAANAUDS_Midi_MidiOut!=null)
else
{
// the start of else of if(SAANS_TEMP_SAANAUDS_Midi_MidiOut!=null)
}//end of else of if(SAANS_TEMP_SAANAUDS_Midi_MidiOut!=null)
if (this.checkBox___TO_PRELISTEN_OR_NOT_WHILE_SAVING_MIDS.CheckState.ToString().ToUpper().TrimEnd().TrimStart().Trim() == "CHECKED")
{
SAANS_TEMP_SAANAUDS_Midi_MidiOut = new SAANAUDS.Midi.MidiOut(0); // Initialize MIDI output on the first available device
// SAANS_TEMP_SAANAUDS_Midi_MidiOut = new MidiOut(0); // Initialize MIDI output on the first available device
for (int i = 0; i < temp_notesarray.Length; i++)
{
try
{
//CAUTION DONT CONFUSE THIS IS THE SINGLE SEQUENCE PLAY NOT FOR MIDI FILES SAVING PART
//CAUTION DONT CONFUSE THIS IS THE SINGLE SEQUENCE PLAY NOT FOR MIDI FILES SAVING PART
//CAUTION DONT CONFUSE THIS IS THE SINGLE SEQUENCE PLAY NOT FOR MIDI FILES SAVING PART
//////SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.ChangePatch(temp_patch_array[i], 1).RawData);
//////// Play the current note
//////SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StartNote(temp_notesarray[i], temp_velocity_array[i], 1).RawData);
//////// Wait for the duration of the note
//////await Task.Delay((int)temp_durationsarray[i]);
//////// Stop the current note
//////SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StopNote(temp_notesarray[i], temp_velocity_array[i], 1).RawData);
//NOW SAAN IS AVOIDING OTHER ARRAYS
//AND DIRECTLY USING THE OBJECTS OF NOTES ARRAYS TAKEN FROM THE SEQUENCES
//TO FILL THE MIDSNOTES
/// single sequence single note rendering prelistens
SAANS_TEMP_SAANAUDS_Midi_MidiOut
.Send
(SAANAUDS.Midi.MidiMessage
.ChangePatch
(
// temp_patch_array[i]
___temp_array_of___PRELISTENERNOTES[i].INT_CURRENT_NOTES_PATCH_0_TO_127
,
___temp_array_of___PRELISTENERNOTES[i].PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
).RawData);
////////////////////////////////////////////////////////////////
// Play the current note
SAANS_TEMP_SAANAUDS_Midi_MidiOut
.Send
(SAANAUDS.Midi.MidiMessage
.StartNote
(
// temp_notesarray[i]
___temp_array_of___PRELISTENERNOTES[i].INT_NOTE_NUMBER_TO_PLAY_0_TO_127
,
// temp_velocity_array[i]
___temp_array_of___PRELISTENERNOTES[i].INT_CURRENT_NOTES_VELOCITY_0_TO_127
,
// 1
___temp_array_of___PRELISTENERNOTES[i].PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
).RawData);
//since we are doing the single note to notes renditions here so we are not cumulating the milliseconds heres
//////for references double START_ABSOLUTE_START_TIME_MILISECONDS
//////for references ,double MILLISECONDS_TO_MIDITIKS_MULTIPLIER
//////for references ,int CURRENT_NOTE_NUMBER
//////for references ,int INT_MILLISECOND_TOLERANCE_FOR_RIPPLES_PITCHBENDS
//////for references ,int INT_UPSIDE_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES
//////for references ,int INT_DOWNSIES_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES
///
///YESSS WORKS OK AFTER NOTE THAT THE TRIKS WORKED FOR THE PITCH BENDS WITHIN NOTE ADDITIONAL PERCENTAGE OF DURATIONS POPULATED CALIBRATEDLY INSIDE PPLES POPULATOR
///YESSS WORKS OK AFTER NOTE THAT THE TRIKS WORKED FOR THE PITCH BENDS WITHIN NOTE ADDITIONAL PERCENTAGE OF DURATIONS POPULATED CALIBRATEDLY INSIDE PPLES POPULATOR
///YESSS WORKS OK AFTER NOTE THAT THE TRIKS WORKED FOR THE PITCH BENDS WITHIN NOTE ADDITIONAL PERCENTAGE OF DURATIONS POPULATED CALIBRATEDLY INSIDE PPLES POPULATOR
///
___temp_array_of___PRELISTENERNOTES[i]
.PUBLIC_NONSTATIC_VOID_UPDATE_CURRENT_NOTE_TO_UPDATE_PITCHBENDS_AND_OTHER_EFFECTS_FOR_CURRENT_NOTES_WITH_CURRENT_STARTING_ABSOLUTE_TIME_LONG
(
0
,
1
//////,
//////30
//////,
//////60
//////,
//////30
);
///PPLES ARE ADDED NOW
//////i = 0 ___ptch_bnd_millis = 2340 delayint = 2340 ___ptch_bnd_millis = 2340 _ptchbndsvals = 420
//////i = 0 ___ptch_bnd_millis = 2370 delayint = 2370 ___ptch_bnd_millis = 2370 _ptchbndsvals = 320
//////i = 0 ___ptch_bnd_millis = 2400 delayint = 2400 ___ptch_bnd_millis = 2400 _ptchbndsvals = 460
//////i = 0 ___ptch_bnd_millis = 2430 delayint = 2430 ___ptch_bnd_millis = 2430 _ptchbndsvals = 360
//////i = 0 ___ptch_bnd_millis = 2460 delayint = 2460 ___ptch_bnd_millis = 2460 _ptchbndsvals = 500
//////i = 0 ___ptch_bnd_millis = 2490 delayint = 2490 ___ptch_bnd_millis = 2490 _ptchbndsvals = 400
//////i = 0 ___ptch_bnd_millis = 2520 delayint = 2520 ___ptch_bnd_millis = 2520 _ptchbndsvals = 540
//////i = 0 ___ptch_bnd_millis = 2550 delayint = 2550 ___ptch_bnd_millis = 2550 _ptchbndsvals = 440
//////i = 0 ___ptch_bnd_millis = 2580 delayint = 2580 ___ptch_bnd_millis = 2580 _ptchbndsvals = 580
//////i = 0 ___ptch_bnd_millis = 2610 delayint = 2610 ___ptch_bnd_millis = 2610 _ptchbndsvals = 480
this.label___CURRENTLY_PLAYING_STATUS_OF_NOTES.Text
=
(
i
+ " " +
///CAUTION DONT USE TO UPPER
___temp_array_of___PRELISTENERNOTES[i].PUBLIC_STRING_THE_INDINOTE_FOUND
+" "+
___temp_array_of___PRELISTENERNOTES[i].INT_NOTE_NUMBER_TO_PLAY_0_TO_127
+ " " +
___temp_array_of___PRELISTENERNOTES[i].INT_CURRENT_NOTES_VELOCITY_0_TO_127
).ToString();
this.label___CURRENTLY_PLAYING_STATUS_OF_NOTES.Invalidate();
this.label___CURRENTLY_PLAYING_STATUS_OF_NOTES.Refresh();
for (int ptchbnditer=0
;
ptchbnditer
<
___temp_array_of___PRELISTENERNOTES[i]
.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.Count
;
ptchbnditer++
)
{
try
{
int ___ptch_bnd_millis = 0;
___ptch_bnd_millis
=
(int)
___temp_array_of___PRELISTENERNOTES[i]
//.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.ElementAt<double>(ptchbnditer);
int _ptchbndsvals
=
___temp_array_of___PRELISTENERNOTES[i]
.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
.ElementAt<int>(ptchbnditer);
// Wait for the duration of the note
// await Task.Delay((int)temp_durationsarray[i]);
///await Task.Delay((int)___ptch_bnd_millis);
///
/////////////////////////// yessssssssssssssss it works in the pre listens also
///////// </summary>
///////// <param name="patch to pitch wheel saan tries">The pitch wheels number</param>
///////// <param name="channel">The MIDI channel number (1-16)</param>
///////// <returns>A new MidiMessageObject</returns>
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS //////public static MidiMessage ChangePitchWheelSAANTriesCopyingPatchChangeStyles___FOR_PRELISTENS_SEPERATE_DELAYS(int pitchwheelsvalues, int channel)
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS //////{
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS ////// int pitchBendValue = Math.Max(0, Math.Min(16383, pitchwheelsvalues));
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS ////// // int pitchwheelvalsadjusted = pitchwheelsvalues;
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS ////// return new MidiMessage((int)MidiCommandCode.PitchWheelChange + channel - 1, pitchBendValue, 0);
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS //////}//public static MidiMessage ChangePitchWheelSAANTriesCopyingPatchChangeStyles___FOR_PRELISTENS_SEPERATE_DELAYS(int pitchwheelsvalues, int channel)
/////////////////////////////// yesssssssss the effect looks like working
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send
(
SAANAUDS.Midi.MidiMessage
.ChangePitchWheelSAANTriesCopyingPatchChangeStyles___FOR_PRELISTENS_SEPERATE_DELAYS
(
// ___temp_current_pitchbends_data
_ptchbndsvals
,
// ___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
___temp_array_of___PRELISTENERNOTES[i].PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
).RawData
);
//RawData
// i have seen that for the pre listens cases these are not the tiks so we need to take the delta millis only
int delayint = 0;// (int)(___ptch_bnd_millis);// (int)(___tempdurationsarray[i] - ___tempdurationsarray[i-1] );
delayint= (int)(___ptch_bnd_millis);
// for the systems here it worrks like the above part
//when i used the below part that did not work and no sound was there
////// if(ptchbnditer>1)
////// {
//TRICKY PERCENTAGES DURATIONS ARE ALSO ADDED IN THE PPLES COUNTER POPULATED THEN IT WORKS
//TRICKY PERCENTAGES DURATIONS ARE ALSO ADDED IN THE PPLES COUNTER POPULATED THEN IT WORKS
//TRICKY PERCENTAGES DURATIONS ARE ALSO ADDED IN THE PPLES COUNTER POPULATED THEN IT WORKS
////LOOKS OK AFTER PPLES ARE ADDED
////LOOKS OK AFTER PPLES ARE ADDED
////// ////LOOKS OK AFTER PPLES ARE ADDED
//AFTER PPLES ARE ADDED I THINK IT IS NECESSARY
//AFTER PPLES ARE ADDED I THINK IT IS NECESSARY
//AFTER PPLES ARE ADDED I THINK IT IS NECESSARY
////// //int delayint = (int)(___tempdurationsarray[i] - ___tempdurationsarray[i-1] );
////// //readjusted
///
if (___temp_array_of___PRELISTENERNOTES[i]
//.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.Count
>2 )
{
___ptch_bnd_millis
=
(int)
(
___temp_array_of___PRELISTENERNOTES[i]
//.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.ElementAt<double>(ptchbnditer)
-
(int)
___temp_array_of___PRELISTENERNOTES[i]
//.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.ElementAt<double>(ptchbnditer - 1)
)
;
delayint = ___ptch_bnd_millis; ;
delayint = Math.Max(3, delayint);
}
else
{
delayint = (int)___temp_array_of___PRELISTENERNOTES[i].DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY; // (int)___tempdurationsarray[i];
delayint = Math.Max(3, delayint);
}
////////end of else of
//////if (___temp_array_of___PRELISTENERNOTES[i]
////////.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
//////.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
//////.Count
//////> 2)
///}// if(ptchbnditer>1)
delayint = Math.Max(3, delayint);
// await Task.Delay((int)___tempdurationsarray[i]);
await Task.Delay((int)(delayint));
Console.WriteLine(" i = " + i + " ___ptch_bnd_millis = " + ___ptch_bnd_millis + " delayint = " + delayint + " ___ptch_bnd_millis = " + ___ptch_bnd_millis + " _ptchbndsvals = " + _ptchbndsvals);
}
catch (Exception ___excp_to_awaits_forsequencesnotesplays)
{
Console.WriteLine("sequence plays cases ___excp_to_awaits_forsequencesnotesplays = " + ___excp_to_awaits_forsequencesnotesplays.Message + " " + ___excp_to_awaits_forsequencesnotesplays.StackTrace.ToString());
}//catch(Exception ___excp_to_awaits)
}
//////for (int ptchbnditer = 0
////// ;
////// ptchbnditer
////// <
////// ___temp_array_of___PRELISTENERNOTES[i]
////// .PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
////// .Count
////// ;
////// ptchbnditer++
////// )
// Stop the current note
SAANS_TEMP_SAANAUDS_Midi_MidiOut
.Send
(SAANAUDS.Midi.MidiMessage
.StopNote
(
// temp_notesarray[i]
___temp_array_of___PRELISTENERNOTES[i].INT_NOTE_NUMBER_TO_PLAY_0_TO_127
,
// temp_velocity_array[i]
___temp_array_of___PRELISTENERNOTES[i].INT_CURRENT_NOTES_VELOCITY_0_TO_127
//for the on flow rendering of one notes at a time we dont put zero velocity here
//since we are not saving the mids files heres
,
//1
___temp_array_of___PRELISTENERNOTES[i].PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
).RawData);
//CAUTION DONT CONFUSE THIS IS THE SINGLE SEQUENCE PLAY NOT FOR MIDI FILES SAVING PART
//CAUTION DONT CONFUSE THIS IS THE SINGLE SEQUENCE PLAY NOT FOR MIDI FILES SAVING PART
//CAUTION DONT CONFUSE THIS IS THE SINGLE SEQUENCE PLAY NOT FOR MIDI FILES SAVING PART
}
catch (Exception excptoPlayNote)
{
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
MessageBox.Show("excptoPlayNote = " + excptoPlayNote.Message + " " + excptoPlayNote.StackTrace.ToString() + " Note Index = " + i + " temp_notesarray length = " + temp_notesarray.Length + " temp_velocity_array length = " + temp_velocity_array.Length);
}// if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
Console.WriteLine("excptoPlayNote = " + excptoPlayNote.Message + " " + excptoPlayNote.StackTrace.ToString() + " Note Index = " + i + " temp_notesarray length = " + temp_notesarray.Length + " temp_velocity_array length = " + temp_velocity_array.Length);
break;
}
}// for (int i = 0; i < temp_notesarray.Length; i++)
// Clean up resources
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Dispose();
}// if(this.checkBox___TO_PRELISTEN_OR_NOT_WHILE_SAVING_MIDS.CheckState.ToString().ToUpper().TrimEnd().TrimStart().Trim()=="CHECKED")
long abstimeslongstart = 0;
/// long absoluteTime___start___midstksunits = 0;
///
int patchNumber = 22;
int notenumberfromthearray = 6;
int NoteVelocity = 122;
int durationtoassigns = 300;//
//////////////////////////////////////////////////////////////////////////////////////////////////////
///
double ticksPerQuarterNote =this.public_double___value_from_the___textBox_TS_MIDI_TICKS_PER_BEAT_OR_TPQN_NUMBER_MULTIPLE_OF_480;
double millisecondsPerTick = ( ( (double)60000.0 / ((double)ticksPerQuarterNote)) * this.PUBLIC_DOUBLE_BPM_VALUE_FROM___textBoxFOR_BEATS_PER_MINUTE);
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
System.Windows.Forms.MessageBox.Show("Confirming this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS = " + this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS);
}// if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
long LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS = 0;
double DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS = 0;
//THIS IS ALREADY DEFINED ___temp_array_of___PRELISTENERNOTES
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS[]
new_array_of___only_notes___of___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
___temp_array_of___PRELISTENERNOTES;
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS = null;
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Maximum = INT_CURRENT_REPEAT_CYCLES_COUNT;
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Value = 0;
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Invalidate();
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Refresh();
if (checkBox___TO_AUTOMATICALLY_SAVE_MIDI_FILES.CheckState.ToString().ToUpper() == "CHECKED")
{
///////////////////////////// HERE WE START THE MIDI FILES SAVING AND THE LOOPCYCLESACCUMULATORS ON SEQUENCES OF NOTES //////////
///////////////////////////// HERE WE START THE MIDI FILES SAVING AND THE LOOPCYCLESACCUMULATORS ON SEQUENCES OF NOTES //////////
///////////////////////////// HERE WE START THE MIDI FILES SAVING AND THE LOOPCYCLESACCUMULATORS ON SEQUENCES OF NOTES //////////
///////////////////////////// HERE WE START THE MIDI FILES SAVING AND THE LOOPCYCLESACCUMULATORS ON SEQUENCES OF NOTES //////////
///////////////////////////// HERE WE START THE MIDI FILES SAVING AND THE LOOPCYCLESACCUMULATORS ON SEQUENCES OF NOTES //////////
///////////////////////////// HERE WE START THE MIDI FILES SAVING AND THE LOOPCYCLESACCUMULATORS ON SEQUENCES OF NOTES //////////
///
double ___temp_double_overall_notes_count = 0;
for (int loopcyclescounter = 0; loopcyclescounter < INT_CURRENT_REPEAT_CYCLES_COUNT; loopcyclescounter++)
{
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Maximum = INT_CURRENT_REPEAT_CYCLES_COUNT;
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Value = loopcyclescounter;
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Invalidate();
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Refresh();
abstimeslongstart =
(long)(___TEMP___DOUBLE_TOTAL_MILLISECONDS_FOR_SINGLE_PRELISTENS_CYCLES * loopcyclescounter);
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
+=
"\r\nloopcyclescounter = " + loopcyclescounter;
;
for (int r = 0; r < temp_notesarray.Length; r++)
{
//used for bitmaps numbering
___temp_double_overall_notes_count = (double)((loopcyclescounter+1) * (temp_notesarray.Length) + (r+1));
////////////////////////// adding this to handle details for the pitch bends like things also for current ordered note in predefined sequences//////
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new_array_of___only_notes___of___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS[r];
////////////////////////// adding this to handle details for the pitch bends like things also for current ordered note in predefined sequences//////
durationtoassigns = (int)temp_durationsarray[r];
//////LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
////// =
////// LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
////// +
////// (long)
////// (
////// (
////// (long)(temp_durationsarray[r]))
////// * ( (long)(this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS))
////// );
abstimesinmillis
=
abstimesinmillis
+
abstimeslongstart
+
(long)(temp_durationsarray[r]);
/////////////////////////////////////////////////////////////////////////////////
/////saan has logged the data for these calculations and has found that there are issues for the start times calculations so saan has changed the start point calculations
///with the cumulative timers calculations
absoluteTime___start___midstksunits
=
abstimesinmillis
*
(long)this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS;
int prevs_durationtoassigns_inmiditiks = 0;
//saan has found that after the cycles completes there are the gaps in sounds and also the start points durations calculations are not proper
if (r > 0)
{
// this is for the intermediate notes in the cycles
prevs_durationtoassigns_inmiditiks = (int)(temp_durationsarray[r - 1] * this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS);
}
else
{
//this is for the first note in the cycles
// prevs_durationtoassigns_inmiditiks = 0;// (int)(temp_durationsarray[r] * this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS);
prevs_durationtoassigns_inmiditiks = (int)(temp_durationsarray[temp_durationsarray.Length - 1] * this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS);
}//end of else of if (r > 0)
// this is for the current note playing which is ok
int durationtoassigns_inmiditiks = (int)(temp_durationsarray[r] * this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS);
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
=
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+
(long)prevs_durationtoassigns_inmiditiks;
//////THIS IS NECESSARY FOR THE PITCH BENDS POSITIONS CALCULATIONS
DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
=
DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+
temp_durationsarray[r];
//////THIS IS NECESSARY FOR THE PITCH BENDS POSITIONS CALCULATIONS
// (long)durationtoassigns_inmiditiks;
//prevs_durationtoassigns_inmiditiks is necessary
//////(long)
//////(
//////(
//////(long)(temp_durationsarray[r]))
////// * ((long)(this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS))
////// );
// int durationtoassigns_inmiditiks = (int)(temp_durationsarray[r]);// / this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS);
// int durationtoassigns_inmiditiks = (int)(temp_durationsarray[r]);//
//////int durationtoassigns___another = (int)temp_durationsarray[r];
//////abstimesinmillis = abstimeslongstart + (long)(temp_durationsarray[r]);
//////absoluteTime___start___midstksunits = (long)(abstimesinmillis * millisecondsPerTick);
//////int durationtoassigns_inmiditiks___another = (int)(temp_durationsarray[r] * millisecondsPerTick);
patchNumber =
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_CURRENT_NOTES_PATCH_0_TO_127;
//temp_patch_array[r];
notenumberfromthearray =
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_NOTE_NUMBER_TO_PLAY_0_TO_127;
//temp_notesarray[r];
ChannelNumber =
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15;
//Math.Max(1, r % 11);
TrackNumber =
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER;
//ChannelNumber;
NoteVelocity = temp_velocity_array[r];
SAANSMIDSEVENTScollection
.AddEvent(
new
SAANAUDS.Midi.PatchChangeEvent
(
///saan puts this here
// absoluteTime___start___midstksunits
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
,
ChannelNumber
,
patchNumber
)
, TrackNumber
);
///////////////////////////////////////////////////////////////////////////////////////
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
/////////////////////////////////////////////////////////////////////////////////////////
SAANSMIDSEVENTScollection
.AddEvent
(new
ControlChangeEvent
(
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
,
ChannelNumber
,
MidiController
.MidiController_RpnMsb__SAAN___ITS___101___FOR_PITCHBENDS_RANGE_CHANGES
, 0
)
, 0
); // 101 → MSB
SAANSMIDSEVENTScollection
.AddEvent
(new
ControlChangeEvent
(
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
,
ChannelNumber
,
MidiController
.MidiController_RpnLsb__SAAN___ITS___100___FOR_PITCHBENDS_RANGE_CHANGES
, 0
)
,
0
); // 100 → LSB
/////////////////////////////////////////////////////////////////////////////////////////
SAANSMIDSEVENTScollection
.AddEvent
(new
ControlChangeEvent
(
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
,
ChannelNumber
,
MidiController
.MidiController_RpnMsb__SAAN___ITS___101___FOR_PITCHBENDS_RANGE_CHANGES
,
0
)
,
TrackNumber
); // 101 → MSB
//////SAANSMIDSEVENTScollection
////// .
////// AddEvent
////// (
////// new
////// ControlChangeEvent
////// (
////// LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
////// ,
////// ChannelNumber
////// ,
////// MidiController
////// .
////// MidiController_RpnLsb__SAAN___FOR_PITCHBENDS_RANGE_CHANGES
////// ,
////// 0
////// )
////// ,
////// 0
////// ); // 100 → LSB
////// ////////////////////////////////////////////////////////////////
SAANSMIDSEVENTScollection
.
AddEvent
(new
ControlChangeEvent
(
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
,
ChannelNumber
,
MidiController
.MainVolume
,
//the volumes value to put
// 127
// Math.Max(60, ((int)(THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 127))
127- ((int)(THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 20)
)
,
TrackNumber
); // 6 to change
//////if (ch % 2 == 0)
//////{
////// midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_NOT_DEFAULT_pitchbend_sensitivity_6_semitones___DataEntryMsb__SAAN___FOR_PITCHBENDS_RANGE_CHANGES, pitchBendRange), 0); // 6 to change
////////////SAANSMIDSEVENTScollection
////////////.
////////////AddEvent
////////////(
////////////new
////////////ControlChangeEvent
////////////(
////////////LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
////////////,
////////////ChannelNumber
////////////,
////////////MidiController
////////////.
////////////MidiController_NOT_DEFAULT_pitchbend_sensitivity_6_semitones___DataEntryMsb__SAAN___FOR_PITCHBENDS_RANGE_CHANGES
////////////,
////////////// saan is trying to put everything with 6 semitones ranges for ragas
//////////////pitchBendRange = 6
////////////pitchBendRange
////////////)
////////////,
////////////TrackNumber); // 6 to change when it is the non default 6 semitones
pitchBendRange
=
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20;
SAANSMIDSEVENTScollection
.
AddEvent
(
new
ControlChangeEvent
(
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
,
ChannelNumber
,
//THE CONTROLLER VALUE TO CHANGE THE pitchBendRange IS 6 THAT IS DONE MidiController_DataEntryMsb___is___6___HAHAHA
MidiController
.
MidiController_DataEntryMsb___is___6___HAHAHA
,
// saan is trying to put everything with 6 semitones ranges for ragas
//pitchBendRange = 6
pitchBendRange
)
,
TrackNumber); // 6 to change when it is the non default 6 semitones
//FOR REFERENCES midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_DataEntryMsb___is___6___HAHAHA, pitchBendRange), 0); // 6 to change
SAANSMIDSEVENTScollection
.
AddEvent
(new
ControlChangeEvent
(LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
,
ChannelNumber
,
MidiController
.
MidiController_DataEntryLsb__SAAN___FOR_PITCHBENDS_RANGE____ITS__38___CHANGES
,
0
)
,
TrackNumber);
// 38
___temp_note_freq_found = 0;
___temp_note_freq_found
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
// PUBLIC_STATIC_STRING___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
PUBLIC_STATIC_DOUBLE___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
(notenumberfromthearray)
;
///////////////////////////////////////////// SPECIAL LOGGER SAANOWNCSVLINIERSCALEDDXFFORMIDI ///
LOCAL_STRINGBUILDER_FOR___22_COLS___SAANOWNCSVLINIERSCALEDDXFFORMIDI
.AppendLine
(
// col 0 track(number categorizing like dxf layers)
// ,col 1 channel(9 for percussions only 0 to 15 only)
// ,col 2 patch_number(0 to 127)
//,col 3 patch_name
//,col 3 + pitch_bend_number(0 to 8190 to 16368 original note has no change frequency at 8190)
//,col 3++ note_frequency_linier_y_start_data_OR_START_RADIUS(0, 0, 0 has zero frequency)
//,col 6 note_frequency_linier_y_final_data_OR_FINAL_RADIUS(0, 0, 0 has zero frequency)
//,col 7 note_name_FOUND_FROM_START_SIDES_FREQUENCY
//,col 8 note_start_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE
//,col 9 note_final_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE
//,col 10 note_duration_IN_MIDITICKS_CALCULATED_FROM_THE_DEGREES_AND_TOTAL_DURATIONS_MICROSECONDS
//,col 10 + 1 note_velocity_TRICKY_CALCULATION_OR_FROM_LAYERS
//,col 10 + 2 grabbed_lyrics_text_FROM_LAYERS_NAMES_DATA
//,col 10 + 3 grabbed_lyrics_Absolute_times_IN_LAYERS_DATA_FOR_TRACK_ZERO_WITH_MIDITICKS
//,col 10 + 3 + 1 OPTIONAL_MILLISECONDS_DATA_FOR_START
//,col 10 + 3 + 2 OPTIONAL_MILLISECONDS_DATA_FOR_FINAL
//,col 10 + 3 + 3 OPTIONAL_MILLISECONDS_DATA_FOR_DURATIONS(normally 100 to 4300 to 30000 etc per notes)
//,col 10 + 3 + 3 + 1 OPTIONAL_NOTE_OR_OTHER_CONTROLLER_LIKE_PITCH_BEND(DECIDER_TO_PROCESS)
//,col 10 + 3 + 3 + 2 OPTIONAL_THE_RAW_MIDI_EVENT_COUNTER_PRESERVED_FOR_SORTING_WHILE_EXPORTING
//,col 10 + 3 + 3 + 3 OPTIONAL_SIN_THETA_ADJUSTED_SLOPE_FOR_VELOCITY_CONTROLLER
//,col 10 + 3 + 3 + 3 + 1 DEGREE_DIFF_TO_TRACK_BLANK_REGIONS
//,col 21 DEGREE_START
//,col 22 DEGREE_FINAL
TrackNumber
+ "," + ChannelNumber
+ "," + patchNumber
+ "," + "patchname"
+ "," + "8192"
+ "," + ___temp_note_freq_found
+ "," + ___temp_note_freq_found
+ "," + "notenames"
+ "," + LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "," + LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS + 0
+ "," + 0
+ "," + 127
+ "," + "lyr"
//SINCE ALREADY CUMULATIONS STARTING DONES BEFORE HERES
+ "," + LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "," + (DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS - temp_durationsarray[r])
+ "," + DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "," + temp_durationsarray[r]
+ "," + "PATCH_CHANGE"
+","+ THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS
+",0.00"
+",0.0"
+",0.0"
+ ",0.0"
);
///////////////////////////////////////////// SPECIAL LOGGER SAANOWNCSVLINIERSCALEDDXFFORMIDI ///
///////////////////////////////////////////////////////////////
THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
SAANSMIDSEVENTScollection.AddEvent
(
new SAANAUDS.Midi.NoteOnEvent
(
////// absoluteTime
// absoluteTime___start___midstksunits
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
,
// ChannelNumber
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
,
// note.MidiValue
notenumberfromthearray
,
// NoteVelocity
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_CURRENT_NOTES_VELOCITY_0_TO_127
,
////// (int)Math.Min(NoteDuration___with__midtks_units, 1)
// (int)Math.Max(NoteDuration___with__midtks_units, 1)
//durationtoassigns
durationtoassigns_inmiditiks
// durationtoassigns_inmiditiks___another
)
,
// TrackNumber
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
THE_DOUBLE_POPULATOR_NOTES_COUNTER_FOR_EVERY_INDIVIDUAL_NOTES++;
//////////////////////////////////////////////////////////////////
//////StringBuilder ___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// = new StringBuilder();
//////___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// .Clear();
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.AppendLine
(
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+"######"+
durationtoassigns_inmiditiks
+"######"+
___temp_note_freq_found
);
//////StringBuilder ___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// = new StringBuilder();
//////___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// .Clear();
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.AppendLine
(
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "######" +
durationtoassigns_inmiditiks
+ "######" +
___temp_note_freq_found
+ "######" +
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_CURRENT_NOTES_VELOCITY_0_TO_127
/
127
);
//////////////////////////////////////////////////////////////////
//////GenerateNoteBitmaps
////// (
////// (long)THE_DOUBLE_POPULATOR_NOTES_COUNTER_FOR_EVERY_INDIVIDUAL_NOTES
////// // LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
////// ,
////// notenumberfromthearray
////// ,
////// ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// );
if (this.checkBox___SAVE_NOTATIONS_BMP.CheckState.ToString().ToUpper().TrimEnd().TrimStart().Trim()=="CHECKED")
{
await Task.Run(() => GenerateNoteBitmaps(
//(long)THE_DOUBLE_POPULATOR_NOTES_COUNTER_FOR_EVERY_INDIVIDUAL_NOTES
// (long)THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS
// (long) ___temp_double_overall_notes_count
//LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
,
notenumberfromthearray
,
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
));
// Console.WriteLine("___temp_double_overall_notes_count= " + ___temp_double_overall_notes_count);
}// if(this.checkBox___SAVE_NOTATIONS_BMP.CheckState.ToString().ToUpper().TrimEnd().TrimStart().Trim()=="CHECKED")
///////////////////////////////////////////////////////////////////////////
SAANSMIDSEVENTScollection
.AddEvent(new ControlChangeEvent
(
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
,
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
,
MidiController.Pan
,
// ((ptchbndsvals) % 122))
(int)((THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 127))
,
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
); //PANNING
///////////////////////////////////////////////////////////////////////////
//WHEN I AM USING THIS EXPRESSIONS THEN THE MIDI FILES ARE NOT PLAYING ANY SOUNDS
//////// Expression (CC 11) - Crescendo and Decrescendo
//////for (int i = 0; i <= 127; i += 8)
//////{
////// collection
////// .AddEvent
////// (new
////// ControlChangeEvent
////// (
////// absoluteTime___start___midstksunits+ i * 2
////// ,
////// ChannelNumber
////// , MidiController.Expression
////// ,
////// i
////// )
////// ,
////// TrackNumber
////// );
//////}//for (int i = 0; i <= 127; i += 8)
//////for (int i = 127; i >= 0; i -= 8)
//////{
////// collection
////// .AddEvent
////// (
////// new
////// ControlChangeEvent
////// (
////// // 256 + (127 - i) * 2
////// absoluteTime___start___midstksunits+ 256 + (127 - i) * 2
////// ,
////// ChannelNumber
////// , MidiController.Expression
////// ,
////// i
////// )
////// ,
////// TrackNumber
////// );
//////}//for (int i = 127; i >= 0; i -= 8)
//it was not playing even i stopped this
// Vibrato (CC 21) - Oscillating values
for (int i = 0; i < 3; i++)
{
SAANSMIDSEVENTScollection.AddEvent
(
new ControlChangeEvent
(
// 600 + i * 120
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS + i * 120
, ChannelNumber
,
// (MidiController)21 // THIS ALSO WORKS
MidiController.SAANS_VIBRATO
//THIS ALSO WORKS MidiController.SAANS_VIBRATO
, 64
)
,
//TrackNumber
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
);
//////////////////
SAANSMIDSEVENTScollection.AddEvent
(new
ControlChangeEvent
(
//660 + i * 120
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS + i * 120
,
//ChannelNumber
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
,
// (MidiController)21 THIS WAS WORKING
MidiController.SAANS_VIBRATO
,
0
)
,
// TrackNumber
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
);
}// for (int i = 0; i < 3; i++)
//it was not playing even i stopped this
// Modulation (CC 1) - Sweep
for (int i = 0; i <= 127; i += 10)
{
SAANSMIDSEVENTScollection
.AddEvent
(new ControlChangeEvent
(
// 1000 + i * 2
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS + i * 2
,
// ChannelNumber
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
,
MidiController.Modulation
,
i
)
,
// TrackNumber
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
);
}//for (int i = 0; i <= 127; i += 10)
THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
/////////////////////////////////////////////////////////////////////////////////////////////////////////
SAANSMIDSEVENTScollection
.AddEvent
(
new SAANAUDS.Midi.TextEvent
(
( Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_LYR_FOUND
+"_"+
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_INDINOTE_FOUND
).Replace(",","_")
,
SAANAUDS.Midi.MetaEventType.TextEvent
,
// absoluteTime
//////(long)((absoluteTime___start___midstksunits + absoluteTime___final___midstksunits) / 6)
////// )
///
LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
)
,
//TrackNumber
0
);
/////////////////////////////// interesting styles ////////////////////
///THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
///////////////////////////////////////////// SPECIAL LOGGER SAANOWNCSVLINIERSCALEDDXFFORMIDI ///
LOCAL_STRINGBUILDER_FOR___22_COLS___SAANOWNCSVLINIERSCALEDDXFFORMIDI
.AppendLine
(
// col 0 track(number categorizing like dxf layers)
// ,col 1 channel(9 for percussions only 0 to 15 only)
// ,col 2 patch_number(0 to 127)
//,col 3 patch_name
//,col 3 + pitch_bend_number(0 to 8190 to 16368 original note has no change frequency at 8190)
//,col 3++ note_frequency_linier_y_start_data_OR_START_RADIUS(0, 0, 0 has zero frequency)
//,col 6 note_frequency_linier_y_final_data_OR_FINAL_RADIUS(0, 0, 0 has zero frequency)
//,col 7 note_name_FOUND_FROM_START_SIDES_FREQUENCY
//,col 8 note_start_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE
//,col 9 note_final_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE
//,col 10 note_duration_IN_MIDITICKS_CALCULATED_FROM_THE_DEGREES_AND_TOTAL_DURATIONS_MICROSECONDS
//,col 10 + 1 note_velocity_TRICKY_CALCULATION_OR_FROM_LAYERS
//,col 10 + 2 grabbed_lyrics_text_FROM_LAYERS_NAMES_DATA
//,col 10 + 3 grabbed_lyrics_Absolute_times_IN_LAYERS_DATA_FOR_TRACK_ZERO_WITH_MIDITICKS
//,col 10 + 3 + 1 OPTIONAL_MILLISECONDS_DATA_FOR_START
//,col 10 + 3 + 2 OPTIONAL_MILLISECONDS_DATA_FOR_FINAL
//,col 10 + 3 + 3 OPTIONAL_MILLISECONDS_DATA_FOR_DURATIONS(normally 100 to 4300 to 30000 etc per notes)
//,col 10 + 3 + 3 + 1 OPTIONAL_NOTE_OR_OTHER_CONTROLLER_LIKE_PITCH_BEND(DECIDER_TO_PROCESS)
//,col 10 + 3 + 3 + 2 OPTIONAL_THE_RAW_MIDI_EVENT_COUNTER_PRESERVED_FOR_SORTING_WHILE_EXPORTING
//,col 10 + 3 + 3 + 3 OPTIONAL_SIN_THETA_ADJUSTED_SLOPE_FOR_VELOCITY_CONTROLLER
//,col 10 + 3 + 3 + 3 + 1 DEGREE_DIFF_TO_TRACK_BLANK_REGIONS
//,col 21 DEGREE_START
//,col 22 DEGREE_FINAL
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
+ "," + ChannelNumber
+ "," + patchNumber
+ "," + "patchname"
+ "," + "8192"
+ "," + ___temp_note_freq_found
+ "," + ___temp_note_freq_found
+ "," + "notenames"
+ "," + (LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS- durationtoassigns_inmiditiks)
+ "," + LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "," + durationtoassigns_inmiditiks
+ "," +
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_CURRENT_NOTES_VELOCITY_0_TO_127
+ "," + "lyr"
//SINCE ALREADY CUMULATIONS STARTING DONES BEFORE HERES
+ "," + LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "," + (DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS - temp_durationsarray[r])
+ "," + DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "," + temp_durationsarray[r]
+ "," + "NOTE_ON"
+ "," + THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS
+ ",0.00"
+ ",0.0"
+ ",0.0"
+ ",0.0"
);
///////////////////////////////////////////// SPECIAL LOGGER SAANOWNCSVLINIERSCALEDDXFFORMIDI ///
////////////////////////// WE WILL ADD THE PROPERLY CALCULATED PITCH BENDS DATA HERE WITH PROPER CALCULATIONS OF THE MIDITIKS //////////
////////////////////////// WE WILL ADD THE PROPERLY CALCULATED PITCH BENDS DATA HERE WITH PROPER CALCULATIONS OF THE MIDITIKS //////////
////////////////////////// WE WILL ADD THE PROPERLY CALCULATED PITCH BENDS DATA HERE WITH PROPER CALCULATIONS OF THE MIDITIKS //////////
//here we calculate the modified data for millisecs for the current notes start time absolute milliseconds
//for the start times for the current start of the notes
//FOR REFERENCES OF THE VARIABLES NAMES //////////////////THIS IS NECESSARY FOR THE PITCH BENDS POSITIONS CALCULATIONS
//FOR REFERENCES OF THE VARIABLES NAMES ////////////DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
//FOR REFERENCES OF THE VARIABLES NAMES //////////// =
//FOR REFERENCES OF THE VARIABLES NAMES //////////// DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
//FOR REFERENCES OF THE VARIABLES NAMES //////////// +
//FOR REFERENCES OF THE VARIABLES NAMES //////////// temp_durationsarray[r];
//FOR REFERENCES OF THE VARIABLES NAMES //////////////////THIS IS NECESSARY FOR THE PITCH BENDS POSITIONS CALCULATIONS
//////for references double START_ABSOLUTE_START_TIME_MILISECONDS
//////for references ,double MILLISECONDS_TO_MIDITIKS_MULTIPLIER
//////for references ,int CURRENT_NOTE_NUMBER
//////for references ,int INT_MILLISECOND_TOLERANCE_FOR_RIPPLES_PITCHBENDS
//////for references ,int INT_UPSIDE_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES
//////for references ,int INT_DOWNSIES_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES
double ___temp_double_millisecond_for_current_notes_start_times
=
DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS;
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_NONSTATIC_VOID_UPDATE_CURRENT_NOTE_TO_UPDATE_PITCHBENDS_AND_OTHER_EFFECTS_FOR_CURRENT_NOTES_WITH_CURRENT_STARTING_ABSOLUTE_TIME_LONG
(
___temp_double_millisecond_for_current_notes_start_times
- temp_durationsarray[r]
//i think i need to call this adjustment for pitch bends
,
this.PUBLIC_DOUBLE___MILLISECOND_TO_MIDITKS_CONVERTER_FOR_THIS_CONTEXT___MIDITKS_PER_MILLISECONDS
//////,
//////30
//////,
//////60
//////,
//////30
);
//BEFORE ENTERING HERE WE HAVE ALREADY PRESET THE DATA WHILE THE NOTE IS ON
//THE RPN DATA IS PRESET
/////////////////////////////////////////////////////////////////////////////////////
pitchBendRange
=
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20;
/////////////////////////////////////////////////////////////////////////////////////
for
(
int ptchbntsitertotakes=0
;
ptchbntsitertotakes
<
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.Count
;
ptchbntsitertotakes++
)
{
//TAKEN HERE FOR REFERENCES OF CALLING STYLES //////////collection.AddEvent
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// (
//TAKEN HERE FOR REFERENCES OF CALLING STYLES////////// new
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// SAANAUDS.Midi.PitchWheelChangeEvent
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// (
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// (long)(absoluteTime___start___midstksunits + ((absoluteTime___final___midstksunits - absoluteTime___start___midstksunits) / ___delta___pitch___slabs_finder) * rrr)
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// ,
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// ChannelNumber
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// ,
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// /// Math.Min(16368, (int)(start_side_of_line_segments_frequency +(delta_pitch * (final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency)) * 8192))
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// // Math.Max(16368, (int)(8190 + (rrr * delta_pitch)))
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// //////this is new variable taken to automatically understand for log2 cases and for linear cases
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// /////this is rising cases
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// pitch_bent_wheels_value_to_assign
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// //rising freq cases
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// )
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// , TrackNumber
//TAKEN HERE FOR REFERENCES OF CALLING STYLES ////////// );
//since we have already offsetted this while filling the list in the function
//we have taken the initial values of milliseconds from the start millisecond of the current actives notes
long ___absolutetimesforpitchbends
= 0;
___absolutetimesforpitchbends
=
(long)
(
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
.ElementAt<long>(ptchbntsitertotakes)
);
int ptchbndsvals = 8192;
ptchbndsvals =
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
.ElementAt<int>(ptchbntsitertotakes);
int tempchannelnos = 0;
tempchannelnos
=
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15;
int trknos = 0;
trknos
=
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER;
///////////////////////////////////////////////////////////////////////////
SAANSMIDSEVENTScollection
.AddEvent(new ControlChangeEvent
(
// LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
___absolutetimesforpitchbends
,
tempchannelnos
,
MidiController.Pan
,
// ((ptchbndsvals) % 122))
// (int)((THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 127))
(int)((THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 127))
,
trknos
); //PANNING
///////////////////////////////////////////////////////////////////////////
SAANSMIDSEVENTScollection.AddEvent
(
new
SAANAUDS.Midi.PitchWheelChangeEvent
(
___absolutetimesforpitchbends
,
// ChannelNumber
trknos
,
/// Math.Min(16368, (int)(start_side_of_line_segments_frequency +(delta_pitch * (final_side_of_line_segments_frequency/ start_side_of_line_segments_frequency)) * 8192))
// Math.Max(16368, (int)(8190 + (rrr * delta_pitch)))
//////this is new variable taken to automatically understand for log2 cases and for linear cases
/////this is rising cases
// pitch_bent_wheels_value_to_assign
ptchbndsvals
//rising freq cases
)
,
//TrackNumber
trknos
);
///
if(this.checkBox___TO_INCLUDE_KEY_AFTERTOUCH_WITH_PITCH_BENDS.CheckState.ToString().ToUpper().TrimEnd().TrimStart().Trim()=="CHECKED")
{
if (
ptchbntsitertotakes
<
( Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.Count -1)
)
{
long current___pitchbendtime = ___absolutetimesforpitchbends;
long next___pitchbendtime
=
//we have taken count -1
(long)
(
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
.ElementAt<long>(ptchbntsitertotakes+1)
);
long ___delay_durations_in_current_pitchbend
=
next___pitchbendtime
-
current___pitchbendtime;
if(___delay_durations_in_current_pitchbend>0)
{
int number_of_keypressuresaftertouch
= (int)
(
___delay_durations_in_current_pitchbend
/
60
);
//////// Assuming you have a MidiEventCollection named 'collection' and a track number 'trackNumber'
//////long absoluteTime = 0; // Set the appropriate absolute time
//////int channel = 0; // MIDI channel (0-15)
//////int note = 60; // MIDI note number (e.g., 60 for Middle C)
//////int pressure = 64; // Pressure value (0-127)
for(int keyaftertouchiters=0; keyaftertouchiters< number_of_keypressuresaftertouch; keyaftertouchiters++)
{
long ___keyaftertouch_absolute_times
=
___absolutetimesforpitchbends
+
keyaftertouchiters * 60;
//////////////////////////////////////////////////
// Create a Key Aftertouch event
NoteEvent keyAfterTouchEvent
=
new NoteEvent
(
// absoluteTime
// ___absolutetimesforpitchbends+3
// ___absolutetimesforpitchbends
___keyaftertouch_absolute_times
,
// channel
// note
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
,
MidiCommandCode.KeyAfterTouch
,
// note
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_NOTE_NUMBER_TO_PLAY_0_TO_127
,
// pressure
(int)( (ptchbndsvals + keyaftertouchiters ) * (1/(16384+ number_of_keypressuresaftertouch)) * 127 )
);
// Add the event to the collection
SAANSMIDSEVENTScollection
.AddEvent
(
keyAfterTouchEvent
,
//trackNumber
trknos
);
//////Explanation of the Code
////// MidiCommandCode.KeyAfterTouch: Specifies that this is a Key Aftertouch event.
////// absoluteTime: The time at which the event occurs, in ticks.
////// channel: The MIDI channel number (0-15).
////// note: The MIDI note number(0-127).
////// pressure: The pressure value applied to the key(0-127).
THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
if (this.checkBox___PAN_AND_THE_BREADTH_CONTROL_WITH_KEYPRESSURES.CheckState.ToString().ToUpper().TrimEnd().TrimStart().Trim() == "CHECKED")
{
///////////////////////////////////////////////////////////////////////////
SAANSMIDSEVENTScollection
.AddEvent(new ControlChangeEvent
(
// LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
// ___absolutetimesforpitchbends
___keyaftertouch_absolute_times
,
tempchannelnos
,
MidiController.Pan
,
// ((ptchbndsvals) % 122))
// (int)((THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 127))
(int)((THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 127))
,
trknos
); //PANNING
///////////////////////////////////////////////////////////////////////////
THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
///////////////////////////////////////////////////////////////////////////
SAANSMIDSEVENTScollection
.AddEvent(new ControlChangeEvent
(
// LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
// ___absolutetimesforpitchbends
___keyaftertouch_absolute_times
,
tempchannelnos
,
MidiController.BreathController
,
// ((ptchbndsvals) % 122))
// (int)((THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 127))
(int)((THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS) % 127))
,
trknos
); //BREADTHCONTROLLS
THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
///////////////////////////////////////////////////////////////////////////
}//if (this.checkBox___PAN_AND_THE_BREADTH_CONTROL_WITH_KEYPRESSURES.CheckState.ToString().ToUpper().TrimEnd().TrimStart().Trim() == "CHECKED")
THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
}//for(int keyaftertouchiters=0; keyaftertouchiters< number_of_keypressuresaftertouch; keyaftertouchiters++)
}//if(___delay_durations_in_current_pitchbend>0)
}
//////if (
//////ptchbntsitertotakes
//////<
//////(Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
//////.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
//////.Count - 1)
//////)
}//if(this.checkBox___TO_INCLUDE_KEY_AFTERTOUCH_WITH_PITCH_BENDS.CheckState.ToString().ToUpper().TrimEnd().TrimStart().Trim()=="CHECKED")
///////////////////////////////////////////// SPECIAL LOGGER SAANOWNCSVLINIERSCALEDDXFFORMIDI ///
LOCAL_STRINGBUILDER_FOR___22_COLS___SAANOWNCSVLINIERSCALEDDXFFORMIDI
.AppendLine
(
// col 0 track(number categorizing like dxf layers)
// ,col 1 channel(9 for percussions only 0 to 15 only)
// ,col 2 patch_number(0 to 127)
//,col 3 patch_name
//,col 3 + pitch_bend_number(0 to 8190 to 16368 original note has no change frequency at 8190)
//,col 3++ note_frequency_linier_y_start_data_OR_START_RADIUS(0, 0, 0 has zero frequency)
//,col 6 note_frequency_linier_y_final_data_OR_FINAL_RADIUS(0, 0, 0 has zero frequency)
//,col 7 note_name_FOUND_FROM_START_SIDES_FREQUENCY
//,col 8 note_start_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE
//,col 9 note_final_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE
//,col 10 note_duration_IN_MIDITICKS_CALCULATED_FROM_THE_DEGREES_AND_TOTAL_DURATIONS_MICROSECONDS
//,col 10 + 1 note_velocity_TRICKY_CALCULATION_OR_FROM_LAYERS
//,col 10 + 2 grabbed_lyrics_text_FROM_LAYERS_NAMES_DATA
//,col 10 + 3 grabbed_lyrics_Absolute_times_IN_LAYERS_DATA_FOR_TRACK_ZERO_WITH_MIDITICKS
//,col 10 + 3 + 1 OPTIONAL_MILLISECONDS_DATA_FOR_START
//,col 10 + 3 + 2 OPTIONAL_MILLISECONDS_DATA_FOR_FINAL
//,col 10 + 3 + 3 OPTIONAL_MILLISECONDS_DATA_FOR_DURATIONS(normally 100 to 4300 to 30000 etc per notes)
//,col 10 + 3 + 3 + 1 OPTIONAL_NOTE_OR_OTHER_CONTROLLER_LIKE_PITCH_BEND(DECIDER_TO_PROCESS)
//,col 10 + 3 + 3 + 2 OPTIONAL_THE_RAW_MIDI_EVENT_COUNTER_PRESERVED_FOR_SORTING_WHILE_EXPORTING
//,col 10 + 3 + 3 + 3 OPTIONAL_SIN_THETA_ADJUSTED_SLOPE_FOR_VELOCITY_CONTROLLER
//,col 10 + 3 + 3 + 3 + 1 DEGREE_DIFF_TO_TRACK_BLANK_REGIONS
//,col 21 DEGREE_START
//,col 22 DEGREE_FINAL
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
+ "," + ChannelNumber
+ "," + patchNumber
+ "," + "patchname"
+ "," + ptchbndsvals
+ "," + ___temp_note_freq_found
+ "," + ___temp_note_freq_found
+ "," + "notenames"
+ "," + ___absolutetimesforpitchbends
+ "," + ___absolutetimesforpitchbends
+ "," + 0
+ "," +
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_CURRENT_NOTES_VELOCITY_0_TO_127
+ "," + "lyr"
//SINCE ALREADY CUMULATIONS STARTING DONES BEFORE HERES
+ "," + LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "," + (DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS - temp_durationsarray[r])
+ "," + DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "," + temp_durationsarray[r]
+ "," + "PITCH_BEND"
+ "," + THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS
+ ",0.00"
+ ",0.0"
+ ",0.0"
+ ",0.0"
);
///////////////////////////////////////////// SPECIAL LOGGER SAANOWNCSVLINIERSCALEDDXFFORMIDI ///
THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
Console.WriteLine("midsfilessavingspitchbends ___absolutetimesforpitchbends = " + ___absolutetimesforpitchbends + " ptchbndsvals = " + ptchbndsvals + " tempchannelnos = " + tempchannelnos + " trknos = " + trknos);
//////////////// Add ripple effects
//////////////int rippleSteps = 5; // Number of ripple steps
//////////////for (int rippleStep = 1; rippleStep <= rippleSteps; rippleStep++)
//////////////{
////////////// long rippleTime = ___absolutetimesforpitchbends + (rippleStep * 10); // Adjust the time for ripple effect
////////////// int rippleValue = ptchbndsvals + (int)(Math.Sin(rippleStep * Math.PI / rippleSteps) * 2048); // Sinusoidal ripple effect
////////////// SAANSMIDSEVENTScollection.AddEvent(
////////////// new SAANAUDS.Midi.PitchWheelChangeEvent(
////////////// rippleTime,
////////////// tempchannelnos,
////////////// rippleValue
////////////// ),
////////////// trknos
////////////// );
////////////// THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
////////////// Console.WriteLine("ripple effect rippleTime = " + rippleTime + " rippleValue = " + rippleValue + " tempchannelnos = " + tempchannelnos + " trknos = " + trknos);
//////////////}//for (int rippleStep = 1; rippleStep <= rippleSteps; rippleStep++)
}
//////for
////// (
////// int ptchbntsitertotakes = 0
////// ;
////// ptchbntsitertotakes
////// <
////// Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
////// .Count
////// ;
////// ptchbntsitertotakes++
////// )
///
/////////////////////////////////// NOTE ON EVENT COMPLETES HERE AND WE WILL PUT THE PITCH BENDS AND OTHER CONTROLLERS HERE //////
/////////////////////////////////// NOTE ON EVENT COMPLETES HERE AND WE WILL PUT THE PITCH BENDS AND OTHER CONTROLLERS HERE //////
/////////////////////////////////// NOTE ON EVENT COMPLETES HERE AND WE WILL PUT THE PITCH BENDS AND OTHER CONTROLLERS HERE //////
/////////////////////////////////// NOTE ON EVENT COMPLETES HERE AND WE WILL PUT THE PITCH BENDS AND OTHER CONTROLLERS HERE //////
/////////////////////////////////// NOTE ON EVENT COMPLETES HERE AND WE WILL PUT THE PITCH BENDS AND OTHER CONTROLLERS HERE //////
/////////////////////////////////// NOTE ON EVENT COMPLETES HERE AND WE WILL PUT THE PITCH BENDS AND OTHER CONTROLLERS HERE //////
////////////////////////////// THE NOTE OFF EVENT IS IMPORTANT FOR THE SAAN AUDS SYSTEMS TO GET THE CONTROLLING OF THE REAL DURATIONS OF THE NOTES
////////////////////////////// THE NOTE OFF EVENT IS IMPORTANT FOR THE SAAN AUDS SYSTEMS TO GET THE CONTROLLING OF THE REAL DURATIONS OF THE NOTES
////////////////////////////// THE NOTE OFF EVENT IS IMPORTANT FOR THE SAAN AUDS SYSTEMS TO GET THE CONTROLLING OF THE REAL DURATIONS OF THE NOTES
////////////////////////////// THE NOTE OFF EVENT IS IMPORTANT FOR THE SAAN AUDS SYSTEMS TO GET THE CONTROLLING OF THE REAL DURATIONS OF THE NOTES
////////////////////////////// THE NOTE OFF EVENT IS IMPORTANT FOR THE SAAN AUDS SYSTEMS TO GET THE CONTROLLING OF THE REAL DURATIONS OF THE NOTES
////////////////////////////// THE NOTE OFF EVENT IS IMPORTANT FOR THE SAAN AUDS SYSTEMS TO GET THE CONTROLLING OF THE REAL DURATIONS OF THE NOTES
/////////////////////////////////////////////////////////////////////////////////////////
// the note on event with the zero velocity is important for saanauds systems
// the note on event with the zero velocity is important for saanauds systems
// the note on event with the zero velocity is important for saanauds systems
SAANSMIDSEVENTScollection.AddEvent
(
new SAANAUDS.Midi.NoteOnEvent
(
////// absoluteTime
// absoluteTime___start___midstksunits
(long)
(
(long)(LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS)
+ ((long)durationtoassigns_inmiditiks)
)
,
ChannelNumber
,
// note.MidiValue
notenumberfromthearray
,
0
//this is to note off events
,
//saan could not find any difference with the sharp stopping times durations and the delayed stopping of the notes
////// (int)Math.Min(NoteDuration___with__midtks_units, 1)
// (int)Math.Max(NoteDuration___with__midtks_units, 1)
//durationtoassigns
//durationtoassigns_inmiditiks
// 0
// to do the experiments
//(int)(durationtoassigns_inmiditiks / 3)
// durationtoassigns_inmiditiks___another
0
)
,
TrackNumber
);
//after note stops
// Optional: Reset RPN (to avoid accidental edits) with cc 38 127
SAANSMIDSEVENTScollection.AddEvent
(new
ControlChangeEvent
(
(long)
(
(long)(LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS)
+ ((long)durationtoassigns_inmiditiks)
)
,
ChannelNumber
,
MidiController
.MidiController_RpnMsb__SAAN___ITS___101___FOR_PITCHBENDS_RANGE_CHANGES
,
127
)
,
TrackNumber
);
//after note stops
// Optional: Reset RPN (to avoid accidental edits) with cc 38 127
SAANSMIDSEVENTScollection
.AddEvent
(new
ControlChangeEvent
(
(long)
(
(long)(LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS)
+ ((long)durationtoassigns_inmiditiks)
)
,
ChannelNumber
,
MidiController
.MidiController_RpnLsb__SAAN___ITS___100___FOR_PITCHBENDS_RANGE_CHANGES
, 127
)
,
TrackNumber
);
///////////////////////////////////////////////////////////////////////////////////////
THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
///////////////////////////////////////////// SPECIAL LOGGER SAANOWNCSVLINIERSCALEDDXFFORMIDI ///
LOCAL_STRINGBUILDER_FOR___22_COLS___SAANOWNCSVLINIERSCALEDDXFFORMIDI
.AppendLine
(
// col 0 track(number categorizing like dxf layers)
// ,col 1 channel(9 for percussions only 0 to 15 only)
// ,col 2 patch_number(0 to 127)
//,col 3 patch_name
//,col 3 + pitch_bend_number(0 to 8190 to 16368 original note has no change frequency at 8190)
//,col 3++ note_frequency_linier_y_start_data_OR_START_RADIUS(0, 0, 0 has zero frequency)
//,col 6 note_frequency_linier_y_final_data_OR_FINAL_RADIUS(0, 0, 0 has zero frequency)
//,col 7 note_name_FOUND_FROM_START_SIDES_FREQUENCY
//,col 8 note_start_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE
//,col 9 note_final_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE
//,col 10 note_duration_IN_MIDITICKS_CALCULATED_FROM_THE_DEGREES_AND_TOTAL_DURATIONS_MICROSECONDS
//,col 10 + 1 note_velocity_TRICKY_CALCULATION_OR_FROM_LAYERS
//,col 10 + 2 grabbed_lyrics_text_FROM_LAYERS_NAMES_DATA
//,col 10 + 3 grabbed_lyrics_Absolute_times_IN_LAYERS_DATA_FOR_TRACK_ZERO_WITH_MIDITICKS
//,col 10 + 3 + 1 OPTIONAL_MILLISECONDS_DATA_FOR_START
//,col 10 + 3 + 2 OPTIONAL_MILLISECONDS_DATA_FOR_FINAL
//,col 10 + 3 + 3 OPTIONAL_MILLISECONDS_DATA_FOR_DURATIONS(normally 100 to 4300 to 30000 etc per notes)
//,col 10 + 3 + 3 + 1 OPTIONAL_NOTE_OR_OTHER_CONTROLLER_LIKE_PITCH_BEND(DECIDER_TO_PROCESS)
//,col 10 + 3 + 3 + 2 OPTIONAL_THE_RAW_MIDI_EVENT_COUNTER_PRESERVED_FOR_SORTING_WHILE_EXPORTING
//,col 10 + 3 + 3 + 3 OPTIONAL_SIN_THETA_ADJUSTED_SLOPE_FOR_VELOCITY_CONTROLLER
//,col 10 + 3 + 3 + 3 + 1 DEGREE_DIFF_TO_TRACK_BLANK_REGIONS
//,col 21 DEGREE_START
//,col 22 DEGREE_FINAL
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
+ "," + ChannelNumber
+ "," + patchNumber
+ "," + "patchname"
+ "," + "8192"
+ "," + ___temp_note_freq_found
+ "," + ___temp_note_freq_found
+ "," + "notenames"
+ "," + (LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS - durationtoassigns_inmiditiks)
+ "," + LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "," + durationtoassigns_inmiditiks
+ "," +
// Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
// .INT_CURRENT_NOTES_VELOCITY_0_TO_127
"0"
+ "," + "lyr"
//SINCE ALREADY CUMULATIONS STARTING DONES BEFORE HERES
+ "," + LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "," + (DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS - temp_durationsarray[r])
+ "," + DOUBLE_OVERALL_CUMULATIVE_MILLISECONDS_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
+ "," + temp_durationsarray[r]
+ "," + "NOTE_OFF"
+ "," + THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS
+ ",0.00"
+ ",0.0"
+ ",0.0"
+ ",0.0"
);
///////////////////////////////////////////// SPECIAL LOGGER SAANOWNCSVLINIERSCALEDDXFFORMIDI ///
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
+=
"\r\ninter cycle Raga notes counter r = " + r + "\r\n";
;
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
+=
"OVERALL NOTES COUNTER THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS = " + THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS + "\r\n";
;
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
+=
" TrackNumber = " + TrackNumber;
;
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
+=
" ChannelNumber = " + ChannelNumber;
;
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
+=
" patchNumber = " + patchNumber;
;
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
+=
" notenumberfromthearray = " + notenumberfromthearray;
;
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
+=
" NoteVelocity = " + NoteVelocity;
;
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
+=
" absoluteTime___start___midstksunits = " + absoluteTime___start___midstksunits;
;
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
+=
" LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS = " + LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS;
;
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
+=
" durationtoassigns_inmiditiks = " + durationtoassigns_inmiditiks;
;
///////////////////////////////////////////////////// TOO IMPORTANT LIST PRESERVINF THE DATA FOR ALL THE NOTES FOR ADDITIONAL HANDLING FOR THE NOTES ////////
//SAAN THINKS WE NEED TO STORE THESE FOR THE PITCH BENDS CHANGES AND ALSO FOR THE CONTROLLER CHANGES CASES ALSO AND FOR THE NOTE OFF NOTE ON CASES ALSO
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_DOUBLE_CURRENT_NOTE_NUMBER = THE_DOUBLE_POPULATOR_NOTES_COUNTER_FOR_EVERY_INDIVIDUAL_NOTES;
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.LONG_START_ABSOLUTE_TIME_FOR_CURRENT_NOTE
= LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS;
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_DOUBLE_CURRENT_EVENT_COUNTER
=
THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_PERMUTABLES_NOTES_DATA_BUT_PREPRESERVED_RAW_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.Add
(
Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
);
THE_DOUBLE_POPULATOR_NOTES_COUNTER_FOR_EVERY_INDIVIDUAL_NOTES++;
///////////////////////////////////////////////////// TOO IMPORTANT LIST PRESERVINF THE DATA FOR ALL THE NOTES FOR ADDITIONAL HANDLING FOR THE NOTES ////////
}//for (int r = 0; r < temp_notesarray.Length; r++)
}//for(int loopcyclescounter=0; loopcyclescounter<INT_CURRENT_REPEAT_CYCLES_COUNT; loopcyclescounter++)
//////////////////////////////////////////////////////////////////////////////////////////////////////
}//if(checkBox___TO_AUTOMATICALLY_SAVE_MIDI_FILES.CheckState.ToString().ToUpper()=="CHECKED")
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Maximum = INT_CURRENT_REPEAT_CYCLES_COUNT;
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Value = INT_CURRENT_REPEAT_CYCLES_COUNT;
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Invalidate();
this.progressBar_FOR_COMPOSER_CYCLES_TRACKING.Refresh();
//////if (temp_durationsarray.Length>0)
//////{
////// SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
////// .PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS +=
////// "\r\nSAANS_TEMP_currentNoteIndex =" + SAANS_TEMP_currentNoteIndex;
////// ////////////////////////////////////////////////////////////////////////////////////////////////////
////// if (temp_durationsarray[SAANS_TEMP_currentNoteIndex] > 0)
////// {
////// SAANS_TEMP_playTimer = new Timer
////// {
////// // Interval = SAANS_TEMP_duration // Set the timer interval to the duration of each note /// I NEED TO collect the durations from the index of the durations array
////// // Interval = Math.Max(SAANS_TEMP_duration,(int)temp_durationsarray[SAANS_TEMP_currentNoteIndex] ) //SAANS_TEMP_duration // Set the timer interval to the duration of each note /// I NEED TO collect the durations from the index of the durations array
////// Interval = (int)temp_durationsarray[SAANS_TEMP_currentNoteIndex]
////// };
////// }
////// else
////// {
////// SAANS_TEMP_playTimer = new Timer
////// {
////// Interval = SAANS_TEMP_duration // Set the timer interval to the duration of each note /// I NEED TO collect the durations from the index of the durations array
////// // Interval = (int)temp_durationsarray[SAANS_TEMP_currentNoteIndex] //SAANS_TEMP_duration // Set the timer interval to the duration of each note /// I NEED TO collect the durations from the index of the durations array
////// };
////// }//end of else of if(temp_durationsarray[SAANS_TEMP_currentNoteIndex]>0)
////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////}
//////else
//////{
////// SAANS_TEMP_playTimer = new Timer
////// {
////// Interval = SAANS_TEMP_duration // Set the timer interval to the duration of each note /// I NEED TO collect the durations from the index of the durations array
////// // Interval = (int)temp_durationsarray[SAANS_TEMP_currentNoteIndex] //SAANS_TEMP_duration // Set the timer interval to the duration of each note /// I NEED TO collect the durations from the index of the durations array
////// };
//////}//end of else of if(temp_durationsarray.Length>0)
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
//////.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
//////.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS +=
//////"\r\nSAANS_TEMP_playTimer.Interval =" + SAANS_TEMP_playTimer.Interval;
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
//////.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
//////.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS +=
//////"\r\nSAANS_TEMP_currentNoteIndex = " + SAANS_TEMP_currentNoteIndex;
// Start playing the MIDI sequence
//dont call this SAANS_TEMP_currentNoteIndex = 0;
//TO DO WITH THIS
// SAANS_TEMP_SAANAUDS_Midi_MidiOut.Volume
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
//////.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
//////.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS +=
//////"\r\nSAANS_TEMP_playTimer.Tick += PlayNextNote; ";
// SAANS_TEMP_playTimer.Start();
// SAANS_TEMP_playTimer.Tick += PlayNextNote;
////// SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
//////.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
//////.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS +=
//////" SAANS_TEMP_playTimer.Start();";
if (SAANS_TEMP_currentNoteIndex >= SAAN_TEMPS_midiNotes.Length)
{
// SAANS_TEMP_midiOut.Send(MidiMessage.StopNote(midiNotes[currentNoteIndex - 1], 127).RawData);
/// SAANS_TEMP_midiOut.Send(SAANAUDS.Midi.MidiMessage.StopNote(SAAN_TEMPS_midiNotes[SAANS_TEMP_currentNoteIndex - 1], 127, 1).RawData);
///
SAANS_TEMP_currentNoteIndex = 0;
// Clean up resources
try
{
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Dispose();
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS +=
" after SAANS_TEMP_SAANAUDS_Midi_MidiOut.Dispose();";
}
catch (Exception ___excp)
{
}//catch(Exception ___excp)
}//if (SAANS_TEMP_currentNoteIndex > 0 && SAANS_TEMP_currentNoteIndex < SAAN_TEMPS_midiNotes.Length)
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
save_current_composer_datagrids_state_to_files("");//default files names at saan folders
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
System.Windows.Forms.MessageBox.Show
(
"playslogs\r\n" +
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
);
}//if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
System.IO.File.WriteAllText
(
___dummyfilesnamesformids + "_flows_logs.txt"
,
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS
);
////////////////////////////////////////////////////////////////////////
////////////StringBuilder ___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
//////////// = new StringBuilder();
////////////___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
//////////// .Clear();
//////___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// .AppendLine
////// (
////// LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
////// + "######" +
////// durationtoassigns_inmiditiks
////// + "######" +
////// ___temp_note_freq_found
////// );
////////////StringBuilder ___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
//////////// = new StringBuilder();
////////////___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
//////////// .Clear();
//////___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// .AppendLine
////// (
////// LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
////// + "######" +
////// durationtoassigns_inmiditiks
////// + "######" +
////// ___temp_note_freq_found
////// + "######" +
////// Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .INT_CURRENT_NOTES_VELOCITY_0_TO_127
////// /
////// 127
////// );
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
this.___selected_filesnames_for_INDINOTATIONS_OR_INDITALAS
+ ".no_velocity_flutes_melody_data"
,
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.ToString()
);
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
this.___selected_filesnames_for_INDINOTATIONS_OR_INDITALAS
+ ".with_velocity_flutes_melody_data"
,
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.ToString()
);
////////////////////////////////////////////////////////////
///
System.Windows.Forms.MessageBox.Show
(
"SPECIAL TWO FILES ARE SAVED\r\n\r\n\r\n"
+ this.___selected_filesnames_for_INDINOTATIONS_OR_INDITALAS
+ ".no_velocity_flutes_melody_data"
+ "\r\n\r\n\r\n" +
"SPECIAL TWO FILES ARE SAVED\r\n\r\n\r\n"
+ this.___selected_filesnames_for_INDINOTATIONS_OR_INDITALAS
+ ".with_velocity_flutes_melody_data"
);
////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
___dummyfilesnamesformids + "_flows_logs.SAANOWNCSVLINIERSCALEDDXFFORMIDI"
,
LOCAL_STRINGBUILDER_FOR___22_COLS___SAANOWNCSVLINIERSCALEDDXFFORMIDI
.ToString()
);
////////////////////////////////////////////////////////////
SAANSMIDSEVENTScollection.PrepareForExport();
SAANAUDS.Midi.MidiFile.Export(___dummyfilesnamesformids, SAANSMIDSEVENTScollection);
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
System.Windows.Forms.MessageBox.Show("midi files saved at " + ___dummyfilesnamesformids);
}//if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
this.button___PLAY_MIDI_STREAMS.Enabled = true;
}//private void button___PLAY_MIDI_STREAMS_Click(object sender, EventArgs e)
//////i read a text file where the notes are there for midi and there are | symbols delimits the measures.I allocate K milliseconds(say 3000 milliseconds total for every measure(| to | are measures) and there are groups of notes withing nested example(...(...)...(...((...))...) dots are notes...the group of notes have group id and the notes with same group id need to get the same millisecond...i need to distribute the total milliseconds of measure to corresponding notes such that total durations is the measures total duration...read this code and write the millisecond distributions program with c sharpthisloadstheragadatawithmeasureswithpipesymbolswithnestedfirstbrackets.txt
public void to___load_INDINOTATIONS_FILES_OR_INDITALAS_FILES(string filesnametoload)
{
//https://www.modularbrains.net/support/SteliosManousakis-Musical_L-systems.pdf
// the bracketed systems L systems the grammars to distribute the energy
//////////////// Suppose an ant is distributing W litres of water to whole forest… First it sees n number of trees so it allocates W / n amount of water to all trees equally irrespective of sizes of the trees.Then enters into a tree t_0 with W/ n litres of water and sees there are n_t0_k0 number of level 0 branches so it allocates(W/ n_t0_ / n_k0) amount of water to each level 0 branch of that tree … then enter next one branch of level0 and until it enters there it cannot understand how many level 1 branches are there for that particular level0 branch of that tree and when it finds for that particular branch there are n_t0_k0_k1 number of level 1 sub branches for that particular branch n_t0_k0 so it distributes(W / n_t0_ / n_t0_k0 / n_t0_k0_k1) amount of water to all the sub branches for that branch … recursively in this way it can count number of subbranches only after entering there inside … it is like recursively file searching inside folders then sub folders … etc… until the crawler enters into a branch it cannot know how many sub entries are present there inside… the counts are not always same at every level so distributions are not same for all same level entries… The forest is written as string input = "| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h"; | delimits the trees and(…) denotes the branches and nested(…) denotes the sub branches… write a c sharp program to allocate water distributions mechanisms recursively for every leafs level(conditionally changes as per the order of(…) present in the string
//suppose i have a string starts with "|" and ends with "| " there are several space separated alphabets (repeats of same alphabets symbol allowed in the space separated string ) if "(" is found then tree branching distribution depth value increases +1 and when corresponding closing ")" found then tree branching distribution depth value decreases -1 (the alphabets symbols present inside these nested (///) pairs are allocated with tree_branch_depth_id but same branching depth can occur several times but even the alphabet symbol branching categories are different because they are not in same branch ID (different groups of alphabets ...inside different pairs of (...) nested pairs will have different tree_branch_depth_id such that we can differentiate these alphabets symbols natures of distributions ...Write a c sharp program to do this branch id allocations
///// .SWARALIPIS_WITH_MILLIS TO GENERATES COMMA SEPERATED \t seperated indinotes with durations
//too important to check
//https://raag-hindustani.com/Scales2.html
//https://www.youtube.com/watch?v=egHJ909h8lc
//tooo important the mantras https://raag-hindustani.com/blog/2024/09/25/vedic-music/
//https://youtu.be/HXdvTlGeAsw on the compositions too important https://youtu.be/oGZLH7JBLVM
//Composition in Raag Kirwani dil ki tapish https://www.youtube.com/watch?v=E-9q-VnnaA8&t=129s
//https://www.youtube.com/watch?v=059QnVHmPxg&t=28s
//https://www.youtube.com/watch?v=GNlB3YQ6mjM&t=42s
//https://www.youtube.com/watch?v=LS9gaHoELSg
this.dataGridView___COMPOSER.RowCount = 6000;// 11000;// Math.Max(___arrays_of_lines_of______total_files_read_data.Length + 3, 30000);// 6000);
//////string ___temp_string_millis_data_assigned_to_current_wholes_measure = "";
//////___temp_string_millis_data_assigned_to_current_wholes_measure
////// =
//////textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS.ToString().TrimEnd().TrimStart().Trim();
//WE CANNOT ASSIGN THESE UNTIL THE FIRST DATA POPULATIONS ARE COMPLETES SINCE AFTER FIRST VALID NOTES DATA POPULATIONS ARE COMPLETES THEN ONLY WE CAN
//USE THE GANTT LIKE GROUPING OF THE TYPES OF NOTES ON WHICH THE START POINTS CALCULATIONS ARE POSSIBLE SINCE THESE ARE NECESSARILY STRATEGY DEPENDENT
// THE NOTES DECORATIONS STRATEGIES ARE WELL CALCULATED AS PER THE PROCESS OF THE SAAN SYSTEMS OF THE OVERALL NOTES PLACEMENTS WITH THE MULTIPLE SEQUENCES PLACED ONE AFTER ANOTHER
// NOT ALWAYS LINEARLY AND THESE ARE CALCULATED AS PER THE NOTES DECORATIONS STRATEGY SYSTEMS IMPLEMENTED FOR THE SPECIFIC KINDS OF PROSODY REARRANGEMENTS
double ___TEMP_CUMULATIVE_MILLIS_REFERENCES_WITH___FOR_MELSNOTES_DURATIONS_CUMULATIONS = 0;
//WITH THE DIFFERENT KINDS OF GROUPING OF THE NOTES WITH ( ) { } [ ] KIND OF THINGS AND ALSO DUE TO THE PRESENCES OF \ / ~ @ THINGS THE GROUPING NATURES CHANGES
// THE NESTEDNESS OF THE GROUPED NOTES ALL TAKE THE SAME DURATIONS OR NOT DEPENDS UPON THE CONDITIONS OF THE DEPTHS OF NESTEDNESS CONDITIONS WHILE PARSING THE INDINOTES INDITALAS FILES SYNTAXES
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
List<SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>
___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new List<SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___MEASURE_PIPES_FOUND = new List<int>();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___MEASURE_PIPES_FOUND.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_START_FOUND = new List<int>();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_START_FOUND.Clear();
List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_FINALS_FOUND = new List<int>();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_FINALS_FOUND.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_START_FOUND = new List<int>();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_START_FOUND.Clear();
List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_FINALS_FOUND = new List<int>();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_FINALS_FOUND.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_START_FOUND = new List<int>();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_START_FOUND.Clear();
List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_FINALS_FOUND = new List<int>();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_FINALS_FOUND.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Console.WriteLine("filesnametoload = " + filesnametoload);
//cleans the data for whole data grid first and then load only col 0 to col 7
//cleans the data for whole data grid first and then load only col 0 to col 7
//cleans the data for whole data grid first and then load only col 0 to col 7
for (int rrr = 0; rrr < this.dataGridView___COMPOSER.RowCount; rrr++)
{
for (int ccc = 0; ccc < this.dataGridView___COMPOSER.ColumnCount; ccc++)
{
this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value = "";
this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Style.BackColor = Color.LightGreen;
}//for (int ccc = 0; ccc < this.dataGridView___COMPOSER.ColumnCount; ccc++)
}//for (int rrr = 0; rrr < this.dataGridView___COMPOSER.RowCount; rrr++)
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
///
Console.WriteLine("SAVED PREVIOUS DATA AND THEN cleaning dones");
string ___temp_string_the_data___for_single_measures_millis
=
this.textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS
.Text.ToString();
___temp_string_the_data___for_single_measures_millis
=
___temp_string_the_data___for_single_measures_millis
.TrimEnd().TrimStart().Trim();
double ___temp_double___single_measures_within_two_pipes_total_durations_millis = 0;
try
{
___temp_double___single_measures_within_two_pipes_total_durations_millis
=
Convert.ToDouble
(
___temp_string_the_data___for_single_measures_millis
);
}
catch (Exception ___excp_to_convert_durations)
{
___temp_double___single_measures_within_two_pipes_total_durations_millis
= 1000;
////////////////////////////////////// to correct the errors //////////////////////////
this.textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS
.Text
= "1000";
}//catch(Exception ___excp_to_convert_durations)
//////////////////////////////////////////////////////////////////////////////////////////////////////
string ___total_files_read_data = "";
___total_files_read_data
=
System.IO.File.ReadAllText
(
filesnametoload.Replace("\\", "\\\\")
);
//we assume the notepad++ so we dont save when reload current
Console.WriteLine("___total_files_read_data = " + ___total_files_read_data);
//////___total_files_read_data
////// = ___total_files_read_data
////// .Replace("(", "#(#")
////// .Replace(")", "#)#");
////////first we identify the bracketed clubbed notes to condition the syntax strings first
//////string[] ___splitted_array_with_first_brackets
////// =
////// ___total_files_read_data.Split(new string[] { "(", ")" }, StringSplitOptions.RemoveEmptyEntries);
/// string ___conditioned_clubbed_notes_due_to_first_brackets = "";
////// if(___splitted_array_with_first_brackets.Length>0)
////// {
////// for (int r_toks=0;r_toks< ___splitted_array_with_first_brackets.Length;r_toks++)
////// {
////// if (___splitted_array_with_first_brackets[r_toks].Contains(",") || ___splitted_array_with_first_brackets[r_toks].Contains(" "))
////// {
////// ___conditioned_clubbed_notes_due_to_first_brackets
////// =
////// ___conditioned_clubbed_notes_due_to_first_brackets
////// +
////// ","
////// +
////// /// this is to condition within the bracketed clubbed notes for the shorter divided durations
////// ___splitted_array_with_first_brackets[r_toks]
////// .Replace(" "," ")
////// .Replace(" ", " ")
////// .Replace(" ", " ")
////// .Replace(" ", " ")
////// .Replace(" ", " ")
////// .Replace(" ", " ")
////// .Replace(",","######")
////// .Replace(" ","######");
////// }
////// else
////// {
////// ___conditioned_clubbed_notes_due_to_first_brackets
////// =
////// ___conditioned_clubbed_notes_due_to_first_brackets
////// +
////// " , "
////// +
////// ___splitted_array_with_first_brackets[r_toks];
////// }//end of else of if (___splitted_array_with_first_brackets[r_toks].Contains(",") || ___splitted_array_with_first_brackets[r_toks].Contains(" "))
////// }//for(int r_toks=0;r_toks< ___splitted_array_with_first_brackets.Length;r_toks++)
////// }
////// else
////// {
///////// if there is no
////// ___conditioned_clubbed_notes_due_to_first_brackets
////// =
////// ___total_files_read_data;
////// }//end of else of if(___splitted_array_with_first_brackets.Length>0)
string ___temp_whole_string_in_indinotes_inditaalas_files
=
// ___total_files_read_data
// ___conditioned_clubbed_notes_due_to_first_brackets
___total_files_read_data
;
// string somenotesfound = "ss" / "sS" / "sr" / "sR" / "sg" / "sG" / "sm" / "sM" / "sp" / "sP" / "sd" / "sD" / "sn" / "sN" / "sS." / "s.s" / "s.S" / "s.r" / "s.R" / "s.g" / "s.G" / "s.m" / "s.M" / "s.p" / "s.P" / "s.d" / "s.D" / "s.n" / "s.N" / "s.S" / "ss." / "sS." / "sr." / "sR." / "sg." / "sG." / "sm." / "sM." / "sp." / "sP." / "sd." / "sD." / "sn." / "sN." / "sS." / "Ss" / "SS" / "Sr" / "SR" / "Sg" / "SG" / "Sm" / "SM" / "Sp" / "SP" / "Sd" / "SD" / "Sn" / "SN" / "SS." / "S.s" / "S.S" / "S.r" / "S.R" / "S.g" / "S.G" / "S.m" / "S.M" / "S.p" / "S.P" / "S.d" / "S.D" / "S.n" / "S.N" / "S.S" / "Ss." / "SS." / "Sr." / "SR." / "Sg." / "SG." / "Sm." / "SM." / "Sp." / "SP." / "Sd." / "SD." / "Sn." / "SN." / "SS." / "rs" / "rS" / "rr" / "rR" / "rg" / "rG" / "rm" / "rM" / "rp" / "rP" / "rd" / "rD" / "rn" / "rN" / "rS." / "r.s" / "r.S" / "r.r" / "r.R" / "r.g" / "r.G" / "r.m" / "r.M" / "r.p" / "r.P" / "r.d" / "r.D" / "r.n" / "r.N" / "r.S" / "rs." / "rS." / "rr." / "rR." / "rg." / "rG." / "rm." / "rM." / "rp." / "rP." / "rd." / "rD." / "rn." / "rN." / "rS." / "Rs" / "RS" / "Rr" / "RR" / "Rg" / "RG" / "Rm" / "RM" / "Rp" / "RP" / "Rd" / "RD" / "Rn" / "RN" / "RS." / "R.s" / "R.S" / "R.r" / "R.R" / "R.g" / "R.G" / "R.m" / "R.M" / "R.p" / "R.P" / "R.d" / "R.D" / "R.n" / "R.N" / "R.S" / "Rs." / "RS." / "Rr." / "RR." / "Rg." / "RG." / "Rm." / "RM." / "Rp." / "RP." / "Rd." / "RD." / "Rn." / "RN." / "RS." / "gs" / "gS" / "gr" / "gR" / "gg" / "gG" / "gm" / "gM" / "gp" / "gP" / "gd" / "gD" / "gn" / "gN" / "gS." / "g.s" / "g.S" / "g.r" / "g.R" / "g.g" / "g.G" / "g.m" / "g.M" / "g.p" / "g.P" / "g.d" / "g.D" / "g.n" / "g.N" / "g.S" / "gs." / "gS." / "gr." / "gR." / "gg." / "gG." / "gm." / "gM." / "gp." / "gP." / "gd." / "gD." / "gn." / "gN." / "gS." / "Gs" / "GS" / "Gr" / "GR" / "Gg" / "GG" / "Gm" / "GM" / "Gp" / "GP" / "Gd" / "GD" / "Gn" / "GN" / "GS." / "G.s" / "G.S" / "G.r" / "G.R" / "G.g" / "G.G" / "G.m" / "G.M" / "G.p" / "G.P" / "G.d" / "G.D" / "G.n" / "G.N" / "G.S" / "Gs." / "GS." / "Gr." / "GR." / "Gg." / "GG." / "Gm." / "GM." / "Gp." / "GP." / "Gd." / "GD." / "Gn." / "GN." / "GS." / "ms" / "mS" / "mr" / "mR" / "mg" / "mG" / "mm" / "mM" / "mp" / "mP" / "md" / "mD" / "mn" / "mN" / "mS." / "m.s" / "m.S" / "m.r" / "m.R" / "m.g" / "m.G" / "m.m" / "m.M" / "m.p" / "m.P" / "m.d" / "m.D" / "m.n" / "m.N" / "m.S" / "ms." / "mS." / "mr." / "mR." / "mg." / "mG." / "mm." / "mM." / "mp." / "mP." / "md." / "mD." / "mn." / "mN." / "mS." / "Ms" / "MS" / "Mr" / "MR" / "Mg" / "MG" / "Mm" / "MM" / "Mp" / "MP" / "Md" / "MD" / "Mn" / "MN" / "MS." / "M.s" / "M.S" / "M.r" / "M.R" / "M.g" / "M.G" / "M.m" / "M.M" / "M.p" / "M.P" / "M.d" / "M.D" / "M.n" / "M.N" / "M.S" / "Ms." / "MS." / "Mr." / "MR." / "Mg." / "MG." / "Mm." / "MM." / "Mp." / "MP." / "Md." / "MD." / "Mn." / "MN." / "MS." / "ps" / "pS" / "pr" / "pR" / "pg" / "pG" / "pm" / "pM" / "pp" / "pP" / "pd" / "pD" / "pn" / "pN" / "pS." / "p.s" / "p.S" / "p.r" / "p.R" / "p.g" / "p.G" / "p.m" / "p.M" / "p.p" / "p.P" / "p.d" / "p.D" / "p.n" / "p.N" / "p.S" / "ps." / "pS." / "pr." / "pR." / "pg." / "pG." / "pm." / "pM." / "pp." / "pP." / "pd." / "pD." / "pn." / "pN." / "pS." / "Ps" / "PS" / "Pr" / "PR" / "Pg" / "PG" / "Pm" / "PM" / "Pp" / "PP" / "Pd" / "PD" / "Pn" / "PN" / "PS." / "P.s" / "P.S" / "P.r" / "P.R" / "P.g" / "P.G" / "P.m" / "P.M" / "P.p" / "P.P" / "P.d" / "P.D" / "P.n" / "P.N" / "P.S" / "Ps." / "PS." / "Pr." / "PR." / "Pg." / "PG." / "Pm." / "PM." / "Pp." / "PP." / "Pd." / "PD." / "Pn." / "PN." / "PS." / "ds" / "dS" / "dr" / "dR" / "dg" / "dG" / "dm" / "dM" / "dp" / "dP" / "dd" / "dD" / "dn" / "dN" / "dS." / "d.s" / "d.S" / "d.r" / "d.R" / "d.g" / "d.G" / "d.m" / "d.M" / "d.p" / "d.P" / "d.d" / "d.D" / "d.n" / "d.N" / "d.S" / "ds." / "dS." / "dr." / "dR." / "dg." / "dG." / "dm." / "dM." / "dp." / "dP." / "dd." / "dD." / "dn." / "dN." / "dS." / "Ds" / "DS" / "Dr" / "DR" / "Dg" / "DG" / "Dm" / "DM" / "Dp" / "DP" / "Dd" / "DD" / "Dn" / "DN" / "DS." / "D.s" / "D.S" / "D.r" / "D.R" / "D.g" / "D.G" / "D.m" / "D.M" / "D.p" / "D.P" / "D.d" / "D.D" / "D.n" / "D.N" / "D.S" / "Ds." / "DS." / "Dr." / "DR." / "Dg." / "DG." / "Dm." / "DM." / "Dp." / "DP." / "Dd." / "DD." / "Dn." / "DN." / "DS." / "ns" / "nS" / "nr" / "nR" / "ng" / "nG" / "nm" / "nM" / "np" / "nP" / "nd" / "nD" / "nn" / "nN" / "nS." / "n.s" / "n.S" / "n.r" / "n.R" / "n.g" / "n.G" / "n.m" / "n.M" / "n.p" / "n.P" / "n.d" / "n.D" / "n.n" / "n.N" / "n.S" / "ns." / "nS." / "nr." / "nR." / "ng." / "nG." / "nm." / "nM." / "np." / "nP." / "nd." / "nD." / "nn." / "nN." / "nS." / "Ns" / "NS" / "Nr" / "NR" / "Ng" / "NG" / "Nm" / "NM" / "Np" / "NP" / "Nd" / "ND" / "Nn" / "NN" / "NS." / "N.s" / "N.S" / "N.r" / "N.R" / "N.g" / "N.G" / "N.m" / "N.M" / "N.p" / "N.P" / "N.d" / "N.D" / "N.n" / "N.N" / "N.S" / "Ns." / "NS." / "Nr." / "NR." / "Ng." / "NG." / "Nm." / "NM." / "Np." / "NP." / "Nd." / "ND." / "Nn." / "NN." / "NS." / "S.s" / "S.S" / "S.r" / "S.R" / "S.g" / "S.G" / "S.m" / "S.M" / "S.p" / "S.P" / "S.d" / "S.D" / "S.n" / "S.N" / "S.S." / "S..s" / "S..S" / "S..r" / "S..R" / "S..g" / "S..G" / "S..m" / "S..M" / "S..p" / "S..P" / "S..d" / "S..D" / "S..n" / "S..N" / "S..S" / "S.s." / "S.S." / "S.r." / "S.R." / "S.g." / "S.G." / "S.m." / "S.M." / "S.p." / "S.P." / "S.d." / "S.D." / "S.n." / "S.N." / "S.S." / ".ss" / ".sS" / ".sr" / ".sR" / ".sg" / ".sG" / ".sm" / ".sM" / ".sp" / ".sP" / ".sd" / ".sD" / ".sn" / ".sN" / ".sS." / ".s.s" / ".s.S" / ".s.r" / ".s.R" / ".s.g" / ".s.G" / ".s.m" / ".s.M" / ".s.p" / ".s.P" / ".s.d" / ".s.D" / ".s.n" / ".s.N" / ".s.S" / ".ss." / ".sS." / ".sr." / ".sR." / ".sg." / ".sG." / ".sm." / ".sM." / ".sp." / ".sP." / ".sd." / ".sD." / ".sn." / ".sN." / ".sS." / ".Ss" / ".SS" / ".Sr" / ".SR" / ".Sg" / ".SG" / ".Sm" / ".SM" / ".Sp" / ".SP" / ".Sd" / ".SD" / ".Sn" / ".SN" / ".SS." / ".S.s" / ".S.S" / ".S.r" / ".S.R" / ".S.g" / ".S.G" / ".S.m" / ".S.M" / ".S.p" / ".S.P" / ".S.d" / ".S.D" / ".S.n" / ".S.N" / ".S.S" / ".Ss." / ".SS." / ".Sr." / ".SR." / ".Sg." / ".SG." / ".Sm." / ".SM." / ".Sp." / ".SP." / ".Sd." / ".SD." / ".Sn." / ".SN." / ".SS." / ".rs" / ".rS" / ".rr" / ".rR" / ".rg" / ".rG" / ".rm" / ".rM" / ".rp" / ".rP" / ".rd" / ".rD" / ".rn" / ".rN" / ".rS." / ".r.s" / ".r.S" / ".r.r" / ".r.R" / ".r.g" / ".r.G" / ".r.m" / ".r.M" / ".r.p" / ".r.P" / ".r.d" / ".r.D" / ".r.n" / ".r.N" / ".r.S" / ".rs." / ".rS." / ".rr." / ".rR." / ".rg." / ".rG." / ".rm." / ".rM." / ".rp." / ".rP." / ".rd." / ".rD." / ".rn." / ".rN." / ".rS." / ".Rs" / ".RS" / ".Rr" / ".RR" / ".Rg" / ".RG" / ".Rm" / ".RM" / ".Rp" / ".RP" / ".Rd" / ".RD" / ".Rn" / ".RN" / ".RS." / ".R.s" / ".R.S" / ".R.r" / ".R.R" / ".R.g" / ".R.G" / ".R.m" / ".R.M" / ".R.p" / ".R.P" / ".R.d" / ".R.D" / ".R.n" / ".R.N" / ".R.S" / ".Rs." / ".RS." / ".Rr." / ".RR." / ".Rg." / ".RG." / ".Rm." / ".RM." / ".Rp." / ".RP." / ".Rd." / ".RD." / ".Rn." / ".RN." / ".RS." / ".gs" / ".gS" / ".gr" / ".gR" / ".gg" / ".gG" / ".gm" / ".gM" / ".gp" / ".gP" / ".gd" / ".gD" / ".gn" / ".gN" / ".gS." / ".g.s" / ".g.S" / ".g.r" / ".g.R" / ".g.g" / ".g.G" / ".g.m" / ".g.M" / ".g.p" / ".g.P" / ".g.d" / ".g.D" / ".g.n" / ".g.N" / ".g.S" / ".gs." / ".gS." / ".gr." / ".gR." / ".gg." / ".gG." / ".gm." / ".gM." / ".gp." / ".gP." / ".gd." / ".gD." / ".gn." / ".gN." / ".gS." / ".Gs" / ".GS" / ".Gr" / ".GR" / ".Gg" / ".GG" / ".Gm" / ".GM" / ".Gp" / ".GP" / ".Gd" / ".GD" / ".Gn" / ".GN" / ".GS." / ".G.s" / ".G.S" / ".G.r" / ".G.R" / ".G.g" / ".G.G" / ".G.m" / ".G.M" / ".G.p" / ".G.P" / ".G.d" / ".G.D" / ".G.n" / ".G.N" / ".G.S" / ".Gs." / ".GS." / ".Gr." / ".GR." / ".Gg." / ".GG." / ".Gm." / ".GM." / ".Gp." / ".GP." / ".Gd." / ".GD." / ".Gn." / ".GN." / ".GS." / ".ms" / ".mS" / ".mr" / ".mR" / ".mg" / ".mG" / ".mm" / ".mM" / ".mp" / ".mP" / ".md" / ".mD" / ".mn" / ".mN" / ".mS." / ".m.s" / ".m.S" / ".m.r" / ".m.R" / ".m.g" / ".m.G" / ".m.m" / ".m.M" / ".m.p" / ".m.P" / ".m.d" / ".m.D" / ".m.n" / ".m.N" / ".m.S" / ".ms." / ".mS." / ".mr." / ".mR." / ".mg." / ".mG." / ".mm." / ".mM." / ".mp." / ".mP." / ".md." / ".mD." / ".mn." / ".mN." / ".mS." / ".Ms" / ".MS" / ".Mr" / ".MR" / ".Mg" / ".MG" / ".Mm" / ".MM" / ".Mp" / ".MP" / ".Md" / ".MD" / ".Mn" / ".MN" / ".MS." / ".M.s" / ".M.S" / ".M.r" / ".M.R" / ".M.g" / ".M.G" / ".M.m" / ".M.M" / ".M.p" / ".M.P" / ".M.d" / ".M.D" / ".M.n" / ".M.N" / ".M.S" / ".Ms." / ".MS." / ".Mr." / ".MR." / ".Mg." / ".MG." / ".Mm." / ".MM." / ".Mp." / ".MP." / ".Md." / ".MD." / ".Mn." / ".MN." / ".MS." / ".ps" / ".pS" / ".pr" / ".pR" / ".pg" / ".pG" / ".pm" / ".pM" / ".pp" / ".pP" / ".pd" / ".pD" / ".pn" / ".pN" / ".pS." / ".p.s" / ".p.S" / ".p.r" / ".p.R" / ".p.g" / ".p.G" / ".p.m" / ".p.M" / ".p.p" / ".p.P" / ".p.d" / ".p.D" / ".p.n" / ".p.N" / ".p.S" / ".ps." / ".pS." / ".pr." / ".pR." / ".pg." / ".pG." / ".pm." / ".pM." / ".pp." / ".pP." / ".pd." / ".pD." / ".pn." / ".pN." / ".pS." / ".Ps" / ".PS" / ".Pr" / ".PR" / ".Pg" / ".PG" / ".Pm" / ".PM" / ".Pp" / ".PP" / ".Pd" / ".PD" / ".Pn" / ".PN" / ".PS." / ".P.s" / ".P.S" / ".P.r" / ".P.R" / ".P.g" / ".P.G" / ".P.m" / ".P.M" / ".P.p" / ".P.P" / ".P.d" / ".P.D" / ".P.n" / ".P.N" / ".P.S" / ".Ps." / ".PS." / ".Pr." / ".PR." / ".Pg." / ".PG." / ".Pm." / ".PM." / ".Pp." / ".PP." / ".Pd." / ".PD." / ".Pn." / ".PN." / ".PS." / ".ds" / ".dS" / ".dr" / ".dR" / ".dg" / ".dG" / ".dm" / ".dM" / ".dp" / ".dP" / ".dd" / ".dD" / ".dn" / ".dN" / ".dS." / ".d.s" / ".d.S" / ".d.r" / ".d.R" / ".d.g" / ".d.G" / ".d.m" / ".d.M" / ".d.p" / ".d.P" / ".d.d" / ".d.D" / ".d.n" / ".d.N" / ".d.S" / ".ds." / ".dS." / ".dr." / ".dR." / ".dg." / ".dG." / ".dm." / ".dM." / ".dp." / ".dP." / ".dd." / ".dD." / ".dn." / ".dN." / ".dS." / ".Ds" / ".DS" / ".Dr" / ".DR" / ".Dg" / ".DG" / ".Dm" / ".DM" / ".Dp" / ".DP" / ".Dd" / ".DD" / ".Dn" / ".DN" / ".DS." / ".D.s" / ".D.S" / ".D.r" / ".D.R" / ".D.g" / ".D.G" / ".D.m" / ".D.M" / ".D.p" / ".D.P" / ".D.d" / ".D.D" / ".D.n" / ".D.N" / ".D.S" / ".Ds." / ".DS." / ".Dr." / ".DR." / ".Dg." / ".DG." / ".Dm." / ".DM." / ".Dp." / ".DP." / ".Dd." / ".DD." / ".Dn." / ".DN." / ".DS." / ".ns" / ".nS" / ".nr" / ".nR" / ".ng" / ".nG" / ".nm" / ".nM" / ".np" / ".nP" / ".nd" / ".nD" / ".nn" / ".nN" / ".nS." / ".n.s" / ".n.S" / ".n.r" / ".n.R" / ".n.g" / ".n.G" / ".n.m" / ".n.M" / ".n.p" / ".n.P" / ".n.d" / ".n.D" / ".n.n" / ".n.N" / ".n.S" / ".ns." / ".nS." / ".nr." / ".nR." / ".ng." / ".nG." / ".nm." / ".nM." / ".np." / ".nP." / ".nd." / ".nD." / ".nn." / ".nN." / ".nS." / ".Ns" / ".NS" / ".Nr" / ".NR" / ".Ng" / ".NG" / ".Nm" / ".NM" / ".Np" / ".NP" / ".Nd" / ".ND" / ".Nn" / ".NN" / ".NS." / ".N.s" / ".N.S" / ".N.r" / ".N.R" / ".N.g" / ".N.G" / ".N.m" / ".N.M" / ".N.p" / ".N.P" / ".N.d" / ".N.D" / ".N.n" / ".N.N" / ".N.S" / ".Ns." / ".NS." / ".Nr." / ".NR." / ".Ng." / ".NG." / ".Nm." / ".NM." / ".Np." / ".NP." / ".Nd." / ".ND." / ".Nn." / ".NN." / ".NS." / ".Ss" / ".SS" / ".Sr" / ".SR" / ".Sg" / ".SG" / ".Sm" / ".SM" / ".Sp" / ".SP" / ".Sd" / ".SD" / ".Sn" / ".SN" / ".SS." / ".S.s" / ".S.S" / ".S.r" / ".S.R" / ".S.g" / ".S.G" / ".S.m" / ".S.M" / ".S.p" / ".S.P" / ".S.d" / ".S.D" / ".S.n" / ".S.N" / ".S.S" / ".Ss." / ".SS." / ".Sr." / ".SR." / ".Sg." / ".SG." / ".Sm." / ".SM." / ".Sp." / ".SP." / ".Sd." / ".SD." / ".Sn." / ".SN." / ".SS." / "s.s" / "s.S" / "s.r" / "s.R" / "s.g" / "s.G" / "s.m" / "s.M" / "s.p" / "s.P" / "s.d" / "s.D" / "s.n" / "s.N" / "s.S." / "s..s" / "s..S" / "s..r" / "s..R" / "s..g" / "s..G" / "s..m" / "s..M" / "s..p" / "s..P" / "s..d" / "s..D" / "s..n" / "s..N" / "s..S" / "s.s." / "s.S." / "s.r." / "s.R." / "s.g." / "s.G." / "s.m." / "s.M." / "s.p." / "s.P." / "s.d." / "s.D." / "s.n." / "s.N." / "s.S." / "S.s" / "S.S" / "S.r" / "S.R" / "S.g" / "S.G" / "S.m" / "S.M" / "S.p" / "S.P" / "S.d" / "S.D" / "S.n" / "S.N" / "S.S." / "S..s" / "S..S" / "S..r" / "S..R" / "S..g" / "S..G" / "S..m" / "S..M" / "S..p" / "S..P" / "S..d" / "S..D" / "S..n" / "S..N" / "S..S" / "S.s." / "S.S." / "S.r." / "S.R." / "S.g." / "S.G." / "S.m." / "S.M." / "S.p." / "S.P." / "S.d." / "S.D." / "S.n." / "S.N." / "S.S." / "r.s" / "r.S" / "r.r" / "r.R" / "r.g" / "r.G" / "r.m" / "r.M" / "r.p" / "r.P" / "r.d" / "r.D" / "r.n" / "r.N" / "r.S." / "r..s" / "r..S" / "r..r" / "r..R" / "r..g" / "r..G" / "r..m" / "r..M" / "r..p" / "r..P" / "r..d" / "r..D" / "r..n" / "r..N" / "r..S" / "r.s." / "r.S." / "r.r." / "r.R." / "r.g." / "r.G." / "r.m." / "r.M." / "r.p." / "r.P." / "r.d." / "r.D." / "r.n." / "r.N." / "r.S." / "R.s" / "R.S" / "R.r" / "R.R" / "R.g" / "R.G" / "R.m" / "R.M" / "R.p" / "R.P" / "R.d" / "R.D" / "R.n" / "R.N" / "R.S." / "R..s" / "R..S" / "R..r" / "R..R" / "R..g" / "R..G" / "R..m" / "R..M" / "R..p" / "R..P" / "R..d" / "R..D" / "R..n" / "R..N" / "R..S" / "R.s." / "R.S." / "R.r." / "R.R." / "R.g." / "R.G." / "R.m." / "R.M." / "R.p." / "R.P." / "R.d." / "R.D." / "R.n." / "R.N." / "R.S." / "g.s" / "g.S" / "g.r" / "g.R" / "g.g" / "g.G" / "g.m" / "g.M" / "g.p" / "g.P" / "g.d" / "g.D" / "g.n" / "g.N" / "g.S." / "g..s" / "g..S" / "g..r" / "g..R" / "g..g" / "g..G" / "g..m" / "g..M" / "g..p" / "g..P" / "g..d" / "g..D" / "g..n" / "g..N" / "g..S" / "g.s." / "g.S." / "g.r." / "g.R." / "g.g." / "g.G." / "g.m." / "g.M." / "g.p." / "g.P." / "g.d." / "g.D." / "g.n." / "g.N." / "g.S." / "G.s" / "G.S" / "G.r" / "G.R" / "G.g" / "G.G" / "G.m" / "G.M" / "G.p" / "G.P" / "G.d" / "G.D" / "G.n" / "G.N" / "G.S." / "G..s" / "G..S" / "G..r" / "G..R" / "G..g" / "G..G" / "G..m" / "G..M" / "G..p" / "G..P" / "G..d" / "G..D" / "G..n" / "G..N" / "G..S" / "G.s." / "G.S." / "G.r." / "G.R." / "G.g." / "G.G." / "G.m." / "G.M." / "G.p." / "G.P." / "G.d." / "G.D." / "G.n." / "G.N." / "G.S." / "m.s" / "m.S" / "m.r" / "m.R" / "m.g" / "m.G" / "m.m" / "m.M" / "m.p" / "m.P" / "m.d" / "m.D" / "m.n" / "m.N" / "m.S." / "m..s" / "m..S" / "m..r" / "m..R" / "m..g" / "m..G" / "m..m" / "m..M" / "m..p" / "m..P" / "m..d" / "m..D" / "m..n" / "m..N" / "m..S" / "m.s." / "m.S." / "m.r." / "m.R." / "m.g." / "m.G." / "m.m." / "m.M." / "m.p." / "m.P." / "m.d." / "m.D." / "m.n." / "m.N." / "m.S." / "M.s" / "M.S" / "M.r" / "M.R" / "M.g" / "M.G" / "M.m" / "M.M" / "M.p" / "M.P" / "M.d" / "M.D" / "M.n" / "M.N" / "M.S." / "M..s" / "M..S" / "M..r" / "M..R" / "M..g" / "M..G" / "M..m" / "M..M" / "M..p" / "M..P" / "M..d" / "M..D" / "M..n" / "M..N" / "M..S" / "M.s." / "M.S." / "M.r." / "M.R." / "M.g." / "M.G." / "M.m." / "M.M." / "M.p." / "M.P." / "M.d." / "M.D." / "M.n." / "M.N." / "M.S." / "p.s" / "p.S" / "p.r" / "p.R" / "p.g" / "p.G" / "p.m" / "p.M" / "p.p" / "p.P" / "p.d" / "p.D" / "p.n" / "p.N" / "p.S." / "p..s" / "p..S" / "p..r" / "p..R" / "p..g" / "p..G" / "p..m" / "p..M" / "p..p" / "p..P" / "p..d" / "p..D" / "p..n" / "p..N" / "p..S" / "p.s." / "p.S." / "p.r." / "p.R." / "p.g." / "p.G." / "p.m." / "p.M." / "p.p." / "p.P." / "p.d." / "p.D." / "p.n." / "p.N." / "p.S." / "P.s" / "P.S" / "P.r" / "P.R" / "P.g" / "P.G" / "P.m" / "P.M" / "P.p" / "P.P" / "P.d" / "P.D" / "P.n" / "P.N" / "P.S." / "P..s" / "P..S" / "P..r" / "P..R" / "P..g" / "P..G" / "P..m" / "P..M" / "P..p" / "P..P" / "P..d" / "P..D" / "P..n" / "P..N" / "P..S" / "P.s." / "P.S." / "P.r." / "P.R." / "P.g." / "P.G." / "P.m." / "P.M." / "P.p." / "P.P." / "P.d." / "P.D." / "P.n." / "P.N." / "P.S." / "d.s" / "d.S" / "d.r" / "d.R" / "d.g" / "d.G" / "d.m" / "d.M" / "d.p" / "d.P" / "d.d" / "d.D" / "d.n" / "d.N" / "d.S." / "d..s" / "d..S" / "d..r" / "d..R" / "d..g" / "d..G" / "d..m" / "d..M" / "d..p" / "d..P" / "d..d" / "d..D" / "d..n" / "d..N" / "d..S" / "d.s." / "d.S." / "d.r." / "d.R." / "d.g." / "d.G." / "d.m." / "d.M." / "d.p." / "d.P." / "d.d." / "d.D." / "d.n." / "d.N." / "d.S." / "D.s" / "D.S" / "D.r" / "D.R" / "D.g" / "D.G" / "D.m" / "D.M" / "D.p" / "D.P" / "D.d" / "D.D" / "D.n" / "D.N" / "D.S." / "D..s" / "D..S" / "D..r" / "D..R" / "D..g" / "D..G" / "D..m" / "D..M" / "D..p" / "D..P" / "D..d" / "D..D" / "D..n" / "D..N" / "D..S" / "D.s." / "D.S." / "D.r." / "D.R." / "D.g." / "D.G." / "D.m." / "D.M." / "D.p." / "D.P." / "D.d." / "D.D." / "D.n." / "D.N." / "D.S." / "n.s" / "n.S" / "n.r" / "n.R" / "n.g" / "n.G" / "n.m" / "n.M" / "n.p" / "n.P" / "n.d" / "n.D" / "n.n" / "n.N" / "n.S." / "n..s" / "n..S" / "n..r" / "n..R" / "n..g" / "n..G" / "n..m" / "n..M" / "n..p" / "n..P" / "n..d" / "n..D" / "n..n" / "n..N" / "n..S" / "n.s." / "n.S." / "n.r." / "n.R." / "n.g." / "n.G." / "n.m." / "n.M." / "n.p." / "n.P." / "n.d." / "n.D." / "n.n." / "n.N." / "n.S." / "N.s" / "N.S" / "N.r" / "N.R" / "N.g" / "N.G" / "N.m" / "N.M" / "N.p" / "N.P" / "N.d" / "N.D" / "N.n" / "N.N" / "N.S." / "N..s" / "N..S" / "N..r" / "N..R" / "N..g" / "N..G" / "N..m" / "N..M" / "N..p" / "N..P" / "N..d" / "N..D" / "N..n" / "N..N" / "N..S" / "N.s." / "N.S." / "N.r." / "N.R." / "N.g." / "N.G." / "N.m." / "N.M." / "N.p." / "N.P." / "N.d." / "N.D." / "N.n." / "N.N." / "N.S." / "S.s" / "S.S" / "S.r" / "S.R" / "S.g" / "S.G" / "S.m" / "S.M" / "S.p" / "S.P" / "S.d" / "S.D" / "S.n" / "S.N" / "S.S." / "S..s" / "S..S" / "S..r" / "S..R" / "S..g" / "S..G" / "S..m" / "S..M" / "S..p" / "S..P" / "S..d" / "S..D" / "S..n" / "S..N" / "S..S" / "S.s." / "S.S." / "S.r." / "S.R." / "S.g." / "S.G." / "S.m." / "S.M." / "S.p." / "S.P." / "S.d." / "S.D." / "S.n." / "S.N." / "S.S.""/";
string somenotesfound = "ss/sS/sr/sR/sg/sG/sm/sM/sp/sP/sd/sD/sn/sN/sS./s.s/s.S/s.r/s.R/s.g/s.G/s.m/s.M/s.p/s.P/s.d/s.D/s.n/s.N/s.S/ss./sS./sr./sR./sg./sG./sm./sM./sp./sP./sd./sD./sn./sN./sS./Ss/SS/Sr/SR/Sg/SG/Sm/SM/Sp/SP/Sd/SD/Sn/SN/SS./S.s/S.S/S.r/S.R/S.g/S.G/S.m/S.M/S.p/S.P/S.d/S.D/S.n/S.N/S.S/Ss./SS./Sr./SR./Sg./SG./Sm./SM./Sp./SP./Sd./SD./Sn./SN./SS./rs/rS/rr/rR/rg/rG/rm/rM/rp/rP/rd/rD/rn/rN/rS./r.s/r.S/r.r/r.R/r.g/r.G/r.m/r.M/r.p/r.P/r.d/r.D/r.n/r.N/r.S/rs./rS./rr./rR./rg./rG./rm./rM./rp./rP./rd./rD./rn./rN./rS./Rs/RS/Rr/RR/Rg/RG/Rm/RM/Rp/RP/Rd/RD/Rn/RN/RS./R.s/R.S/R.r/R.R/R.g/R.G/R.m/R.M/R.p/R.P/R.d/R.D/R.n/R.N/R.S/Rs./RS./Rr./RR./Rg./RG./Rm./RM./Rp./RP./Rd./RD./Rn./RN./RS./gs/gS/gr/gR/gg/gG/gm/gM/gp/gP/gd/gD/gn/gN/gS./g.s/g.S/g.r/g.R/g.g/g.G/g.m/g.M/g.p/g.P/g.d/g.D/g.n/g.N/g.S/gs./gS./gr./gR./gg./gG./gm./gM./gp./gP./gd./gD./gn./gN./gS./Gs/GS/Gr/GR/Gg/GG/Gm/GM/Gp/GP/Gd/GD/Gn/GN/GS./G.s/G.S/G.r/G.R/G.g/G.G/G.m/G.M/G.p/G.P/G.d/G.D/G.n/G.N/G.S/Gs./GS./Gr./GR./Gg./GG./Gm./GM./Gp./GP./Gd./GD./Gn./GN./GS./ms/mS/mr/mR/mg/mG/mm/mM/mp/mP/md/mD/mn/mN/mS./m.s/m.S/m.r/m.R/m.g/m.G/m.m/m.M/m.p/m.P/m.d/m.D/m.n/m.N/m.S/ms./mS./mr./mR./mg./mG./mm./mM./mp./mP./md./mD./mn./mN./mS./Ms/MS/Mr/MR/Mg/MG/Mm/MM/Mp/MP/Md/MD/Mn/MN/MS./M.s/M.S/M.r/M.R/M.g/M.G/M.m/M.M/M.p/M.P/M.d/M.D/M.n/M.N/M.S/Ms./MS./Mr./MR./Mg./MG./Mm./MM./Mp./MP./Md./MD./Mn./MN./MS./ps/pS/pr/pR/pg/pG/pm/pM/pp/pP/pd/pD/pn/pN/pS./p.s/p.S/p.r/p.R/p.g/p.G/p.m/p.M/p.p/p.P/p.d/p.D/p.n/p.N/p.S/ps./pS./pr./pR./pg./pG./pm./pM./pp./pP./pd./pD./pn./pN./pS./Ps/PS/Pr/PR/Pg/PG/Pm/PM/Pp/PP/Pd/PD/Pn/PN/PS./P.s/P.S/P.r/P.R/P.g/P.G/P.m/P.M/P.p/P.P/P.d/P.D/P.n/P.N/P.S/Ps./PS./Pr./PR./Pg./PG./Pm./PM./Pp./PP./Pd./PD./Pn./PN./PS./ds/dS/dr/dR/dg/dG/dm/dM/dp/dP/dd/dD/dn/dN/dS./d.s/d.S/d.r/d.R/d.g/d.G/d.m/d.M/d.p/d.P/d.d/d.D/d.n/d.N/d.S/ds./dS./dr./dR./dg./dG./dm./dM./dp./dP./dd./dD./dn./dN./dS./Ds/DS/Dr/DR/Dg/DG/Dm/DM/Dp/DP/Dd/DD/Dn/DN/DS./D.s/D.S/D.r/D.R/D.g/D.G/D.m/D.M/D.p/D.P/D.d/D.D/D.n/D.N/D.S/Ds./DS./Dr./DR./Dg./DG./Dm./DM./Dp./DP./Dd./DD./Dn./DN./DS./ns/nS/nr/nR/ng/nG/nm/nM/np/nP/nd/nD/nn/nN/nS./n.s/n.S/n.r/n.R/n.g/n.G/n.m/n.M/n.p/n.P/n.d/n.D/n.n/n.N/n.S/ns./nS./nr./nR./ng./nG./nm./nM./np./nP./nd./nD./nn./nN./nS./Ns/NS/Nr/NR/Ng/NG/Nm/NM/Np/NP/Nd/ND/Nn/NN/NS./N.s/N.S/N.r/N.R/N.g/N.G/N.m/N.M/N.p/N.P/N.d/N.D/N.n/N.N/N.S/Ns./NS./Nr./NR./Ng./NG./Nm./NM./Np./NP./Nd./ND./Nn./NN./NS./S.s/S.S/S.r/S.R/S.g/S.G/S.m/S.M/S.p/S.P/S.d/S.D/S.n/S.N/S.S./S..s/S..S/S..r/S..R/S..g/S..G/S..m/S..M/S..p/S..P/S..d/S..D/S..n/S..N/S..S/S.s./S.S./S.r./S.R./S.g./S.G./S.m./S.M./S.p./S.P./S.d./S.D./S.n./S.N./S.S./.ss/.sS/.sr/.sR/.sg/.sG/.sm/.sM/.sp/.sP/.sd/.sD/.sn/.sN/.sS./.s.s/.s.S/.s.r/.s.R/.s.g/.s.G/.s.m/.s.M/.s.p/.s.P/.s.d/.s.D/.s.n/.s.N/.s.S/.ss./.sS./.sr./.sR./.sg./.sG./.sm./.sM./.sp./.sP./.sd./.sD./.sn./.sN./.sS./.Ss/.SS/.Sr/.SR/.Sg/.SG/.Sm/.SM/.Sp/.SP/.Sd/.SD/.Sn/.SN/.SS./.S.s/.S.S/.S.r/.S.R/.S.g/.S.G/.S.m/.S.M/.S.p/.S.P/.S.d/.S.D/.S.n/.S.N/.S.S/.Ss./.SS./.Sr./.SR./.Sg./.SG./.Sm./.SM./.Sp./.SP./.Sd./.SD./.Sn./.SN./.SS./.rs/.rS/.rr/.rR/.rg/.rG/.rm/.rM/.rp/.rP/.rd/.rD/.rn/.rN/.rS./.r.s/.r.S/.r.r/.r.R/.r.g/.r.G/.r.m/.r.M/.r.p/.r.P/.r.d/.r.D/.r.n/.r.N/.r.S/.rs./.rS./.rr./.rR./.rg./.rG./.rm./.rM./.rp./.rP./.rd./.rD./.rn./.rN./.rS./.Rs/.RS/.Rr/.RR/.Rg/.RG/.Rm/.RM/.Rp/.RP/.Rd/.RD/.Rn/.RN/.RS./.R.s/.R.S/.R.r/.R.R/.R.g/.R.G/.R.m/.R.M/.R.p/.R.P/.R.d/.R.D/.R.n/.R.N/.R.S/.Rs./.RS./.Rr./.RR./.Rg./.RG./.Rm./.RM./.Rp./.RP./.Rd./.RD./.Rn./.RN./.RS./.gs/.gS/.gr/.gR/.gg/.gG/.gm/.gM/.gp/.gP/.gd/.gD/.gn/.gN/.gS./.g.s/.g.S/.g.r/.g.R/.g.g/.g.G/.g.m/.g.M/.g.p/.g.P/.g.d/.g.D/.g.n/.g.N/.g.S/.gs./.gS./.gr./.gR./.gg./.gG./.gm./.gM./.gp./.gP./.gd./.gD./.gn./.gN./.gS./.Gs/.GS/.Gr/.GR/.Gg/.GG/.Gm/.GM/.Gp/.GP/.Gd/.GD/.Gn/.GN/.GS./.G.s/.G.S/.G.r/.G.R/.G.g/.G.G/.G.m/.G.M/.G.p/.G.P/.G.d/.G.D/.G.n/.G.N/.G.S/.Gs./.GS./.Gr./.GR./.Gg./.GG./.Gm./.GM./.Gp./.GP./.Gd./.GD./.Gn./.GN./.GS./.ms/.mS/.mr/.mR/.mg/.mG/.mm/.mM/.mp/.mP/.md/.mD/.mn/.mN/.mS./.m.s/.m.S/.m.r/.m.R/.m.g/.m.G/.m.m/.m.M/.m.p/.m.P/.m.d/.m.D/.m.n/.m.N/.m.S/.ms./.mS./.mr./.mR./.mg./.mG./.mm./.mM./.mp./.mP./.md./.mD./.mn./.mN./.mS./.Ms/.MS/.Mr/.MR/.Mg/.MG/.Mm/.MM/.Mp/.MP/.Md/.MD/.Mn/.MN/.MS./.M.s/.M.S/.M.r/.M.R/.M.g/.M.G/.M.m/.M.M/.M.p/.M.P/.M.d/.M.D/.M.n/.M.N/.M.S/.Ms./.MS./.Mr./.MR./.Mg./.MG./.Mm./.MM./.Mp./.MP./.Md./.MD./.Mn./.MN./.MS./.ps/.pS/.pr/.pR/.pg/.pG/.pm/.pM/.pp/.pP/.pd/.pD/.pn/.pN/.pS./.p.s/.p.S/.p.r/.p.R/.p.g/.p.G/.p.m/.p.M/.p.p/.p.P/.p.d/.p.D/.p.n/.p.N/.p.S/.ps./.pS./.pr./.pR./.pg./.pG./.pm./.pM./.pp./.pP./.pd./.pD./.pn./.pN./.pS./.Ps/.PS/.Pr/.PR/.Pg/.PG/.Pm/.PM/.Pp/.PP/.Pd/.PD/.Pn/.PN/.PS./.P.s/.P.S/.P.r/.P.R/.P.g/.P.G/.P.m/.P.M/.P.p/.P.P/.P.d/.P.D/.P.n/.P.N/.P.S/.Ps./.PS./.Pr./.PR./.Pg./.PG./.Pm./.PM./.Pp./.PP./.Pd./.PD./.Pn./.PN./.PS./.ds/.dS/.dr/.dR/.dg/.dG/.dm/.dM/.dp/.dP/.dd/.dD/.dn/.dN/.dS./.d.s/.d.S/.d.r/.d.R/.d.g/.d.G/.d.m/.d.M/.d.p/.d.P/.d.d/.d.D/.d.n/.d.N/.d.S/.ds./.dS./.dr./.dR./.dg./.dG./.dm./.dM./.dp./.dP./.dd./.dD./.dn./.dN./.dS./.Ds/.DS/.Dr/.DR/.Dg/.DG/.Dm/.DM/.Dp/.DP/.Dd/.DD/.Dn/.DN/.DS./.D.s/.D.S/.D.r/.D.R/.D.g/.D.G/.D.m/.D.M/.D.p/.D.P/.D.d/.D.D/.D.n/.D.N/.D.S/.Ds./.DS./.Dr./.DR./.Dg./.DG./.Dm./.DM./.Dp./.DP./.Dd./.DD./.Dn./.DN./.DS./.ns/.nS/.nr/.nR/.ng/.nG/.nm/.nM/.np/.nP/.nd/.nD/.nn/.nN/.nS./.n.s/.n.S/.n.r/.n.R/.n.g/.n.G/.n.m/.n.M/.n.p/.n.P/.n.d/.n.D/.n.n/.n.N/.n.S/.ns./.nS./.nr./.nR./.ng./.nG./.nm./.nM./.np./.nP./.nd./.nD./.nn./.nN./.nS./.Ns/.NS/.Nr/.NR/.Ng/.NG/.Nm/.NM/.Np/.NP/.Nd/.ND/.Nn/.NN/.NS./.N.s/.N.S/.N.r/.N.R/.N.g/.N.G/.N.m/.N.M/.N.p/.N.P/.N.d/.N.D/.N.n/.N.N/.N.S/.Ns./.NS./.Nr./.NR./.Ng./.NG./.Nm./.NM./.Np./.NP./.Nd./.ND./.Nn./.NN./.NS./.Ss/.SS/.Sr/.SR/.Sg/.SG/.Sm/.SM/.Sp/.SP/.Sd/.SD/.Sn/.SN/.SS./.S.s/.S.S/.S.r/.S.R/.S.g/.S.G/.S.m/.S.M/.S.p/.S.P/.S.d/.S.D/.S.n/.S.N/.S.S/.Ss./.SS./.Sr./.SR./.Sg./.SG./.Sm./.SM./.Sp./.SP./.Sd./.SD./.Sn./.SN./.SS./s.s/s.S/s.r/s.R/s.g/s.G/s.m/s.M/s.p/s.P/s.d/s.D/s.n/s.N/s.S./s..s/s..S/s..r/s..R/s..g/s..G/s..m/s..M/s..p/s..P/s..d/s..D/s..n/s..N/s..S/s.s./s.S./s.r./s.R./s.g./s.G./s.m./s.M./s.p./s.P./s.d./s.D./s.n./s.N./s.S./S.s/S.S/S.r/S.R/S.g/S.G/S.m/S.M/S.p/S.P/S.d/S.D/S.n/S.N/S.S./S..s/S..S/S..r/S..R/S..g/S..G/S..m/S..M/S..p/S..P/S..d/S..D/S..n/S..N/S..S/S.s./S.S./S.r./S.R./S.g./S.G./S.m./S.M./S.p./S.P./S.d./S.D./S.n./S.N./S.S./r.s/r.S/r.r/r.R/r.g/r.G/r.m/r.M/r.p/r.P/r.d/r.D/r.n/r.N/r.S./r..s/r..S/r..r/r..R/r..g/r..G/r..m/r..M/r..p/r..P/r..d/r..D/r..n/r..N/r..S/r.s./r.S./r.r./r.R./r.g./r.G./r.m./r.M./r.p./r.P./r.d./r.D./r.n./r.N./r.S./R.s/R.S/R.r/R.R/R.g/R.G/R.m/R.M/R.p/R.P/R.d/R.D/R.n/R.N/R.S./R..s/R..S/R..r/R..R/R..g/R..G/R..m/R..M/R..p/R..P/R..d/R..D/R..n/R..N/R..S/R.s./R.S./R.r./R.R./R.g./R.G./R.m./R.M./R.p./R.P./R.d./R.D./R.n./R.N./R.S./g.s/g.S/g.r/g.R/g.g/g.G/g.m/g.M/g.p/g.P/g.d/g.D/g.n/g.N/g.S./g..s/g..S/g..r/g..R/g..g/g..G/g..m/g..M/g..p/g..P/g..d/g..D/g..n/g..N/g..S/g.s./g.S./g.r./g.R./g.g./g.G./g.m./g.M./g.p./g.P./g.d./g.D./g.n./g.N./g.S./G.s/G.S/G.r/G.R/G.g/G.G/G.m/G.M/G.p/G.P/G.d/G.D/G.n/G.N/G.S./G..s/G..S/G..r/G..R/G..g/G..G/G..m/G..M/G..p/G..P/G..d/G..D/G..n/G..N/G..S/G.s./G.S./G.r./G.R./G.g./G.G./G.m./G.M./G.p./G.P./G.d./G.D./G.n./G.N./G.S./m.s/m.S/m.r/m.R/m.g/m.G/m.m/m.M/m.p/m.P/m.d/m.D/m.n/m.N/m.S./m..s/m..S/m..r/m..R/m..g/m..G/m..m/m..M/m..p/m..P/m..d/m..D/m..n/m..N/m..S/m.s./m.S./m.r./m.R./m.g./m.G./m.m./m.M./m.p./m.P./m.d./m.D./m.n./m.N./m.S./M.s/M.S/M.r/M.R/M.g/M.G/M.m/M.M/M.p/M.P/M.d/M.D/M.n/M.N/M.S./M..s/M..S/M..r/M..R/M..g/M..G/M..m/M..M/M..p/M..P/M..d/M..D/M..n/M..N/M..S/M.s./M.S./M.r./M.R./M.g./M.G./M.m./M.M./M.p./M.P./M.d./M.D./M.n./M.N./M.S./p.s/p.S/p.r/p.R/p.g/p.G/p.m/p.M/p.p/p.P/p.d/p.D/p.n/p.N/p.S./p..s/p..S/p..r/p..R/p..g/p..G/p..m/p..M/p..p/p..P/p..d/p..D/p..n/p..N/p..S/p.s./p.S./p.r./p.R./p.g./p.G./p.m./p.M./p.p./p.P./p.d./p.D./p.n./p.N./p.S./P.s/P.S/P.r/P.R/P.g/P.G/P.m/P.M/P.p/P.P/P.d/P.D/P.n/P.N/P.S./P..s/P..S/P..r/P..R/P..g/P..G/P..m/P..M/P..p/P..P/P..d/P..D/P..n/P..N/P..S/P.s./P.S./P.r./P.R./P.g./P.G./P.m./P.M./P.p./P.P./P.d./P.D./P.n./P.N./P.S./d.s/d.S/d.r/d.R/d.g/d.G/d.m/d.M/d.p/d.P/d.d/d.D/d.n/d.N/d.S./d..s/d..S/d..r/d..R/d..g/d..G/d..m/d..M/d..p/d..P/d..d/d..D/d..n/d..N/d..S/d.s./d.S./d.r./d.R./d.g./d.G./d.m./d.M./d.p./d.P./d.d./d.D./d.n./d.N./d.S./D.s/D.S/D.r/D.R/D.g/D.G/D.m/D.M/D.p/D.P/D.d/D.D/D.n/D.N/D.S./D..s/D..S/D..r/D..R/D..g/D..G/D..m/D..M/D..p/D..P/D..d/D..D/D..n/D..N/D..S/D.s./D.S./D.r./D.R./D.g./D.G./D.m./D.M./D.p./D.P./D.d./D.D./D.n./D.N./D.S./n.s/n.S/n.r/n.R/n.g/n.G/n.m/n.M/n.p/n.P/n.d/n.D/n.n/n.N/n.S./n..s/n..S/n..r/n..R/n..g/n..G/n..m/n..M/n..p/n..P/n..d/n..D/n..n/n..N/n..S/n.s./n.S./n.r./n.R./n.g./n.G./n.m./n.M./n.p./n.P./n.d./n.D./n.n./n.N./n.S./N.s/N.S/N.r/N.R/N.g/N.G/N.m/N.M/N.p/N.P/N.d/N.D/N.n/N.N/N.S./N..s/N..S/N..r/N..R/N..g/N..G/N..m/N..M/N..p/N..P/N..d/N..D/N..n/N..N/N..S/N.s./N.S./N.r./N.R./N.g./N.G./N.m./N.M./N.p./N.P./N.d./N.D./N.n./N.N./N.S./S.s/S.S/S.r/S.R/S.g/S.G/S.m/S.M/S.p/S.P/S.d/S.D/S.n/S.N/S.S./S..s/S..S/S..r/S..R/S..g/S..G/S..m/S..M/S..p/S..P/S..d/S..D/S..n/S..N/S..S/S.s./S.S./S.r./S.R./S.g./S.G./S.m./S.M./S.p./S.P./S.d./S.D./S.n./S.N./S.S.";
// string replacedwith = "s~s/s~S/s~r/s~R/s~g/s~G/s~m/s~M/s~p/s~P/s~d/s~D/s~n/s~N/s~S./s~.s/s~.S/s~.r/s~.R/s~.g/s~.G/s~.m/s~.M/s~.p/s~.P/s~.d/s~.D/s~.n/s~.N/s~.S/s~s./s~S./s~r./s~R./s~g./s~G./s~m./s~M./s~p./s~P./s~d./s~D./s~n./s~N./s~S./S~s/S~S/S~r/S~R/S~g/S~G/S~m/S~M/S~p/S~P/S~d/S~D/S~n/S~N/S~S./S~.s/S~.S/S~.r/S~.R/S~.g/S~.G/S~.m/S~.M/S~.p/S~.P/S~.d/S~.D/S~.n/S~.N/S~.S/S~s./S~S./S~r./S~R./S~g./S~G./S~m./S~M./S~p./S~P./S~d./S~D./S~n./S~N./S~S./r~s/r~S/r~r/r~R/r~g/r~G/r~m/r~M/r~p/r~P/r~d/r~D/r~n/r~N/r~S./r~.s/r~.S/r~.r/r~.R/r~.g/r~.G/r~.m/r~.M/r~.p/r~.P/r~.d/r~.D/r~.n/r~.N/r~.S/r~s./r~S./r~r./r~R./r~g./r~G./r~m./r~M./r~p./r~P./r~d./r~D./r~n./r~N./r~S./R~s/R~S/R~r/R~R/R~g/R~G/R~m/R~M/R~p/R~P/R~d/R~D/R~n/R~N/R~S./R~.s/R~.S/R~.r/R~.R/R~.g/R~.G/R~.m/R~.M/R~.p/R~.P/R~.d/R~.D/R~.n/R~.N/R~.S/R~s./R~S./R~r./R~R./R~g./R~G./R~m./R~M./R~p./R~P./R~d./R~D./R~n./R~N./R~S./g~s/g~S/g~r/g~R/g~g/g~G/g~m/g~M/g~p/g~P/g~d/g~D/g~n/g~N/g~S./g~.s/g~.S/g~.r/g~.R/g~.g/g~.G/g~.m/g~.M/g~.p/g~.P/g~.d/g~.D/g~.n/g~.N/g~.S/g~s./g~S./g~r./g~R./g~g./g~G./g~m./g~M./g~p./g~P./g~d./g~D./g~n./g~N./g~S./G~s/G~S/G~r/G~R/G~g/G~G/G~m/G~M/G~p/G~P/G~d/G~D/G~n/G~N/G~S./G~.s/G~.S/G~.r/G~.R/G~.g/G~.G/G~.m/G~.M/G~.p/G~.P/G~.d/G~.D/G~.n/G~.N/G~.S/G~s./G~S./G~r./G~R./G~g./G~G./G~m./G~M./G~p./G~P./G~d./G~D./G~n./G~N./G~S./m~s/m~S/m~r/m~R/m~g/m~G/m~m/m~M/m~p/m~P/m~d/m~D/m~n/m~N/m~S./m~.s/m~.S/m~.r/m~.R/m~.g/m~.G/m~.m/m~.M/m~.p/m~.P/m~.d/m~.D/m~.n/m~.N/m~.S/m~s./m~S./m~r./m~R./m~g./m~G./m~m./m~M./m~p./m~P./m~d./m~D./m~n./m~N./m~S./M~s/M~S/M~r/M~R/M~g/M~G/M~m/M~M/M~p/M~P/M~d/M~D/M~n/M~N/M~S./M~.s/M~.S/M~.r/M~.R/M~.g/M~.G/M~.m/M~.M/M~.p/M~.P/M~.d/M~.D/M~.n/M~.N/M~.S/M~s./M~S./M~r./M~R./M~g./M~G./M~m./M~M./M~p./M~P./M~d./M~D./M~n./M~N./M~S./p~s/p~S/p~r/p~R/p~g/p~G/p~m/p~M/p~p/p~P/p~d/p~D/p~n/p~N/p~S./p~.s/p~.S/p~.r/p~.R/p~.g/p~.G/p~.m/p~.M/p~.p/p~.P/p~.d/p~.D/p~.n/p~.N/p~.S/p~s./p~S./p~r./p~R./p~g./p~G./p~m./p~M./p~p./p~P./p~d./p~D./p~n./p~N./p~S./P~s/P~S/P~r/P~R/P~g/P~G/P~m/P~M/P~p/P~P/P~d/P~D/P~n/P~N/P~S./P~.s/P~.S/P~.r/P~.R/P~.g/P~.G/P~.m/P~.M/P~.p/P~.P/P~.d/P~.D/P~.n/P~.N/P~.S/P~s./P~S./P~r./P~R./P~g./P~G./P~m./P~M./P~p./P~P./P~d./P~D./P~n./P~N./P~S./d~s/d~S/d~r/d~R/d~g/d~G/d~m/d~M/d~p/d~P/d~d/d~D/d~n/d~N/d~S./d~.s/d~.S/d~.r/d~.R/d~.g/d~.G/d~.m/d~.M/d~.p/d~.P/d~.d/d~.D/d~.n/d~.N/d~.S/d~s./d~S./d~r./d~R./d~g./d~G./d~m./d~M./d~p./d~P./d~d./d~D./d~n./d~N./d~S./D~s/D~S/D~r/D~R/D~g/D~G/D~m/D~M/D~p/D~P/D~d/D~D/D~n/D~N/D~S./D~.s/D~.S/D~.r/D~.R/D~.g/D~.G/D~.m/D~.M/D~.p/D~.P/D~.d/D~.D/D~.n/D~.N/D~.S/D~s./D~S./D~r./D~R./D~g./D~G./D~m./D~M./D~p./D~P./D~d./D~D./D~n./D~N./D~S./n~s/n~S/n~r/n~R/n~g/n~G/n~m/n~M/n~p/n~P/n~d/n~D/n~n/n~N/n~S./n~.s/n~.S/n~.r/n~.R/n~.g/n~.G/n~.m/n~.M/n~.p/n~.P/n~.d/n~.D/n~.n/n~.N/n~.S/n~s./n~S./n~r./n~R./n~g./n~G./n~m./n~M./n~p./n~P./n~d./n~D./n~n./n~N./n~S./N~s/N~S/N~r/N~R/N~g/N~G/N~m/N~M/N~p/N~P/N~d/N~D/N~n/N~N/N~S./N~.s/N~.S/N~.r/N~.R/N~.g/N~.G/N~.m/N~.M/N~.p/N~.P/N~.d/N~.D/N~.n/N~.N/N~.S/N~s./N~S./N~r./N~R./N~g./N~G./N~m./N~M./N~p./N~P./N~d./N~D./N~n./N~N./N~S./S.~s/S.~S/S.~r/S.~R/S.~g/S.~G/S.~m/S.~M/S.~p/S.~P/S.~d/S.~D/S.~n/S.~N/S.~S./S.~.s/S.~.S/S.~.r/S.~.R/S.~.g/S.~.G/S.~.m/S.~.M/S.~.p/S.~.P/S.~.d/S.~.D/S.~.n/S.~.N/S.~.S/S.~s./S.~S./S.~r./S.~R./S.~g./S.~G./S.~m./S.~M./S.~p./S.~P./S.~d./S.~D./S.~n./S.~N./S.~S./.s~s/.s~S/.s~r/.s~R/.s~g/.s~G/.s~m/.s~M/.s~p/.s~P/.s~d/.s~D/.s~n/.s~N/.s~S./.s~.s/.s~.S/.s~.r/.s~.R/.s~.g/.s~.G/.s~.m/.s~.M/.s~.p/.s~.P/.s~.d/.s~.D/.s~.n/.s~.N/.s~.S/.s~s./.s~S./.s~r./.s~R./.s~g./.s~G./.s~m./.s~M./.s~p./.s~P./.s~d./.s~D./.s~n./.s~N./.s~S./.S~s/.S~S/.S~r/.S~R/.S~g/.S~G/.S~m/.S~M/.S~p/.S~P/.S~d/.S~D/.S~n/.S~N/.S~S./.S~.s/.S~.S/.S~.r/.S~.R/.S~.g/.S~.G/.S~.m/.S~.M/.S~.p/.S~.P/.S~.d/.S~.D/.S~.n/.S~.N/.S~.S/.S~s./.S~S./.S~r./.S~R./.S~g./.S~G./.S~m./.S~M./.S~p./.S~P./.S~d./.S~D./.S~n./.S~N./.S~S./.r~s/.r~S/.r~r/.r~R/.r~g/.r~G/.r~m/.r~M/.r~p/.r~P/.r~d/.r~D/.r~n/.r~N/.r~S./.r~.s/.r~.S/.r~.r/.r~.R/.r~.g/.r~.G/.r~.m/.r~.M/.r~.p/.r~.P/.r~.d/.r~.D/.r~.n/.r~.N/.r~.S/.r~s./.r~S./.r~r./.r~R./.r~g./.r~G./.r~m./.r~M./.r~p./.r~P./.r~d./.r~D./.r~n./.r~N./.r~S./.R~s/.R~S/.R~r/.R~R/.R~g/.R~G/.R~m/.R~M/.R~p/.R~P/.R~d/.R~D/.R~n/.R~N/.R~S./.R~.s/.R~.S/.R~.r/.R~.R/.R~.g/.R~.G/.R~.m/.R~.M/.R~.p/.R~.P/.R~.d/.R~.D/.R~.n/.R~.N/.R~.S/.R~s./.R~S./.R~r./.R~R./.R~g./.R~G./.R~m./.R~M./.R~p./.R~P./.R~d./.R~D./.R~n./.R~N./.R~S./.g~s/.g~S/.g~r/.g~R/.g~g/.g~G/.g~m/.g~M/.g~p/.g~P/.g~d/.g~D/.g~n/.g~N/.g~S./.g~.s/.g~.S/.g~.r/.g~.R/.g~.g/.g~.G/.g~.m/.g~.M/.g~.p/.g~.P/.g~.d/.g~.D/.g~.n/.g~.N/.g~.S/.g~s./.g~S./.g~r./.g~R./.g~g./.g~G./.g~m./.g~M./.g~p./.g~P./.g~d./.g~D./.g~n./.g~N./.g~S./.G~s/.G~S/.G~r/.G~R/.G~g/.G~G/.G~m/.G~M/.G~p/.G~P/.G~d/.G~D/.G~n/.G~N/.G~S./.G~.s/.G~.S/.G~.r/.G~.R/.G~.g/.G~.G/.G~.m/.G~.M/.G~.p/.G~.P/.G~.d/.G~.D/.G~.n/.G~.N/.G~.S/.G~s./.G~S./.G~r./.G~R./.G~g./.G~G./.G~m./.G~M./.G~p./.G~P./.G~d./.G~D./.G~n./.G~N./.G~S./.m~s/.m~S/.m~r/.m~R/.m~g/.m~G/.m~m/.m~M/.m~p/.m~P/.m~d/.m~D/.m~n/.m~N/.m~S./.m~.s/.m~.S/.m~.r/.m~.R/.m~.g/.m~.G/.m~.m/.m~.M/.m~.p/.m~.P/.m~.d/.m~.D/.m~.n/.m~.N/.m~.S/.m~s./.m~S./.m~r./.m~R./.m~g./.m~G./.m~m./.m~M./.m~p./.m~P./.m~d./.m~D./.m~n./.m~N./.m~S./.M~s/.M~S/.M~r/.M~R/.M~g/.M~G/.M~m/.M~M/.M~p/.M~P/.M~d/.M~D/.M~n/.M~N/.M~S./.M~.s/.M~.S/.M~.r/.M~.R/.M~.g/.M~.G/.M~.m/.M~.M/.M~.p/.M~.P/.M~.d/.M~.D/.M~.n/.M~.N/.M~.S/.M~s./.M~S./.M~r./.M~R./.M~g./.M~G./.M~m./.M~M./.M~p./.M~P./.M~d./.M~D./.M~n./.M~N./.M~S./.p~s/.p~S/.p~r/.p~R/.p~g/.p~G/.p~m/.p~M/.p~p/.p~P/.p~d/.p~D/.p~n/.p~N/.p~S./.p~.s/.p~.S/.p~.r/.p~.R/.p~.g/.p~.G/.p~.m/.p~.M/.p~.p/.p~.P/.p~.d/.p~.D/.p~.n/.p~.N/.p~.S/.p~s./.p~S./.p~r./.p~R./.p~g./.p~G./.p~m./.p~M./.p~p./.p~P./.p~d./.p~D./.p~n./.p~N./.p~S./.P~s/.P~S/.P~r/.P~R/.P~g/.P~G/.P~m/.P~M/.P~p/.P~P/.P~d/.P~D/.P~n/.P~N/.P~S./.P~.s/.P~.S/.P~.r/.P~.R/.P~.g/.P~.G/.P~.m/.P~.M/.P~.p/.P~.P/.P~.d/.P~.D/.P~.n/.P~.N/.P~.S/.P~s./.P~S./.P~r./.P~R./.P~g./.P~G./.P~m./.P~M./.P~p./.P~P./.P~d./.P~D./.P~n./.P~N./.P~S./.d~s/.d~S/.d~r/.d~R/.d~g/.d~G/.d~m/.d~M/.d~p/.d~P/.d~d/.d~D/.d~n/.d~N/.d~S./.d~.s/.d~.S/.d~.r/.d~.R/.d~.g/.d~.G/.d~.m/.d~.M/.d~.p/.d~.P/.d~.d/.d~.D/.d~.n/.d~.N/.d~.S/.d~s./.d~S./.d~r./.d~R./.d~g./.d~G./.d~m./.d~M./.d~p./.d~P./.d~d./.d~D./.d~n./.d~N./.d~S./.D~s/.D~S/.D~r/.D~R/.D~g/.D~G/.D~m/.D~M/.D~p/.D~P/.D~d/.D~D/.D~n/.D~N/.D~S./.D~.s/.D~.S/.D~.r/.D~.R/.D~.g/.D~.G/.D~.m/.D~.M/.D~.p/.D~.P/.D~.d/.D~.D/.D~.n/.D~.N/.D~.S/.D~s./.D~S./.D~r./.D~R./.D~g./.D~G./.D~m./.D~M./.D~p./.D~P./.D~d./.D~D./.D~n./.D~N./.D~S./.n~s/.n~S/.n~r/.n~R/.n~g/.n~G/.n~m/.n~M/.n~p/.n~P/.n~d/.n~D/.n~n/.n~N/.n~S./.n~.s/.n~.S/.n~.r/.n~.R/.n~.g/.n~.G/.n~.m/.n~.M/.n~.p/.n~.P/.n~.d/.n~.D/.n~.n/.n~.N/.n~.S/.n~s./.n~S./.n~r./.n~R./.n~g./.n~G./.n~m./.n~M./.n~p./.n~P./.n~d./.n~D./.n~n./.n~N./.n~S./.N~s/.N~S/.N~r/.N~R/.N~g/.N~G/.N~m/.N~M/.N~p/.N~P/.N~d/.N~D/.N~n/.N~N/.N~S./.N~.s/.N~.S/.N~.r/.N~.R/.N~.g/.N~.G/.N~.m/.N~.M/.N~.p/.N~.P/.N~.d/.N~.D/.N~.n/.N~.N/.N~.S/.N~s./.N~S./.N~r./.N~R./.N~g./.N~G./.N~m./.N~M./.N~p./.N~P./.N~d./.N~D./.N~n./.N~N./.N~S./.S~s/.S~S/.S~r/.S~R/.S~g/.S~G/.S~m/.S~M/.S~p/.S~P/.S~d/.S~D/.S~n/.S~N/.S~S./.S~.s/.S~.S/.S~.r/.S~.R/.S~.g/.S~.G/.S~.m/.S~.M/.S~.p/.S~.P/.S~.d/.S~.D/.S~.n/.S~.N/.S~.S/.S~s./.S~S./.S~r./.S~R./.S~g./.S~G./.S~m./.S~M./.S~p./.S~P./.S~d./.S~D./.S~n./.S~N./.S~S./s.~s/s.~S/s.~r/s.~R/s.~g/s.~G/s.~m/s.~M/s.~p/s.~P/s.~d/s.~D/s.~n/s.~N/s.~S./s.~.s/s.~.S/s.~.r/s.~.R/s.~.g/s.~.G/s.~.m/s.~.M/s.~.p/s.~.P/s.~.d/s.~.D/s.~.n/s.~.N/s.~.S/s.~s./s.~S./s.~r./s.~R./s.~g./s.~G./s.~m./s.~M./s.~p./s.~P./s.~d./s.~D./s.~n./s.~N./s.~S./S.~s/S.~S/S.~r/S.~R/S.~g/S.~G/S.~m/S.~M/S.~p/S.~P/S.~d/S.~D/S.~n/S.~N/S.~S./S.~.s/S.~.S/S.~.r/S.~.R/S.~.g/S.~.G/S.~.m/S.~.M/S.~.p/S.~.P/S.~.d/S.~.D/S.~.n/S.~.N/S.~.S/S.~s./S.~S./S.~r./S.~R./S.~g./S.~G./S.~m./S.~M./S.~p./S.~P./S.~d./S.~D./S.~n./S.~N./S.~S./r.~s/r.~S/r.~r/r.~R/r.~g/r.~G/r.~m/r.~M/r.~p/r.~P/r.~d/r.~D/r.~n/r.~N/r.~S./r.~.s/r.~.S/r.~.r/r.~.R/r.~.g/r.~.G/r.~.m/r.~.M/r.~.p/r.~.P/r.~.d/r.~.D/r.~.n/r.~.N/r.~.S/r.~s./r.~S./r.~r./r.~R./r.~g./r.~G./r.~m./r.~M./r.~p./r.~P./r.~d./r.~D./r.~n./r.~N./r.~S./R.~s/R.~S/R.~r/R.~R/R.~g/R.~G/R.~m/R.~M/R.~p/R.~P/R.~d/R.~D/R.~n/R.~N/R.~S./R.~.s/R.~.S/R.~.r/R.~.R/R.~.g/R.~.G/R.~.m/R.~.M/R.~.p/R.~.P/R.~.d/R.~.D/R.~.n/R.~.N/R.~.S/R.~s./R.~S./R.~r./R.~R./R.~g./R.~G./R.~m./R.~M./R.~p./R.~P./R.~d./R.~D./R.~n./R.~N./R.~S./g.~s/g.~S/g.~r/g.~R/g.~g/g.~G/g.~m/g.~M/g.~p/g.~P/g.~d/g.~D/g.~n/g.~N/g.~S./g.~.s/g.~.S/g.~.r/g.~.R/g.~.g/g.~.G/g.~.m/g.~.M/g.~.p/g.~.P/g.~.d/g.~.D/g.~.n/g.~.N/g.~.S/g.~s./g.~S./g.~r./g.~R./g.~g./g.~G./g.~m./g.~M./g.~p./g.~P./g.~d./g.~D./g.~n./g.~N./g.~S./G.~s/G.~S/G.~r/G.~R/G.~g/G.~G/G.~m/G.~M/G.~p/G.~P/G.~d/G.~D/G.~n/G.~N/G.~S./G.~.s/G.~.S/G.~.r/G.~.R/G.~.g/G.~.G/G.~.m/G.~.M/G.~.p/G.~.P/G.~.d/G.~.D/G.~.n/G.~.N/G.~.S/G.~s./G.~S./G.~r./G.~R./G.~g./G.~G./G.~m./G.~M./G.~p./G.~P./G.~d./G.~D./G.~n./G.~N./G.~S./m.~s/m.~S/m.~r/m.~R/m.~g/m.~G/m.~m/m.~M/m.~p/m.~P/m.~d/m.~D/m.~n/m.~N/m.~S./m.~.s/m.~.S/m.~.r/m.~.R/m.~.g/m.~.G/m.~.m/m.~.M/m.~.p/m.~.P/m.~.d/m.~.D/m.~.n/m.~.N/m.~.S/m.~s./m.~S./m.~r./m.~R./m.~g./m.~G./m.~m./m.~M./m.~p./m.~P./m.~d./m.~D./m.~n./m.~N./m.~S./M.~s/M.~S/M.~r/M.~R/M.~g/M.~G/M.~m/M.~M/M.~p/M.~P/M.~d/M.~D/M.~n/M.~N/M.~S./M.~.s/M.~.S/M.~.r/M.~.R/M.~.g/M.~.G/M.~.m/M.~.M/M.~.p/M.~.P/M.~.d/M.~.D/M.~.n/M.~.N/M.~.S/M.~s./M.~S./M.~r./M.~R./M.~g./M.~G./M.~m./M.~M./M.~p./M.~P./M.~d./M.~D./M.~n./M.~N./M.~S./p.~s/p.~S/p.~r/p.~R/p.~g/p.~G/p.~m/p.~M/p.~p/p.~P/p.~d/p.~D/p.~n/p.~N/p.~S./p.~.s/p.~.S/p.~.r/p.~.R/p.~.g/p.~.G/p.~.m/p.~.M/p.~.p/p.~.P/p.~.d/p.~.D/p.~.n/p.~.N/p.~.S/p.~s./p.~S./p.~r./p.~R./p.~g./p.~G./p.~m./p.~M./p.~p./p.~P./p.~d./p.~D./p.~n./p.~N./p.~S./P.~s/P.~S/P.~r/P.~R/P.~g/P.~G/P.~m/P.~M/P.~p/P.~P/P.~d/P.~D/P.~n/P.~N/P.~S./P.~.s/P.~.S/P.~.r/P.~.R/P.~.g/P.~.G/P.~.m/P.~.M/P.~.p/P.~.P/P.~.d/P.~.D/P.~.n/P.~.N/P.~.S/P.~s./P.~S./P.~r./P.~R./P.~g./P.~G./P.~m./P.~M./P.~p./P.~P./P.~d./P.~D./P.~n./P.~N./P.~S./d.~s/d.~S/d.~r/d.~R/d.~g/d.~G/d.~m/d.~M/d.~p/d.~P/d.~d/d.~D/d.~n/d.~N/d.~S./d.~.s/d.~.S/d.~.r/d.~.R/d.~.g/d.~.G/d.~.m/d.~.M/d.~.p/d.~.P/d.~.d/d.~.D/d.~.n/d.~.N/d.~.S/d.~s./d.~S./d.~r./d.~R./d.~g./d.~G./d.~m./d.~M./d.~p./d.~P./d.~d./d.~D./d.~n./d.~N./d.~S./D.~s/D.~S/D.~r/D.~R/D.~g/D.~G/D.~m/D.~M/D.~p/D.~P/D.~d/D.~D/D.~n/D.~N/D.~S./D.~.s/D.~.S/D.~.r/D.~.R/D.~.g/D.~.G/D.~.m/D.~.M/D.~.p/D.~.P/D.~.d/D.~.D/D.~.n/D.~.N/D.~.S/D.~s./D.~S./D.~r./D.~R./D.~g./D.~G./D.~m./D.~M./D.~p./D.~P./D.~d./D.~D./D.~n./D.~N./D.~S./n.~s/n.~S/n.~r/n.~R/n.~g/n.~G/n.~m/n.~M/n.~p/n.~P/n.~d/n.~D/n.~n/n.~N/n.~S./n.~.s/n.~.S/n.~.r/n.~.R/n.~.g/n.~.G/n.~.m/n.~.M/n.~.p/n.~.P/n.~.d/n.~.D/n.~.n/n.~.N/n.~.S/n.~s./n.~S./n.~r./n.~R./n.~g./n.~G./n.~m./n.~M./n.~p./n.~P./n.~d./n.~D./n.~n./n.~N./n.~S./N.~s/N.~S/N.~r/N.~R/N.~g/N.~G/N.~m/N.~M/N.~p/N.~P/N.~d/N.~D/N.~n/N.~N/N.~S./N.~.s/N.~.S/N.~.r/N.~.R/N.~.g/N.~.G/N.~.m/N.~.M/N.~.p/N.~.P/N.~.d/N.~.D/N.~.n/N.~.N/N.~.S/N.~s./N.~S./N.~r./N.~R./N.~g./N.~G./N.~m./N.~M./N.~p./N.~P./N.~d./N.~D./N.~n./N.~N./N.~S./S.~s/S.~S/S.~r/S.~R/S.~g/S.~G/S.~m/S.~M/S.~p/S.~P/S.~d/S.~D/S.~n/S.~N/S.~S./S.~.s/S.~.S/S.~.r/S.~.R/S.~.g/S.~.G/S.~.m/S.~.M/S.~.p/S.~.P/S.~.d/S.~.D/S.~.n/S.~.N/S.~.S/S.~s./S.~S./S.~r./S.~R./S.~g./S.~G./S.~m./S.~M./S.~p./S.~P./S.~d./S.~D./S.~n./S.~N./S.~S.";
// string replacedwith = "(s~s)/(s~S)/(s~r)/(s~R)/(s~g)/(s~G)/(s~m)/(s~M)/(s~p)/(s~P)/(s~d)/(s~D)/(s~n)/(s~N)/(s~S.)/(s~.s)/(s~.S)/(s~.r)/(s~.R)/(s~.g)/(s~.G)/(s~.m)/(s~.M)/(s~.p)/(s~.P)/(s~.d)/(s~.D)/(s~.n)/(s~.N)/(s~.S)/(s~s.)/(s~S.)/(s~r.)/(s~R.)/(s~g.)/(s~G.)/(s~m.)/(s~M.)/(s~p.)/(s~P.)/(s~d.)/(s~D.)/(s~n.)/(s~N.)/(s~S.)/(S~s)/(S~S)/(S~r)/(S~R)/(S~g)/(S~G)/(S~m)/(S~M)/(S~p)/(S~P)/(S~d)/(S~D)/(S~n)/(S~N)/(S~S.)/(S~.s)/(S~.S)/(S~.r)/(S~.R)/(S~.g)/(S~.G)/(S~.m)/(S~.M)/(S~.p)/(S~.P)/(S~.d)/(S~.D)/(S~.n)/(S~.N)/(S~.S)/(S~s.)/(S~S.)/(S~r.)/(S~R.)/(S~g.)/(S~G.)/(S~m.)/(S~M.)/(S~p.)/(S~P.)/(S~d.)/(S~D.)/(S~n.)/(S~N.)/(S~S.)/(r~s)/(r~S)/(r~r)/(r~R)/(r~g)/(r~G)/(r~m)/(r~M)/(r~p)/(r~P)/(r~d)/(r~D)/(r~n)/(r~N)/(r~S.)/(r~.s)/(r~.S)/(r~.r)/(r~.R)/(r~.g)/(r~.G)/(r~.m)/(r~.M)/(r~.p)/(r~.P)/(r~.d)/(r~.D)/(r~.n)/(r~.N)/(r~.S)/(r~s.)/(r~S.)/(r~r.)/(r~R.)/(r~g.)/(r~G.)/(r~m.)/(r~M.)/(r~p.)/(r~P.)/(r~d.)/(r~D.)/(r~n.)/(r~N.)/(r~S.)/(R~s)/(R~S)/(R~r)/(R~R)/(R~g)/(R~G)/(R~m)/(R~M)/(R~p)/(R~P)/(R~d)/(R~D)/(R~n)/(R~N)/(R~S.)/(R~.s)/(R~.S)/(R~.r)/(R~.R)/(R~.g)/(R~.G)/(R~.m)/(R~.M)/(R~.p)/(R~.P)/(R~.d)/(R~.D)/(R~.n)/(R~.N)/(R~.S)/(R~s.)/(R~S.)/(R~r.)/(R~R.)/(R~g.)/(R~G.)/(R~m.)/(R~M.)/(R~p.)/(R~P.)/(R~d.)/(R~D.)/(R~n.)/(R~N.)/(R~S.)/(g~s)/(g~S)/(g~r)/(g~R)/(g~g)/(g~G)/(g~m)/(g~M)/(g~p)/(g~P)/(g~d)/(g~D)/(g~n)/(g~N)/(g~S.)/(g~.s)/(g~.S)/(g~.r)/(g~.R)/(g~.g)/(g~.G)/(g~.m)/(g~.M)/(g~.p)/(g~.P)/(g~.d)/(g~.D)/(g~.n)/(g~.N)/(g~.S)/(g~s.)/(g~S.)/(g~r.)/(g~R.)/(g~g.)/(g~G.)/(g~m.)/(g~M.)/(g~p.)/(g~P.)/(g~d.)/(g~D.)/(g~n.)/(g~N.)/(g~S.)/(G~s)/(G~S)/(G~r)/(G~R)/(G~g)/(G~G)/(G~m)/(G~M)/(G~p)/(G~P)/(G~d)/(G~D)/(G~n)/(G~N)/(G~S.)/(G~.s)/(G~.S)/(G~.r)/(G~.R)/(G~.g)/(G~.G)/(G~.m)/(G~.M)/(G~.p)/(G~.P)/(G~.d)/(G~.D)/(G~.n)/(G~.N)/(G~.S)/(G~s.)/(G~S.)/(G~r.)/(G~R.)/(G~g.)/(G~G.)/(G~m.)/(G~M.)/(G~p.)/(G~P.)/(G~d.)/(G~D.)/(G~n.)/(G~N.)/(G~S.)/(m~s)/(m~S)/(m~r)/(m~R)/(m~g)/(m~G)/(m~m)/(m~M)/(m~p)/(m~P)/(m~d)/(m~D)/(m~n)/(m~N)/(m~S.)/(m~.s)/(m~.S)/(m~.r)/(m~.R)/(m~.g)/(m~.G)/(m~.m)/(m~.M)/(m~.p)/(m~.P)/(m~.d)/(m~.D)/(m~.n)/(m~.N)/(m~.S)/(m~s.)/(m~S.)/(m~r.)/(m~R.)/(m~g.)/(m~G.)/(m~m.)/(m~M.)/(m~p.)/(m~P.)/(m~d.)/(m~D.)/(m~n.)/(m~N.)/(m~S.)/(M~s)/(M~S)/(M~r)/(M~R)/(M~g)/(M~G)/(M~m)/(M~M)/(M~p)/(M~P)/(M~d)/(M~D)/(M~n)/(M~N)/(M~S.)/(M~.s)/(M~.S)/(M~.r)/(M~.R)/(M~.g)/(M~.G)/(M~.m)/(M~.M)/(M~.p)/(M~.P)/(M~.d)/(M~.D)/(M~.n)/(M~.N)/(M~.S)/(M~s.)/(M~S.)/(M~r.)/(M~R.)/(M~g.)/(M~G.)/(M~m.)/(M~M.)/(M~p.)/(M~P.)/(M~d.)/(M~D.)/(M~n.)/(M~N.)/(M~S.)/(p~s)/(p~S)/(p~r)/(p~R)/(p~g)/(p~G)/(p~m)/(p~M)/(p~p)/(p~P)/(p~d)/(p~D)/(p~n)/(p~N)/(p~S.)/(p~.s)/(p~.S)/(p~.r)/(p~.R)/(p~.g)/(p~.G)/(p~.m)/(p~.M)/(p~.p)/(p~.P)/(p~.d)/(p~.D)/(p~.n)/(p~.N)/(p~.S)/(p~s.)/(p~S.)/(p~r.)/(p~R.)/(p~g.)/(p~G.)/(p~m.)/(p~M.)/(p~p.)/(p~P.)/(p~d.)/(p~D.)/(p~n.)/(p~N.)/(p~S.)/(P~s)/(P~S)/(P~r)/(P~R)/(P~g)/(P~G)/(P~m)/(P~M)/(P~p)/(P~P)/(P~d)/(P~D)/(P~n)/(P~N)/(P~S.)/(P~.s)/(P~.S)/(P~.r)/(P~.R)/(P~.g)/(P~.G)/(P~.m)/(P~.M)/(P~.p)/(P~.P)/(P~.d)/(P~.D)/(P~.n)/(P~.N)/(P~.S)/(P~s.)/(P~S.)/(P~r.)/(P~R.)/(P~g.)/(P~G.)/(P~m.)/(P~M.)/(P~p.)/(P~P.)/(P~d.)/(P~D.)/(P~n.)/(P~N.)/(P~S.)/(d~s)/(d~S)/(d~r)/(d~R)/(d~g)/(d~G)/(d~m)/(d~M)/(d~p)/(d~P)/(d~d)/(d~D)/(d~n)/(d~N)/(d~S.)/(d~.s)/(d~.S)/(d~.r)/(d~.R)/(d~.g)/(d~.G)/(d~.m)/(d~.M)/(d~.p)/(d~.P)/(d~.d)/(d~.D)/(d~.n)/(d~.N)/(d~.S)/(d~s.)/(d~S.)/(d~r.)/(d~R.)/(d~g.)/(d~G.)/(d~m.)/(d~M.)/(d~p.)/(d~P.)/(d~d.)/(d~D.)/(d~n.)/(d~N.)/(d~S.)/(D~s)/(D~S)/(D~r)/(D~R)/(D~g)/(D~G)/(D~m)/(D~M)/(D~p)/(D~P)/(D~d)/(D~D)/(D~n)/(D~N)/(D~S.)/(D~.s)/(D~.S)/(D~.r)/(D~.R)/(D~.g)/(D~.G)/(D~.m)/(D~.M)/(D~.p)/(D~.P)/(D~.d)/(D~.D)/(D~.n)/(D~.N)/(D~.S)/(D~s.)/(D~S.)/(D~r.)/(D~R.)/(D~g.)/(D~G.)/(D~m.)/(D~M.)/(D~p.)/(D~P.)/(D~d.)/(D~D.)/(D~n.)/(D~N.)/(D~S.)/(n~s)/(n~S)/(n~r)/(n~R)/(n~g)/(n~G)/(n~m)/(n~M)/(n~p)/(n~P)/(n~d)/(n~D)/(n~n)/(n~N)/(n~S.)/(n~.s)/(n~.S)/(n~.r)/(n~.R)/(n~.g)/(n~.G)/(n~.m)/(n~.M)/(n~.p)/(n~.P)/(n~.d)/(n~.D)/(n~.n)/(n~.N)/(n~.S)/(n~s.)/(n~S.)/(n~r.)/(n~R.)/(n~g.)/(n~G.)/(n~m.)/(n~M.)/(n~p.)/(n~P.)/(n~d.)/(n~D.)/(n~n.)/(n~N.)/(n~S.)/(N~s)/(N~S)/(N~r)/(N~R)/(N~g)/(N~G)/(N~m)/(N~M)/(N~p)/(N~P)/(N~d)/(N~D)/(N~n)/(N~N)/(N~S.)/(N~.s)/(N~.S)/(N~.r)/(N~.R)/(N~.g)/(N~.G)/(N~.m)/(N~.M)/(N~.p)/(N~.P)/(N~.d)/(N~.D)/(N~.n)/(N~.N)/(N~.S)/(N~s.)/(N~S.)/(N~r.)/(N~R.)/(N~g.)/(N~G.)/(N~m.)/(N~M.)/(N~p.)/(N~P.)/(N~d.)/(N~D.)/(N~n.)/(N~N.)/(N~S.)/(S.~s)/(S.~S)/(S.~r)/(S.~R)/(S.~g)/(S.~G)/(S.~m)/(S.~M)/(S.~p)/(S.~P)/(S.~d)/(S.~D)/(S.~n)/(S.~N)/(S.~S.)/(S.~.s)/(S.~.S)/(S.~.r)/(S.~.R)/(S.~.g)/(S.~.G)/(S.~.m)/(S.~.M)/(S.~.p)/(S.~.P)/(S.~.d)/(S.~.D)/(S.~.n)/(S.~.N)/(S.~.S)/(S.~s.)/(S.~S.)/(S.~r.)/(S.~R.)/(S.~g.)/(S.~G.)/(S.~m.)/(S.~M.)/(S.~p.)/(S.~P.)/(S.~d.)/(S.~D.)/(S.~n.)/(S.~N.)/(S.~S.)/(.s~s)/(.s~S)/(.s~r)/(.s~R)/(.s~g)/(.s~G)/(.s~m)/(.s~M)/(.s~p)/(.s~P)/(.s~d)/(.s~D)/(.s~n)/(.s~N)/(.s~S.)/(.s~.s)/(.s~.S)/(.s~.r)/(.s~.R)/(.s~.g)/(.s~.G)/(.s~.m)/(.s~.M)/(.s~.p)/(.s~.P)/(.s~.d)/(.s~.D)/(.s~.n)/(.s~.N)/(.s~.S)/(.s~s.)/(.s~S.)/(.s~r.)/(.s~R.)/(.s~g.)/(.s~G.)/(.s~m.)/(.s~M.)/(.s~p.)/(.s~P.)/(.s~d.)/(.s~D.)/(.s~n.)/(.s~N.)/(.s~S.)/(.S~s)/(.S~S)/(.S~r)/(.S~R)/(.S~g)/(.S~G)/(.S~m)/(.S~M)/(.S~p)/(.S~P)/(.S~d)/(.S~D)/(.S~n)/(.S~N)/(.S~S.)/(.S~.s)/(.S~.S)/(.S~.r)/(.S~.R)/(.S~.g)/(.S~.G)/(.S~.m)/(.S~.M)/(.S~.p)/(.S~.P)/(.S~.d)/(.S~.D)/(.S~.n)/(.S~.N)/(.S~.S)/(.S~s.)/(.S~S.)/(.S~r.)/(.S~R.)/(.S~g.)/(.S~G.)/(.S~m.)/(.S~M.)/(.S~p.)/(.S~P.)/(.S~d.)/(.S~D.)/(.S~n.)/(.S~N.)/(.S~S.)/(.r~s)/(.r~S)/(.r~r)/(.r~R)/(.r~g)/(.r~G)/(.r~m)/(.r~M)/(.r~p)/(.r~P)/(.r~d)/(.r~D)/(.r~n)/(.r~N)/(.r~S.)/(.r~.s)/(.r~.S)/(.r~.r)/(.r~.R)/(.r~.g)/(.r~.G)/(.r~.m)/(.r~.M)/(.r~.p)/(.r~.P)/(.r~.d)/(.r~.D)/(.r~.n)/(.r~.N)/(.r~.S)/(.r~s.)/(.r~S.)/(.r~r.)/(.r~R.)/(.r~g.)/(.r~G.)/(.r~m.)/(.r~M.)/(.r~p.)/(.r~P.)/(.r~d.)/(.r~D.)/(.r~n.)/(.r~N.)/(.r~S.)/(.R~s)/(.R~S)/(.R~r)/(.R~R)/(.R~g)/(.R~G)/(.R~m)/(.R~M)/(.R~p)/(.R~P)/(.R~d)/(.R~D)/(.R~n)/(.R~N)/(.R~S.)/(.R~.s)/(.R~.S)/(.R~.r)/(.R~.R)/(.R~.g)/(.R~.G)/(.R~.m)/(.R~.M)/(.R~.p)/(.R~.P)/(.R~.d)/(.R~.D)/(.R~.n)/(.R~.N)/(.R~.S)/(.R~s.)/(.R~S.)/(.R~r.)/(.R~R.)/(.R~g.)/(.R~G.)/(.R~m.)/(.R~M.)/(.R~p.)/(.R~P.)/(.R~d.)/(.R~D.)/(.R~n.)/(.R~N.)/(.R~S.)/(.g~s)/(.g~S)/(.g~r)/(.g~R)/(.g~g)/(.g~G)/(.g~m)/(.g~M)/(.g~p)/(.g~P)/(.g~d)/(.g~D)/(.g~n)/(.g~N)/(.g~S.)/(.g~.s)/(.g~.S)/(.g~.r)/(.g~.R)/(.g~.g)/(.g~.G)/(.g~.m)/(.g~.M)/(.g~.p)/(.g~.P)/(.g~.d)/(.g~.D)/(.g~.n)/(.g~.N)/(.g~.S)/(.g~s.)/(.g~S.)/(.g~r.)/(.g~R.)/(.g~g.)/(.g~G.)/(.g~m.)/(.g~M.)/(.g~p.)/(.g~P.)/(.g~d.)/(.g~D.)/(.g~n.)/(.g~N.)/(.g~S.)/(.G~s)/(.G~S)/(.G~r)/(.G~R)/(.G~g)/(.G~G)/(.G~m)/(.G~M)/(.G~p)/(.G~P)/(.G~d)/(.G~D)/(.G~n)/(.G~N)/(.G~S.)/(.G~.s)/(.G~.S)/(.G~.r)/(.G~.R)/(.G~.g)/(.G~.G)/(.G~.m)/(.G~.M)/(.G~.p)/(.G~.P)/(.G~.d)/(.G~.D)/(.G~.n)/(.G~.N)/(.G~.S)/(.G~s.)/(.G~S.)/(.G~r.)/(.G~R.)/(.G~g.)/(.G~G.)/(.G~m.)/(.G~M.)/(.G~p.)/(.G~P.)/(.G~d.)/(.G~D.)/(.G~n.)/(.G~N.)/(.G~S.)/(.m~s)/(.m~S)/(.m~r)/(.m~R)/(.m~g)/(.m~G)/(.m~m)/(.m~M)/(.m~p)/(.m~P)/(.m~d)/(.m~D)/(.m~n)/(.m~N)/(.m~S.)/(.m~.s)/(.m~.S)/(.m~.r)/(.m~.R)/(.m~.g)/(.m~.G)/(.m~.m)/(.m~.M)/(.m~.p)/(.m~.P)/(.m~.d)/(.m~.D)/(.m~.n)/(.m~.N)/(.m~.S)/(.m~s.)/(.m~S.)/(.m~r.)/(.m~R.)/(.m~g.)/(.m~G.)/(.m~m.)/(.m~M.)/(.m~p.)/(.m~P.)/(.m~d.)/(.m~D.)/(.m~n.)/(.m~N.)/(.m~S.)/(.M~s)/(.M~S)/(.M~r)/(.M~R)/(.M~g)/(.M~G)/(.M~m)/(.M~M)/(.M~p)/(.M~P)/(.M~d)/(.M~D)/(.M~n)/(.M~N)/(.M~S.)/(.M~.s)/(.M~.S)/(.M~.r)/(.M~.R)/(.M~.g)/(.M~.G)/(.M~.m)/(.M~.M)/(.M~.p)/(.M~.P)/(.M~.d)/(.M~.D)/(.M~.n)/(.M~.N)/(.M~.S)/(.M~s.)/(.M~S.)/(.M~r.)/(.M~R.)/(.M~g.)/(.M~G.)/(.M~m.)/(.M~M.)/(.M~p.)/(.M~P.)/(.M~d.)/(.M~D.)/(.M~n.)/(.M~N.)/(.M~S.)/(.p~s)/(.p~S)/(.p~r)/(.p~R)/(.p~g)/(.p~G)/(.p~m)/(.p~M)/(.p~p)/(.p~P)/(.p~d)/(.p~D)/(.p~n)/(.p~N)/(.p~S.)/(.p~.s)/(.p~.S)/(.p~.r)/(.p~.R)/(.p~.g)/(.p~.G)/(.p~.m)/(.p~.M)/(.p~.p)/(.p~.P)/(.p~.d)/(.p~.D)/(.p~.n)/(.p~.N)/(.p~.S)/(.p~s.)/(.p~S.)/(.p~r.)/(.p~R.)/(.p~g.)/(.p~G.)/(.p~m.)/(.p~M.)/(.p~p.)/(.p~P.)/(.p~d.)/(.p~D.)/(.p~n.)/(.p~N.)/(.p~S.)/(.P~s)/(.P~S)/(.P~r)/(.P~R)/(.P~g)/(.P~G)/(.P~m)/(.P~M)/(.P~p)/(.P~P)/(.P~d)/(.P~D)/(.P~n)/(.P~N)/(.P~S.)/(.P~.s)/(.P~.S)/(.P~.r)/(.P~.R)/(.P~.g)/(.P~.G)/(.P~.m)/(.P~.M)/(.P~.p)/(.P~.P)/(.P~.d)/(.P~.D)/(.P~.n)/(.P~.N)/(.P~.S)/(.P~s.)/(.P~S.)/(.P~r.)/(.P~R.)/(.P~g.)/(.P~G.)/(.P~m.)/(.P~M.)/(.P~p.)/(.P~P.)/(.P~d.)/(.P~D.)/(.P~n.)/(.P~N.)/(.P~S.)/(.d~s)/(.d~S)/(.d~r)/(.d~R)/(.d~g)/(.d~G)/(.d~m)/(.d~M)/(.d~p)/(.d~P)/(.d~d)/(.d~D)/(.d~n)/(.d~N)/(.d~S.)/(.d~.s)/(.d~.S)/(.d~.r)/(.d~.R)/(.d~.g)/(.d~.G)/(.d~.m)/(.d~.M)/(.d~.p)/(.d~.P)/(.d~.d)/(.d~.D)/(.d~.n)/(.d~.N)/(.d~.S)/(.d~s.)/(.d~S.)/(.d~r.)/(.d~R.)/(.d~g.)/(.d~G.)/(.d~m.)/(.d~M.)/(.d~p.)/(.d~P.)/(.d~d.)/(.d~D.)/(.d~n.)/(.d~N.)/(.d~S.)/(.D~s)/(.D~S)/(.D~r)/(.D~R)/(.D~g)/(.D~G)/(.D~m)/(.D~M)/(.D~p)/(.D~P)/(.D~d)/(.D~D)/(.D~n)/(.D~N)/(.D~S.)/(.D~.s)/(.D~.S)/(.D~.r)/(.D~.R)/(.D~.g)/(.D~.G)/(.D~.m)/(.D~.M)/(.D~.p)/(.D~.P)/(.D~.d)/(.D~.D)/(.D~.n)/(.D~.N)/(.D~.S)/(.D~s.)/(.D~S.)/(.D~r.)/(.D~R.)/(.D~g.)/(.D~G.)/(.D~m.)/(.D~M.)/(.D~p.)/(.D~P.)/(.D~d.)/(.D~D.)/(.D~n.)/(.D~N.)/(.D~S.)/(.n~s)/(.n~S)/(.n~r)/(.n~R)/(.n~g)/(.n~G)/(.n~m)/(.n~M)/(.n~p)/(.n~P)/(.n~d)/(.n~D)/(.n~n)/(.n~N)/(.n~S.)/(.n~.s)/(.n~.S)/(.n~.r)/(.n~.R)/(.n~.g)/(.n~.G)/(.n~.m)/(.n~.M)/(.n~.p)/(.n~.P)/(.n~.d)/(.n~.D)/(.n~.n)/(.n~.N)/(.n~.S)/(.n~s.)/(.n~S.)/(.n~r.)/(.n~R.)/(.n~g.)/(.n~G.)/(.n~m.)/(.n~M.)/(.n~p.)/(.n~P.)/(.n~d.)/(.n~D.)/(.n~n.)/(.n~N.)/(.n~S.)/(.N~s)/(.N~S)/(.N~r)/(.N~R)/(.N~g)/(.N~G)/(.N~m)/(.N~M)/(.N~p)/(.N~P)/(.N~d)/(.N~D)/(.N~n)/(.N~N)/(.N~S.)/(.N~.s)/(.N~.S)/(.N~.r)/(.N~.R)/(.N~.g)/(.N~.G)/(.N~.m)/(.N~.M)/(.N~.p)/(.N~.P)/(.N~.d)/(.N~.D)/(.N~.n)/(.N~.N)/(.N~.S)/(.N~s.)/(.N~S.)/(.N~r.)/(.N~R.)/(.N~g.)/(.N~G.)/(.N~m.)/(.N~M.)/(.N~p.)/(.N~P.)/(.N~d.)/(.N~D.)/(.N~n.)/(.N~N.)/(.N~S.)/(.S~s)/(.S~S)/(.S~r)/(.S~R)/(.S~g)/(.S~G)/(.S~m)/(.S~M)/(.S~p)/(.S~P)/(.S~d)/(.S~D)/(.S~n)/(.S~N)/(.S~S.)/(.S~.s)/(.S~.S)/(.S~.r)/(.S~.R)/(.S~.g)/(.S~.G)/(.S~.m)/(.S~.M)/(.S~.p)/(.S~.P)/(.S~.d)/(.S~.D)/(.S~.n)/(.S~.N)/(.S~.S)/(.S~s.)/(.S~S.)/(.S~r.)/(.S~R.)/(.S~g.)/(.S~G.)/(.S~m.)/(.S~M.)/(.S~p.)/(.S~P.)/(.S~d.)/(.S~D.)/(.S~n.)/(.S~N.)/(.S~S.)/(s.~s)/(s.~S)/(s.~r)/(s.~R)/(s.~g)/(s.~G)/(s.~m)/(s.~M)/(s.~p)/(s.~P)/(s.~d)/(s.~D)/(s.~n)/(s.~N)/(s.~S.)/(s.~.s)/(s.~.S)/(s.~.r)/(s.~.R)/(s.~.g)/(s.~.G)/(s.~.m)/(s.~.M)/(s.~.p)/(s.~.P)/(s.~.d)/(s.~.D)/(s.~.n)/(s.~.N)/(s.~.S)/(s.~s.)/(s.~S.)/(s.~r.)/(s.~R.)/(s.~g.)/(s.~G.)/(s.~m.)/(s.~M.)/(s.~p.)/(s.~P.)/(s.~d.)/(s.~D.)/(s.~n.)/(s.~N.)/(s.~S.)/(S.~s)/(S.~S)/(S.~r)/(S.~R)/(S.~g)/(S.~G)/(S.~m)/(S.~M)/(S.~p)/(S.~P)/(S.~d)/(S.~D)/(S.~n)/(S.~N)/(S.~S.)/(S.~.s)/(S.~.S)/(S.~.r)/(S.~.R)/(S.~.g)/(S.~.G)/(S.~.m)/(S.~.M)/(S.~.p)/(S.~.P)/(S.~.d)/(S.~.D)/(S.~.n)/(S.~.N)/(S.~.S)/(S.~s.)/(S.~S.)/(S.~r.)/(S.~R.)/(S.~g.)/(S.~G.)/(S.~m.)/(S.~M.)/(S.~p.)/(S.~P.)/(S.~d.)/(S.~D.)/(S.~n.)/(S.~N.)/(S.~S.)/(r.~s)/(r.~S)/(r.~r)/(r.~R)/(r.~g)/(r.~G)/(r.~m)/(r.~M)/(r.~p)/(r.~P)/(r.~d)/(r.~D)/(r.~n)/(r.~N)/(r.~S.)/(r.~.s)/(r.~.S)/(r.~.r)/(r.~.R)/(r.~.g)/(r.~.G)/(r.~.m)/(r.~.M)/(r.~.p)/(r.~.P)/(r.~.d)/(r.~.D)/(r.~.n)/(r.~.N)/(r.~.S)/(r.~s.)/(r.~S.)/(r.~r.)/(r.~R.)/(r.~g.)/(r.~G.)/(r.~m.)/(r.~M.)/(r.~p.)/(r.~P.)/(r.~d.)/(r.~D.)/(r.~n.)/(r.~N.)/(r.~S.)/(R.~s)/(R.~S)/(R.~r)/(R.~R)/(R.~g)/(R.~G)/(R.~m)/(R.~M)/(R.~p)/(R.~P)/(R.~d)/(R.~D)/(R.~n)/(R.~N)/(R.~S.)/(R.~.s)/(R.~.S)/(R.~.r)/(R.~.R)/(R.~.g)/(R.~.G)/(R.~.m)/(R.~.M)/(R.~.p)/(R.~.P)/(R.~.d)/(R.~.D)/(R.~.n)/(R.~.N)/(R.~.S)/(R.~s.)/(R.~S.)/(R.~r.)/(R.~R.)/(R.~g.)/(R.~G.)/(R.~m.)/(R.~M.)/(R.~p.)/(R.~P.)/(R.~d.)/(R.~D.)/(R.~n.)/(R.~N.)/(R.~S.)/(g.~s)/(g.~S)/(g.~r)/(g.~R)/(g.~g)/(g.~G)/(g.~m)/(g.~M)/(g.~p)/(g.~P)/(g.~d)/(g.~D)/(g.~n)/(g.~N)/(g.~S.)/(g.~.s)/(g.~.S)/(g.~.r)/(g.~.R)/(g.~.g)/(g.~.G)/(g.~.m)/(g.~.M)/(g.~.p)/(g.~.P)/(g.~.d)/(g.~.D)/(g.~.n)/(g.~.N)/(g.~.S)/(g.~s.)/(g.~S.)/(g.~r.)/(g.~R.)/(g.~g.)/(g.~G.)/(g.~m.)/(g.~M.)/(g.~p.)/(g.~P.)/(g.~d.)/(g.~D.)/(g.~n.)/(g.~N.)/(g.~S.)/(G.~s)/(G.~S)/(G.~r)/(G.~R)/(G.~g)/(G.~G)/(G.~m)/(G.~M)/(G.~p)/(G.~P)/(G.~d)/(G.~D)/(G.~n)/(G.~N)/(G.~S.)/(G.~.s)/(G.~.S)/(G.~.r)/(G.~.R)/(G.~.g)/(G.~.G)/(G.~.m)/(G.~.M)/(G.~.p)/(G.~.P)/(G.~.d)/(G.~.D)/(G.~.n)/(G.~.N)/(G.~.S)/(G.~s.)/(G.~S.)/(G.~r.)/(G.~R.)/(G.~g.)/(G.~G.)/(G.~m.)/(G.~M.)/(G.~p.)/(G.~P.)/(G.~d.)/(G.~D.)/(G.~n.)/(G.~N.)/(G.~S.)/(m.~s)/(m.~S)/(m.~r)/(m.~R)/(m.~g)/(m.~G)/(m.~m)/(m.~M)/(m.~p)/(m.~P)/(m.~d)/(m.~D)/(m.~n)/(m.~N)/(m.~S.)/(m.~.s)/(m.~.S)/(m.~.r)/(m.~.R)/(m.~.g)/(m.~.G)/(m.~.m)/(m.~.M)/(m.~.p)/(m.~.P)/(m.~.d)/(m.~.D)/(m.~.n)/(m.~.N)/(m.~.S)/(m.~s.)/(m.~S.)/(m.~r.)/(m.~R.)/(m.~g.)/(m.~G.)/(m.~m.)/(m.~M.)/(m.~p.)/(m.~P.)/(m.~d.)/(m.~D.)/(m.~n.)/(m.~N.)/(m.~S.)/(M.~s)/(M.~S)/(M.~r)/(M.~R)/(M.~g)/(M.~G)/(M.~m)/(M.~M)/(M.~p)/(M.~P)/(M.~d)/(M.~D)/(M.~n)/(M.~N)/(M.~S.)/(M.~.s)/(M.~.S)/(M.~.r)/(M.~.R)/(M.~.g)/(M.~.G)/(M.~.m)/(M.~.M)/(M.~.p)/(M.~.P)/(M.~.d)/(M.~.D)/(M.~.n)/(M.~.N)/(M.~.S)/(M.~s.)/(M.~S.)/(M.~r.)/(M.~R.)/(M.~g.)/(M.~G.)/(M.~m.)/(M.~M.)/(M.~p.)/(M.~P.)/(M.~d.)/(M.~D.)/(M.~n.)/(M.~N.)/(M.~S.)/(p.~s)/(p.~S)/(p.~r)/(p.~R)/(p.~g)/(p.~G)/(p.~m)/(p.~M)/(p.~p)/(p.~P)/(p.~d)/(p.~D)/(p.~n)/(p.~N)/(p.~S.)/(p.~.s)/(p.~.S)/(p.~.r)/(p.~.R)/(p.~.g)/(p.~.G)/(p.~.m)/(p.~.M)/(p.~.p)/(p.~.P)/(p.~.d)/(p.~.D)/(p.~.n)/(p.~.N)/(p.~.S)/(p.~s.)/(p.~S.)/(p.~r.)/(p.~R.)/(p.~g.)/(p.~G.)/(p.~m.)/(p.~M.)/(p.~p.)/(p.~P.)/(p.~d.)/(p.~D.)/(p.~n.)/(p.~N.)/(p.~S.)/(P.~s)/(P.~S)/(P.~r)/(P.~R)/(P.~g)/(P.~G)/(P.~m)/(P.~M)/(P.~p)/(P.~P)/(P.~d)/(P.~D)/(P.~n)/(P.~N)/(P.~S.)/(P.~.s)/(P.~.S)/(P.~.r)/(P.~.R)/(P.~.g)/(P.~.G)/(P.~.m)/(P.~.M)/(P.~.p)/(P.~.P)/(P.~.d)/(P.~.D)/(P.~.n)/(P.~.N)/(P.~.S)/(P.~s.)/(P.~S.)/(P.~r.)/(P.~R.)/(P.~g.)/(P.~G.)/(P.~m.)/(P.~M.)/(P.~p.)/(P.~P.)/(P.~d.)/(P.~D.)/(P.~n.)/(P.~N.)/(P.~S.)/(d.~s)/(d.~S)/(d.~r)/(d.~R)/(d.~g)/(d.~G)/(d.~m)/(d.~M)/(d.~p)/(d.~P)/(d.~d)/(d.~D)/(d.~n)/(d.~N)/(d.~S.)/(d.~.s)/(d.~.S)/(d.~.r)/(d.~.R)/(d.~.g)/(d.~.G)/(d.~.m)/(d.~.M)/(d.~.p)/(d.~.P)/(d.~.d)/(d.~.D)/(d.~.n)/(d.~.N)/(d.~.S)/(d.~s.)/(d.~S.)/(d.~r.)/(d.~R.)/(d.~g.)/(d.~G.)/(d.~m.)/(d.~M.)/(d.~p.)/(d.~P.)/(d.~d.)/(d.~D.)/(d.~n.)/(d.~N.)/(d.~S.)/(D.~s)/(D.~S)/(D.~r)/(D.~R)/(D.~g)/(D.~G)/(D.~m)/(D.~M)/(D.~p)/(D.~P)/(D.~d)/(D.~D)/(D.~n)/(D.~N)/(D.~S.)/(D.~.s)/(D.~.S)/(D.~.r)/(D.~.R)/(D.~.g)/(D.~.G)/(D.~.m)/(D.~.M)/(D.~.p)/(D.~.P)/(D.~.d)/(D.~.D)/(D.~.n)/(D.~.N)/(D.~.S)/(D.~s.)/(D.~S.)/(D.~r.)/(D.~R.)/(D.~g.)/(D.~G.)/(D.~m.)/(D.~M.)/(D.~p.)/(D.~P.)/(D.~d.)/(D.~D.)/(D.~n.)/(D.~N.)/(D.~S.)/(n.~s)/(n.~S)/(n.~r)/(n.~R)/(n.~g)/(n.~G)/(n.~m)/(n.~M)/(n.~p)/(n.~P)/(n.~d)/(n.~D)/(n.~n)/(n.~N)/(n.~S.)/(n.~.s)/(n.~.S)/(n.~.r)/(n.~.R)/(n.~.g)/(n.~.G)/(n.~.m)/(n.~.M)/(n.~.p)/(n.~.P)/(n.~.d)/(n.~.D)/(n.~.n)/(n.~.N)/(n.~.S)/(n.~s.)/(n.~S.)/(n.~r.)/(n.~R.)/(n.~g.)/(n.~G.)/(n.~m.)/(n.~M.)/(n.~p.)/(n.~P.)/(n.~d.)/(n.~D.)/(n.~n.)/(n.~N.)/(n.~S.)/(N.~s)/(N.~S)/(N.~r)/(N.~R)/(N.~g)/(N.~G)/(N.~m)/(N.~M)/(N.~p)/(N.~P)/(N.~d)/(N.~D)/(N.~n)/(N.~N)/(N.~S.)/(N.~.s)/(N.~.S)/(N.~.r)/(N.~.R)/(N.~.g)/(N.~.G)/(N.~.m)/(N.~.M)/(N.~.p)/(N.~.P)/(N.~.d)/(N.~.D)/(N.~.n)/(N.~.N)/(N.~.S)/(N.~s.)/(N.~S.)/(N.~r.)/(N.~R.)/(N.~g.)/(N.~G.)/(N.~m.)/(N.~M.)/(N.~p.)/(N.~P.)/(N.~d.)/(N.~D.)/(N.~n.)/(N.~N.)/(N.~S.)/(S.~s)/(S.~S)/(S.~r)/(S.~R)/(S.~g)/(S.~G)/(S.~m)/(S.~M)/(S.~p)/(S.~P)/(S.~d)/(S.~D)/(S.~n)/(S.~N)/(S.~S.)/(S.~.s)/(S.~.S)/(S.~.r)/(S.~.R)/(S.~.g)/(S.~.G)/(S.~.m)/(S.~.M)/(S.~.p)/(S.~.P)/(S.~.d)/(S.~.D)/(S.~.n)/(S.~.N)/(S.~.S)/(S.~s.)/(S.~S.)/(S.~r.)/(S.~R.)/(S.~g.)/(S.~G.)/(S.~m.)/(S.~M.)/(S.~p.)/(S.~P.)/(S.~d.)/(S.~D.)/(S.~n.)/(S.~N.)/(S.~S.)";
string replacedwith = " ( s~s ) / ( s~S ) / ( s~r ) / ( s~R ) / ( s~g ) / ( s~G ) / ( s~m ) / ( s~M ) / ( s~p ) / ( s~P ) / ( s~d ) / ( s~D ) / ( s~n ) / ( s~N ) / ( s~S. ) / ( s~.s ) / ( s~.S ) / ( s~.r ) / ( s~.R ) / ( s~.g ) / ( s~.G ) / ( s~.m ) / ( s~.M ) / ( s~.p ) / ( s~.P ) / ( s~.d ) / ( s~.D ) / ( s~.n ) / ( s~.N ) / ( s~.S ) / ( s~s. ) / ( s~S. ) / ( s~r. ) / ( s~R. ) / ( s~g. ) / ( s~G. ) / ( s~m. ) / ( s~M. ) / ( s~p. ) / ( s~P. ) / ( s~d. ) / ( s~D. ) / ( s~n. ) / ( s~N. ) / ( s~S. ) / ( S~s ) / ( S~S ) / ( S~r ) / ( S~R ) / ( S~g ) / ( S~G ) / ( S~m ) / ( S~M ) / ( S~p ) / ( S~P ) / ( S~d ) / ( S~D ) / ( S~n ) / ( S~N ) / ( S~S. ) / ( S~.s ) / ( S~.S ) / ( S~.r ) / ( S~.R ) / ( S~.g ) / ( S~.G ) / ( S~.m ) / ( S~.M ) / ( S~.p ) / ( S~.P ) / ( S~.d ) / ( S~.D ) / ( S~.n ) / ( S~.N ) / ( S~.S ) / ( S~s. ) / ( S~S. ) / ( S~r. ) / ( S~R. ) / ( S~g. ) / ( S~G. ) / ( S~m. ) / ( S~M. ) / ( S~p. ) / ( S~P. ) / ( S~d. ) / ( S~D. ) / ( S~n. ) / ( S~N. ) / ( S~S. ) / ( r~s ) / ( r~S ) / ( r~r ) / ( r~R ) / ( r~g ) / ( r~G ) / ( r~m ) / ( r~M ) / ( r~p ) / ( r~P ) / ( r~d ) / ( r~D ) / ( r~n ) / ( r~N ) / ( r~S. ) / ( r~.s ) / ( r~.S ) / ( r~.r ) / ( r~.R ) / ( r~.g ) / ( r~.G ) / ( r~.m ) / ( r~.M ) / ( r~.p ) / ( r~.P ) / ( r~.d ) / ( r~.D ) / ( r~.n ) / ( r~.N ) / ( r~.S ) / ( r~s. ) / ( r~S. ) / ( r~r. ) / ( r~R. ) / ( r~g. ) / ( r~G. ) / ( r~m. ) / ( r~M. ) / ( r~p. ) / ( r~P. ) / ( r~d. ) / ( r~D. ) / ( r~n. ) / ( r~N. ) / ( r~S. ) / ( R~s ) / ( R~S ) / ( R~r ) / ( R~R ) / ( R~g ) / ( R~G ) / ( R~m ) / ( R~M ) / ( R~p ) / ( R~P ) / ( R~d ) / ( R~D ) / ( R~n ) / ( R~N ) / ( R~S. ) / ( R~.s ) / ( R~.S ) / ( R~.r ) / ( R~.R ) / ( R~.g ) / ( R~.G ) / ( R~.m ) / ( R~.M ) / ( R~.p ) / ( R~.P ) / ( R~.d ) / ( R~.D ) / ( R~.n ) / ( R~.N ) / ( R~.S ) / ( R~s. ) / ( R~S. ) / ( R~r. ) / ( R~R. ) / ( R~g. ) / ( R~G. ) / ( R~m. ) / ( R~M. ) / ( R~p. ) / ( R~P. ) / ( R~d. ) / ( R~D. ) / ( R~n. ) / ( R~N. ) / ( R~S. ) / ( g~s ) / ( g~S ) / ( g~r ) / ( g~R ) / ( g~g ) / ( g~G ) / ( g~m ) / ( g~M ) / ( g~p ) / ( g~P ) / ( g~d ) / ( g~D ) / ( g~n ) / ( g~N ) / ( g~S. ) / ( g~.s ) / ( g~.S ) / ( g~.r ) / ( g~.R ) / ( g~.g ) / ( g~.G ) / ( g~.m ) / ( g~.M ) / ( g~.p ) / ( g~.P ) / ( g~.d ) / ( g~.D ) / ( g~.n ) / ( g~.N ) / ( g~.S ) / ( g~s. ) / ( g~S. ) / ( g~r. ) / ( g~R. ) / ( g~g. ) / ( g~G. ) / ( g~m. ) / ( g~M. ) / ( g~p. ) / ( g~P. ) / ( g~d. ) / ( g~D. ) / ( g~n. ) / ( g~N. ) / ( g~S. ) / ( G~s ) / ( G~S ) / ( G~r ) / ( G~R ) / ( G~g ) / ( G~G ) / ( G~m ) / ( G~M ) / ( G~p ) / ( G~P ) / ( G~d ) / ( G~D ) / ( G~n ) / ( G~N ) / ( G~S. ) / ( G~.s ) / ( G~.S ) / ( G~.r ) / ( G~.R ) / ( G~.g ) / ( G~.G ) / ( G~.m ) / ( G~.M ) / ( G~.p ) / ( G~.P ) / ( G~.d ) / ( G~.D ) / ( G~.n ) / ( G~.N ) / ( G~.S ) / ( G~s. ) / ( G~S. ) / ( G~r. ) / ( G~R. ) / ( G~g. ) / ( G~G. ) / ( G~m. ) / ( G~M. ) / ( G~p. ) / ( G~P. ) / ( G~d. ) / ( G~D. ) / ( G~n. ) / ( G~N. ) / ( G~S. ) / ( m~s ) / ( m~S ) / ( m~r ) / ( m~R ) / ( m~g ) / ( m~G ) / ( m~m ) / ( m~M ) / ( m~p ) / ( m~P ) / ( m~d ) / ( m~D ) / ( m~n ) / ( m~N ) / ( m~S. ) / ( m~.s ) / ( m~.S ) / ( m~.r ) / ( m~.R ) / ( m~.g ) / ( m~.G ) / ( m~.m ) / ( m~.M ) / ( m~.p ) / ( m~.P ) / ( m~.d ) / ( m~.D ) / ( m~.n ) / ( m~.N ) / ( m~.S ) / ( m~s. ) / ( m~S. ) / ( m~r. ) / ( m~R. ) / ( m~g. ) / ( m~G. ) / ( m~m. ) / ( m~M. ) / ( m~p. ) / ( m~P. ) / ( m~d. ) / ( m~D. ) / ( m~n. ) / ( m~N. ) / ( m~S. ) / ( M~s ) / ( M~S ) / ( M~r ) / ( M~R ) / ( M~g ) / ( M~G ) / ( M~m ) / ( M~M ) / ( M~p ) / ( M~P ) / ( M~d ) / ( M~D ) / ( M~n ) / ( M~N ) / ( M~S. ) / ( M~.s ) / ( M~.S ) / ( M~.r ) / ( M~.R ) / ( M~.g ) / ( M~.G ) / ( M~.m ) / ( M~.M ) / ( M~.p ) / ( M~.P ) / ( M~.d ) / ( M~.D ) / ( M~.n ) / ( M~.N ) / ( M~.S ) / ( M~s. ) / ( M~S. ) / ( M~r. ) / ( M~R. ) / ( M~g. ) / ( M~G. ) / ( M~m. ) / ( M~M. ) / ( M~p. ) / ( M~P. ) / ( M~d. ) / ( M~D. ) / ( M~n. ) / ( M~N. ) / ( M~S. ) / ( p~s ) / ( p~S ) / ( p~r ) / ( p~R ) / ( p~g ) / ( p~G ) / ( p~m ) / ( p~M ) / ( p~p ) / ( p~P ) / ( p~d ) / ( p~D ) / ( p~n ) / ( p~N ) / ( p~S. ) / ( p~.s ) / ( p~.S ) / ( p~.r ) / ( p~.R ) / ( p~.g ) / ( p~.G ) / ( p~.m ) / ( p~.M ) / ( p~.p ) / ( p~.P ) / ( p~.d ) / ( p~.D ) / ( p~.n ) / ( p~.N ) / ( p~.S ) / ( p~s. ) / ( p~S. ) / ( p~r. ) / ( p~R. ) / ( p~g. ) / ( p~G. ) / ( p~m. ) / ( p~M. ) / ( p~p. ) / ( p~P. ) / ( p~d. ) / ( p~D. ) / ( p~n. ) / ( p~N. ) / ( p~S. ) / ( P~s ) / ( P~S ) / ( P~r ) / ( P~R ) / ( P~g ) / ( P~G ) / ( P~m ) / ( P~M ) / ( P~p ) / ( P~P ) / ( P~d ) / ( P~D ) / ( P~n ) / ( P~N ) / ( P~S. ) / ( P~.s ) / ( P~.S ) / ( P~.r ) / ( P~.R ) / ( P~.g ) / ( P~.G ) / ( P~.m ) / ( P~.M ) / ( P~.p ) / ( P~.P ) / ( P~.d ) / ( P~.D ) / ( P~.n ) / ( P~.N ) / ( P~.S ) / ( P~s. ) / ( P~S. ) / ( P~r. ) / ( P~R. ) / ( P~g. ) / ( P~G. ) / ( P~m. ) / ( P~M. ) / ( P~p. ) / ( P~P. ) / ( P~d. ) / ( P~D. ) / ( P~n. ) / ( P~N. ) / ( P~S. ) / ( d~s ) / ( d~S ) / ( d~r ) / ( d~R ) / ( d~g ) / ( d~G ) / ( d~m ) / ( d~M ) / ( d~p ) / ( d~P ) / ( d~d ) / ( d~D ) / ( d~n ) / ( d~N ) / ( d~S. ) / ( d~.s ) / ( d~.S ) / ( d~.r ) / ( d~.R ) / ( d~.g ) / ( d~.G ) / ( d~.m ) / ( d~.M ) / ( d~.p ) / ( d~.P ) / ( d~.d ) / ( d~.D ) / ( d~.n ) / ( d~.N ) / ( d~.S ) / ( d~s. ) / ( d~S. ) / ( d~r. ) / ( d~R. ) / ( d~g. ) / ( d~G. ) / ( d~m. ) / ( d~M. ) / ( d~p. ) / ( d~P. ) / ( d~d. ) / ( d~D. ) / ( d~n. ) / ( d~N. ) / ( d~S. ) / ( D~s ) / ( D~S ) / ( D~r ) / ( D~R ) / ( D~g ) / ( D~G ) / ( D~m ) / ( D~M ) / ( D~p ) / ( D~P ) / ( D~d ) / ( D~D ) / ( D~n ) / ( D~N ) / ( D~S. ) / ( D~.s ) / ( D~.S ) / ( D~.r ) / ( D~.R ) / ( D~.g ) / ( D~.G ) / ( D~.m ) / ( D~.M ) / ( D~.p ) / ( D~.P ) / ( D~.d ) / ( D~.D ) / ( D~.n ) / ( D~.N ) / ( D~.S ) / ( D~s. ) / ( D~S. ) / ( D~r. ) / ( D~R. ) / ( D~g. ) / ( D~G. ) / ( D~m. ) / ( D~M. ) / ( D~p. ) / ( D~P. ) / ( D~d. ) / ( D~D. ) / ( D~n. ) / ( D~N. ) / ( D~S. ) / ( n~s ) / ( n~S ) / ( n~r ) / ( n~R ) / ( n~g ) / ( n~G ) / ( n~m ) / ( n~M ) / ( n~p ) / ( n~P ) / ( n~d ) / ( n~D ) / ( n~n ) / ( n~N ) / ( n~S. ) / ( n~.s ) / ( n~.S ) / ( n~.r ) / ( n~.R ) / ( n~.g ) / ( n~.G ) / ( n~.m ) / ( n~.M ) / ( n~.p ) / ( n~.P ) / ( n~.d ) / ( n~.D ) / ( n~.n ) / ( n~.N ) / ( n~.S ) / ( n~s. ) / ( n~S. ) / ( n~r. ) / ( n~R. ) / ( n~g. ) / ( n~G. ) / ( n~m. ) / ( n~M. ) / ( n~p. ) / ( n~P. ) / ( n~d. ) / ( n~D. ) / ( n~n. ) / ( n~N. ) / ( n~S. ) / ( N~s ) / ( N~S ) / ( N~r ) / ( N~R ) / ( N~g ) / ( N~G ) / ( N~m ) / ( N~M ) / ( N~p ) / ( N~P ) / ( N~d ) / ( N~D ) / ( N~n ) / ( N~N ) / ( N~S. ) / ( N~.s ) / ( N~.S ) / ( N~.r ) / ( N~.R ) / ( N~.g ) / ( N~.G ) / ( N~.m ) / ( N~.M ) / ( N~.p ) / ( N~.P ) / ( N~.d ) / ( N~.D ) / ( N~.n ) / ( N~.N ) / ( N~.S ) / ( N~s. ) / ( N~S. ) / ( N~r. ) / ( N~R. ) / ( N~g. ) / ( N~G. ) / ( N~m. ) / ( N~M. ) / ( N~p. ) / ( N~P. ) / ( N~d. ) / ( N~D. ) / ( N~n. ) / ( N~N. ) / ( N~S. ) / ( S.~s ) / ( S.~S ) / ( S.~r ) / ( S.~R ) / ( S.~g ) / ( S.~G ) / ( S.~m ) / ( S.~M ) / ( S.~p ) / ( S.~P ) / ( S.~d ) / ( S.~D ) / ( S.~n ) / ( S.~N ) / ( S.~S. ) / ( S.~.s ) / ( S.~.S ) / ( S.~.r ) / ( S.~.R ) / ( S.~.g ) / ( S.~.G ) / ( S.~.m ) / ( S.~.M ) / ( S.~.p ) / ( S.~.P ) / ( S.~.d ) / ( S.~.D ) / ( S.~.n ) / ( S.~.N ) / ( S.~.S ) / ( S.~s. ) / ( S.~S. ) / ( S.~r. ) / ( S.~R. ) / ( S.~g. ) / ( S.~G. ) / ( S.~m. ) / ( S.~M. ) / ( S.~p. ) / ( S.~P. ) / ( S.~d. ) / ( S.~D. ) / ( S.~n. ) / ( S.~N. ) / ( S.~S. ) / ( .s~s ) / ( .s~S ) / ( .s~r ) / ( .s~R ) / ( .s~g ) / ( .s~G ) / ( .s~m ) / ( .s~M ) / ( .s~p ) / ( .s~P ) / ( .s~d ) / ( .s~D ) / ( .s~n ) / ( .s~N ) / ( .s~S. ) / ( .s~.s ) / ( .s~.S ) / ( .s~.r ) / ( .s~.R ) / ( .s~.g ) / ( .s~.G ) / ( .s~.m ) / ( .s~.M ) / ( .s~.p ) / ( .s~.P ) / ( .s~.d ) / ( .s~.D ) / ( .s~.n ) / ( .s~.N ) / ( .s~.S ) / ( .s~s. ) / ( .s~S. ) / ( .s~r. ) / ( .s~R. ) / ( .s~g. ) / ( .s~G. ) / ( .s~m. ) / ( .s~M. ) / ( .s~p. ) / ( .s~P. ) / ( .s~d. ) / ( .s~D. ) / ( .s~n. ) / ( .s~N. ) / ( .s~S. ) / ( .S~s ) / ( .S~S ) / ( .S~r ) / ( .S~R ) / ( .S~g ) / ( .S~G ) / ( .S~m ) / ( .S~M ) / ( .S~p ) / ( .S~P ) / ( .S~d ) / ( .S~D ) / ( .S~n ) / ( .S~N ) / ( .S~S. ) / ( .S~.s ) / ( .S~.S ) / ( .S~.r ) / ( .S~.R ) / ( .S~.g ) / ( .S~.G ) / ( .S~.m ) / ( .S~.M ) / ( .S~.p ) / ( .S~.P ) / ( .S~.d ) / ( .S~.D ) / ( .S~.n ) / ( .S~.N ) / ( .S~.S ) / ( .S~s. ) / ( .S~S. ) / ( .S~r. ) / ( .S~R. ) / ( .S~g. ) / ( .S~G. ) / ( .S~m. ) / ( .S~M. ) / ( .S~p. ) / ( .S~P. ) / ( .S~d. ) / ( .S~D. ) / ( .S~n. ) / ( .S~N. ) / ( .S~S. ) / ( .r~s ) / ( .r~S ) / ( .r~r ) / ( .r~R ) / ( .r~g ) / ( .r~G ) / ( .r~m ) / ( .r~M ) / ( .r~p ) / ( .r~P ) / ( .r~d ) / ( .r~D ) / ( .r~n ) / ( .r~N ) / ( .r~S. ) / ( .r~.s ) / ( .r~.S ) / ( .r~.r ) / ( .r~.R ) / ( .r~.g ) / ( .r~.G ) / ( .r~.m ) / ( .r~.M ) / ( .r~.p ) / ( .r~.P ) / ( .r~.d ) / ( .r~.D ) / ( .r~.n ) / ( .r~.N ) / ( .r~.S ) / ( .r~s. ) / ( .r~S. ) / ( .r~r. ) / ( .r~R. ) / ( .r~g. ) / ( .r~G. ) / ( .r~m. ) / ( .r~M. ) / ( .r~p. ) / ( .r~P. ) / ( .r~d. ) / ( .r~D. ) / ( .r~n. ) / ( .r~N. ) / ( .r~S. ) / ( .R~s ) / ( .R~S ) / ( .R~r ) / ( .R~R ) / ( .R~g ) / ( .R~G ) / ( .R~m ) / ( .R~M ) / ( .R~p ) / ( .R~P ) / ( .R~d ) / ( .R~D ) / ( .R~n ) / ( .R~N ) / ( .R~S. ) / ( .R~.s ) / ( .R~.S ) / ( .R~.r ) / ( .R~.R ) / ( .R~.g ) / ( .R~.G ) / ( .R~.m ) / ( .R~.M ) / ( .R~.p ) / ( .R~.P ) / ( .R~.d ) / ( .R~.D ) / ( .R~.n ) / ( .R~.N ) / ( .R~.S ) / ( .R~s. ) / ( .R~S. ) / ( .R~r. ) / ( .R~R. ) / ( .R~g. ) / ( .R~G. ) / ( .R~m. ) / ( .R~M. ) / ( .R~p. ) / ( .R~P. ) / ( .R~d. ) / ( .R~D. ) / ( .R~n. ) / ( .R~N. ) / ( .R~S. ) / ( .g~s ) / ( .g~S ) / ( .g~r ) / ( .g~R ) / ( .g~g ) / ( .g~G ) / ( .g~m ) / ( .g~M ) / ( .g~p ) / ( .g~P ) / ( .g~d ) / ( .g~D ) / ( .g~n ) / ( .g~N ) / ( .g~S. ) / ( .g~.s ) / ( .g~.S ) / ( .g~.r ) / ( .g~.R ) / ( .g~.g ) / ( .g~.G ) / ( .g~.m ) / ( .g~.M ) / ( .g~.p ) / ( .g~.P ) / ( .g~.d ) / ( .g~.D ) / ( .g~.n ) / ( .g~.N ) / ( .g~.S ) / ( .g~s. ) / ( .g~S. ) / ( .g~r. ) / ( .g~R. ) / ( .g~g. ) / ( .g~G. ) / ( .g~m. ) / ( .g~M. ) / ( .g~p. ) / ( .g~P. ) / ( .g~d. ) / ( .g~D. ) / ( .g~n. ) / ( .g~N. ) / ( .g~S. ) / ( .G~s ) / ( .G~S ) / ( .G~r ) / ( .G~R ) / ( .G~g ) / ( .G~G ) / ( .G~m ) / ( .G~M ) / ( .G~p ) / ( .G~P ) / ( .G~d ) / ( .G~D ) / ( .G~n ) / ( .G~N ) / ( .G~S. ) / ( .G~.s ) / ( .G~.S ) / ( .G~.r ) / ( .G~.R ) / ( .G~.g ) / ( .G~.G ) / ( .G~.m ) / ( .G~.M ) / ( .G~.p ) / ( .G~.P ) / ( .G~.d ) / ( .G~.D ) / ( .G~.n ) / ( .G~.N ) / ( .G~.S ) / ( .G~s. ) / ( .G~S. ) / ( .G~r. ) / ( .G~R. ) / ( .G~g. ) / ( .G~G. ) / ( .G~m. ) / ( .G~M. ) / ( .G~p. ) / ( .G~P. ) / ( .G~d. ) / ( .G~D. ) / ( .G~n. ) / ( .G~N. ) / ( .G~S. ) / ( .m~s ) / ( .m~S ) / ( .m~r ) / ( .m~R ) / ( .m~g ) / ( .m~G ) / ( .m~m ) / ( .m~M ) / ( .m~p ) / ( .m~P ) / ( .m~d ) / ( .m~D ) / ( .m~n ) / ( .m~N ) / ( .m~S. ) / ( .m~.s ) / ( .m~.S ) / ( .m~.r ) / ( .m~.R ) / ( .m~.g ) / ( .m~.G ) / ( .m~.m ) / ( .m~.M ) / ( .m~.p ) / ( .m~.P ) / ( .m~.d ) / ( .m~.D ) / ( .m~.n ) / ( .m~.N ) / ( .m~.S ) / ( .m~s. ) / ( .m~S. ) / ( .m~r. ) / ( .m~R. ) / ( .m~g. ) / ( .m~G. ) / ( .m~m. ) / ( .m~M. ) / ( .m~p. ) / ( .m~P. ) / ( .m~d. ) / ( .m~D. ) / ( .m~n. ) / ( .m~N. ) / ( .m~S. ) / ( .M~s ) / ( .M~S ) / ( .M~r ) / ( .M~R ) / ( .M~g ) / ( .M~G ) / ( .M~m ) / ( .M~M ) / ( .M~p ) / ( .M~P ) / ( .M~d ) / ( .M~D ) / ( .M~n ) / ( .M~N ) / ( .M~S. ) / ( .M~.s ) / ( .M~.S ) / ( .M~.r ) / ( .M~.R ) / ( .M~.g ) / ( .M~.G ) / ( .M~.m ) / ( .M~.M ) / ( .M~.p ) / ( .M~.P ) / ( .M~.d ) / ( .M~.D ) / ( .M~.n ) / ( .M~.N ) / ( .M~.S ) / ( .M~s. ) / ( .M~S. ) / ( .M~r. ) / ( .M~R. ) / ( .M~g. ) / ( .M~G. ) / ( .M~m. ) / ( .M~M. ) / ( .M~p. ) / ( .M~P. ) / ( .M~d. ) / ( .M~D. ) / ( .M~n. ) / ( .M~N. ) / ( .M~S. ) / ( .p~s ) / ( .p~S ) / ( .p~r ) / ( .p~R ) / ( .p~g ) / ( .p~G ) / ( .p~m ) / ( .p~M ) / ( .p~p ) / ( .p~P ) / ( .p~d ) / ( .p~D ) / ( .p~n ) / ( .p~N ) / ( .p~S. ) / ( .p~.s ) / ( .p~.S ) / ( .p~.r ) / ( .p~.R ) / ( .p~.g ) / ( .p~.G ) / ( .p~.m ) / ( .p~.M ) / ( .p~.p ) / ( .p~.P ) / ( .p~.d ) / ( .p~.D ) / ( .p~.n ) / ( .p~.N ) / ( .p~.S ) / ( .p~s. ) / ( .p~S. ) / ( .p~r. ) / ( .p~R. ) / ( .p~g. ) / ( .p~G. ) / ( .p~m. ) / ( .p~M. ) / ( .p~p. ) / ( .p~P. ) / ( .p~d. ) / ( .p~D. ) / ( .p~n. ) / ( .p~N. ) / ( .p~S. ) / ( .P~s ) / ( .P~S ) / ( .P~r ) / ( .P~R ) / ( .P~g ) / ( .P~G ) / ( .P~m ) / ( .P~M ) / ( .P~p ) / ( .P~P ) / ( .P~d ) / ( .P~D ) / ( .P~n ) / ( .P~N ) / ( .P~S. ) / ( .P~.s ) / ( .P~.S ) / ( .P~.r ) / ( .P~.R ) / ( .P~.g ) / ( .P~.G ) / ( .P~.m ) / ( .P~.M ) / ( .P~.p ) / ( .P~.P ) / ( .P~.d ) / ( .P~.D ) / ( .P~.n ) / ( .P~.N ) / ( .P~.S ) / ( .P~s. ) / ( .P~S. ) / ( .P~r. ) / ( .P~R. ) / ( .P~g. ) / ( .P~G. ) / ( .P~m. ) / ( .P~M. ) / ( .P~p. ) / ( .P~P. ) / ( .P~d. ) / ( .P~D. ) / ( .P~n. ) / ( .P~N. ) / ( .P~S. ) / ( .d~s ) / ( .d~S ) / ( .d~r ) / ( .d~R ) / ( .d~g ) / ( .d~G ) / ( .d~m ) / ( .d~M ) / ( .d~p ) / ( .d~P ) / ( .d~d ) / ( .d~D ) / ( .d~n ) / ( .d~N ) / ( .d~S. ) / ( .d~.s ) / ( .d~.S ) / ( .d~.r ) / ( .d~.R ) / ( .d~.g ) / ( .d~.G ) / ( .d~.m ) / ( .d~.M ) / ( .d~.p ) / ( .d~.P ) / ( .d~.d ) / ( .d~.D ) / ( .d~.n ) / ( .d~.N ) / ( .d~.S ) / ( .d~s. ) / ( .d~S. ) / ( .d~r. ) / ( .d~R. ) / ( .d~g. ) / ( .d~G. ) / ( .d~m. ) / ( .d~M. ) / ( .d~p. ) / ( .d~P. ) / ( .d~d. ) / ( .d~D. ) / ( .d~n. ) / ( .d~N. ) / ( .d~S. ) / ( .D~s ) / ( .D~S ) / ( .D~r ) / ( .D~R ) / ( .D~g ) / ( .D~G ) / ( .D~m ) / ( .D~M ) / ( .D~p ) / ( .D~P ) / ( .D~d ) / ( .D~D ) / ( .D~n ) / ( .D~N ) / ( .D~S. ) / ( .D~.s ) / ( .D~.S ) / ( .D~.r ) / ( .D~.R ) / ( .D~.g ) / ( .D~.G ) / ( .D~.m ) / ( .D~.M ) / ( .D~.p ) / ( .D~.P ) / ( .D~.d ) / ( .D~.D ) / ( .D~.n ) / ( .D~.N ) / ( .D~.S ) / ( .D~s. ) / ( .D~S. ) / ( .D~r. ) / ( .D~R. ) / ( .D~g. ) / ( .D~G. ) / ( .D~m. ) / ( .D~M. ) / ( .D~p. ) / ( .D~P. ) / ( .D~d. ) / ( .D~D. ) / ( .D~n. ) / ( .D~N. ) / ( .D~S. ) / ( .n~s ) / ( .n~S ) / ( .n~r ) / ( .n~R ) / ( .n~g ) / ( .n~G ) / ( .n~m ) / ( .n~M ) / ( .n~p ) / ( .n~P ) / ( .n~d ) / ( .n~D ) / ( .n~n ) / ( .n~N ) / ( .n~S. ) / ( .n~.s ) / ( .n~.S ) / ( .n~.r ) / ( .n~.R ) / ( .n~.g ) / ( .n~.G ) / ( .n~.m ) / ( .n~.M ) / ( .n~.p ) / ( .n~.P ) / ( .n~.d ) / ( .n~.D ) / ( .n~.n ) / ( .n~.N ) / ( .n~.S ) / ( .n~s. ) / ( .n~S. ) / ( .n~r. ) / ( .n~R. ) / ( .n~g. ) / ( .n~G. ) / ( .n~m. ) / ( .n~M. ) / ( .n~p. ) / ( .n~P. ) / ( .n~d. ) / ( .n~D. ) / ( .n~n. ) / ( .n~N. ) / ( .n~S. ) / ( .N~s ) / ( .N~S ) / ( .N~r ) / ( .N~R ) / ( .N~g ) / ( .N~G ) / ( .N~m ) / ( .N~M ) / ( .N~p ) / ( .N~P ) / ( .N~d ) / ( .N~D ) / ( .N~n ) / ( .N~N ) / ( .N~S. ) / ( .N~.s ) / ( .N~.S ) / ( .N~.r ) / ( .N~.R ) / ( .N~.g ) / ( .N~.G ) / ( .N~.m ) / ( .N~.M ) / ( .N~.p ) / ( .N~.P ) / ( .N~.d ) / ( .N~.D ) / ( .N~.n ) / ( .N~.N ) / ( .N~.S ) / ( .N~s. ) / ( .N~S. ) / ( .N~r. ) / ( .N~R. ) / ( .N~g. ) / ( .N~G. ) / ( .N~m. ) / ( .N~M. ) / ( .N~p. ) / ( .N~P. ) / ( .N~d. ) / ( .N~D. ) / ( .N~n. ) / ( .N~N. ) / ( .N~S. ) / ( .S~s ) / ( .S~S ) / ( .S~r ) / ( .S~R ) / ( .S~g ) / ( .S~G ) / ( .S~m ) / ( .S~M ) / ( .S~p ) / ( .S~P ) / ( .S~d ) / ( .S~D ) / ( .S~n ) / ( .S~N ) / ( .S~S. ) / ( .S~.s ) / ( .S~.S ) / ( .S~.r ) / ( .S~.R ) / ( .S~.g ) / ( .S~.G ) / ( .S~.m ) / ( .S~.M ) / ( .S~.p ) / ( .S~.P ) / ( .S~.d ) / ( .S~.D ) / ( .S~.n ) / ( .S~.N ) / ( .S~.S ) / ( .S~s. ) / ( .S~S. ) / ( .S~r. ) / ( .S~R. ) / ( .S~g. ) / ( .S~G. ) / ( .S~m. ) / ( .S~M. ) / ( .S~p. ) / ( .S~P. ) / ( .S~d. ) / ( .S~D. ) / ( .S~n. ) / ( .S~N. ) / ( .S~S. ) / ( s.~s ) / ( s.~S ) / ( s.~r ) / ( s.~R ) / ( s.~g ) / ( s.~G ) / ( s.~m ) / ( s.~M ) / ( s.~p ) / ( s.~P ) / ( s.~d ) / ( s.~D ) / ( s.~n ) / ( s.~N ) / ( s.~S. ) / ( s.~.s ) / ( s.~.S ) / ( s.~.r ) / ( s.~.R ) / ( s.~.g ) / ( s.~.G ) / ( s.~.m ) / ( s.~.M ) / ( s.~.p ) / ( s.~.P ) / ( s.~.d ) / ( s.~.D ) / ( s.~.n ) / ( s.~.N ) / ( s.~.S ) / ( s.~s. ) / ( s.~S. ) / ( s.~r. ) / ( s.~R. ) / ( s.~g. ) / ( s.~G. ) / ( s.~m. ) / ( s.~M. ) / ( s.~p. ) / ( s.~P. ) / ( s.~d. ) / ( s.~D. ) / ( s.~n. ) / ( s.~N. ) / ( s.~S. ) / ( S.~s ) / ( S.~S ) / ( S.~r ) / ( S.~R ) / ( S.~g ) / ( S.~G ) / ( S.~m ) / ( S.~M ) / ( S.~p ) / ( S.~P ) / ( S.~d ) / ( S.~D ) / ( S.~n ) / ( S.~N ) / ( S.~S. ) / ( S.~.s ) / ( S.~.S ) / ( S.~.r ) / ( S.~.R ) / ( S.~.g ) / ( S.~.G ) / ( S.~.m ) / ( S.~.M ) / ( S.~.p ) / ( S.~.P ) / ( S.~.d ) / ( S.~.D ) / ( S.~.n ) / ( S.~.N ) / ( S.~.S ) / ( S.~s. ) / ( S.~S. ) / ( S.~r. ) / ( S.~R. ) / ( S.~g. ) / ( S.~G. ) / ( S.~m. ) / ( S.~M. ) / ( S.~p. ) / ( S.~P. ) / ( S.~d. ) / ( S.~D. ) / ( S.~n. ) / ( S.~N. ) / ( S.~S. ) / ( r.~s ) / ( r.~S ) / ( r.~r ) / ( r.~R ) / ( r.~g ) / ( r.~G ) / ( r.~m ) / ( r.~M ) / ( r.~p ) / ( r.~P ) / ( r.~d ) / ( r.~D ) / ( r.~n ) / ( r.~N ) / ( r.~S. ) / ( r.~.s ) / ( r.~.S ) / ( r.~.r ) / ( r.~.R ) / ( r.~.g ) / ( r.~.G ) / ( r.~.m ) / ( r.~.M ) / ( r.~.p ) / ( r.~.P ) / ( r.~.d ) / ( r.~.D ) / ( r.~.n ) / ( r.~.N ) / ( r.~.S ) / ( r.~s. ) / ( r.~S. ) / ( r.~r. ) / ( r.~R. ) / ( r.~g. ) / ( r.~G. ) / ( r.~m. ) / ( r.~M. ) / ( r.~p. ) / ( r.~P. ) / ( r.~d. ) / ( r.~D. ) / ( r.~n. ) / ( r.~N. ) / ( r.~S. ) / ( R.~s ) / ( R.~S ) / ( R.~r ) / ( R.~R ) / ( R.~g ) / ( R.~G ) / ( R.~m ) / ( R.~M ) / ( R.~p ) / ( R.~P ) / ( R.~d ) / ( R.~D ) / ( R.~n ) / ( R.~N ) / ( R.~S. ) / ( R.~.s ) / ( R.~.S ) / ( R.~.r ) / ( R.~.R ) / ( R.~.g ) / ( R.~.G ) / ( R.~.m ) / ( R.~.M ) / ( R.~.p ) / ( R.~.P ) / ( R.~.d ) / ( R.~.D ) / ( R.~.n ) / ( R.~.N ) / ( R.~.S ) / ( R.~s. ) / ( R.~S. ) / ( R.~r. ) / ( R.~R. ) / ( R.~g. ) / ( R.~G. ) / ( R.~m. ) / ( R.~M. ) / ( R.~p. ) / ( R.~P. ) / ( R.~d. ) / ( R.~D. ) / ( R.~n. ) / ( R.~N. ) / ( R.~S. ) / ( g.~s ) / ( g.~S ) / ( g.~r ) / ( g.~R ) / ( g.~g ) / ( g.~G ) / ( g.~m ) / ( g.~M ) / ( g.~p ) / ( g.~P ) / ( g.~d ) / ( g.~D ) / ( g.~n ) / ( g.~N ) / ( g.~S. ) / ( g.~.s ) / ( g.~.S ) / ( g.~.r ) / ( g.~.R ) / ( g.~.g ) / ( g.~.G ) / ( g.~.m ) / ( g.~.M ) / ( g.~.p ) / ( g.~.P ) / ( g.~.d ) / ( g.~.D ) / ( g.~.n ) / ( g.~.N ) / ( g.~.S ) / ( g.~s. ) / ( g.~S. ) / ( g.~r. ) / ( g.~R. ) / ( g.~g. ) / ( g.~G. ) / ( g.~m. ) / ( g.~M. ) / ( g.~p. ) / ( g.~P. ) / ( g.~d. ) / ( g.~D. ) / ( g.~n. ) / ( g.~N. ) / ( g.~S. ) / ( G.~s ) / ( G.~S ) / ( G.~r ) / ( G.~R ) / ( G.~g ) / ( G.~G ) / ( G.~m ) / ( G.~M ) / ( G.~p ) / ( G.~P ) / ( G.~d ) / ( G.~D ) / ( G.~n ) / ( G.~N ) / ( G.~S. ) / ( G.~.s ) / ( G.~.S ) / ( G.~.r ) / ( G.~.R ) / ( G.~.g ) / ( G.~.G ) / ( G.~.m ) / ( G.~.M ) / ( G.~.p ) / ( G.~.P ) / ( G.~.d ) / ( G.~.D ) / ( G.~.n ) / ( G.~.N ) / ( G.~.S ) / ( G.~s. ) / ( G.~S. ) / ( G.~r. ) / ( G.~R. ) / ( G.~g. ) / ( G.~G. ) / ( G.~m. ) / ( G.~M. ) / ( G.~p. ) / ( G.~P. ) / ( G.~d. ) / ( G.~D. ) / ( G.~n. ) / ( G.~N. ) / ( G.~S. ) / ( m.~s ) / ( m.~S ) / ( m.~r ) / ( m.~R ) / ( m.~g ) / ( m.~G ) / ( m.~m ) / ( m.~M ) / ( m.~p ) / ( m.~P ) / ( m.~d ) / ( m.~D ) / ( m.~n ) / ( m.~N ) / ( m.~S. ) / ( m.~.s ) / ( m.~.S ) / ( m.~.r ) / ( m.~.R ) / ( m.~.g ) / ( m.~.G ) / ( m.~.m ) / ( m.~.M ) / ( m.~.p ) / ( m.~.P ) / ( m.~.d ) / ( m.~.D ) / ( m.~.n ) / ( m.~.N ) / ( m.~.S ) / ( m.~s. ) / ( m.~S. ) / ( m.~r. ) / ( m.~R. ) / ( m.~g. ) / ( m.~G. ) / ( m.~m. ) / ( m.~M. ) / ( m.~p. ) / ( m.~P. ) / ( m.~d. ) / ( m.~D. ) / ( m.~n. ) / ( m.~N. ) / ( m.~S. ) / ( M.~s ) / ( M.~S ) / ( M.~r ) / ( M.~R ) / ( M.~g ) / ( M.~G ) / ( M.~m ) / ( M.~M ) / ( M.~p ) / ( M.~P ) / ( M.~d ) / ( M.~D ) / ( M.~n ) / ( M.~N ) / ( M.~S. ) / ( M.~.s ) / ( M.~.S ) / ( M.~.r ) / ( M.~.R ) / ( M.~.g ) / ( M.~.G ) / ( M.~.m ) / ( M.~.M ) / ( M.~.p ) / ( M.~.P ) / ( M.~.d ) / ( M.~.D ) / ( M.~.n ) / ( M.~.N ) / ( M.~.S ) / ( M.~s. ) / ( M.~S. ) / ( M.~r. ) / ( M.~R. ) / ( M.~g. ) / ( M.~G. ) / ( M.~m. ) / ( M.~M. ) / ( M.~p. ) / ( M.~P. ) / ( M.~d. ) / ( M.~D. ) / ( M.~n. ) / ( M.~N. ) / ( M.~S. ) / ( p.~s ) / ( p.~S ) / ( p.~r ) / ( p.~R ) / ( p.~g ) / ( p.~G ) / ( p.~m ) / ( p.~M ) / ( p.~p ) / ( p.~P ) / ( p.~d ) / ( p.~D ) / ( p.~n ) / ( p.~N ) / ( p.~S. ) / ( p.~.s ) / ( p.~.S ) / ( p.~.r ) / ( p.~.R ) / ( p.~.g ) / ( p.~.G ) / ( p.~.m ) / ( p.~.M ) / ( p.~.p ) / ( p.~.P ) / ( p.~.d ) / ( p.~.D ) / ( p.~.n ) / ( p.~.N ) / ( p.~.S ) / ( p.~s. ) / ( p.~S. ) / ( p.~r. ) / ( p.~R. ) / ( p.~g. ) / ( p.~G. ) / ( p.~m. ) / ( p.~M. ) / ( p.~p. ) / ( p.~P. ) / ( p.~d. ) / ( p.~D. ) / ( p.~n. ) / ( p.~N. ) / ( p.~S. ) / ( P.~s ) / ( P.~S ) / ( P.~r ) / ( P.~R ) / ( P.~g ) / ( P.~G ) / ( P.~m ) / ( P.~M ) / ( P.~p ) / ( P.~P ) / ( P.~d ) / ( P.~D ) / ( P.~n ) / ( P.~N ) / ( P.~S. ) / ( P.~.s ) / ( P.~.S ) / ( P.~.r ) / ( P.~.R ) / ( P.~.g ) / ( P.~.G ) / ( P.~.m ) / ( P.~.M ) / ( P.~.p ) / ( P.~.P ) / ( P.~.d ) / ( P.~.D ) / ( P.~.n ) / ( P.~.N ) / ( P.~.S ) / ( P.~s. ) / ( P.~S. ) / ( P.~r. ) / ( P.~R. ) / ( P.~g. ) / ( P.~G. ) / ( P.~m. ) / ( P.~M. ) / ( P.~p. ) / ( P.~P. ) / ( P.~d. ) / ( P.~D. ) / ( P.~n. ) / ( P.~N. ) / ( P.~S. ) / ( d.~s ) / ( d.~S ) / ( d.~r ) / ( d.~R ) / ( d.~g ) / ( d.~G ) / ( d.~m ) / ( d.~M ) / ( d.~p ) / ( d.~P ) / ( d.~d ) / ( d.~D ) / ( d.~n ) / ( d.~N ) / ( d.~S. ) / ( d.~.s ) / ( d.~.S ) / ( d.~.r ) / ( d.~.R ) / ( d.~.g ) / ( d.~.G ) / ( d.~.m ) / ( d.~.M ) / ( d.~.p ) / ( d.~.P ) / ( d.~.d ) / ( d.~.D ) / ( d.~.n ) / ( d.~.N ) / ( d.~.S ) / ( d.~s. ) / ( d.~S. ) / ( d.~r. ) / ( d.~R. ) / ( d.~g. ) / ( d.~G. ) / ( d.~m. ) / ( d.~M. ) / ( d.~p. ) / ( d.~P. ) / ( d.~d. ) / ( d.~D. ) / ( d.~n. ) / ( d.~N. ) / ( d.~S. ) / ( D.~s ) / ( D.~S ) / ( D.~r ) / ( D.~R ) / ( D.~g ) / ( D.~G ) / ( D.~m ) / ( D.~M ) / ( D.~p ) / ( D.~P ) / ( D.~d ) / ( D.~D ) / ( D.~n ) / ( D.~N ) / ( D.~S. ) / ( D.~.s ) / ( D.~.S ) / ( D.~.r ) / ( D.~.R ) / ( D.~.g ) / ( D.~.G ) / ( D.~.m ) / ( D.~.M ) / ( D.~.p ) / ( D.~.P ) / ( D.~.d ) / ( D.~.D ) / ( D.~.n ) / ( D.~.N ) / ( D.~.S ) / ( D.~s. ) / ( D.~S. ) / ( D.~r. ) / ( D.~R. ) / ( D.~g. ) / ( D.~G. ) / ( D.~m. ) / ( D.~M. ) / ( D.~p. ) / ( D.~P. ) / ( D.~d. ) / ( D.~D. ) / ( D.~n. ) / ( D.~N. ) / ( D.~S. ) / ( n.~s ) / ( n.~S ) / ( n.~r ) / ( n.~R ) / ( n.~g ) / ( n.~G ) / ( n.~m ) / ( n.~M ) / ( n.~p ) / ( n.~P ) / ( n.~d ) / ( n.~D ) / ( n.~n ) / ( n.~N ) / ( n.~S. ) / ( n.~.s ) / ( n.~.S ) / ( n.~.r ) / ( n.~.R ) / ( n.~.g ) / ( n.~.G ) / ( n.~.m ) / ( n.~.M ) / ( n.~.p ) / ( n.~.P ) / ( n.~.d ) / ( n.~.D ) / ( n.~.n ) / ( n.~.N ) / ( n.~.S ) / ( n.~s. ) / ( n.~S. ) / ( n.~r. ) / ( n.~R. ) / ( n.~g. ) / ( n.~G. ) / ( n.~m. ) / ( n.~M. ) / ( n.~p. ) / ( n.~P. ) / ( n.~d. ) / ( n.~D. ) / ( n.~n. ) / ( n.~N. ) / ( n.~S. ) / ( N.~s ) / ( N.~S ) / ( N.~r ) / ( N.~R ) / ( N.~g ) / ( N.~G ) / ( N.~m ) / ( N.~M ) / ( N.~p ) / ( N.~P ) / ( N.~d ) / ( N.~D ) / ( N.~n ) / ( N.~N ) / ( N.~S. ) / ( N.~.s ) / ( N.~.S ) / ( N.~.r ) / ( N.~.R ) / ( N.~.g ) / ( N.~.G ) / ( N.~.m ) / ( N.~.M ) / ( N.~.p ) / ( N.~.P ) / ( N.~.d ) / ( N.~.D ) / ( N.~.n ) / ( N.~.N ) / ( N.~.S ) / ( N.~s. ) / ( N.~S. ) / ( N.~r. ) / ( N.~R. ) / ( N.~g. ) / ( N.~G. ) / ( N.~m. ) / ( N.~M. ) / ( N.~p. ) / ( N.~P. ) / ( N.~d. ) / ( N.~D. ) / ( N.~n. ) / ( N.~N. ) / ( N.~S. ) / ( S.~s ) / ( S.~S ) / ( S.~r ) / ( S.~R ) / ( S.~g ) / ( S.~G ) / ( S.~m ) / ( S.~M ) / ( S.~p ) / ( S.~P ) / ( S.~d ) / ( S.~D ) / ( S.~n ) / ( S.~N ) / ( S.~S. ) / ( S.~.s ) / ( S.~.S ) / ( S.~.r ) / ( S.~.R ) / ( S.~.g ) / ( S.~.G ) / ( S.~.m ) / ( S.~.M ) / ( S.~.p ) / ( S.~.P ) / ( S.~.d ) / ( S.~.D ) / ( S.~.n ) / ( S.~.N ) / ( S.~.S ) / ( S.~s. ) / ( S.~S. ) / ( S.~r. ) / ( S.~R. ) / ( S.~g. ) / ( S.~G. ) / ( S.~m. ) / ( S.~M. ) / ( S.~p. ) / ( S.~P. ) / ( S.~d. ) / ( S.~D. ) / ( S.~n. ) / ( S.~N. ) / ( S.~S. ) ";
string[] ___temp_string_array_for_combined_notes_found = somenotesfound.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
string[] ___temp_string_array_for_replacer_notes = replacedwith.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
if (this.checkBox___TO_LOAD_INDINOTATIONS_REMOVING_PIPES_NEWLINES_DECORATORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper() == "CHECKED")
{
___temp_whole_string_in_indinotes_inditaalas_files
=
___temp_whole_string_in_indinotes_inditaalas_files
.Replace("\r\n", " ")
.Replace("\r", " ")
.Replace("\n", " ")
// .Replace("|", " ");
.Replace("|", " | ");//this is necessary for the smarter depth wise timing splittings
}// if(this.checkBox___TO_LOAD_INDINOTATIONS_REMOVING_PIPES_NEWLINES_DECORATORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper()=="CHECKED")
___temp_whole_string_in_indinotes_inditaalas_files
=
___temp_whole_string_in_indinotes_inditaalas_files
.Replace("\r\n", "|")
.Replace("\r", "|")
.Replace("\n", "|")
.Replace("||||||||||", "|")
.Replace("|||||||||", "|")
.Replace("|||||||", "|")
.Replace("||||||", "|")
.Replace("|||||", "|")
.Replace("|||", "|")
.Replace("||", "|")
.Replace("@", "")
//we remove the decorator hashes first to avoid any errors
//# symbols are for the decorator notes generators
.Replace("|", "@|@")
//generating spaces for the decorator notes in other tracks
.Replace("!", "@@@!@@@")
.Replace("(", "@(@")
.Replace(")", "@)@")
.Replace("{", "@{@")
.Replace("}", "@}@")
.Replace("[", "@[@")
.Replace("]", "@]@")
.Replace("@", " @ ")
;//spaces are the splitters for the array
if
(___temp_string_array_for_combined_notes_found.Length
== ___temp_string_array_for_replacer_notes.Length
)
{
for (int iter = 0; iter < ___temp_string_array_for_combined_notes_found.Length; iter++)
{
___temp_whole_string_in_indinotes_inditaalas_files
=
___temp_whole_string_in_indinotes_inditaalas_files
.Replace(___temp_string_array_for_combined_notes_found[iter], ___temp_string_array_for_replacer_notes[iter]);
// Console.WriteLine(___temp_string_array_for_combined_notes_found[iter] + " replaced with " + ___temp_string_array_for_replacer_notes[iter]);
}//for(int iter=0; iter<___temp_string_array_for_combined_notes_found.Length; iter++)
}
//////if
//////(___temp_string_array_for_combined_notes_found.Length
//////== ___temp_string_array_for_replacer_notes.Length
//////)
///
if
(___temp_string_array_for_combined_notes_found.Length
== ___temp_string_array_for_replacer_notes.Length
)
{
for (int iter = 0; iter < ___temp_string_array_for_combined_notes_found.Length; iter++)
{
___temp_whole_string_in_indinotes_inditaalas_files
=
___temp_whole_string_in_indinotes_inditaalas_files
.Replace(___temp_string_array_for_combined_notes_found[iter], ___temp_string_array_for_replacer_notes[iter]);
// Console.WriteLine(___temp_string_array_for_combined_notes_found[iter] + " replaced with " + ___temp_string_array_for_replacer_notes[iter]);
}//for(int iter=0; iter<___temp_string_array_for_combined_notes_found.Length; iter++)
}
//////if
//////(___temp_string_array_for_combined_notes_found.Length
//////== ___temp_string_array_for_replacer_notes.Length
//////)
///
if
(___temp_string_array_for_combined_notes_found.Length
== ___temp_string_array_for_replacer_notes.Length
)
{
for (int iter = 0; iter < ___temp_string_array_for_combined_notes_found.Length; iter++)
{
___temp_whole_string_in_indinotes_inditaalas_files
=
___temp_whole_string_in_indinotes_inditaalas_files
.Replace(___temp_string_array_for_combined_notes_found[iter], ___temp_string_array_for_replacer_notes[iter]);
// Console.WriteLine(___temp_string_array_for_combined_notes_found[iter] + " replaced with " + ___temp_string_array_for_replacer_notes[iter]);
}//for(int iter=0; iter<___temp_string_array_for_combined_notes_found.Length; iter++)
}
//////if
//////(___temp_string_array_for_combined_notes_found.Length
//////== ___temp_string_array_for_replacer_notes.Length
//////)
///
//doing these above things loops three times to break down the larger chains of notes into pieces
//doing these above things loops three times to break down the larger chains of notes into pieces
//doing these above things loops three times to break down the larger chains of notes into pieces
//doing these above things loops three times to break down the larger chains of notes into pieces
//doing these above things loops three times to break down the larger chains of notes into pieces
//doing these above things loops three times to break down the larger chains of notes into pieces
//////Several music journals in India cater to diverse audiences, from academic researchers to music enthusiasts. Notable journals include Sangeet Galaxy, Swar Sindhu, Journal of the Music Academy, Madras, and Vageeshwari(Journal of the Faculty of Music & Fine Arts, Delhi University).Some journals focus on Indian classical music, while others cover a broader range of music genres and disciplines.
//////Key Music Journals in India:
//////Sangeet Galaxy:
//////Sangeet Galaxy is a peer - reviewed, online journal dedicated to Indian music, publishing research papers and articles across various music domains.
//////Swar Sindhu:
//////Swar Sindhu is a national, peer - reviewed journal focused on music research, including classical, folk, and digital music, among others.
//////Journal of the Music Academy, Madras:
//////This journal, published by the Madras Music Academy, features articles and research on Carnatic music and related fields.
//////Vageeshwari(Delhi University):
//////Vageeshwari is the official journal of the Music Department at Delhi University, focusing on classical music research.
//////Sangeet Natak Akademi Bulletin:
//////Published by the Sangeet Natak Akademi, this bulletin covers various aspects of performing arts, including music, dance, and drama.
//////Nartanam:
//////A quarterly journal focused on Indian dance, also publishes articles on music related to dance forms.
//////Other Journals:
//////Rock Street Journal(an independent music magazine), and The Score Magazine(a national pan-genre music magazine) are also available.
//trying to do jugars
___temp_whole_string_in_indinotes_inditaalas_files
=
___temp_whole_string_in_indinotes_inditaalas_files
.Replace("~"," ( ~ ) ");//this is done to do special kinds of decorations of notes
//////to identify the nature of a series and sequence we use the 1st difference then difference of difference ... and in that way we can identify the nature of the series sequence through nth differences until constant terms are found...are these usable in raga ornamentations?
//////Yes, the concept of analyzing sequences through differences—such as first differences, second differences, and so on—is indeed applicable to understanding raga ornamentations in Indian classical music.While this approach is rooted in mathematical analysis, it can provide valuable insights into the structural patterns and improvisational elements inherent in ragas.
//////Mathematical Analysis of Raga Ornamentations
//////In Indian classical music, particularly in Hindustani tradition, ornamentations (known as alankaras or gamakas) play a crucial role in shaping the character and expression of a raga. These embellishments involve various techniques that add nuance and emotional depth to the melodic line.By applying mathematical analysis to these ornamentations, one can uncover underlying patterns and structures that govern their usage.
//////First Differences: Identifying Intervallic Patterns
//////The first difference in a sequence refers to the difference between consecutive terms.In the context of raga ornamentations, this can be applied to the intervals between successive notes.By analyzing the first differences, one can identify recurring intervallic patterns that characterize the raga's melodic movement.
//////For example, in a raga's alap (the slow, improvisational section), the performer may emphasize certain intervals more frequently, creating a distinctive melodic contour. By examining these intervals mathematically, one can quantify the raga's unique melodic structure.
//////Second Differences: Understanding Curvature and Ornamentation Techniques
//////The second difference involves the differences of the first differences.In musical terms, this can be related to the curvature or the way the melody bends and turns, which is often achieved through ornamentation techniques like meend(glides), andolan(oscillations), and kampita(vibrato). These techniques add expressiveness and fluidity to the melody.
//////By analyzing the second differences, one can gain insights into the smoothness and curvature of the melodic line, which are essential for interpreting the raga's emotional content. This analysis can also help in understanding how ornamentations are employed to navigate between notes and create a cohesive melodic flow.
//////Higher - Order Differences: Exploring Complex Ornamentation Patterns
//////Higher - order differences(third differences and beyond) can reveal more complex patterns in the ornamentation.These may correspond to intricate rhythmic cycles(tala) or sophisticated improvisational structures(tan, murki, meend).Analyzing these higher - order differences can provide a deeper understanding of the raga's complexity and the performer's creative expression.
//////For instance, in a fast - paced gat(composition), the performer may introduce rapid ornamentations that create a cascading effect.By examining the higher - order differences, one can quantify the rate and complexity of these ornamentations, offering a mathematical perspective on the performer's artistry.
//////Practical Application in Learning and Performance
//////Understanding the mathematical underpinnings of raga ornamentations can enhance both learning and performance.For students, analyzing the differences in ornamentations can aid in recognizing and internalizing the characteristic patterns of a raga.For performers, this analysis can serve as a tool for improvisation, allowing them to navigate the raga's structure with greater awareness and creativity.
//////In summary, applying the concept of differences to raga ornamentations offers a structured approach to understanding the intricate patterns and expressive techniques that define Indian classical music.This mathematical perspective complements the traditional musical analysis and provides a deeper appreciation of the art form's complexity and beauty.
//////can we repeat the swaras multiple times while expanding the raga?
//////Yes, repeating swaras(notes) multiple times is not only permissible but also an essential aspect of expanding a raga in Hindustani classical music.This practice is integral to the vistar(expansion) of a raga, especially during the alap(the slow, improvisational section).
//////Repetition in Raga Vistar
//////In the alap, the performer explores the raga's notes (swaras) slowly and deliberately, often repeating them to establish the raga's mood and to emphasize its characteristic phrases. This repetition allows the artist to delve deeper into the emotional essence of the raga, creating a connection with the audience. Techniques like meend(gliding between notes), gamak(oscillations), and andolan(slow oscillation) are employed to add depth and ornamentation to the repeated notes.
//////The Mystic Keys
//////Ornamentation and Repetition
//////Ornamentations(alankaras) are vital in Indian classical music.They involve embellishing a note or a group of notes, adding grace and emotional expression. These ornaments often include techniques like kampita(vibrato), andolan(oscillation), and meend(glides). Repetition of swaras, combined with these ornamentations, enhances the raga's expressiveness and allows the performer to showcase their mastery over the raga's nuances .
//////Wikipedia
//////Improvisation and Structure
//////While repetition is a key component, it is balanced with improvisation.The performer introduces variations in rhythm, ornamentation, and phrasing, ensuring that the raga remains dynamic and engaging.This balance between repetition and innovation is what gives each performance its unique flavor, even when the same raga is performed multiple times.
//////In summary, repeating swaras is a fundamental technique in the vistar of a raga, allowing for emotional depth and a deeper exploration of the raga's essence. Combined with ornamentations and improvisation, it forms the backbone of a compelling raga performance.
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
////// Suppose an ant is distributing W litres of water to whole forest… First it sees n number of trees so it allocates W / n amount of water to all trees equally irrespective of sizes of the trees.Then enters into a tree t_0 with W/ n litres of water and sees there are n_t0_k0 number of level 0 branches so it allocates(W/ n_t0_ / n_k0) amount of water to each level 0 branch of that tree … then enter next one branch of level0 and until it enters there it cannot understand how many level 1 branches are there for that particular level0 branch of that tree and when it finds for that particular branch there are n_t0_k0_k1 number of level 1 sub branches for that particular branch n_t0_k0 so it distributes(W / n_t0_ / n_t0_k0 / n_t0_k0_k1) amount of water to all the sub branches for that branch … recursively in this way it can count number of subbranches only after entering there inside … it is like recursively file searching inside folders then sub folders … etc… until the crawler enters into a branch it cannot know how many sub entries are present there inside… the counts are not always same at every level so distributions are not same for all same level entries… The forest is written as string input = "| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h"; | delimits the trees and(…) denotes the branches and nested(…) denotes the sub branches… write a c sharp program to allocate water distributions mechanisms recursively for every leafs level(conditionally changes as per the order of(…) present in the string
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
////// Suppose an ant is distributing W litres of water to whole forest… First it sees n number of trees so it allocates W / n amount of water to all trees equally irrespective of sizes of the trees.Then enters into a tree t_0 with W/ n litres of water and sees there are n_t0_k0 number of level 0 branches so it allocates(W/ n_t0_ / n_k0) amount of water to each level 0 branch of that tree … then enter next one branch of level0 and until it enters there it cannot understand how many level 1 branches are there for that particular level0 branch of that tree and when it finds for that particular branch there are n_t0_k0_k1 number of level 1 sub branches for that particular branch n_t0_k0 so it distributes(W / n_t0_ / n_t0_k0 / n_t0_k0_k1) amount of water to all the sub branches for that branch … recursively in this way it can count number of subbranches only after entering there inside … it is like recursively file searching inside folders then sub folders … etc… until the crawler enters into a branch it cannot know how many sub entries are present there inside… the counts are not always same at every level so distributions are not same for all same level entries… The forest is written as string input = "| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h"; | delimits the trees and(…) denotes the branches and nested(…) denotes the sub branches… write a c sharp program to allocate water distributions mechanisms recursively for every leafs level(conditionally changes as per the order of(…) present in the string
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
////// Suppose an ant is distributing W litres of water to whole forest… First it sees n number of trees so it allocates W / n amount of water to all trees equally irrespective of sizes of the trees.Then enters into a tree t_0 with W/ n litres of water and sees there are n_t0_k0 number of level 0 branches so it allocates(W/ n_t0_ / n_k0) amount of water to each level 0 branch of that tree … then enter next one branch of level0 and until it enters there it cannot understand how many level 1 branches are there for that particular level0 branch of that tree and when it finds for that particular branch there are n_t0_k0_k1 number of level 1 sub branches for that particular branch n_t0_k0 so it distributes(W / n_t0_ / n_t0_k0 / n_t0_k0_k1) amount of water to all the sub branches for that branch … recursively in this way it can count number of subbranches only after entering there inside … it is like recursively file searching inside folders then sub folders … etc… until the crawler enters into a branch it cannot know how many sub entries are present there inside… the counts are not always same at every level so distributions are not same for all same level entries… The forest is written as string input = "| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h"; | delimits the trees and(…) denotes the branches and nested(…) denotes the sub branches… write a c sharp program to allocate water distributions mechanisms recursively for every leafs level(conditionally changes as per the order of(…) present in the string
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.WaterDistributor___OR_MILLIS_DISTRIBUTIONS
.WaterDistributor___MILLIS_DISTRIBUTIONS_Main
(
//we will not distribute any durations to the @ { } [ ] these are decorators
//we will allocate the durations to - ~ ! things
___temp_whole_string_in_indinotes_inditaalas_files
//////.Replace("@", "")
//////.Replace("{", "")
//////.Replace("}", "")
//////.Replace("[", "")
//////.Replace("]", "")
//////.Replace(",", " ")
//////.Replace(";", " ")
.Replace("|", "&|&")
//arranged the placeholders
//NOT NECESSARY WE HAVE TAKEN CARE WITH 30 MILLIS FOR THESE SYMBOLS
/// i have to take care for these symbols in the time distributions code the ants water distributions systems
/// i will have to put the systems such that these symbols will always get same durations 30 millis every times
/// these are the decorations notes
//////.Replace("@", "ATRATE")
//////.Replace("{", "BRACESTART")
//////.Replace("}", "BRACECOMPLETES")
//////.Replace("[", "THIRSTSTART")
//////.Replace("]", "THIRDCOMPLETES")
//////.Replace(",", "COMMAS")
//////.Replace(";", "SEMIKOLONS")
,
___temp_double___single_measures_within_two_pipes_total_durations_millis
);
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
////// Suppose an ant is distributing W litres of water to whole forest… First it sees n number of trees so it allocates W / n amount of water to all trees equally irrespective of sizes of the trees.Then enters into a tree t_0 with W/ n litres of water and sees there are n_t0_k0 number of level 0 branches so it allocates(W/ n_t0_ / n_k0) amount of water to each level 0 branch of that tree … then enter next one branch of level0 and until it enters there it cannot understand how many level 1 branches are there for that particular level0 branch of that tree and when it finds for that particular branch there are n_t0_k0_k1 number of level 1 sub branches for that particular branch n_t0_k0 so it distributes(W / n_t0_ / n_t0_k0 / n_t0_k0_k1) amount of water to all the sub branches for that branch … recursively in this way it can count number of subbranches only after entering there inside … it is like recursively file searching inside folders then sub folders … etc… until the crawler enters into a branch it cannot know how many sub entries are present there inside… the counts are not always same at every level so distributions are not same for all same level entries… The forest is written as string input = "| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h"; | delimits the trees and(…) denotes the branches and nested(…) denotes the sub branches… write a c sharp program to allocate water distributions mechanisms recursively for every leafs level(conditionally changes as per the order of(…) present in the string
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
////// Suppose an ant is distributing W litres of water to whole forest… First it sees n number of trees so it allocates W / n amount of water to all trees equally irrespective of sizes of the trees.Then enters into a tree t_0 with W/ n litres of water and sees there are n_t0_k0 number of level 0 branches so it allocates(W/ n_t0_ / n_k0) amount of water to each level 0 branch of that tree … then enter next one branch of level0 and until it enters there it cannot understand how many level 1 branches are there for that particular level0 branch of that tree and when it finds for that particular branch there are n_t0_k0_k1 number of level 1 sub branches for that particular branch n_t0_k0 so it distributes(W / n_t0_ / n_t0_k0 / n_t0_k0_k1) amount of water to all the sub branches for that branch … recursively in this way it can count number of subbranches only after entering there inside … it is like recursively file searching inside folders then sub folders … etc… until the crawler enters into a branch it cannot know how many sub entries are present there inside… the counts are not always same at every level so distributions are not same for all same level entries… The forest is written as string input = "| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h"; | delimits the trees and(…) denotes the branches and nested(…) denotes the sub branches… write a c sharp program to allocate water distributions mechanisms recursively for every leafs level(conditionally changes as per the order of(…) present in the string
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
////// Suppose an ant is distributing W litres of water to whole forest… First it sees n number of trees so it allocates W / n amount of water to all trees equally irrespective of sizes of the trees.Then enters into a tree t_0 with W/ n litres of water and sees there are n_t0_k0 number of level 0 branches so it allocates(W/ n_t0_ / n_k0) amount of water to each level 0 branch of that tree … then enter next one branch of level0 and until it enters there it cannot understand how many level 1 branches are there for that particular level0 branch of that tree and when it finds for that particular branch there are n_t0_k0_k1 number of level 1 sub branches for that particular branch n_t0_k0 so it distributes(W / n_t0_ / n_t0_k0 / n_t0_k0_k1) amount of water to all the sub branches for that branch … recursively in this way it can count number of subbranches only after entering there inside … it is like recursively file searching inside folders then sub folders … etc… until the crawler enters into a branch it cannot know how many sub entries are present there inside… the counts are not always same at every level so distributions are not same for all same level entries… The forest is written as string input = "| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h"; | delimits the trees and(…) denotes the branches and nested(…) denotes the sub branches… write a c sharp program to allocate water distributions mechanisms recursively for every leafs level(conditionally changes as per the order of(…) present in the string
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
///TOOOOOOOOOOOOOOOOOOOOOOOOOOO IMPORTANT CODE FOR THE TIME DISTRIBUTIONS RECURSIVELY FOR ( ) NESTED DEPTHS INSIDE THE | | SYMBOLS
////////////////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
filesnametoload+"_water_or_millis_distributions_reporty.txt"
,
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.WaterDistributor___OR_MILLIS_DISTRIBUTIONS
.PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_DISTRIBUTIONS_MILLIS_DISTRIBUTIONS_REPORTS
.ToString()
+ "\r\n\r\n\r\nPUBLIC_STATIC_STRINGBUILDER_FOR_WATER_OR_MILLIS_ALLOCATED_TOKENS\r\n\r\n\r\n" +
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.WaterDistributor___OR_MILLIS_DISTRIBUTIONS
.PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_OR_MILLIS_ALLOCATED_TOKENS
);
////////////////////////////////////////////////////////////////////////////////////////////////////
System.Diagnostics.Process.Start("notepad.exe"
,
filesnametoload + "_water_or_millis_distributions_reporty.txt"
);
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
if (this.checkBox___TO_LOAD_INDINOTATIONS_REMOVING_PIPES_NEWLINES_DECORATORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper() == "CHECKED")
{
___temp_whole_string_in_indinotes_inditaalas_files
=
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.WaterDistributor___OR_MILLIS_DISTRIBUTIONS
.PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_OR_MILLIS_ALLOCATED_TOKENS
.ToString()
.Replace("\r\n", ",");
}//if (this.checkBox___TO_LOAD_INDINOTATIONS_REMOVING_PIPES_NEWLINES_DECORATORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper() == "CHECKED")
//https://archive.bridgesmathart.org/2010/bridges2010-341.pdf //geometry of ragas with matlab with great structures
string[] ___arrays_of_lines_of______total_files_read_data
=
// ___temp_whole_string_in_indinotes_inditaalas_files.Split(new string[] { "|", ",", " " }, StringSplitOptions.RemoveEmptyEntries);
// ___temp_whole_string_in_indinotes_inditaalas_files.Split(new string[] { "|"}, StringSplitOptions.RemoveEmptyEntries);
___temp_whole_string_in_indinotes_inditaalas_files.Split(new string[] { ",", " " }, StringSplitOptions.RemoveEmptyEntries);
/// we split the pipes first to allocate the durations for the measures first
int valid_rows_counter_in_files___in_first_run_to_import_data = 0;
if (___arrays_of_lines_of______total_files_read_data.Length > 1)
{
System.Windows.Forms.MessageBox.Show
("caution the row count is \r\n\r\n\r\n" + ___arrays_of_lines_of______total_files_read_data.Length + 6);
//////this.dataGridView___COMPOSER.RowCount
////// = ___arrays_of_lines_of______total_files_read_data.Length + 6;
Console.WriteLine("___arrays_of_lines_of______total_files_read_data.Length = " + ___arrays_of_lines_of______total_files_read_data.Length);
//first line is header
// this.dataGridView___COMPOSER.RowCount = 3;
// this.dataGridView___COMPOSER.RowCount = Math.Max(___arrays_of_lines_of______total_files_read_data.Length+3 ,6000);
Console.WriteLine(" this.dataGridView___COMPOSER.RowCount = " + this.dataGridView___COMPOSER.RowCount);
double ___last_valid_duration_found = 0;//that is which dont have the
double ___current_nons_mels_notes_durations_assigned = 0;
int new_necessary_row___for_first_run_to_import_raw_splitted_data = 0;
//we need to distribute total measures durations millis to all these notes
int number_of_free_notes_out_of_all_brackets_inside_current_measures_interpiped_tokens = 0;//flushes at every pipes
int ___temp_number_of_pipes_measure_token_crossed = 0;
int ___temp_number_of_first_bracket_in_current_measure_crossed = 0;
int ___temp_number_of_seconds_bracket_in_current_measure_crossed = 0;
int ___temp_number_of_third_bracket_in_current_measure_crossed = 0;
string ___TEMP_STRING___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS = "";
int ___TEMP_INT___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS = 0;
for (int files_lines = 0; files_lines < ___arrays_of_lines_of______total_files_read_data.Length; files_lines++)
{
// new_necessary_row = files_lines;
string ___current_record_lines_string = ___arrays_of_lines_of______total_files_read_data[files_lines];
if (___current_record_lines_string.TrimEnd().TrimStart().Trim().Length > 0)
{
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
___temp_smart_notes_object_to_fill_well_decorated_systems
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_SMART_COMPOSED_OBJECT
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
= new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_CLASS_SMART_COMPOSED_OBJECT();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
Console.WriteLine("___current_record_lines_string.TrimEnd().TrimStart().Trim()" +
" = " + ___current_record_lines_string.TrimEnd().TrimStart().Trim());
//we need to readjust this since the splitting behavious are different now
//files_lines to readjust
this.dataGridView___COMPOSER.Rows[new_necessary_row___for_first_run_to_import_raw_splitted_data].Selected = true;
DataGridViewRow selected_row_WITHOUTONCLICKPRELISTENS = null;
selected_row_WITHOUTONCLICKPRELISTENS
= this.dataGridView___COMPOSER.Rows[new_necessary_row___for_first_run_to_import_raw_splitted_data];
string ___the_current_rows_indinotes_or_commands_found = "";
___the_current_rows_indinotes_or_commands_found
=
___arrays_of_lines_of______total_files_read_data[files_lines];
if(___the_current_rows_indinotes_or_commands_found.Contains("_DISTRIBUTED_"))
{
string[] ___SPLITTED____WITH____DISTRIBUTED_
=
___the_current_rows_indinotes_or_commands_found
.Split(new string[] { "_DISTRIBUTED_" }, StringSplitOptions.None);
___the_current_rows_indinotes_or_commands_found
= ___SPLITTED____WITH____DISTRIBUTED_[0];
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
.Value
=
___SPLITTED____WITH____DISTRIBUTED_[1];
}// if(___the_current_rows_indinotes_or_commands_found.Contains("_DISTRIBUTED_"))
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value
=
___the_current_rows_indinotes_or_commands_found;
/////////////////////////////////////////////////////// FILLING THE INDIAN NOTES DATA //////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "|")
{
number_of_free_notes_out_of_all_brackets_inside_current_measures_interpiped_tokens = 0;//flushes at the pipes symbols found
/////////////////////////////////////////////////////////////////////////////////////////////
___temp_number_of_first_bracket_in_current_measure_crossed = 0;//flush for every new pipes measures
___temp_number_of_seconds_bracket_in_current_measure_crossed = 0;//flush for every new pipes measures
___temp_number_of_third_bracket_in_current_measure_crossed = 0;//flush for every new pipes measures
//////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___MEASURE_PIPES_FOUND
.Add(new_necessary_row___for_first_run_to_import_raw_splitted_data);
////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"]
.Style.BackColor = Color.LightBlue;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"]
.Value = "108";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_CHANNEL"]
.Value = "10";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_TRACK"]
.Value = "10";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Value = "60";
//we will adjust the next durations with some milliseconds less
// but this is running with different channel and different track
if(null== selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
}//if(null== selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"30";//we will impose the real calculatedd data as per the decorations strategy to use
///////////////////////////////////////// smart composer things are added now ////////////////////////////
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___MEASURE_PIPES_FOUND
.Add(new_necessary_row___for_first_run_to_import_raw_splitted_data);
/////////////////////////////////////////////////////////////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
___temp_new_smart_measure_object____________________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
= new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES();
////////////////////////////////////////////////////////////////////////////////////////////
___temp_new_smart_measure_object____________________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.PUBLIC_INT_MEASURE_ID
=
___temp_number_of_pipes_measure_token_crossed;
////////////////////////////////////////////////////////////////////////////////////////////
___temp_new_smart_measure_object____________________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.PUBLIC_DOUBLE_TOTAL_DURATIONS_IN_CURRENT_MEASURE_OBJECT
=
___temp_double___single_measures_within_two_pipes_total_durations_millis;
////////////////////////////////////////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
___temp___smart_group_of_notes__at_level_zero_to_add_atleast______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE();
/////////////////////////////////////////////////////////////////////////////////////////////////
___temp_new_smart_measure_object____________________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Add
(
___temp___smart_group_of_notes__at_level_zero_to_add_atleast______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
);
/////////////////////////////////////////////////////////////////////////////////////
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Add
(___temp_new_smart_measure_object____________________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES);
///////////////////////////////////////// smart composer things are added now ////////////////////////////
///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// to add the new list for the ( found
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Last()
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Add
(
___temp___smart_group_of_notes__at_level_zero_to_add_atleast______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
);
//////////////////////// THIS IS DONE FOR ALL OTHER TYPES OF THINGS ///////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_INDINOTE_FOUND
=
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
=
6;
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= 6;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
=
new_necessary_row___for_first_run_to_import_raw_splitted_data;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
try
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// .Last()
////// .public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
////// .ElementAt(___temp_number_of_first_bracket_in_current_measure_crossed)
////// .PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .Add
////// (
////// ______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_populate_groups_of_notes_and_then_notes)
{
Console.WriteLine
(
"___excp_to_populate_groups_of_notes_and_then_notes\r\n"
+ ___excp_to_populate_groups_of_notes_and_then_notes.Message
+ "\r\n" +
___excp_to_populate_groups_of_notes_and_then_notes.StackTrace.ToString()
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the nesting_depth groups has elements = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Last()
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Count
+ "\r\n trying to access element at = " +
___temp_number_of_first_bracket_in_current_measure_crossed
);
}//catch(Exception ___excp_to_populate_groups_of_notes_and_then_notes)
//populates first and then increased
___temp_number_of_pipes_measure_token_crossed++; // this is increased
}//if(___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim()=="|")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "!")
{
// the chikaris
////////////////////////////////////////////////////////////////////////////////////////
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___MEASURE_PIPES_FOUND
.Add(new_necessary_row___for_first_run_to_import_raw_splitted_data);
////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"]
.Style.BackColor = Color.LightBlue;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"]
.Value = "108";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_CHANNEL"]
.Value = "10";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_TRACK"]
.Value = "10";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Value = "38";
//we will adjust the next durations with some milliseconds less
// but this is running with different channel and different track
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
//////.Value = "30";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
if (null == selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
.Value = "30";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
}//if(null== selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"30";//we will impose the real calculatedd data as per the decorations strategy to use
#region PURE_SIMPLES_NOTES_ADDERS
//////////////////////// THIS IS DONE FOR ALL OTHER TYPES OF THINGS ///////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_INDINOTE_FOUND
=
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
=
6;
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= 6;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
=
new_necessary_row___for_first_run_to_import_raw_splitted_data;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// .Last()
////// .public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
////// .ElementAt(___temp_number_of_first_bracket_in_current_measure_crossed)
////// .PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .Add
////// (
////// ______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_populate_groups_of_notes_and_then_notes)
{
Console.WriteLine
(
"___excp_to_populate_groups_of_notes_and_then_notes\r\n"
+ ___excp_to_populate_groups_of_notes_and_then_notes.Message
+ "\r\n" +
___excp_to_populate_groups_of_notes_and_then_notes.StackTrace.ToString()
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the nesting_depth groups has elements = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Last()
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Count
+ "\r\n trying to access element at = " +
___temp_number_of_first_bracket_in_current_measure_crossed
);
}//catch(Exception ___excp_to_populate_groups_of_notes_and_then_notes)
#endregion PURE_SIMPLES_NOTES_ADDERS
}//if(___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim()=="@")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "@")
{
////////////////////////////////////////////////////////////////////////////////////////
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___MEASURE_PIPES_FOUND
.Add(new_necessary_row___for_first_run_to_import_raw_splitted_data);
////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"]
.Style.BackColor = Color.LightBlue;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"]
.Value = "108";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_CHANNEL"]
.Value = "10";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_TRACK"]
.Value = "10";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Value = "38";
//we will adjust the next durations with some milliseconds less
// but this is running with different channel and different track
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
//////.Value = "30";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
if (null == selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
.Value = "30";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
}//if(null== selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"30";//we will impose the real calculatedd data as per the decorations strategy to use
#region PURE_SIMPLES_NOTES_ADDERS
//////////////////////// THIS IS DONE FOR ALL OTHER TYPES OF THINGS ///////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_INDINOTE_FOUND
=
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
=
10;
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= 10;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
=
new_necessary_row___for_first_run_to_import_raw_splitted_data;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// .Last()
////// .public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
////// .ElementAt(___temp_number_of_first_bracket_in_current_measure_crossed)
////// .PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .Add
////// (
////// ______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_populate_groups_of_notes_and_then_notes)
{
Console.WriteLine
(
"___excp_to_populate_groups_of_notes_and_then_notes\r\n"
+ ___excp_to_populate_groups_of_notes_and_then_notes.Message
+"\r\n"+
___excp_to_populate_groups_of_notes_and_then_notes.StackTrace.ToString()
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the nesting_depth groups has elements = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Last()
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Count
+ "\r\n trying to access element at = " +
___temp_number_of_first_bracket_in_current_measure_crossed
);
}//catch(Exception ___excp_to_populate_groups_of_notes_and_then_notes)
#endregion PURE_SIMPLES_NOTES_ADDERS
}//if(___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim()=="@")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "(")
{
___temp_number_of_first_bracket_in_current_measure_crossed++;//flush for every new pipes measures
// ___temp_number_of_seconds_bracket_in_current_measure_crossed = 0;//flush for every new pipes measures
// ___temp_number_of_third_bracket_in_current_measure_crossed = 0;//flush for every new pipes measures
////////////////////////////////////////////////////////////////////////////////////////
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_START_FOUND
.Add(new_necessary_row___for_first_run_to_import_raw_splitted_data);
////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"]
.Style.BackColor = Color.LightBlue;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"]
.Value = "22";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_CHANNEL"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_TRACK"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Value = "57";
//we will adjust the next durations with some milliseconds less
// but this is running with different channel and different track
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
//////.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
if (null == selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
}//if(null== selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"30";//we will impose the real calculatedd data as per the decorations strategy to use
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
___temp__object_of____ONLYWHEN_FIRST_BRACKET_STARTS________PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE();
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
___temp__object_of____ONLYWHEN_FIRST_BRACKET_STARTS________PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.PUBLIC_INT_NESTING_LEVELS_DEPTH_FOR_THIS_GROUP_OF_OF_NOTES
=
___temp_number_of_first_bracket_in_current_measure_crossed;
//////////////////////////////////////////////////////////////////////////////////////////////////////
___temp__object_of____ONLYWHEN_FIRST_BRACKET_STARTS________PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.PUBLIC_INT_MEASURE_ID_FOR_THIS_GROUP_OF_NOTES
= ___temp_number_of_pipes_measure_token_crossed;
//////////////////////////////////////////////////////////////////////////////////////////////////////
#region PURE_SIMPLES_NOTES_ADDERS
//////////////////////// THIS IS DONE FOR ALL OTHER TYPES OF THINGS ///////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_INDINOTE_FOUND
=
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
=
6;
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= 6;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
=
new_necessary_row___for_first_run_to_import_raw_splitted_data;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
___temp___smart_group_of_notes__at_level_zero_to_add_atleast______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE();
////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////This is also necessary to avoid the null references
___temp___smart_group_of_notes__at_level_zero_to_add_atleast______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.PUBLIC_LIST_OF_______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Add
(
___temp___smart_group_of_notes__at_level_zero_to_add_atleast______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
);
if(
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
!=null
)
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// to add the new list for the ( found
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
//////.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
//////.Last()
//////.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
//////.Add
//////(
//////___temp___smart_group_of_notes__at_level_zero_to_add_atleast______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
//////);
}
else
{
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// .Add
////// (
////// );
}//end of else of
//////if (
////// ___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// != null
////// )
try
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// .Last()
////// .public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
////// .ElementAt(___temp_number_of_first_bracket_in_current_measure_crossed)
////// .PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .Add
////// (
////// ______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_populate_groups_of_notes_and_then_notes)
{
Console.WriteLine
(
"___excp_to_populate_groups_of_notes_and_then_notes\r\n"
+ ___excp_to_populate_groups_of_notes_and_then_notes.Message
+ "\r\n" +
___excp_to_populate_groups_of_notes_and_then_notes.StackTrace.ToString()
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the nesting_depth groups has elements = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Last()
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Count
+ "\r\n trying to access element at = " +
___temp_number_of_first_bracket_in_current_measure_crossed
);
}//catch(Exception ___excp_to_populate_groups_of_notes_and_then_notes)
#endregion PURE_SIMPLES_NOTES_ADDERS
}//if(___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim()=="(")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == ")")
{
// ___temp_number_of_seconds_bracket_in_current_measure_crossed = 0;//flush for every new pipes measures
// ___temp_number_of_third_bracket_in_current_measure_crossed = 0;//flush for every new pipes measures
////////////////////////////////////////////////////////////////////////////////////////
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_FINALS_FOUND
.Add(new_necessary_row___for_first_run_to_import_raw_splitted_data);
////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"]
.Style.BackColor = Color.LightBlue;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"]
.Value = "22";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_CHANNEL"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_TRACK"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Value = "61";
//we will adjust the next durations with some milliseconds less
// but this is running with different channel and different track
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
//////.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
if (null == selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
}//if(null== selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"30";//we will impose the real calculatedd data as per the decorations strategy to use
#region PURE_SIMPLES_NOTES_ADDERS
//////////////////////// THIS IS DONE FOR ALL OTHER TYPES OF THINGS ///////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_INDINOTE_FOUND
=
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
=
6;
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= 6;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
=
new_necessary_row___for_first_run_to_import_raw_splitted_data;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// .Last()
////// .public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
////// .ElementAt(___temp_number_of_first_bracket_in_current_measure_crossed)
////// .PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .Add
////// (
////// ______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_populate_groups_of_notes_and_then_notes)
{
Console.WriteLine
(
"___excp_to_populate_groups_of_notes_and_then_notes\r\n"
+ ___excp_to_populate_groups_of_notes_and_then_notes.Message
+ "\r\n" +
___excp_to_populate_groups_of_notes_and_then_notes.StackTrace.ToString()
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the nesting_depth groups has elements = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Last()
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Count
+ "\r\n trying to access element at = " +
___temp_number_of_first_bracket_in_current_measure_crossed
);
}//catch(Exception ___excp_to_populate_groups_of_notes_and_then_notes)
#endregion PURE_SIMPLES_NOTES_ADDERS
////// the case of ) we reduce the number after adding this to the group of notes
___temp_number_of_first_bracket_in_current_measure_crossed--;//flush for every new pipes measures
}//if(___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim()==")")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////// seconds and thirds brackets cases starts //////////////
/// the seconds brackets cases /////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "{")
{
// ___temp_number_of_first_bracket_in_current_measure_crossed++;
___temp_number_of_seconds_bracket_in_current_measure_crossed++;
// ___temp_number_of_third_bracket_in_current_measure_crossed = 0;
////////////////////////////////////////////////////////////////////////////////////////
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_START_FOUND
.Add(new_necessary_row___for_first_run_to_import_raw_splitted_data);
////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"]
.Style.BackColor = Color.LightBlue;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"]
.Value = "22";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_CHANNEL"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_TRACK"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Value = "57";
//we will adjust the next durations with some milliseconds less
// but this is running with different channel and different track
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"30";//we will impose the real calculatedd data as per the decorations strategy to use
#region PURE_SIMPLES_NOTES_ADDERS
//////////////////////// THIS IS DONE FOR ALL OTHER TYPES OF THINGS ///////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_INDINOTE_FOUND
=
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
=
6;
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= 6;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
=
new_necessary_row___for_first_run_to_import_raw_splitted_data;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// .Last()
////// .public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
////// .ElementAt(___temp_number_of_first_bracket_in_current_measure_crossed)
////// .PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .Add
////// (
////// ______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_populate_groups_of_notes_and_then_notes)
{
Console.WriteLine
(
"___excp_to_populate_groups_of_notes_and_then_notes\r\n"
+ ___excp_to_populate_groups_of_notes_and_then_notes.Message
+ "\r\n" +
___excp_to_populate_groups_of_notes_and_then_notes.StackTrace.ToString()
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the nesting_depth groups has elements = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Last()
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Count
+ "\r\n trying to access element at = " +
___temp_number_of_first_bracket_in_current_measure_crossed
);
}//catch(Exception ___excp_to_populate_groups_of_notes_and_then_notes)
#endregion PURE_SIMPLES_NOTES_ADDERS
}//if(___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim()=="{")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "}")
{
// ___temp_number_of_first_bracket_in_current_measure_crossed++;//not to do here
___temp_number_of_seconds_bracket_in_current_measure_crossed--;
// ___temp_number_of_third_bracket_in_current_measure_crossed = 0;
////////////////////////////////////////////////////////////////////////////////////////
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_FINALS_FOUND
.Add(new_necessary_row___for_first_run_to_import_raw_splitted_data);
////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"]
.Style.BackColor = Color.LightBlue;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"]
.Value = "22";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_CHANNEL"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_TRACK"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Value = "61";
//we will adjust the next durations with some milliseconds less
// but this is running with different channel and different track
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
//////.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
if (null == selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
}//if(null== selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"30";//we will impose the real calculatedd data as per the decorations strategy to use
#region PURE_SIMPLES_NOTES_ADDERS
//////////////////////// THIS IS DONE FOR ALL OTHER TYPES OF THINGS ///////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_INDINOTE_FOUND
=
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
=
6;
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= 6;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
=
new_necessary_row___for_first_run_to_import_raw_splitted_data;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// .Last()
////// .public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
////// .ElementAt(___temp_number_of_first_bracket_in_current_measure_crossed)
////// .PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .Add
////// (
////// ______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_populate_groups_of_notes_and_then_notes)
{
Console.WriteLine
(
"___excp_to_populate_groups_of_notes_and_then_notes\r\n"
+ ___excp_to_populate_groups_of_notes_and_then_notes.Message
+ "\r\n" +
___excp_to_populate_groups_of_notes_and_then_notes.StackTrace.ToString()
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the nesting_depth groups has elements = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Last()
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Count
+ "\r\n trying to access element at = " +
___temp_number_of_first_bracket_in_current_measure_crossed
);
}//catch(Exception ___excp_to_populate_groups_of_notes_and_then_notes)
#endregion PURE_SIMPLES_NOTES_ADDERS
}//if(___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim()=="}")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// the thirds brackets cases starts
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "[")
{
// ___temp_number_of_first_bracket_in_current_measure_crossed++;
/// ___temp_number_of_seconds_bracket_in_current_measure_crossed++;
___temp_number_of_third_bracket_in_current_measure_crossed++;
////////////////////////////////////////////////////////////////////////////////////////
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_START_FOUND
.Add(new_necessary_row___for_first_run_to_import_raw_splitted_data);
////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"]
.Style.BackColor = Color.LightBlue;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"]
.Value = "22";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_CHANNEL"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_TRACK"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Value = "57";
//we will adjust the next durations with some milliseconds less
// but this is running with different channel and different track
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
//////.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
if (null == selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
}//if(null== selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"30";//we will impose the real calculatedd data as per the decorations strategy to use
#region PURE_SIMPLES_NOTES_ADDERS
//////////////////////// THIS IS DONE FOR ALL OTHER TYPES OF THINGS ///////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_INDINOTE_FOUND
=
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
=
6;
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= 6;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
=
new_necessary_row___for_first_run_to_import_raw_splitted_data;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// .Last()
////// .public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
////// .ElementAt(___temp_number_of_first_bracket_in_current_measure_crossed)
////// .PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .Add
////// (
////// ______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_populate_groups_of_notes_and_then_notes)
{
Console.WriteLine
(
"___excp_to_populate_groups_of_notes_and_then_notes\r\n"
+ ___excp_to_populate_groups_of_notes_and_then_notes.Message
+ "\r\n" +
___excp_to_populate_groups_of_notes_and_then_notes.StackTrace.ToString()
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the nesting_depth groups has elements = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Last()
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Count
+ "\r\n trying to access element at = " +
___temp_number_of_first_bracket_in_current_measure_crossed
);
}//catch(Exception ___excp_to_populate_groups_of_notes_and_then_notes)
#endregion PURE_SIMPLES_NOTES_ADDERS
}//if(___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim()=="{")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "]")
{
// ___temp_number_of_first_bracket_in_current_measure_crossed++;//not to do here
// ___temp_number_of_seconds_bracket_in_current_measure_crossed--;
___temp_number_of_third_bracket_in_current_measure_crossed--;
////////////////////////////////////////////////////////////////////////////////////////
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_FINALS_FOUND
.Add(new_necessary_row___for_first_run_to_import_raw_splitted_data);
////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"]
.Style.BackColor = Color.LightBlue;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"]
.Value = "22";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_CHANNEL"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_FOR_TRACK"]
.Value = "6";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Value = "61";
//we will adjust the next durations with some milliseconds less
// but this is running with different channel and different track
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
//////.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
if (null == selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
.Value = "60";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
}//if(null== selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"30";//we will impose the real calculatedd data as per the decorations strategy to use
#region PURE_SIMPLES_NOTES_ADDERS
//////////////////////// THIS IS DONE FOR ALL OTHER TYPES OF THINGS ///////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_INDINOTE_FOUND
=
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
=
6;
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= 6;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
=
new_necessary_row___for_first_run_to_import_raw_splitted_data;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// .Last()
////// .public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
////// .ElementAt(___temp_number_of_first_bracket_in_current_measure_crossed)
////// .PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .Add
////// (
////// ______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_populate_groups_of_notes_and_then_notes)
{
Console.WriteLine
(
"___excp_to_populate_groups_of_notes_and_then_notes\r\n"
+ ___excp_to_populate_groups_of_notes_and_then_notes.Message
+ "\r\n" +
___excp_to_populate_groups_of_notes_and_then_notes.StackTrace.ToString()
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the nesting_depth groups has elements = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Last()
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Count
+ "\r\n trying to access element at = " +
___temp_number_of_first_bracket_in_current_measure_crossed
);
}//catch(Exception ___excp_to_populate_groups_of_notes_and_then_notes)
#endregion PURE_SIMPLES_NOTES_ADDERS
}//if(___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim()=="]")
else
{
//start of the cases where pure notes are there and no special characters are there
///strict note that the pure mels notes are in the else cases here
///strict note that the pure mels notes are in the else cases here
///strict note that the pure mels notes are in the else cases here
///strict note that the pure mels notes are in the else cases here
///strict note that the pure mels notes are in the else cases here
///strict note that the pure mels notes are in the else cases here
///FOR REFERENCES string ___TEMP_STRING___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS = "";
___TEMP_INT___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS
=
0;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS FOR THE CASES WHERE WE ARE NOT INSIDE ANY OF THE SPECIAL IF CASES
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null)
{
//dont change that if the duration is already filled
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length == 0)
{
//if the blank data is there
//if previous data is not there for the first run of the imorts
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value
=
"220";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length==0)
}
else
{
////////if the duration is null then
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value
//////=
//////"220";
///
if (null == selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"]
.Value = "220";// THESE ASSIGNMENTS ARE TOO MUCH TENTATIVE IN THE FIRST RUN OF THE LOOPS
}//if(null== selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value)
}//end of else of if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value!=null)
if (___the_current_rows_indinotes_or_commands_found == "-")
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"0";
}//if(___the_current_rows_indinotes_or_commands_found=="-")
else
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"127";
}//end of else of //if(___the_current_rows_indinotes_or_commands_found=="-")
///strict note that the pure mels notes are in the else cases here
///strict note that the pure mels notes are in the else cases here
///strict note that the pure mels notes are in the else cases here
///strict note that the pure mels notes are in the else cases here
///strict note that the pure mels notes are in the else cases here
///strict note that the pure mels notes are in the else cases here
///strict note that the pure mels notes are in the else cases here
//completions of the cases where pure notes are there and no special characters are there
#region PURE_SIMPLES_NOTES_ADDERS
//////////////////////// THIS IS DONE FOR ALL OTHER TYPES OF THINGS ///////////////////////////////////////////////
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.
PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_STRING_THE_INDINOTE_FOUND
=
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
=
6;
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER
= 6;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
=
new_necessary_row___for_first_run_to_import_raw_splitted_data;
////// THIS IS TOO IMPORTANT TO RELOAD THE DATA FROM THE DATA GRIDS /////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
////// .PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
////// .Last()
////// .public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
////// .ElementAt(___temp_number_of_first_bracket_in_current_measure_crossed)
////// .PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .Add
////// (
////// ______temp___object______PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excp_to_populate_groups_of_notes_and_then_notes)
{
Console.WriteLine
(
"___excp_to_populate_groups_of_notes_and_then_notes\r\n"
+ ___excp_to_populate_groups_of_notes_and_then_notes.Message
+ "\r\n" +
___excp_to_populate_groups_of_notes_and_then_notes.StackTrace.ToString()
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the measures count = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Count
+ "\r\n the nesting_depth groups has elements = " +
___temp_object_of___PUBLIC_CLASS_SMART_COMPOSED_OBJECT
.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
.Last()
.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Count
+ "\r\n trying to access element at = " +
___temp_number_of_first_bracket_in_current_measure_crossed
);
}//catch(Exception ___excp_to_populate_groups_of_notes_and_then_notes)
#endregion PURE_SIMPLES_NOTES_ADDERS
}//end of all if cases for the special notes symbols
///////////////////////// THE SMART NOTES LOADING STARTS HERE TO THE LIST ///////////////////////////////////////////
///////////////////////// THE SMART NOTES LOADING STARTS HERE TO THE LIST ///////////////////////////////////////////
///////////////////////// THE SMART NOTES LOADING STARTS HERE TO THE LIST ///////////////////////////////////////////
///////////////////////// THE SMART NOTES LOADING STARTS HERE TO THE LIST ///////////////////////////////////////////
///////////////////////// THE SMART NOTES LOADING STARTS HERE TO THE LIST ///////////////////////////////////////////
///////////////////////// THE SMART NOTES LOADING STARTS HERE TO THE LIST ///////////////////////////////////////////
///////////////////////// THE SMART NOTES LOADING STARTS HERE TO THE LIST ///////////////////////////////////////////
///////////////////////// THE SMART NOTES LOADING STARTS HERE TO THE LIST ///////////////////////////////////////////
///////////////////////// THE SMART NOTES LOADING STARTS HERE TO THE LIST ///////////////////////////////////////////
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
if (
___temp_number_of_first_bracket_in_current_measure_crossed == 0
&&
___temp_number_of_seconds_bracket_in_current_measure_crossed == 0
&&
___temp_number_of_third_bracket_in_current_measure_crossed == 0
)
{
// saan will reduce the number of decorative notes also that is the notes due to @ which are there before and after pipes before and after ( , { , [ or ) } ]
// saan will reduce the number of decorative notes also that is the notes due to @ which are there before and after pipes before and after ( , { , [ or ) } ]
// saan will reduce the number of decorative notes also that is the notes due to @ which are there before and after pipes before and after ( , { , [ or ) } ]
number_of_free_notes_out_of_all_brackets_inside_current_measures_interpiped_tokens++;
// saan will reduce the number of decorative notes also that is the notes due to @ which are there before and after pipes before and after ( , { , [ or ) } ]
// saan will reduce the number of decorative notes also that is the notes due to @ which are there before and after pipes before and after ( , { , [ or ) } ]
// saan will reduce the number of decorative notes also that is the notes due to @ which are there before and after pipes before and after ( , { , [ or ) } ]
}
//////////////////if (
//////////////////___temp_number_of_first_bracket_in_current_measure_crossed == 0
//////////////////&&
//////////////////___temp_number_of_seconds_bracket_in_current_measure_crossed == 0
//////////////////&&
//////////////////___temp_number_of_third_bracket_in_current_measure_crossed == 0
//////////////////)
//////////////////////// the smart systems to implement while loading the first non decorated non times calculated conditions
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
//for references to populate objects here int number_of_free_notes_out_of_all_brackets_inside_current_measures_interpiped_tokens = 0;//flushes at every pipes
//for references to populate objects here int ___temp_number_of_pipes_measure_token_crossed = 0;
//for references to populate objects here int ___temp_number_of_first_bracket_in_current_measure_crossed = 0;
//for references to populate objects here int ___temp_number_of_seconds_bracket_in_current_measure_crossed = 0;
//for references to populate objects here int ___temp_number_of_third_bracket_in_current_measure_crossed = 0;
/////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_DOUBLE_CURRENT_NOTE_NUMBER =
new_necessary_row___for_first_run_to_import_raw_splitted_data;
/////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_DOUBLE_CURRENT_EVENT_COUNTER = 0;
/////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___MEASURES_NUMBER___NUMBER_OF_PIPES_CROSSED
=
___temp_number_of_pipes_measure_token_crossed;
/////////////////////////////////////////////////////////////////////////////////////////////////////
//THIS INCREASES WITH { AND DECREASES WITH ) AND THE UNBALANCED CASES ARE ALSO IDENTIFIED AND RESETS TO ZERO WHEN NEW PIPE IS FOUND
//we need this too much since we need to assign the durations for the non decorative notes and only for the pure mels notes for the
//cases where the pure mel notes are free notes inside current measures or the current mel note is inside the nested ( ) { } [ ] conditions
//such that we can distribute the total measures durations to the grouped notes also and the grouped notes are taken as the single mels notes durations
//within the current measures of the piped tokens to get the objects properly placed as per the syntax controlled systems of designing the systems
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___NUMBER_OF_FIRST_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO
=
___temp_number_of_first_bracket_in_current_measure_crossed
;
/////////////////////////////////////////////////////////////////////////////////////
//THIS INCREASES WITH { AND DECREASES WITH ) AND THE UNBALANCED CASES ARE ALSO IDENTIFIED AND RESETS TO ZERO WHEN NEW PIPE IS FOUND
//we need this too much since we need to assign the durations for the non decorative notes and only for the pure mels notes for the
//cases where the pure mel notes are free notes inside current measures or the current mel note is inside the nested ( ) { } [ ] conditions
//such that we can distribute the total measures durations to the grouped notes also and the grouped notes are taken as the single mels notes durations
//within the current measures of the piped tokens to get the objects properly placed as per the syntax controlled systems of designing the systems
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___NUMBER_OF_SECONDS_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO
=
___temp_number_of_seconds_bracket_in_current_measure_crossed
;
//THIS INCREASES WITH { AND DECREASES WITH ) AND THE UNBALANCED CASES ARE ALSO IDENTIFIED AND RESETS TO ZERO WHEN NEW PIPE IS FOUND
//we need this too much since we need to assign the durations for the non decorative notes and only for the pure mels notes for the
//cases where the pure mel notes are free notes inside current measures or the current mel note is inside the nested ( ) { } [ ] conditions
//such that we can distribute the total measures durations to the grouped notes also and the grouped notes are taken as the single mels notes durations
//within the current measures of the piped tokens to get the objects properly placed as per the syntax controlled systems of designing the systems
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___FOR_NOTES_ATTRIBUTES_DEFINER_NUMBER_OF_THIRDS_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO
=
___temp_number_of_third_bracket_in_current_measure_crossed
;
///////////////////////////////////////////////////////////////////////////////////////////////////////////
///FOR REFERENCES string ___TEMP_STRING___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS = "";
///FOR REFERENCES ////////////___TEMP_INT___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS
//flushing first
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = 0;
//flushing first
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBIC_DOUBLE_ENFORCER_FINAL_TIMES_MILLIS_FOR_DECORATIONS_BACK_CALCULATIONS_GANTTS = 0;
///////////////////////////////////////////////////////////////////////////////////////////////
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_DOUBLE_TOTAL_MILLIS_ASSIGNED_TO_CURRENT_MEASURE
=
___temp_double___single_measures_within_two_pipes_total_durations_millis
;
/////////////////////////////////////////////////////////////////////////////////////////////
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT_TOTAL_FREE_NOTES_NON_GROUPED_OUT_OF_BRACKETS_NOTES_ASSIGNED_TO_CURRENT_MEASURE
= number_of_free_notes_out_of_all_brackets_inside_current_measures_interpiped_tokens;
/////////////////////////////////////////////////////////////////////////////////////////////
if (
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "@"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "|"
||
//___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "-"
//||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "~"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "\\"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "/"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "("
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == ")"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "{"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "}"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "["
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "]"
//this is the chikaris symbols
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "!"
)
{
//rechecking that data are properly filled into the grids
___current_nons_mels_notes_durations_assigned = 0;//flushing first
// we are in the decorations notes parts
// we are in the decorations notes parts
// we are in the decorations notes parts
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0)
{
try
{
___current_nons_mels_notes_durations_assigned
=
Convert.ToDouble
(
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim()
);
}
catch (Exception ___excp)
{
___current_nons_mels_notes_durations_assigned = 0;
}//catch(Exception ___excp)
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
}//if ( selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value!=null)
// we are in the decorations notes parts
// we are in the decorations notes parts
// we are in the decorations notes parts
//////////////////////////////////////////// CALCULATING THE READSJUSTED STARTS TIMES POINTS ////////
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
=
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS
-
(___current_nons_mels_notes_durations_assigned / 2)
;
// these are the decorations notes units
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBIC_DOUBLE_ENFORCER_FINAL_TIMES_MILLIS_FOR_DECORATIONS_BACK_CALCULATIONS_GANTTS
=
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS
+
___current_nons_mels_notes_durations_assigned;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES"]
.Value
=
Math.Round
(
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS
).ToString("F0", CultureInfo.InvariantCulture);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///CAUTION CAUTION CAUTION THESE ARE FOR NON INDINOTES NONS MELS TYPES THESE ARE FOR OTHER KIND OF NOTES
/////HERE WE HAVE THE DECORATIVES NOTES PERCUSSIONS NOTES THINGS
///CAUTION CAUTION CAUTION THESE ARE FOR NON INDINOTES NONS MELS TYPES THESE ARE FOR OTHER KIND OF NOTES
/////HERE WE HAVE THE DECORATIVES NOTES PERCUSSIONS NOTES THINGS
///CAUTION CAUTION CAUTION THESE ARE FOR NON INDINOTES NONS MELS TYPES THESE ARE FOR OTHER KIND OF NOTES
/////HERE WE HAVE THE DECORATIVES NOTES PERCUSSIONS NOTES THINGS
// we will decorate the durations and the strt points of timestamps for
//other kinds of notes with references from the
// ___TEMP_CUMULATIVE_MILLIS_REFERENCES_WITH___FOR_MELSNOTES_DURATIONS_CUMULATIONS
//that is the last valid indinotes mels notes cumulations millis
///CAUTION CAUTION CAUTION THESE ARE FOR NON INDINOTES NONS MELS TYPES THESE ARE FOR OTHER KIND OF NOTES
/////HERE WE HAVE THE DECORATIVES NOTES PERCUSSIONS NOTES THINGS
///CAUTION CAUTION CAUTION THESE ARE FOR NON INDINOTES NONS MELS TYPES THESE ARE FOR OTHER KIND OF NOTES
/////HERE WE HAVE THE DECORATIVES NOTES PERCUSSIONS NOTES THINGS
///
///CAUTION CAUTION CAUTION THESE ARE FOR NON INDINOTES NONS MELS TYPES THESE ARE FOR OTHER KIND OF NOTES
/////HERE WE HAVE THE DECORATIVES NOTES PERCUSSIONS NOTES THINGS
///
// these are inside the percussions notes and decorations notes
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = 10; // these are inside the percussions notes and decorations notes
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = 11; // these are inside the percussions notes and decorations notes
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 0; // these are inside the percussions notes and decorations notes
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 0; // these are inside the percussions notes and decorations notes
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 0; // these are inside the percussions notes and decorations notes
// these are inside the percussions notes and decorations notes
}
////////////if (
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "@"
////////////||
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "|"
////////////||
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "-"
////////////||
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "~"
////////////||
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "\\"
////////////||
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "/"
////////////||
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "("
////////////||
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == ")"
////////////||
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "{"
////////////||
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "}"
////////////||
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "["
////////////||
////////////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "]"
////////////)
else
{
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
////////////////////////// NOW WE HAVE ENTERED INTO THE MELS NOTES CONDITIONS
//flushing first
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS = 0;
/// these are important
/// //dont confuse these are to take care for the grouped notes or non grouped notes both
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_STRING_THE_INDINOTE_FOUND
=
___the_current_rows_indinotes_or_commands_found
;
//we will sum the cumulative data here
//for references string ___TEMP_STRING___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS = "";
//for references int ___TEMP_INT___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS = 0;
___TEMP_STRING___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS
=
DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES
(___the_current_rows_indinotes_or_commands_found);
___TEMP_STRING___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS
=
___TEMP_STRING___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS
.TrimEnd().TrimStart().Trim();
try
{
___TEMP_INT___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS
= Convert.ToInt16
(
___TEMP_STRING___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS
);
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Style.BackColor = Color.LightGreen;
}
catch (Exception ___excptoreadthenotesnumber)
{
___TEMP_INT___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS = 0;
}//catch (Exception ___excptoreadthenotesnumber)
////////////////////////////////////////////////////////////////////////////////////////////////////
if (___TEMP_INT___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS > 0)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Value
=
___TEMP_INT___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS.ToString();
}// if(___TEMP_INT___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS > 0)
////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// important code to handle the cumulations for the mels notes and the cumulations times for these mel notes data
///since these are important factors for the calculations of the decorative notes and for the percussions notes kinds of things
////SO HERE WE ARE ACCUMULATING THE PURE CUMULATIVE MILLIS START POINTS FOR ALL THE VALIDS MELLS NOTES
////SO HERE WE ARE ACCUMULATING THE PURE CUMULATIVE MILLIS START POINTS FOR ALL THE VALIDS MELLS NOTES
////SO HERE WE ARE ACCUMULATING THE PURE CUMULATIVE MILLIS START POINTS FOR ALL THE VALIDS MELLS NOTES
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0l)
{
try
{
___last_valid_duration_found
=
Convert
.ToDouble(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception ___excptoreadthenotesnumber)
{
___last_valid_duration_found = 220;
}//catch (Exception ___excptoreadthenotesnumber)
}
else
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value
= "220";
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0l)
}
else
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value
= "220";
}//end of else of if( selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value!=null)
try
{
___TEMP_CUMULATIVE_MILLIS_REFERENCES_WITH___FOR_MELSNOTES_DURATIONS_CUMULATIONS
=
___TEMP_CUMULATIVE_MILLIS_REFERENCES_WITH___FOR_MELSNOTES_DURATIONS_CUMULATIONS
+
___last_valid_duration_found;
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
=
___TEMP_CUMULATIVE_MILLIS_REFERENCES_WITH___FOR_MELSNOTES_DURATIONS_CUMULATIONS;
/////////////////////////////////////////////////////////////////////////
// this is too much important to pre fill the data
___temp_smart_notes_object_to_fill_well_decorated_systems
.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY
= ___last_valid_duration_found;
/////////////////////////////////////////////////////////////////////////
}
catch (Exception ___excptoreadthenotesnumber)
{
}//catch (Exception ___excptoreadthenotesnumber)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///// these are for pure mels notes which are to get the counter
///
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
___temp_smart_notes_object_to_fill_well_decorated_systems
.
PUBLIC_INT_LAST_NON_DECORATIVE_MIDS_NOTE_NUMBER_FOUND
=
___TEMP_INT___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS
;
/////////////////////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value = "30";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_JUERK_UP_PITCHBEND"].Value = "30";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value = "30";
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"]
.Value
=
"0;100";
// "0;20;30;45;60;80;100";
// "1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99;100";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"]
.Value
=
"8192;8192"; ;
// "8192;11192;6198;300;14000;11000;16000"; ;
// "162;324;486;648;811;973;1135;1297;1459;1622;1784;1946;2108;2270;2433;2595;2757;2919;3081;3244;3406;3568;3730;3892;4055;4217;4379;4541;4703;4866;5028;5190;5352;5514;5677;5839;6001;6163;6325;6488;6650;6812;6974;7136;7299;7461;7623;7785;7947;8110;8272;8434;8596;8758;8921;9083;9245;9407;9569;9732;9894;10056;10218;10380;10543;10705;10867;11029;11191;11354;11516;11678;11840;12002;12165;12327;12489;12651;12813;12976;13138;13300;13462;13624;13787;13949;14111;14273;14435;14598;14760;14922;15084;15246;15409;15571;15733;15895;16057;16220";
/////////////////////////////////////////////////////////////////////////////////////////////////////////
///
//or for the thirds brackets additional attributes for the notes syntaxes
___temp_smart_notes_object_to_fill_well_decorated_systems
.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS
=
"0;100";
// "0;20;30;45;60;80;100";
//"1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99;100";
___temp_smart_notes_object_to_fill_well_decorated_systems
.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES
=
"8192;8192"; ;
// "8192;11192;6198;300;14000;11000;16000"; ;
// "162;324;486;648;811;973;1135;1297;1459;1622;1784;1946;2108;2270;2433;2595;2757;2919;3081;3244;3406;3568;3730;3892;4055;4217;4379;4541;4703;4866;5028;5190;5352;5514;5677;5839;6001;6163;6325;6488;6650;6812;6974;7136;7299;7461;7623;7785;7947;8110;8272;8434;8596;8758;8921;9083;9245;9407;9569;9732;9894;10056;10218;10380;10543;10705;10867;11029;11191;11354;11516;11678;11840;12002;12165;12327;12489;12651;12813;12976;13138;13300;13462;13624;13787;13949;14111;14273;14435;14598;14760;14922;15084;15246;15409;15571;15733;15895;16057;16220";
// we dont bother this in first data populations cases since these are parts of decorations
//or for the thirds brackets additional attributes for the notes syntaxes
___temp_smart_notes_object_to_fill_well_decorated_systems
.STRING_COMMA_SEPERATED_WITHIN_NOTES_KEY_AFTERTOUCH_PERCENTAGES_DURATIONS = "0,100";
___temp_smart_notes_object_to_fill_well_decorated_systems
.STRING_COMMA_SEPERATED_WITHIN_NOTES_KEY_AFTERTOUCH_VALUES = "0,127";
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = 3;
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = 3;
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 30;
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 30;
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 30;
//////////////////////////////////////////////////////////// for the melody notes and for the percussions notes we will assign the data sames //////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES"]
.Value
=
Math.Round
(
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
).ToString("F0", CultureInfo.InvariantCulture);
// Round to nearest whole number and format without scientific notation
// string formatted = Math.Round(val).ToString("F0", CultureInfo.InvariantCulture);
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES"]
.Value
=
Math.Round
(
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
).ToString("F0", CultureInfo.InvariantCulture);
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
___temp_smart_notes_object_to_fill_well_decorated_systems
.INT_NOTE_NUMBER_TO_PLAY_0_TO_127
=
___TEMP_INT___LAST_PURE_MELS_NOTES_NUMBER___AS_FOUND_FROM_SRGMPDNS_SYSTEMS;
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
///////////////////////////////// important data filled heres ////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
////////////END OF ELSE OF if (
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "@"
////////////END OF ELSE OF ||
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "|"
////////////END OF ELSE OF ||
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "-"
////////////END OF ELSE OF ||
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "~"
////////////END OF ELSE OF ||
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "\\"
////////////END OF ELSE OF ||
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "/"
////////////END OF ELSE OF ||
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "("
////////////END OF ELSE OF ||
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == ")"
////////////END OF ELSE OF ||
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "{"
////////////END OF ELSE OF ||
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "}"
////////////END OF ELSE OF ||
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "["
////////////END OF ELSE OF ||
////////////END OF ELSE OF ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "]"
////////////END OF ELSE OF )
// we dont bother this in first data populations cases since these are parts of decorations
//or for the thirds brackets additional attributes for the notes syntaxes
//for the indi notes we can gather these from the thirds brackets data in the indinotes syntaxes inditaals syntaxes
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_STRING_THE_LYR_FOUND = "";
//this can change after the decorations and after the several different strategies
___temp_smart_notes_object_to_fill_well_decorated_systems
.INT_SERIAL_NUMBER_OF_NOTE
=
new_necessary_row___for_first_run_to_import_raw_splitted_data
;
// this cannot change once the files data are imported and these are necessary for handling the sorting to the actual states
//after any number of reorderign of the data handling for decorations purposes
___temp_smart_notes_object_to_fill_well_decorated_systems
.
INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES
=
new_necessary_row___for_first_run_to_import_raw_splitted_data;
// we dont bother this in first data populations cases since these are parts of decorations
//or for the thirds brackets additional attributes for the notes syntaxes
___temp_smart_notes_object_to_fill_well_decorated_systems
.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = 127;
// we dont bother this in first data populations cases since these are parts of decorations
//or for the thirds brackets additional attributes for the notes syntaxes
___temp_smart_notes_object_to_fill_well_decorated_systems
.INT_CURRENT_NOTES_PATCH_0_TO_127 = 127;
// we dont bother this in first data populations cases since these are parts of decorations
// we dont bother this in first data populations cases since these are parts of decorations
//or for the thirds brackets additional attributes for the notes syntaxes
___temp_smart_notes_object_to_fill_well_decorated_systems
.LONG_START_ABSOLUTE_TIME_FOR_CURRENT_NOTE = 0;
// we dont bother this in first data populations cases since these are parts of decorations
//or for the thirds brackets additional attributes for the notes syntaxes
___temp_smart_notes_object_to_fill_well_decorated_systems
.LONG_TICKS_DURATIONS_FOR_CURRENT_NOTE = 0;
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS = new List<double>();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Clear();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS = new List<int>();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS.Clear();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS = new List<double>();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS.Clear();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE = new List<long>();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE.Clear();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_DOUBLE_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS = new List<double>();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_DOUBLE_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS.Clear();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_INT_KEY_AFTERTOUCH_0_TO_127_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS = new List<int>();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_INT_KEY_AFTERTOUCH_0_TO_127_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS.Clear();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_DOUBLE_MILISECONDS_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS = new List<double>();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_DOUBLE_MILISECONDS_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS.Clear();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_KEY_AFTERTOUCH_IN_WHOLE_SEQUENCE = new List<long>();
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_KEY_AFTERTOUCH_IN_WHOLE_SEQUENCE.Clear();
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
if (new_necessary_row___for_first_run_to_import_raw_splitted_data >= (___arrays_of_lines_of______total_files_read_data.Length - 1))
{
___temp_smart_notes_object_to_fill_well_decorated_systems
.
PUBLIC_DOUBLE___TOTAL_CUMULATIVE_MILLIS_FOR_THE_WHOLE_SEQUENCE_SUM_OF_ALL_MELS_NOTES_DURATIONS
=
___temp_smart_notes_object_to_fill_well_decorated_systems
.PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS
+
___temp_smart_notes_object_to_fill_well_decorated_systems
.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY;
}//if( new_necessary_row___for_first_run_to_import_raw_splitted_data>=(___arrays_of_lines_of______total_files_read_data.Length-1) )
///CAUTION note that yet we have not populated all kinds of data to all the elements in the list
///CAUTION note that yet we have not populated all kinds of data to all the elements in the list
///CAUTION note that yet we have not populated all kinds of data to all the elements in the list
// we dont bother this in first data populations cases since these are parts of decorations
//or for the thirds brackets additional attributes for the notes syntaxes
___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.
Add
(___temp_smart_notes_object_to_fill_well_decorated_systems);
///CAUTION note that yet we have not populated all kinds of data to all the elements in the list
///CAUTION note that yet we have not populated all kinds of data to all the elements in the list
///CAUTION note that yet we have not populated all kinds of data to all the elements in the list
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
}// if(___current_record_lines_string.TrimEnd().TrimStart().Trim().Length>0)
//we will rethink again
new_necessary_row___for_first_run_to_import_raw_splitted_data++;/// need to rethink these things
}//for(int files_lines=1; files_lines< ___arrays_of_lines_of______total_files_read_data.Length; files_lines++)
}// if(___arrays_of_lines_of______total_files_read_data.Length>1)
StringBuilder ___stringbuildertoreportthestatesofthefilledlist = new StringBuilder();
___stringbuildertoreportthestatesofthefilledlist.Clear();
if (this.checkBox___TO_LOAD_INDINOTATIONS_REMOVING_PIPES_NEWLINES_DECORATORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper() == "CHECKED")
{
___stringbuildertoreportthestatesofthefilledlist
.AppendLine
(
"this.checkBox___TO_LOAD_INDINOTATIONS_REMOVING_PIPES_NEWLINES_DECORATORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper() \r\n"
+ this.checkBox___TO_LOAD_INDINOTATIONS_REMOVING_PIPES_NEWLINES_DECORATORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper()+
"\r\nso the pipes and other notes are removed"
);
}// if (this.checkBox___TO_LOAD_INDINOTATIONS_REMOVING_PIPES_NEWLINES_DECORATORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper() == "CHECKED")
//////////////////////////////////////////// FIRST LOADING OF THE PRELIMINARY DATA RE GRABBED TO THE LIST ///////////
//////////////////////////////////////////// FIRST LOADING OF THE PRELIMINARY DATA RE GRABBED TO THE LIST ///////////
//////////////////////////////////////////// FIRST LOADING OF THE PRELIMINARY DATA RE GRABBED TO THE LIST ///////////
for (int rrrrrr = 0; rrrrrr < ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS.Count; rrrrrr++)
{
___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.ElementAt(rrrrrr)
.PUBLIC_DOUBLE___TOTAL_CUMULATIVE_MILLIS_FOR_THE_WHOLE_SEQUENCE_SUM_OF_ALL_MELS_NOTES_DURATIONS
=
___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.Last()
.
PUBLIC_DOUBLE___TOTAL_CUMULATIVE_MILLIS_FOR_THE_WHOLE_SEQUENCE_SUM_OF_ALL_MELS_NOTES_DURATIONS;
}//for(int rrrrrr=0; rrrrrr< ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS.Count; rrrrrr++)
////////////////////// WE WILL REVERSE THE LIST TO DO THE POPULATIONS OF THE DURATIONS DISTRIBUTIONS TASKS FIRST AND COUNT THE TOTAL FREE GROUPS IN THE CURRENT MEASURES //////////
////////////////////// WE WILL REVERSE THE LIST TO DO THE POPULATIONS OF THE DURATIONS DISTRIBUTIONS TASKS FIRST AND COUNT THE TOTAL FREE GROUPS IN THE CURRENT MEASURES //////////
////////////////////// WE WILL REVERSE THE LIST TO DO THE POPULATIONS OF THE DURATIONS DISTRIBUTIONS TASKS FIRST AND COUNT THE TOTAL FREE GROUPS IN THE CURRENT MEASURES //////////
___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS.Reverse();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int _count_of_total_items = 0;
_count_of_total_items
=
___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS.Count;
//to do
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////for (int repopulates_iter_measures_durations_dist=0; repopulates_iter_measures_durations_dist< _count_of_total_items; repopulates_iter_measures_durations_dist++)
//////{
////// int ___current_measures_number_found = 0;
////// int ___temp_free_groups_counter_first_brackets_nesting_level = 0;
////// ___current_measures_number_found
////// =
////// ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .ElementAt(repopulates_iter_measures_durations_dist)
////// .PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___MEASURES_NUMBER___NUMBER_OF_PIPES_CROSSED;
////// Console.WriteLine(" repopulates_iter_measures_durations_dist = " + repopulates_iter_measures_durations_dist);
////// Console.WriteLine(" ___current_measures_number_found = " + ___current_measures_number_found);
////// if(
////// ___current_measures_number_found
////// >
////// ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .ElementAt(repopulates_iter_measures_durations_dist+1)
////// .PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___MEASURES_NUMBER___NUMBER_OF_PIPES_CROSSED
////// )
////// {
////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ___temp_free_groups_counter_first_brackets_nesting_level
////// =
////// ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .ElementAt(repopulates_iter_measures_durations_dist)
////// .PUBLIC_INT_TOTAL_FREE_NOTES_NON_GROUPED_OUT_OF_BRACKETS_NOTES_ASSIGNED_TO_CURRENT_MEASURE;
////// Console.WriteLine(" ___temp_free_groups_counter_first_brackets_nesting_level = " + ___temp_free_groups_counter_first_brackets_nesting_level);
////// if((repopulates_iter_measures_durations_dist + 1) < _count_of_total_items)
////// {
////// try
////// {
////// for (int iter_propagator= repopulates_iter_measures_durations_dist + 1; iter_propagator< (_count_of_total_items); iter_propagator++)
////// {
////// if(
////// ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .ElementAt(iter_propagator)
////// .PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___MEASURES_NUMBER___NUMBER_OF_PIPES_CROSSED
////// == ___current_measures_number_found
////// )
////// {
////// if (___temp_free_groups_counter_first_brackets_nesting_level == 0)
////// {
////// ___temp_free_groups_counter_first_brackets_nesting_level = 1;
////// /////////////////////////////////////////////////////////////////////////////
////// }//if (___temp_free_groups_counter_first_brackets_nesting_level == 0)
////// ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .ElementAt(iter_propagator)
////// .PUBLIC_INT_TOTAL_FREE_NOTES_NON_GROUPED_OUT_OF_BRACKETS_NOTES_ASSIGNED_TO_CURRENT_MEASURE
////// =
////// ___temp_free_groups_counter_first_brackets_nesting_level;
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .ElementAt(iter_propagator)
////// .PUBLIC_DOUBLE_TOTAL_MILLIS_ASSIGNED_TO_CURRENT_GROUP_OF_NOTES
////// =
////// ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .ElementAt(iter_propagator)
////// .PUBLIC_DOUBLE_TOTAL_MILLIS_ASSIGNED_TO_CURRENT_MEASURE
////// /
////// (double)___temp_free_groups_counter_first_brackets_nesting_level;
////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// }// for(int iter_propagator= repopulates_iter_measures_durations_dist + ; iter_propagator< (_count_of_total_items); iter_propagator++)
////// else
////// {
////// repopulates_iter_measures_durations_dist = iter_propagator;
////// continue;
////// }//end of current measure data
////// }// for(int iter_propagator= repopulates_iter_measures_durations_dist + 1; iter_propagator< (_count_of_total_items); iter_propagator++)
////// }
////// catch (Exception ___excp)
////// {
////// } //catch(Exception ___excp)
////// }//if((repopulates_iter_measures_durations_dist + 1) < _count_of_total_items)
////// }
////// //////if (
////// ////// ___current_measures_number_found
////// ////// >
////// ////// ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// //////.ElementAt(repopulates_iter_measures_durations_dist + 1)
////// //////.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___MEASURES_NUMBER___NUMBER_OF_PIPES_CROSSED
////// //////)
////// ///else
////// ///
////// {
////// repopulates_iter_measures_durations_dist++;
////// }
//////}// for(int repopulates_iter_measures_durations_dist=0; repopulates_iter_measures_durations_dist< _count_of_total_items; repopulates_iter_measures_durations_dist++)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS.Reverse();
////////////////////// WE WILL REVERSE THE LIST TO DO THE POPULATIONS OF THE DURATIONS DISTRIBUTIONS TASKS FIRST AND COUNT THE TOTAL FREE GROUPS IN THE CURRENT MEASURES //////////
////////////////////// WE WILL REVERSE THE LIST TO DO THE POPULATIONS OF THE DURATIONS DISTRIBUTIONS TASKS FIRST AND COUNT THE TOTAL FREE GROUPS IN THE CURRENT MEASURES //////////
////////////////////// WE WILL REVERSE THE LIST TO DO THE POPULATIONS OF THE DURATIONS DISTRIBUTIONS TASKS FIRST AND COUNT THE TOTAL FREE GROUPS IN THE CURRENT MEASURES //////////
// we log the things only after double reversals of list populating all the necessary data durations calculations things also
// we log the things only after double reversals of list populating all the necessary data durations calculations things also
// we log the things only after double reversals of list populating all the necessary data durations calculations things also
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
for (int logsiter = 0; logsiter < ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS.Count; logsiter++)
{
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___stringbuildertoreportthestatesofthefilledlist
.AppendLine
(
___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.ElementAt(logsiter)
.GENERATE_AND_RETURN_REPORT_STRING()
);
}//for (int logsiter = 0; logsiter < ___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS.Count; logsiter++)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////// FIRST LOADING OF THE PRELIMINARY DATA RE GRABBED TO THE LIST ///////////
//////////////////////////////////////////// FIRST LOADING OF THE PRELIMINARY DATA RE GRABBED TO THE LIST ///////////
//////////////////////////////////////////// FIRST LOADING OF THE PRELIMINARY DATA RE GRABBED TO THE LIST ///////////
string ___dummyfilesnamesformids_BEFORE_DECORATING_currentdatagridsstates_timestamps =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "RAW_SIMPLES_UNDECORATED_WITH_ATS_BRACKETS_PIPES_indinotesinditaals" + System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
string ___LOCAL___dummyfilesnamesformids_BEFORE_DECORATING_currentdatagridsstates_timestamps =
filesnametoload
+ "RAW_SIMPLES_UNDECORATED_WITH_ATS_BRACKETS_PIPES_indinotesinditaals"
+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
string ___logreportfilesnames = filesnametoload +
System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".txt";
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
___logreportfilesnames
,
___stringbuildertoreportthestatesofthefilledlist.ToString()
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.Diagnostics.Process.Start("notepad.exe"
,
___logreportfilesnames
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////// THIS IS TO PRESERVE PREVIOUS TASKS IF THERE IS DATA ALREADY IN THE DATA GRIDS
//not working properly save_current_composer_datagrids_state_to_files(___dummyfilesnamesformids_BEFORE_DECORATING_currentdatagridsstates_timestamps);//user choose the files names
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// System.Threading.Thread.Sleep(1000);
//we assume the notepad++ so we dont save when reload current
//////TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ######
//////61 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D4 ###### 293.66 ###### ROW_NUMBER=0
//////62 ###### 1000 ###### 127 ###### 71 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D#4/Eb4 ###### 311.13 ###### ROW_NUMBER=1
//////63 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### E4 ###### 329.63 ###### ROW_NUMBER=2
//////57 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### A#3/Bb3 ###### 233.08 ###### ROW_NUMBER=3
//////53 ###### 1000 ###### 127 ###### 66 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F#3/Gb3 ###### 185 ###### ROW_NUMBER=4
//////52 ###### 1000 ###### 127 ###### 68 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F3 ###### 174.61 ###### ROW_NUMBER=5
StringBuilder ___logging_complete_data_from_the_dataGridView___COMPOSER = new StringBuilder();
___logging_complete_data_from_the_dataGridView___COMPOSER.Clear();
foreach (DataGridViewColumn column in this.dataGridView___COMPOSER.Columns)
{
// Append the header text to the StringBuilder
___logging_complete_data_from_the_dataGridView___COMPOSER
.Append(column.HeaderText + " ###### ");
}//foreach (DataGridViewColumn column in this.dataGridView___COMPOSER.Columns)
___logging_complete_data_from_the_dataGridView___COMPOSER
.AppendLine();
for (int rrr = 0; rrr < this.dataGridView___COMPOSER.RowCount; rrr++)
{
if (
(
//////this.dataGridView___COMPOSER.Rows[rrr].Cells[0].Value != null
//////||
this.dataGridView___COMPOSER.Rows[rrr].Cells[1].Value != null
//////||
//////this.dataGridView___COMPOSER.Rows[rrr].Cells[2].Value != null
//////||
//////this.dataGridView___COMPOSER.Rows[rrr].Cells[3].Value != null
//////||
//////this.dataGridView___COMPOSER.Rows[rrr].Cells[3+1].Value != null
)
)
{
if (
// this.dataGridView___COMPOSER.Rows[rrr].Cells[0].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
//////||
this.dataGridView___COMPOSER.Rows[rrr].Cells[1].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
//////||
////// this.dataGridView___COMPOSER.Rows[rrr].Cells[2].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
////// ||
////// this.dataGridView___COMPOSER.Rows[rrr].Cells[3].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
////// ||
////// this.dataGridView___COMPOSER.Rows[rrr].Cells[3+1].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
////// ||
////// this.dataGridView___COMPOSER.Rows[rrr].Cells[3+2].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
////// ||
////// this.dataGridView___COMPOSER.Rows[rrr].Cells[3 + 3].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
)
{
for (int ccc = 0; ccc < this.dataGridView___COMPOSER.ColumnCount; ccc++)
{
if (this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value != null)
{
___logging_complete_data_from_the_dataGridView___COMPOSER
.Append
(
this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value.ToString().TrimEnd().Trim()
+ " ###### "
);
}//if( this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value!=null)
else
{
___logging_complete_data_from_the_dataGridView___COMPOSER
.Append
(
" INVALIDS ###### "
);
}//end of else of if( this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value!=null)
}//for(int ccc=0;ccc < this.dataGridView___COMPOSER.ColumnCount;ccc++)
//this is added after all the data are there
___logging_complete_data_from_the_dataGridView___COMPOSER
.AppendLine
(
" ROW_NUMBER=" + rrr.ToString().TrimEnd().TrimStart().Trim()
);
}
//////if (
//////this.dataGridView___COMPOSER.Rows[rrr].Cells[7].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
//////&&
//////this.dataGridView___COMPOSER.Rows[rrr].Cells[8].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
//////&&
//////this.dataGridView___COMPOSER.Rows[rrr].Cells[9].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
//////)
}//if (this.dataGridView___COMPOSER.Rows[rrr].Cells[0].Value != null)
}//for(int rrr=0;rrr< this.dataGridView___COMPOSER.RowCount;rrr++)
string ___dummyfilesnamesformids_currentdatagridsstates_timestamps =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
string SAANCOMPOSERFILESNAMES =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "OVERWRITESANDRELOADS.SAANCOMPOSER";
// we can load this file
System.IO.File.WriteAllText
(
___dummyfilesnamesformids_currentdatagridsstates_timestamps
,
___logging_complete_data_from_the_dataGridView___COMPOSER.ToString()
);
// we will always do re load this file
System.IO.File.WriteAllText
(
SAANCOMPOSERFILESNAMES
,
___logging_complete_data_from_the_dataGridView___COMPOSER.ToString()
);
if (___dummyfilesnamesformids_BEFORE_DECORATING_currentdatagridsstates_timestamps.TrimEnd().TrimStart().Trim().Length > 00)
{
// we will always do re load this file
System.IO.File.WriteAllText
(
___dummyfilesnamesformids_BEFORE_DECORATING_currentdatagridsstates_timestamps
,
___logging_complete_data_from_the_dataGridView___COMPOSER.ToString()
);
}//if(filenametosave.TrimEnd().TrimStart().Trim().Length>00)
if (___LOCAL___dummyfilesnamesformids_BEFORE_DECORATING_currentdatagridsstates_timestamps.TrimEnd().TrimStart().Trim().Length > 0)
{
// we will always do re load this file
System.IO.File.WriteAllText
(
___LOCAL___dummyfilesnamesformids_BEFORE_DECORATING_currentdatagridsstates_timestamps
,
___logging_complete_data_from_the_dataGridView___COMPOSER.ToString()
);
}//if(filenametosave.TrimEnd().TrimStart().Trim().Length>00)
// if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
// {
System.Windows.Forms.MessageBox.Show("Two files saved for reloading \r\n\r\n\r\n" + SAANCOMPOSERFILESNAMES + "\r\n\r\n\r\n" + ___dummyfilesnamesformids_currentdatagridsstates_timestamps);
// }//if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
if (this.checkBox___TO_LOAD_INDINOTATIONS_REMOVING_PIPES_NEWLINES_DECORATORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper() != "CHECKED")
{
//RECLEANS RECLEANS RECLEANS AND THEN WE WILL DO THE REDECORATIONS FROM THE PREPOPULATED LISTS OF NOTES///
//WE NEED THE DECORATED DURATIONS DECORATED START TIMIES MILLIS FOR ALL THE NOTES DUE TO THESE REASONS
//RECLEANS RECLEANS RECLEANS AND THEN WE WILL DO THE REDECORATIONS FROM THE PREPOPULATED LISTS OF NOTES///
//WE NEED THE DECORATED DURATIONS DECORATED START TIMIES MILLIS FOR ALL THE NOTES DUE TO THESE REASONS
//RECLEANS RECLEANS RECLEANS AND THEN WE WILL DO THE REDECORATIONS FROM THE PREPOPULATED LISTS OF NOTES///
//WE NEED THE DECORATED DURATIONS DECORATED START TIMIES MILLIS FOR ALL THE NOTES DUE TO THESE REASONS
System.Windows.Forms.MessageBox.Show("raw data preloaded and then we will clean and reload with decorations\r\n\r\n\r\nso saving raw data to " + ___dummyfilesnamesformids_BEFORE_DECORATING_currentdatagridsstates_timestamps);
//cleans the data for whole data grid first and then load only col 0 to col 7
//cleans the data for whole data grid first and then load only col 0 to col 7
//cleans the data for whole data grid first and then load only col 0 to col 7
for (int rrr = 0; rrr < this.dataGridView___COMPOSER.RowCount; rrr++)
{
for (int ccc = 0; ccc < this.dataGridView___COMPOSER.ColumnCount; ccc++)
{
this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value = "";
this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Style.BackColor = Color.LightCyan;
}//for (int ccc = 0; ccc < this.dataGridView___COMPOSER.ColumnCount; ccc++)
}//for (int rrr = 0; rrr < this.dataGridView___COMPOSER.RowCount; rrr++)
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
}//if (this.checkBox___TO_LOAD_INDINOTATIONS_REMOVING_PIPES_NEWLINES_DECORATORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper() != "CHECKED")
////////////////////// NOW WE WILL DECORATE THE WHOLE LIST OF SMART NOTES AND THEN WE WILL RE POPULATE THE DATA GRIDS
//RECLEANS RECLEANS RECLEANS AND THEN WE WILL DO THE REDECORATIONS FROM THE PREPOPULATED LISTS OF NOTES///
//WE NEED THE DECORATED DURATIONS DECORATED START TIMIES MILLIS FOR ALL THE NOTES DUE TO THESE REASONS
//RECLEANS RECLEANS RECLEANS AND THEN WE WILL DO THE REDECORATIONS FROM THE PREPOPULATED LISTS OF NOTES///
//WE NEED THE DECORATED DURATIONS DECORATED START TIMIES MILLIS FOR ALL THE NOTES DUE TO THESE REASONS
//RECLEANS RECLEANS RECLEANS AND THEN WE WILL DO THE REDECORATIONS FROM THE PREPOPULATED LISTS OF NOTES///
//WE NEED THE DECORATED DURATIONS DECORATED START TIMIES MILLIS FOR ALL THE NOTES DUE TO THESE REASONS
}//public void to___load_INDINOTATIONS_FILES_OR_INDITALAS_FILES(string filesnametoload)
public void to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files(string filesnametoload)
{
//cleans the data for whole data grid first and then load only col 0 to col 7
//cleans the data for whole data grid first and then load only col 0 to col 7
//cleans the data for whole data grid first and then load only col 0 to col 7
for (int rrr = 0; rrr < this.dataGridView___COMPOSER.RowCount; rrr++)
{
for (int ccc = 0; ccc < this.dataGridView___COMPOSER.ColumnCount; ccc++)
{
this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value = "";
this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Style.BackColor = Color.LightCyan;
}//for (int ccc = 0; ccc < this.dataGridView___COMPOSER.ColumnCount; ccc++)
}//for (int rrr = 0; rrr < this.dataGridView___COMPOSER.RowCount; rrr++)
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
///
string ___total_files_read_data = "";
___total_files_read_data
=
System.IO.File.ReadAllText
(
filesnametoload.Replace("\\", "\\\\")
);
//we assume the notepad++ so we dont save when reload current
//////TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ######
//////61 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D4 ###### 293.66 ###### ROW_NUMBER=0
//////62 ###### 1000 ###### 127 ###### 71 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D#4/Eb4 ###### 311.13 ###### ROW_NUMBER=1
//////63 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### E4 ###### 329.63 ###### ROW_NUMBER=2
//////57 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### A#3/Bb3 ###### 233.08 ###### ROW_NUMBER=3
//////53 ###### 1000 ###### 127 ###### 66 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F#3/Gb3 ###### 185 ###### ROW_NUMBER=4
//////52 ###### 1000 ###### 127 ###### 68 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F3 ###### 174.61 ###### ROW_NUMBER=5
string[] ___arrays_of_lines_of______total_files_read_data
=
___total_files_read_data.Split(new string[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
int valid_rows_counter_in_files = 0;
if (___arrays_of_lines_of______total_files_read_data.Length>1)
{
//first line is header
//we will read the cols 0 to col 7
for(int files_lines=(0+1); files_lines< ___arrays_of_lines_of______total_files_read_data.Length; files_lines++)
{
string ___current_record_lines_string = ___arrays_of_lines_of______total_files_read_data[files_lines];
if(___current_record_lines_string.TrimEnd().TrimStart().Trim().Length>0)
{
string[] ___array_of_cols___with_sixhash_seperations =
___current_record_lines_string
.Split(new string[] { "######" }, StringSplitOptions.None);//keep all cols at this stages
Console.WriteLine(___current_record_lines_string);
// this.dataGridView___COMPOSER.Columns
int number_of_valid_columns =0;
number_of_valid_columns = this.dataGridView___COMPOSER.ColumnCount;
if (___array_of_cols___with_sixhash_seperations.Length>7)
{
try
{
//////if
////// (
////// ___array_of_cols___with_sixhash_seperations[3+1].TrimEnd().TrimStart().Trim().Length>0
////// &&
////// ___array_of_cols___with_sixhash_seperations[3 + 2].TrimEnd().TrimStart().Trim().Length > 0
////// &&
////// ___array_of_cols___with_sixhash_seperations[3 + 3].TrimEnd().TrimStart().Trim().Length > 0
////// )
///
//////if
////// (
////// ___array_of_cols___with_sixhash_seperations[2].TrimEnd().TrimStart().Trim().Length > 0
////// &&
////// ___array_of_cols___with_sixhash_seperations[3].TrimEnd().TrimStart().Trim().Length > 0
////// &&
////// ___array_of_cols___with_sixhash_seperations[3+1].TrimEnd().TrimStart().Trim().Length > 0
////// )
if
(
___array_of_cols___with_sixhash_seperations[0].TrimEnd().TrimStart().Trim().Length > 0
||
___array_of_cols___with_sixhash_seperations[1].TrimEnd().TrimStart().Trim().Length > 0
||
___array_of_cols___with_sixhash_seperations[2].TrimEnd().TrimStart().Trim().Length > 0
||
___array_of_cols___with_sixhash_seperations[3].TrimEnd().TrimStart().Trim().Length > 0
)
{
////// )
//saan tries to make it generik since the columns count can increase
for (int fillscol=0; fillscol<=(number_of_valid_columns-1); fillscol++)
{
// 0 61 2200 73 0,3,30,68,100 8192,3000,6000,11000,8192 3 3 D4 293.66 6 60 60 ROW_NUMBER = 7
if(!___array_of_cols___with_sixhash_seperations[fillscol].TrimEnd().TrimStart().Trim().Contains("ROW_NUMBER"))
{
this.dataGridView___COMPOSER.Rows[valid_rows_counter_in_files].Cells[fillscol].Value
= ___array_of_cols___with_sixhash_seperations[fillscol].TrimEnd().TrimStart().Trim();
}//if(!___array_of_cols___with_sixhash_seperations[fillscol].TrimEnd().TrimStart().Trim().Contains("ROW_NUMBER"))
Console.WriteLine(valid_rows_counter_in_files + " "+ fillscol + " " + ___array_of_cols___with_sixhash_seperations[fillscol].TrimEnd().TrimStart().Trim());
}//for(int fillscol=0; fillscol<=7; fillscol++)
////////////////////////////////////////////////
valid_rows_counter_in_files++;
}
//////if
////// (
////// ___array_of_cols___with_sixhash_seperations[3 + 1].TrimEnd().TrimStart().Trim().Length > 0
////// &&
////// ___array_of_cols___with_sixhash_seperations[3 + 2].TrimEnd().TrimStart().Trim().Length > 0
////// &&
////// ___array_of_cols___with_sixhash_seperations[3 + 3].TrimEnd().TrimStart().Trim().Length > 0
}
catch (Exception _excptoloadrow)
{
}//catch(Exception _excptoloadrow)
////////////////////////////////////////////////
if (valid_rows_counter_in_files>(this.dataGridView___COMPOSER.RowCount-3))
{
return;
//to avoid the overflows
}//if (valid_rows_counter_in_files>(this.dataGridView___COMPOSER.RowCount-3))
}// if(___array_of_cols___with_sixhash_seperations.Length>=7)
}// if(___current_record_lines_string.TrimEnd().TrimStart().Trim().Length>0)
}//for(int files_lines=1; files_lines< ___arrays_of_lines_of______total_files_read_data.Length; files_lines++)
}// if(___arrays_of_lines_of______total_files_read_data.Length>1)
}//public void to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files(string filesnametoload)
public void save_current_composer_datagrids_state_to_files(string filenametosave)
{
//we assume the notepad++ so we dont save when reload current
//////TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ######
//////61 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D4 ###### 293.66 ###### ROW_NUMBER=0
//////62 ###### 1000 ###### 127 ###### 71 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D#4/Eb4 ###### 311.13 ###### ROW_NUMBER=1
//////63 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### E4 ###### 329.63 ###### ROW_NUMBER=2
//////57 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### A#3/Bb3 ###### 233.08 ###### ROW_NUMBER=3
//////53 ###### 1000 ###### 127 ###### 66 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F#3/Gb3 ###### 185 ###### ROW_NUMBER=4
//////52 ###### 1000 ###### 127 ###### 68 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F3 ###### 174.61 ###### ROW_NUMBER=5
StringBuilder ___logging_complete_data_from_the_dataGridView___COMPOSER = new StringBuilder();
___logging_complete_data_from_the_dataGridView___COMPOSER.Clear();
foreach (DataGridViewColumn column in this.dataGridView___COMPOSER.Columns)
{
// Append the header text to the StringBuilder
___logging_complete_data_from_the_dataGridView___COMPOSER
.Append(column.HeaderText + " ###### ");
}//foreach (DataGridViewColumn column in this.dataGridView___COMPOSER.Columns)
___logging_complete_data_from_the_dataGridView___COMPOSER
.AppendLine();
for (int rrr = 0; rrr < this.dataGridView___COMPOSER.RowCount; rrr++)
{
if (
(
this.dataGridView___COMPOSER.Rows[rrr].Cells[2].Value != null
&&
this.dataGridView___COMPOSER.Rows[rrr].Cells[3].Value != null
&&
this.dataGridView___COMPOSER.Rows[rrr].Cells[4].Value != null
)
)
{
if(
this.dataGridView___COMPOSER.Rows[rrr].Cells[2].Value.ToString().TrimEnd().TrimStart().Trim().Length>0
&&
this.dataGridView___COMPOSER.Rows[rrr].Cells[3].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
&&
this.dataGridView___COMPOSER.Rows[rrr].Cells[4].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
)
{
for (int ccc = 0; ccc < this.dataGridView___COMPOSER.ColumnCount; ccc++)
{
if (this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value != null)
{
___logging_complete_data_from_the_dataGridView___COMPOSER
.Append
(
this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value.ToString().TrimEnd().Trim()
+ " ###### "
);
}//if( this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value!=null)
else
{
___logging_complete_data_from_the_dataGridView___COMPOSER
.Append
(
" INVALIDS ###### "
);
}//end of else of if( this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value!=null)
}//for(int ccc=0;ccc < this.dataGridView___COMPOSER.ColumnCount;ccc++)
//this is added after all the data are there
___logging_complete_data_from_the_dataGridView___COMPOSER
.AppendLine
(
" ROW_NUMBER="+ rrr.ToString().TrimEnd().TrimStart().Trim()
);
}
//////if (
//////this.dataGridView___COMPOSER.Rows[rrr].Cells[7].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
//////&&
//////this.dataGridView___COMPOSER.Rows[rrr].Cells[8].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
//////&&
//////this.dataGridView___COMPOSER.Rows[rrr].Cells[9].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0
//////)
}//if (this.dataGridView___COMPOSER.Rows[rrr].Cells[0].Value != null)
}//for(int rrr=0;rrr< this.dataGridView___COMPOSER.RowCount;rrr++)
string ___dummyfilesnamesformids_currentdatagridsstates_timestamps =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
string SAANCOMPOSERFILESNAMES =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "OVERWRITESANDRELOADS.SAANCOMPOSER";
// we can load this file
System.IO.File.WriteAllText
(
___dummyfilesnamesformids_currentdatagridsstates_timestamps
,
___logging_complete_data_from_the_dataGridView___COMPOSER.ToString()
);
// we will always do re load this file
System.IO.File.WriteAllText
(
SAANCOMPOSERFILESNAMES
,
___logging_complete_data_from_the_dataGridView___COMPOSER.ToString()
);
if(filenametosave.TrimEnd().TrimStart().Trim().Length>00)
{
// we will always do re load this file
System.IO.File.WriteAllText
(
filenametosave
,
___logging_complete_data_from_the_dataGridView___COMPOSER.ToString()
);
}//if(filenametosave.TrimEnd().TrimStart().Trim().Length>00)
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
System.Windows.Forms.MessageBox.Show("Two files saved for reloading \r\n\r\n\r\n" + SAANCOMPOSERFILESNAMES + "\r\n\r\n\r\n" + ___dummyfilesnamesformids_currentdatagridsstates_timestamps);
}//if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
}//public void save_current_composer_datagrids_state_to_files()
public void STOPTHENOTESIFTHEDEVICESISOPEN()
{
if (SAANS_TEMP_playTimer != null)
{
SAANS_TEMP_playTimer.Stop();
}// if(SAANS_TEMP_playTimer!=null)
// Stop the sequence and turn off any playing notes
if (SAANS_TEMP_SAANAUDS_Midi_MidiOut != null)
{
if (SAANS_TEMP_currentNoteIndex > 0 && SAANS_TEMP_currentNoteIndex < SAAN_TEMPS_midiNotes.Length)
{
// SAANS_TEMP_midiOut.Send(MidiMessage.StopNote(midiNotes[currentNoteIndex - 1], 127).RawData);
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StopNote(SAAN_TEMPS_midiNotes[SAANS_TEMP_currentNoteIndex - 1], 127, 1).RawData);
}//if (SAANS_TEMP_currentNoteIndex > 0 && SAANS_TEMP_currentNoteIndex < SAAN_TEMPS_midiNotes.Length)
SAANS_TEMP_currentNoteIndex = 0;
// Clean up resources
try
{
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Dispose();
SAANS_TEMP_SAANAUDS_Midi_MidiOut = null;
}
catch (Exception ___excp)
{
System.Windows.Forms.MessageBox.Show("___excp = " + ___excp.Message + " " + ___excp.StackTrace.ToString());
}//catch(Exception ___excp)
}// if(SAANS_TEMP_SAANAUDS_Midi_MidiOut!=null)
else
{
System.Windows.Forms.MessageBox.Show("SAANS_TEMP_SAANAUDS_Midi_MidiOut is null which is already disposed and stopped ");
}//end of else of // if(SAANS_TEMP_SAANAUDS_Midi_MidiOut!=null)
}// public void STOPTHENOTESIFTHEDEVICESISOPEN()
private void button___STOP_MIDI_STREAMS_Click(object sender, EventArgs e)
{
if(SAANS_TEMP_playTimer!=null)
{
SAANS_TEMP_playTimer.Stop();
}// if(SAANS_TEMP_playTimer!=null)
// Stop the sequence and turn off any playing notes
if ( null== SAANS_TEMP_SAANAUDS_Midi_MidiOut)
{
SAANS_TEMP_SAANAUDS_Midi_MidiOut = new SAANAUDS.Midi.MidiOut(0); // Initialize MIDI output on the first available device
}// if ( null== SAANS_TEMP_SAANAUDS_Midi_MidiOut)
if (SAANS_TEMP_SAANAUDS_Midi_MidiOut !=null)
{
if (SAANS_TEMP_currentNoteIndex > 0 && SAANS_TEMP_currentNoteIndex < SAAN_TEMPS_midiNotes.Length)
{
// SAANS_TEMP_midiOut.Send(MidiMessage.StopNote(midiNotes[currentNoteIndex - 1], 127).RawData);
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StopNote(SAAN_TEMPS_midiNotes[SAANS_TEMP_currentNoteIndex - 1], 127, 1).RawData);
}//if (SAANS_TEMP_currentNoteIndex > 0 && SAANS_TEMP_currentNoteIndex < SAAN_TEMPS_midiNotes.Length)
SAANS_TEMP_currentNoteIndex = 0;
// Clean up resources
try
{
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Dispose();
SAANS_TEMP_SAANAUDS_Midi_MidiOut = null;
}
catch(Exception ___excp)
{
System.Windows.Forms.MessageBox.Show("___excp = " + ___excp.Message + " " + ___excp.StackTrace.ToString());
}//catch(Exception ___excp)
}// if(SAANS_TEMP_SAANAUDS_Midi_MidiOut!=null)
else
{
System.Windows.Forms.MessageBox.Show("SAANS_TEMP_SAANAUDS_Midi_MidiOut is null which is already disposed and stopped ");
}//end of else of // if(SAANS_TEMP_SAANAUDS_Midi_MidiOut!=null)
}//private void button___STOP_MIDI_STREAMS_Click(object sender, EventArgs e)
private void SampleForm_FormClosing(object sender, FormClosingEventArgs e)
{
// Clean up resources
try
{
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Dispose();
}
catch (Exception ___excp)
{
}//catch(Exception ___excp)
}//private void SampleForm_FormClosing(object sender, FormClosingEventArgs e)
//////static void Main()
//////{
////// var midiEventCollection = new MidiEventCollection(1, 480);
////// int flutePatch = 73; // Flute
////// int tablaChannel = 9; // Percussion
////// int tablaNote1 = 60; // Dha
////// int tablaNote2 = 63; // Tin
////// // Assign Flute to channels 0–5
////// for (int ch = 0; ch < 6; ch++)
////// {
////// midiEventCollection.AddEvent(new PatchChangeEvent(0, ch, flutePatch), 0);
////// }
////// // Define Behag notes (MIDI numbers)
////// int[] notes = { 60, 64, 65, 67, 69, 67, 65, 64, 62, 60 };
////// int[] durations = { 480, 240, 240, 480, 480, 240, 240, 480, 240, 480 };
////// int absoluteTime = 0;
////// // Add flute on multiple channels with effects
////// for (int i = 0; i < notes.Length; i++)
////// {
////// for (int ch = 0; ch < 6; ch++)
////// {
////// int delay = ch * 10; // slight strum delay
////// int time = absoluteTime + delay;
////// midiEventCollection.AddEvent(new NoteOnEvent(time, ch, notes[i], 80, durations[i]), 0);
////// midiEventCollection.AddEvent(new ChannelAfterTouchEvent(time + durations[i] / 3, ch, 60), 0);
////// midiEventCollection.AddEvent(new PitchWheelChangeEvent(time + (2 * durations[i]) / 3, ch, 8192 + 300), 0);
////// midiEventCollection.AddEvent(new NoteEvent(time + durations[i], ch, MidiCommandCode.NoteOff, notes[i], 64), 0);
////// }
////// absoluteTime += durations[i];
////// }
////// // Add tabla (loop pattern)
////// int tablaTime = 0;
////// while (tablaTime < 3 * 60 * 480) // approx 3 minutes
////// {
////// midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote1, 100, 240), 1);
////// tablaTime += 240;
////// midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote2, 100, 240), 1);
////// tablaTime += 240;
////// midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote2, 100, 240), 1);
////// tablaTime += 240;
////// midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote1, 100, 240), 1);
////// tablaTime += 240;
////// }
////// // Save MIDI
////// var midiFile = new MidiFile(1, midiEventCollection.DeltaTicksPerQuarterNote);
////// MidiFile.Export("BehagWithTablaAndFlute.mid", midiEventCollection);
//////}//static void Main()
private void button_TRYRAGAS_Click(object sender, EventArgs e)
{
//////int channel = 0;
//////int baseNote = 60; // e.g., Middle C
//////int velocity = 100;
//////int pitchBendRange = 12; // semitone range: -6 to +6 = total 12
//////int ticksPerQuarterNote = 480;
//////var midiEvents = new MidiEventCollection(1, ticksPerQuarterNote);
//////// 0 ticks = Start
//////int absoluteTime = 0;
//////// 1. Set RPN 0
////////Pitch Bend Sensitivity to ±12 semitones
//////midiEvents.AddEvent(new ControlChangeEvent(absoluteTime, channel, MidiController.RpnMsb, 0), 0); // 101 → MSB
//////midiEvents.AddEvent(new ControlChangeEvent(absoluteTime, channel, MidiController.RpnLsb, 0), 0); // 100 → LSB
//////midiEvents.AddEvent(new ControlChangeEvent(absoluteTime, channel, MidiController.DataEntryMsb, pitchBendRange), 0); // 6
//////midiEvents.AddEvent(new ControlChangeEvent(absoluteTime, channel, MidiController.DataEntryLsb, 0), 0); // 38
/// THERE IS MISSING ENDTRACK
////// var midiEventCollection = new MidiEventCollection(1, 480);
////// int flutePatch = 73; // Flute
////// int tablaChannel = 9; // Percussion
////// int tablaNote1 = 60; // Dha
////// int tablaNote2 = 63; // Tin
////// // Assign Flute to channels 0–5
////// for (int ch = 1; ch < (6+1); ch++)
////// {
////// midiEventCollection.AddEvent(new PatchChangeEvent(0, ch, flutePatch), 0);
////// }
////// // Define Behag notes (MIDI numbers)
////// int[] notes = { 60, 64, 65, 67, 69, 67, 65, 64, 62, 60 };
////// int[] durations = { 480, 240, 240, 480, 480, 240, 240, 480, 240, 480 };
////// int absoluteTime = 0;
////// // Add flute on multiple channels with effects
////// for (int i = 0; i < notes.Length; i++)
////// {
////// for (int ch = 1; ch < (6+1); ch++)
////// {
////// int delay = ch * 10; // slight strum delay
////// int time = absoluteTime + delay;
////// midiEventCollection.AddEvent(new NoteOnEvent(time, ch, notes[i], 80, durations[i]), 0);
////// midiEventCollection.AddEvent(new ChannelAfterTouchEvent(time + durations[i] / 3, ch, 60), 0);
////// midiEventCollection.AddEvent(new PitchWheelChangeEvent(time + (2 * durations[i]) / 3, ch, 8192 + 300), 0);
////// midiEventCollection.AddEvent(new NoteEvent(time + durations[i], ch, MidiCommandCode.NoteOff, notes[i], 64), 0);
////// }
////// absoluteTime += durations[i];
////// }
////// // Add tabla (loop pattern)
////// int tablaTime = 0;
////// while (tablaTime < 3 * 60 * 480) // approx 3 minutes
////// {
////// midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote1, 100, 240), 1);
////// tablaTime += 240;
////// midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote2, 100, 240), 1);
////// tablaTime += 240;
////// midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote2, 100, 240), 1);
////// tablaTime += 240;
////// midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote1, 100, 240), 1);
////// tablaTime += 240;
////// }
////// // Save MIDI
////// var midiFile = new MidiFile(1, (short)midiEventCollection.DeltaTicksPerQuarterNote);
////// //////SAANAUDS.Midi.MidiFile.Export
////// ////// (
////// ////// fileName_for_midi_from_the_dxf
////// ////// , collection
////// ////// );
////// SAANAUDS.Midi.MidiFile.Export("d:\\BehagWithTablaAndFlute.mid", midiEventCollection);
//////// MidiFile.Export("d:\\BehagWithTablaAndFlute.mid", midiEventCollection);
var midiEventCollection = new MidiEventCollection(1, 480);
int flutePatch = 73; // Flute
int tablaChannel = 9; // Percussion
int tablaNote1 = 60; // Dha
int tablaNote2 = 63; // Tin
// Assign Flute to channels 0–5
//////// 1. Set RPN 0
/// //////int pitchBendRange = 12; // semitone range: -6 to +6 = total 12
////////Pitch Bend Sensitivity to ±12 semitones
////// midiEvents.AddEvent(new ControlChangeEvent(absoluteTime, channel, MidiController.RpnMsb, 0), 0); // 101 → MSB
////// midiEvents.AddEvent(new ControlChangeEvent(absoluteTime, channel, MidiController.RpnLsb, 0), 0); // 100 → LSB
////// midiEvents.AddEvent(new ControlChangeEvent(absoluteTime, channel, MidiController.DataEntryMsb, pitchBendRange), 0); // 6
////// midiEvents.AddEvent(new ControlChangeEvent(absoluteTime, channel, MidiController.DataEntryLsb, 0), 0); // 38
//////MidiController_RpnMsb__SAAN___FOR_PITCHBENDS_RANGE_CHANGES =101,
//////MidiController_RpnLsb__SAAN___FOR_PITCHBENDS_RANGE_CHANGES = 100,
//////MidiController_DataEntryMsb__SAAN___FOR_PITCHBENDS_RANGE_CHANGES = 6,
//////MidiController_DataEntryLsb__SAAN___FOR_PITCHBENDS_RANGE_CHANGES = 38
int pitchBendRange = 12; // semitone range: -6 to +6 = total 12
for (int ch = 1; ch < 6 + 1; ch++)
{
midiEventCollection.AddEvent(new PatchChangeEvent(0, ch, flutePatch), ch);
}
// Define Behag notes (MIDI numbers)
int[] notes = { 60, 64, 65, 67, 69, 67, 65, 64, 62, 60 };
// int[] durations = { 480, 240, 240, 480, 480, 240, 240, 480, 240, 480 };
int[] durations = { 3000, 1000, 6000, 480, 480, 240, 240, 480, 240, 480 };
int absoluteTime = 0;
// Add flute on multiple channels with effects
for (int i = 0; i < notes.Length; i++)
{
for (int ch = 1; ch < 6 + 1; ch++)
{
int delay = ch * 10; // slight strum delay
int time = absoluteTime + delay;
midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.Pan, ((delay*3)% 122)), 0); //PANNING
midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.BreathController, ((delay * 6) % 122)), 0); // 101 → MSB
// midiEventCollection.AddEvent(new (absoluteTime, ch, MidiController., ((delay * 6) % 122)), 0); // 101 → MSB
midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_RpnMsb__SAAN___ITS___101___FOR_PITCHBENDS_RANGE_CHANGES, 0), 0); // 101 → MSB
midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_RpnLsb__SAAN___ITS___100___FOR_PITCHBENDS_RANGE_CHANGES, 0), 0); // 100 → LSB
// midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_DataEntryMsb__SAAN___FOR_PITCHBENDS_RANGE_CHANGES, pitchBendRange), 0); // 6 to change
midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MainVolume, ((delay * 6) % 122)), 0); // 6 to change
//////if (ch % 2 == 0)
//////{
////// midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_NOT_DEFAULT_pitchbend_sensitivity_6_semitones___DataEntryMsb__SAAN___FOR_PITCHBENDS_RANGE_CHANGES, pitchBendRange), 0); // 6 to change
//////}
//////else
//////{
////// midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_NOT_DEFAULT_pitchbend_sensitivity_11_semitones___DataEntryMsb__SAAN___FOR_PITCHBENDS_RANGE_CHANGES, pitchBendRange), 0); // 6 to change
//////}
///
midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_DataEntryMsb___is___6___HAHAHA, pitchBendRange), 0); // 6 to change
midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_DataEntryLsb__SAAN___FOR_PITCHBENDS_RANGE____ITS__38___CHANGES, 0), 0); // 38
midiEventCollection.AddEvent(new NoteOnEvent(time, ch, notes[i], 80, durations[i]), ch);
midiEventCollection.AddEvent(new ChannelAfterTouchEvent(time + durations[i] / 3, ch, 60), ch);
midiEventCollection.AddEvent(new ChannelAfterTouchEvent(time + durations[i] / 3, ch, 60), ch);
for (int repeater=1;repeater<16000;repeater++)
{
// midiEventCollection.AddEvent(new PitchWheelChangeEvent((long)(Math.Min( (time + durations[i] ) , (time + (durations[i]/ repeater))), ch, repeater), ch);
midiEventCollection.AddEvent(new PitchWheelChangeEvent(time + (int)(durations[i]*(repeater/16000)), ch, repeater), ch);
}//for(int repeater=0;repeater<16000;repeater++)
midiEventCollection.AddEvent(new PitchWheelChangeEvent(time + (2 * durations[i]) / 30, ch, 8192 + 800), ch);
midiEventCollection.AddEvent(new NoteEvent(time + durations[i], ch, MidiCommandCode.NoteOff, notes[i], 64), ch);
// Optional: Reset RPN (to avoid accidental edits)
midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_RpnMsb__SAAN___ITS___101___FOR_PITCHBENDS_RANGE_CHANGES, 127), 0);
midiEventCollection.AddEvent(new ControlChangeEvent(absoluteTime, ch, MidiController.MidiController_RpnLsb__SAAN___ITS___100___FOR_PITCHBENDS_RANGE_CHANGES, 127), 0);
}//for (int ch = 1; ch < 6 + 1; ch++)
absoluteTime += durations[i];
}//for (int i = 0; i < notes.Length; i++)
// Add tabla (loop pattern)
int tablaTime = 0;
int tabla___cycles___count = 0;
int tabla___beats___count = 0;
long tabla_cycle_restart_time_long = 0;
while (tablaTime < 3 * 60 * 480) // approx 3 minutes
{
midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote1, 100, 240), tablaChannel);
tablaTime += 240;
tabla___beats___count ++;
midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote2, 100, 240), tablaChannel);
tablaTime += 240;
tabla___beats___count ++;
midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote2, 100, 240), tablaChannel);
tablaTime += 240;
tabla___beats___count ++;
midiEventCollection.AddEvent(new NoteOnEvent(tablaTime, tablaChannel, tablaNote1, 100, 240), tablaChannel);
tablaTime += 240;
tabla___beats___count++;
tabla___cycles___count ++;
tabla_cycle_restart_time_long += 240 * 4;
//////saan adds this repeats
///
// Add flute on multiple channels with effects
for (int i = 0; i < notes.Length; i++)
{
for (int ch = 1; ch < 6 + 1; ch++)
{
int delay = ch * 10; // slight strum delay
long repeat_time = tabla_cycle_restart_time_long + absoluteTime + delay;
midiEventCollection.AddEvent(new NoteOnEvent(repeat_time, ch, notes[i], 80, durations[i]), ch);
midiEventCollection.AddEvent(new ChannelAfterTouchEvent(repeat_time + durations[i] / 3, ch, 60), ch);
midiEventCollection.AddEvent(new PitchWheelChangeEvent(repeat_time + (2 * durations[i]) / 3, ch, 8192 + 300), ch);
midiEventCollection.AddEvent(new NoteEvent(repeat_time + durations[i], ch, MidiCommandCode.NoteOff, notes[i], 64), ch);
}//for (int ch = 1; ch < 6 + 1; ch++)
absoluteTime += durations[i];
}//for (int i = 0; i < notes.Length; i++)
}// while (tablaTime < 3 * 60 * 480) // approx 3 minutes
// Add EndTrack event for each track
// midiEventCollection.AddEvent(new MetaEvent(MetaEventType.EndTrack, 0, 0), 0);
// midiEventCollection.AddEvent(new MetaEvent(MetaEventType.EndTrack, 0, 0), 1);
// Save MIDI
midiEventCollection.PrepareForExport();//this is necessary
var midiFile = new MidiFile(1, (short)midiEventCollection.DeltaTicksPerQuarterNote);
SAANAUDS.Midi.MidiFile.Export("d:\\BehagWithTablaAndFlute.mid", midiEventCollection);
//ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
SAANAUDS.Midi.MidiFile.Export(ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder+"BehagWithTablaAndFlute.mid", midiEventCollection);
System.Windows.Forms.MessageBox.Show("Files saved at "+ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder+"BehagWithTablaAndFlute.mid");
}//private void button_TRYRAGAS_Click(object sender, EventArgs e)
private void button_GUITAR_BEHAGS_Click(object sender, EventArgs e)
{
TRYING_GUITARS_BEHAGS.BehagGuitarStrumming.BehagGuitarStrumming___Main();
}//private void button_GUITAR_BEHAGS_Click(object sender, EventArgs e)
public void LOAD_THE_NOTES_DATA_FROM_SELECTED_ROWS_IN___dataGridView___COMPOSER()
{
}//public void LOAD_THE_NOTES_DATA_FROM_SELECTED_ROWS_IN___dataGridView___COMPOSER()
private void dataGridView___COMPOSER_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
//here we will load the composer notes for the pre listen and also to generate the midi files cycles data
// this is interesting data generator for the pre listen systems for the linear free flow sequence builders of the miliseconds
LOAD_THE_NOTES_DATA_FROM_SELECTED_ROWS_IN___dataGridView___COMPOSER();
}// private void dataGridView___COMPOSER_CellValueChanged(object sender, DataGridViewCellEventArgs e)
public void SendPitchBend___DEFINED_IN_THIS_FORMS(MidiOut midiOut, int channel, int pitchBendValue)
{
// Ensure pitchBendValue is within the valid range
pitchBendValue = Math.Max(0, Math.Min(16383, pitchBendValue));
// Calculate the two data bytes
int lsb = pitchBendValue & 0x7F; // Least significant 7 bits
int msb = (pitchBendValue >> 7) & 0x7F; // Most significant 7 bits
// Construct the pitch bend message
int statusByte = 0xE0 | (channel & 0x0F); // 0xE0 is the status byte for pitch bend
int pitchBendMessage = statusByte | (lsb << 8) | (msb << 16);
// Send the pitch bend message
midiOut.Send(pitchBendMessage);
}//public async void SendPitchBend___DEFINED_IN_THIS_FORMS(MidiOut midiOut, int channel, int pitchBendValue)
//////// Usage example
//////MidiOut midiOut = new MidiOut(0); // Initialize MIDI output on the first available device
//////SendPitchBend___DEFINED_IN_THIS_FORMS(midiOut, 0, 8192); // Send a pitch bend message with no pitch bend on channel 0
private async void dataGridView___COMPOSER_CellClick(object sender, DataGridViewCellEventArgs e)
{
//////////////////////////////////////////////////
// DO_POPULATE_INDIANIZED_NOTES();
//here we are taking the blank notes name supplied
//this will simply fill the data and populate the internal static arrays every times
//this function is in the form class
string _returned_notes_number_string = DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES("");
bool ___is_the_indinote_for_current_row_is_null = true;
bool ___is_the_indinote_for_current_row_blank = false;
string ___temp_current_indinotestring = "";
try
{
int selected_row_number_WITHOUTONCLICKPRELISTENS = 0;
int selected_col_number_WITHOUTONCLICKPRELISTENS = 0;
if (e.RowIndex >= 0)
{
selected_row_number_WITHOUTONCLICKPRELISTENS = e.RowIndex;
selected_col_number_WITHOUTONCLICKPRELISTENS = e.ColumnIndex;
this.dataGridView___COMPOSER.Rows[e.RowIndex].Selected = true;
DataGridViewRow selected_row_WITHOUTONCLICKPRELISTENS = null;
//////selected_row = this.dataGridView___COMPOSER.SelectedRows.;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[1].Value = "76";//////"TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH";
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.BackColor = Color.LightGray;
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.ForeColor = Color.Black;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS = this.dataGridView___COMPOSER.Rows[selected_row_number_WITHOUTONCLICKPRELISTENS];
string ___the_current_rows_indinotes_or_commands_found = "";
string _returned_notes_number_string_another = "";
//here we are taking the blank notes name supplied
//this will simply fill the data and populate the internal static arrays every times
if (selected_row_WITHOUTONCLICKPRELISTENS != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value != null)
{
___is_the_indinote_for_current_row_is_null = false;
___temp_current_indinotestring
=
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim();
if (___temp_current_indinotestring.Length == 0)
{
___is_the_indinote_for_current_row_blank = true;
}// if(___temp_current_indinotestring.Length==0)
___the_current_rows_indinotes_or_commands_found
=
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim();
}
else
{
//no this is enforcing to not to allow putting enforced numbers ___the_current_rows_indinotes_or_commands_found = "-";
//Column_NOTES_NUMBER_TO_TRYS
//for the null indinotes or for blank indi notes
//allow the if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value != null)
___is_the_indinote_for_current_row_is_null = true;
}//end of else of if(selected_row.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value!=null)
if(___is_the_indinote_for_current_row_blank|| ___is_the_indinote_for_current_row_is_null)
{
//do nothing for on click cases of indinotes
return; // for cellclick cases note the conditions
}//if(___is_the_indinote_for_current_row_blank|| ___is_the_indinote_for_current_row_is_null)
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
/////since there are several systems for data entry we need to handle special intelligenses
//////if( ___the_current_rows_indinotes_or_commands_found=="s")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "S";
////// }
//////else if (___the_current_rows_indinotes_or_commands_found == "r")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "R";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "g")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "G";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "m")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "M";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "p")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "P";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "d")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "D";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "n")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "N";
////// }
////// else
////// {
////// }
//////if (___the_current_rows_indinotes_or_commands_found == "s")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "r")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "R")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "g")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "G")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "m")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "M")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "p")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "P")
//////{
////// // ___the_current_rows_indinotes_or_commands_found = "P#";
////// ___the_current_rows_indinotes_or_commands_found = "P";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "d")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "D")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "n")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "N")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "-")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "|")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "@")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "(")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "n";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ")")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "{")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "}")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "[")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "]")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "\\")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "/")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "~")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////if (___the_current_rows_indinotes_or_commands_found == "s")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".S_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "r")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "R")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "g")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "G")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "m")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "M")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "p")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "P")
//////{
////// // ___the_current_rows_indinotes_or_commands_found = "P#";
////// ___the_current_rows_indinotes_or_commands_found = "P"; //NO P SHARPS
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "d")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";//NO D FLATS
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "D")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "n")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "N")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "-")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "|")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "@")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "(")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "n";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ")")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "{")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "}")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "[")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "]")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "\\")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "/")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "~")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
////else
////{
////}//preconditionings done
// }
//////if (
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("#")
//////||
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("_")
//////)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[0, 0] = ".S/.S"; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[1, 0] = ".R/.R"; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[2, 0] = ".R#/.G_"; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3, 0] = ".G/.G"; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[4, 0] = ".G#/.M_"; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[5, 0] = ".M/.M"; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[6, 0] = ".M#/.P_"; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[7, 0] = ".P/.P"; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[8, 0] = ".D/.D"; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[9, 0] = ".D#/.N_"; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[10, 0] = ".N/.N"; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[11, 0] = ".N#/.S_"; // Shuddha Ni
////// ////// Madhya Saptak(Middle Octave)
////// ///////////////Madhya Saptak is the middle octave, considered the standard range for vocal and instrumental music.Notes in this octave are denoted without any dots.
////// // Madhya Saptak (Middle Octave)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[12, 0] = "S/S"; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[13, 0] = "R/R"; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[14, 0] = "R#/G_"; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15, 0] = "G/G"; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[16, 0] = "G#/M_"; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[17, 0] = "M/M"; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[18, 0] = "M#/P_"; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[19, 0] = "P/P"; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[20, 0] = "D/D"; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[21, 0] = "D#/N_"; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[22, 0] = "N/N"; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[23, 0] = "N#/S_."; // Shuddha Ni
////// /// Taar Saptak(Upper Octave)
///////////////Taar Saptak is the upper octave, where the frequency of notes is one octave higher than the Madhya Saptak.These notes are denoted by placing a dot above them.Wikipedia + 8Sitar Teacher: Anupama Gagneja+8schoolofindianmusic.com + 8
////////////////////////// Taar Saptak (Upper Octave)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[24, 0] = "S./S."; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[25, 0] = "R./R."; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[26, 0] = "R#./G_."; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[27, 0] = "G./G_."; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[28, 0] = "G#./M_."; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[29, 0] = "M./M."; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30, 0] = "M#./P_."; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[31, 0] = "P./P."; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[32, 0] = "D./D."; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[33, 0] = "D#./N_."; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[34, 0] = "N./N."; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[35, 0] = "N#./S.."; // Shuddha Ni
///////////////////In Hindustani classical music, Mandra Saptak refers to the lower octave, Madhya Saptak to the middle octave, and Taar Saptak
//////////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 45
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 46
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 47
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 48
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 49
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[36, 0] = "(";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[37, 0] = ")";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[38, 0] = "{";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[39, 0] = "}";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[40, 0] = "[";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[41, 0] = "]";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[42, 0] = "|";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[43, 0] = "!";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[44, 0] = "@";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45, 0] = "-";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 1, 0] = "~";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 2, 0] = "^";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 3, 0] = "\\";//single backslash
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 4, 0] = "/";
//////In Hindustani classical music, "raga vistar"(raag विस्तार) refers to the expansion or elaboration of a musical melody within a specific raga(melody scale). It involves the performer moving around within the raga, exploring its notes, and creating a musical narrative.Vistar is a crucial part of a raga performance, allowing the musician to showcase their creativity and skill.
//////Here's a more detailed breakdown:
//////Aalap and Vistar:
//////Vistar is often a part of the "aalap" section, which is the introductory improvisation that sets the tone of the raga. Aalap allows the musician to establish the raga's character and create a musical mood before moving into the more rhythmic sections of the performance.
//////Chalan:
//////Vistar is closely related to "chalan," which refers to the characteristic way in which a raga is played or sung, including its melodic phrases and patterns. Vistar builds upon the chalan, exploring its possibilities and nuances.
//////Improvisation:
//////Vistar involves improvisation, where the musician uses their knowledge of the raga's notes, patterns, and emotional qualities to create a unique musical piece.
//////Swar Vistaar:
//////The term "swar vistar" specifically refers to the exploration of notes within a raga.
//////Examples:
////////////Different ragas have different characteristics and vistar styles. For example, the raga Yaman, known for its grandeur and fundamental nature, allows for a wide range of improvisational possibilities.The raga Malkauns is considered an old raga in Indian classical music with its own unique vistar.
//////In Hindustani classical music, the concept of "raga vistaar"(raag विस्तार) refers to the expansive elaboration of a raga, allowing the performer to explore its melodic contours and emotional depth. This process is not merely an improvisational exercise but follows a structured approach that combines theoretical understanding with creative expression.
//////Mathematical and Structural Foundations of Raga Vistaar
//////Pitch Distribution and Tonal Hierarchy: Each raga is characterized by a specific set of notes(svaras), and the frequency with which these notes are used can be analyzed statistically.Research has shown that the relative frequency of more significant notes stabilizes more quickly than that of others, indicating their importance in expressing the raga's mood and structure.
//////MTG GitHub Pages
//////arXiv
//////Finite Automaton Models: Computational models, such as finite automata, have been employed to simulate the melodic progression in raga performances. These models help in understanding the sequence and transition of notes, reflecting the raga's inherent grammar and syntax.
//////CSE IIT Bombay
//////Statistical Analysis of Melodic Phrases: The identification of recurring melodic phrases or motifs is crucial in raga vistaar. By analyzing the occurrence and transition of these phrases, one can discern the underlying structure and emotional trajectory of the raga.
//////CSE IIT Bombay
//////Rhythmic and Temporal Structuring: While the melodic aspect is central, the rhythmic framework(tala) also plays a significant role in raga vistaar. The interplay between melody and rhythm is carefully structured to enhance the raga's expression and to guide the listener through its emotional journey.
//////Improvisational Techniques: Vistaar involves various improvisational techniques, such as meend (glides), gamak(oscillations), and murki(quick note clusters), which add nuance and depth to the performance. These techniques are not random but are governed by the raga's rules and the performer's creativity.
//////Conclusion
//////Raga vistaar is a sophisticated blend of mathematical principles, structural analysis, and artistic expression.While computational models provide insights into the underlying patterns and structures, the true essence of vistaar lies in the performer's ability to breathe life into these structures, creating a unique and emotive rendition of the raga.
//////Raga vistaar, a core element of Indian classical music, builds upon a mathematical and structural foundation. The vistaar, or expansion, involves exploring the melodic possibilities within a raga(scale), often using structures like alaap(melodic improvisation) and taans(rapid melodic ornamentation). The mathematical underpinnings lie in the relationships between notes, the construction of alankars(melodic exercises), and the systematic arrangement of notes within a raga.
//////Here's a more detailed look:
//////1.Mathematical Foundations:
//////Relationships between notes:
//////Ragas are built on specific relationships between the seven fundamental notes(Swaras Sa, Re, Ga, Ma, Pa, Dha, Ni), according to Artium Academy. These relationships, including intervals and microtones, are mathematically defined.
//////Alankars:
//////Alankars are melodic exercises that explore the notes within a raga.They are often structured using mathematical functions, such as the example of applying a pattern to the notes of a Thaat(a set of notes) to create a sequence of phrases.
//////Combinatorial Structures:
//////Indian music has a vast number of ragas, created through combinations and permutations of the seven fundamental notes.For instance, the 72 distinct scales(ragas) are a result of mathematical combinations.
//////2.Structural Foundations:
//////Compositional Structures:
//////Raga vistaar builds upon established compositional structures like gat(the main composition of a raga), which often starts from the melodic center and explores different octaves before returning to the starting point.
//////Alaap:
//////Alaap is a melodic improvisation that explores the emotional and expressive potential of a raga, often using specific melodic figures and ornaments.
//////Taan:
//////Taan is a rapid melodic ornamentation that adds dynamism and excitement to the performance, often incorporating various melodic patterns.
//////Bol Baant/ Bol Laya:
//////Some schools of Hindustani music also incorporate Bol Baant(rhythmic patterns) and Bol Laya(rhythmic improvisation) into the vistaar.
//https://swarsindhu.pratibha-spandan.org/wp-content/uploads/v10i02a11.pdf
//https://swarsindhu.pratibha-spandan.org/wp-content/uploads/v12i01a57.pdf // good list of the raaga orderings
//////(For our understanding r g d n stands for komal Re, komal Ga, komal Dha, komal NI; R,G ,D N
//////stands for Suddha Re, Suddha Ga, Suddha Dha and Suddha Ni ; m = Suddha Madhyam, M = Teevra
//////Ma)
//////SCALES WITH SUDDHA MA SCALES WITH TEEVRA MA
//////S r g m P d n S { BHAIRAVI}
//////S r g M P d n S { BHAVAPRIYA}
//////S r g m P d N S { DHENUKA}
//////S r g M P d N S { TODI}
//////S r g m P D n S { NATAKAPRIYA}
//////S r g M P D n S { SHADVIDHAMARGINI}
//////S r g m P D N S { KOKILAPRIYA}
//////S r g M P D N S { SUVARNANGI}
//////S R g m P d n S { ASAVERI}
//////S R g M P d n S { SHANMUKHAPRIYA}
//////S R g m P d N S { KEERVANI}
//////S R g M P d N S { SIMHENDRAMADHYAM}
//////S R g m P D n S { KAFI}
//////S R g M P D n S { HEMAVATI}
//////S R g m P D N S { GOURIMANOHARI}
//////S R g M P D N S { DHARMAVATI}
//////S r G m P d n S { BASANT MUKHARI}
//////S r G M P d n S { NAMANARAYANI}
//////S r G m P d N S { BHAIRAV}
//////S r G M P d N S { PURVI}
//////S r G m P D n S { AHIR BHAIRAV}
//////S r G M P D n S { RAMAPRIYA}
//////S r G m P D N S { ANAND BHAIRAV}
//////S r G M P D N S { MARWA}
//////S R G m P d n S { CHARUKESHI}
//////S R G M P d n S { RISHABHAPRIYA}
//////S R G m P d N S { NAT BHAIRAV}
//////S R G M P d N S { LATANGI}
//////S R G m P D n S { KHAMAJ}
//////S R G M P D n S { VACHASPATI}
//////S R G m P D N S { BILAWAL}
//////S R G M P D N S { KALYAN}
//////Of the above combinations, Pt. Bhatkhande chose only 10 primary Thaats, which were enough to
//////accommodate the ragas prevalent in his time. They are:
//////Bilawal, Khamaj, Kafi, Bhairav, Kalyan, Marwa, Purvi, Asaveri, Bhairavi and Todi.
//////According to Dr.Nupur Ganguly(HOD, Vocal Department, Rabindra Bharati University) in her
//////book “A Bird's eye view of Indian Musicology”, Pg 82-83 ( ISBN 9788177681109 ) (published
//////Jan 2018) this improvised scientific 32 Thaat system was the conception of the Senia Gharana.
//////The names of the musical scales have too been given for students of music.Shobhana Nayar‟s
//////book “Bhatkhande‟s Contribution to Music: A Historical Perspective” [ISBN 97808
//////(For our understanding r g d n stands for komal Re, komal Ga, komal Dha, komal NI; R,G ,D N
//////stands for Suddha Re, Suddha Ga, Suddha Dha and Suddha Ni ; m = Suddha Madhyam, M = Teevra
//////Ma)
//////SCALES WITH SUDDHA MA SCALES WITH TEEVRA MA
//////S r g m P d n S { BHAIRAVI}
//////S r g M P d n S { BHAVAPRIYA}
//////S r g m P d N S { DHENUKA}
//////S r g M P d N S { TODI}
//////S r g m P D n S { NATAKAPRIYA}
//////S r g M P D n S { SHADVIDHAMARGINI}
//////S r g m P D N S { KOKILAPRIYA}
//////S r g M P D N S { SUVARNANGI}
//////S R g m P d n S { ASAVERI}
//////S R g M P d n S { SHANMUKHAPRIYA}
//////S R g m P d N S { KEERVANI}
//////S R g M P d N S { SIMHENDRAMADHYAM}
//////S R g m P D n S { KAFI}
//////S R g M P D n S { HEMAVATI}
//////S R g m P D N S { GOURIMANOHARI}
//////S R g M P D N S { DHARMAVATI}
//////S r G m P d n S { BASANT MUKHARI}
//////S r G M P d n S { NAMANARAYANI}
//////S r G m P d N S { BHAIRAV}
//////S r G M P d N S { PURVI}
//////S r G m P D n S { AHIR BHAIRAV}
//////S r G M P D n S { RAMAPRIYA}
//////S r G m P D N S { ANAND BHAIRAV}
//////S r G M P D N S { MARWA}
//////S R G m P d n S { CHARUKESHI}
//////S R G M P d n S { RISHABHAPRIYA}
//////S R G m P d N S { NAT BHAIRAV}
//////S R G M P d N S { LATANGI}
//////S R G m P D n S { KHAMAJ}
//////S R G M P D n S { VACHASPATI}
//////S R G m P D N S { BILAWAL}
//////S R G M P D N S { KALYAN}
//////Of the above combinations, Pt. Bhatkhande chose only 10 primary Thaats, which we
if (___the_current_rows_indinotes_or_commands_found == ".s")
{
___the_current_rows_indinotes_or_commands_found = "..N#";//NOT IN THE ARRAY
}
if (___the_current_rows_indinotes_or_commands_found == ".S")
{
___the_current_rows_indinotes_or_commands_found = ".S";//NO S# THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".r")
{
___the_current_rows_indinotes_or_commands_found = ".R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".R")
{
___the_current_rows_indinotes_or_commands_found = ".R";//we have to type R# for our needs
}
else if (___the_current_rows_indinotes_or_commands_found == ".g")
{
___the_current_rows_indinotes_or_commands_found = ".G_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".G")
{
___the_current_rows_indinotes_or_commands_found = ".G";//we have to specify the G# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".m")
{
___the_current_rows_indinotes_or_commands_found = ".M_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".M")
{
___the_current_rows_indinotes_or_commands_found = ".M";//we have to specify M# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".p")
{
___the_current_rows_indinotes_or_commands_found = ".P_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".P")
{
___the_current_rows_indinotes_or_commands_found = ".P";//NO P SHARP THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".d")
{
___the_current_rows_indinotes_or_commands_found = ".D";//NO D FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".D")
{
___the_current_rows_indinotes_or_commands_found = ".D";//we have to specify D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".n")
{
___the_current_rows_indinotes_or_commands_found = ".N_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".N")
{
___the_current_rows_indinotes_or_commands_found = ".N";//we have to specify N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".S")
{
___the_current_rows_indinotes_or_commands_found = ".S";// there is no S sharp (we are at lower octave)
}
else if (___the_current_rows_indinotes_or_commands_found == "s")
{
___the_current_rows_indinotes_or_commands_found = ".N#";//here it is ok for small s we take previous octaves .N#
}
else if (___the_current_rows_indinotes_or_commands_found == "S")
{
___the_current_rows_indinotes_or_commands_found = "S";//there is no S#
}
else if (___the_current_rows_indinotes_or_commands_found == "r")
{
___the_current_rows_indinotes_or_commands_found = "R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "R")
{
___the_current_rows_indinotes_or_commands_found = "R";//We have to specify the R# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "g")
{
___the_current_rows_indinotes_or_commands_found = "G_";
}
else if (___the_current_rows_indinotes_or_commands_found == "G")
{
___the_current_rows_indinotes_or_commands_found = "G";//we have to specify G# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m")
{
___the_current_rows_indinotes_or_commands_found = "M_";
}
else if (___the_current_rows_indinotes_or_commands_found == "M")
{
___the_current_rows_indinotes_or_commands_found = "M";//we have to specify M# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p")
{
___the_current_rows_indinotes_or_commands_found = "P_";
}
else if (___the_current_rows_indinotes_or_commands_found == "P")
{
___the_current_rows_indinotes_or_commands_found = "P";//there is no P#
}
else if (___the_current_rows_indinotes_or_commands_found == "d")
{
___the_current_rows_indinotes_or_commands_found = "D";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "D")
{
___the_current_rows_indinotes_or_commands_found = "D";//we have to specify the D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n")
{
___the_current_rows_indinotes_or_commands_found = "N_";
}
else if (___the_current_rows_indinotes_or_commands_found == "N")
{
___the_current_rows_indinotes_or_commands_found = "N";//We have to Specify the conditions of N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S.";//we are in higer octaves
}
else if (___the_current_rows_indinotes_or_commands_found == "s.")
{
___the_current_rows_indinotes_or_commands_found = "N#.";//this is the N# for the previous octave where it is called this means we are calling from the next octave
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S.";// there is no S#
}
else if (___the_current_rows_indinotes_or_commands_found == "r.")
{
___the_current_rows_indinotes_or_commands_found = "R.";//there is no R flat
}
else if (___the_current_rows_indinotes_or_commands_found == "R.")
{
___the_current_rows_indinotes_or_commands_found = "R.";// there is no R Flat and if necessary type the R#. specify that
}
else if (___the_current_rows_indinotes_or_commands_found == "g.")
{
___the_current_rows_indinotes_or_commands_found = "G_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "G.")
{
___the_current_rows_indinotes_or_commands_found = "G.";//specify G#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m.")
{
___the_current_rows_indinotes_or_commands_found = "M_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "M.")
{
___the_current_rows_indinotes_or_commands_found = "M.";// if necessary type M#. specify that
}
else if (___the_current_rows_indinotes_or_commands_found == "p.")
{
___the_current_rows_indinotes_or_commands_found = "P_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "P.")
{
___the_current_rows_indinotes_or_commands_found = "P.";//there is no P sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "d.")
{
___the_current_rows_indinotes_or_commands_found = "D.";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "D.")
{
___the_current_rows_indinotes_or_commands_found = "D.";// Specify the D#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "N.")
{
___the_current_rows_indinotes_or_commands_found = "N.";// if necessary specify N#.
}
else if (___the_current_rows_indinotes_or_commands_found == "S..")
{
___the_current_rows_indinotes_or_commands_found = "S..";//we are at higher to higher octave
}
else if (___the_current_rows_indinotes_or_commands_found == "s")
{
___the_current_rows_indinotes_or_commands_found = "S_";
}
else if (___the_current_rows_indinotes_or_commands_found == "S")
{
___the_current_rows_indinotes_or_commands_found = "S";//NO S SHARP THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "r")
{
___the_current_rows_indinotes_or_commands_found = "R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "R")
{
___the_current_rows_indinotes_or_commands_found = "R";
}
else if (___the_current_rows_indinotes_or_commands_found == "g")
{
___the_current_rows_indinotes_or_commands_found = "G_";
}
else if (___the_current_rows_indinotes_or_commands_found == "G")
{
___the_current_rows_indinotes_or_commands_found = "G";
}
else if (___the_current_rows_indinotes_or_commands_found == "m")
{
___the_current_rows_indinotes_or_commands_found = "M_";
}
else if (___the_current_rows_indinotes_or_commands_found == "M")
{
___the_current_rows_indinotes_or_commands_found = "M";//type M# ifnecessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p")
{
___the_current_rows_indinotes_or_commands_found = "P_";//p has the flat and no sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "P")
{
// ___the_current_rows_indinotes_or_commands_found = "P#";
___the_current_rows_indinotes_or_commands_found = "P";//THERE IS NO P#
}
else if (___the_current_rows_indinotes_or_commands_found == "d")
{
___the_current_rows_indinotes_or_commands_found = "D";//THERE IS NO D_
}
else if (___the_current_rows_indinotes_or_commands_found == "D")
{
___the_current_rows_indinotes_or_commands_found = "D";//type D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n")
{
___the_current_rows_indinotes_or_commands_found = "N_";
}
else if (___the_current_rows_indinotes_or_commands_found == "N")
{
___the_current_rows_indinotes_or_commands_found = "N";// type N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "s.")
{
___the_current_rows_indinotes_or_commands_found = "N#";// this is calling of current octave from the upper octaves S
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S";//THERE IS NO S SHARP we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "r.")
{
___the_current_rows_indinotes_or_commands_found = "R.";//THERE IS NO r flat we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "R.")
{
___the_current_rows_indinotes_or_commands_found = "R."; // we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "g.")
{
___the_current_rows_indinotes_or_commands_found = "G_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "G.")
{
___the_current_rows_indinotes_or_commands_found = "G.";//type G#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m.")
{
___the_current_rows_indinotes_or_commands_found = "M_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "M.")
{
___the_current_rows_indinotes_or_commands_found = "M.";//type M#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p.")
{
___the_current_rows_indinotes_or_commands_found = "P_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "P.")
{
___the_current_rows_indinotes_or_commands_found = "P.";//there is no p sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "d.")
{
___the_current_rows_indinotes_or_commands_found = "D.";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "n.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "N.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";//type N#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "-")
{
___the_current_rows_indinotes_or_commands_found = "S";//we will take care this with the last note continuations
}
else if (___the_current_rows_indinotes_or_commands_found == "|")
{
___the_current_rows_indinotes_or_commands_found = "|";//this is the decorations notes
}
else if (___the_current_rows_indinotes_or_commands_found == "@")
{
___the_current_rows_indinotes_or_commands_found = "@";
}
else if (___the_current_rows_indinotes_or_commands_found == "(")
{
___the_current_rows_indinotes_or_commands_found = "(";
}
else if (___the_current_rows_indinotes_or_commands_found == ")")
{
___the_current_rows_indinotes_or_commands_found = ")";
}
else if (___the_current_rows_indinotes_or_commands_found == "{")
{
___the_current_rows_indinotes_or_commands_found = "{";
}
else if (___the_current_rows_indinotes_or_commands_found == "}")
{
___the_current_rows_indinotes_or_commands_found = "}";
}
else if (___the_current_rows_indinotes_or_commands_found == "[")
{
___the_current_rows_indinotes_or_commands_found = "[";
}
else if (___the_current_rows_indinotes_or_commands_found == "]")
{
___the_current_rows_indinotes_or_commands_found = "]";
}
else if (___the_current_rows_indinotes_or_commands_found == "\\")
{
___the_current_rows_indinotes_or_commands_found = "\\";//to handle these specially with references to the previous non decorative pure melody note assigned
}
else if (___the_current_rows_indinotes_or_commands_found == "/")
{
___the_current_rows_indinotes_or_commands_found = "/";//to handle these specially with references to the previous non decorative pure melody note assigned
}
else if (___the_current_rows_indinotes_or_commands_found == "~")
{
___the_current_rows_indinotes_or_commands_found = "~";//to handle these specially with references to the previous non decorative pure melody note assigned
}
////else
////{
////}//preconditionings done
// }
//////if (
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("#")
//////||
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("_")
//////)
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
_returned_notes_number_string_another
=
DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES
(___the_current_rows_indinotes_or_commands_found);
//////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
=
_returned_notes_number_string_another;
Console.WriteLine("___the_current_rows_indinotes_or_commands_found = " + ___the_current_rows_indinotes_or_commands_found + " _returned_notes_number_string_another = " + _returned_notes_number_string_another);
if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
{
//dont fill the data for the case where the lyr sylls data is there
}
else
{
//if the lyr sylls data is null then fill that with the indinotes
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
=
___the_current_rows_indinotes_or_commands_found;
}//end of else of if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
}// if (selected_row !=null)
}//if (e.RowIndex >= 0)
}
catch (Exception _excptohandlestheindinotes)
{
Console.WriteLine("_excptohandlestheindinotes = " + _excptohandlestheindinotes.Message + " " + _excptohandlestheindinotes.StackTrace.ToString());
}//catch(Exception _excptohandlestheindinotes)
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
///////////////////////////////////////////////////////////////////////////////////// THE INDINOTES HANDLES DONES /////////////////////
//////////////////////////////////////////////////
//////////////references
//////////////references
//////////////references
////////////public void LogOriginalPitchBendRange(MidiOut midiOut, int channel)
////////////{
//////////// // Select RPN 0 (Pitch Bend Sensitivity)
//////////// midiOut.Send(MidiMessage.ChangeControl(channel, 101, 0).RawData); // RPN MSB
//////////// midiOut.Send(MidiMessage.ChangeControl(channel, 100, 0).RawData); // RPN LSB
//////////// // Request the current pitch bend range (this part is device-specific and may not be supported by all devices)
//////////// // You would need to implement a method to read the response from the MIDI device
//////////// // Deselect RPN
//////////// midiOut.Send(MidiMessage.ChangeControl(channel, 101, 127).RawData); // RPN MSB
//////////// midiOut.Send(MidiMessage.ChangeControl(channel, 100, 127).RawData); // RPN LSB
//////////// // Log the original pitch bend range (this is a placeholder for the actual implementation)
//////////// Console.WriteLine("Original pitch bend range logged.");
////////////}
////////////// Usage example
////////////MidiOut midiOut = new MidiOut(0); // Initialize MIDI output on the first available device
////////////LogOriginalPitchBendRange(midiOut, 0); // Log the original pitch bend range on channel 0
try
{
if (this.checkBox___DO_YOU_NEED_ON_CLICK_PRELISTEN.CheckState.ToString().ToUpper() == "CHECKED")
{
try
{
/////////////////////////////////////////////////////////////////
STOPTHENOTESIFTHEDEVICESISOPEN();
// DO_POPULATE_INDIANIZED_NOTES();
/////////////////////////////////////////////////////////////////
///
}
catch (Exception ___excpToRunclickstoppingtherunningdevides)
{
//disturbs System.Windows.Forms.MessageBox.Show("___excpToRunclickstoppingtherunningdevides = " + ___excpToRunclickstoppingtherunningdevides.Message + " " + ___excpToRunclickstoppingtherunningdevides.StackTrace.ToString());
}//catch(Exception ___excpToRunclickstoppingtherunningdevides)
int selected_row_number = 0;
int selected_col_number = 0;
if (e.RowIndex >= 0)
{
selected_row_number = e.RowIndex;
selected_col_number = e.ColumnIndex;
this.dataGridView___COMPOSER.Rows[e.RowIndex].Selected = true;
DataGridViewRow selected_row = null;
//////selected_row = this.dataGridView___COMPOSER.SelectedRows.;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[1].Value = "76";//////"TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH";
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.BackColor = Color.LightGray;
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.ForeColor = Color.Black;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
selected_row = this.dataGridView___COMPOSER.Rows[selected_row_number];
string ___string_to_check_data_grabbed = "";
string STRING_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = "";
string STRING_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN = "";
string STRING_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN = "";
string STRING_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN = "";
string STRING_NOTE_INTERMEDIATE_PITCHBEND_DURATIONS_PERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN = "";
string STRING_NOTE_INTERMEDIATE_PITCHBEND_DATA_VALUES_SPERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN = "";
string THE_MIDIOUTSVOLUMESFOUND = "";
string STRING_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = "";
string STRING_NOTE_TRACK_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = "";
int INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 1;
int INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN = 1000;
int INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN = 108;
int INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN = 73;
string[] STRING_ARRAY_NOTE_INTERMEDIATE_PITCHBEND_DURATIONS_PERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN = { };
string[] STRING_ARRAY_INTERMEDIATE_PITCHBEND_DATA_VALUES_SPERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN = { };
int INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 0;
int INT_NOTE_TRACK_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 0;
if (selected_row != null)
{
___string_to_check_data_grabbed += "\r\nselected_row_number = " + selected_row_number;
if (selected_row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value != null)
{
if (selected_row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length >0)
{
STRING_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = selected_row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim();
try
{
INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
= Convert.ToInt16(STRING_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN);
////////////////////////////////////////////////////////////////////////////////////////////////
selected_row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Style.BackColor = Color.White;
if (INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN < 0 || INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN > 127)
{
selected_row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Style.BackColor = Color.PaleVioletRed;
System.Windows.Forms.MessageBox.Show("CAUTION NOTES NUMBERS ARE WITHIN 0 TO 127");
}//if(INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN<0 || INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN>127)
else
{
selected_row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Style.BackColor = Color.White;
}//end of else of if(INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN<0 || INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN>127)
}
catch (Exception _excptoconver)
{
selected_row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Style.BackColor = Color.PaleVioletRed;
INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 6;//easily recogns
}//catch(Exception _excptoconver)
///////////////////////////////////////////////////////////////////////////////////////////////////////
if (INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN < 0 || INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN > 127)
{
INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 6;//easily recogns
}//if(INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN<0 || INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN>127)
double DOUBLE_FREQUENCY_FOUND = 0;
string STRING_FREQUENCY_FOUND = "";
//now we have changed the data to the double convertions also
STRING_FREQUENCY_FOUND
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
// PUBLIC_STATIC_STRING___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
PUBLIC_STATIC_DOUBLE___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
(INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN)
.ToString()
;
selected_row.Cells["Column_NOTES_FREQUENCYS"].Value = STRING_FREQUENCY_FOUND;
string STRING_NOTE_NAME_FOUND = "";
// INT_NOTE_NUMBER_TO_PLAY_0_TO_127
STRING_NOTE_NAME_FOUND
=
//////SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
//////.public_static_string_get_note_name_from_frequency_Hertz
//////(DOUBLE_FREQUENCY_FOUND);
///
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING___RETURN_NOTE_NAME_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
(INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN);
selected_row.Cells["Column_CONVENTIONAL_NOTES_NUMBERS"].Value = STRING_NOTE_NAME_FOUND;
////////////////////////////////////////////////////////////////////////
//saan is adding this
if (null == selected_row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value)
{
selected_row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value = 1000;
}//if (null==selected_row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value )
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//saan is adding this
if (null == selected_row.Cells["Column_NOTES_VELOCITY"].Value)
{
selected_row.Cells["Column_NOTES_VELOCITY"].Value = 127;
}//if (null==selected_row.Cells["Column_NOTES_VELOCITY"].Value )
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//saan is adding this
if (null == selected_row.Cells["Column_CURRENT_NOTES_PATCH"].Value)
{
selected_row.Cells["Column_CURRENT_NOTES_PATCH"].Value = 127;
}//if (null==selected_row.Cells["Column_CURRENT_NOTES_PATCH"].Value )
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//saan is adding this
if (null == selected_row.Cells["Column_FOR_CHANNEL"].Value)
{
selected_row.Cells["Column_FOR_CHANNEL"].Value = 3;
}//if (null==selected_row.Cells["Column_FOR_CHANNEL"].Value )
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//saan is adding this
if (null == selected_row.Cells["Column_FOR_TRACK"].Value)
{
selected_row.Cells["Column_FOR_TRACK"].Value = 3;
}//if (null==selected_row.Cells["Column_FOR_TRACK"].Value )
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//saan is adding this
if (null == selected_row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value)
{
selected_row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value = "8192,16368";
}//if (null==selected_row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value )
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
//saan is adding this
if (null == selected_row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value)
{
selected_row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value = "0,100";
}//if (null==selected_row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value )
////////////////////////////////////////////////////////////////////////
if (selected_row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null)
{
STRING_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN = selected_row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim();
try
{
INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN = Convert.ToInt16(STRING_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN);
selected_row.Cells["Column_NOTES_DURATIONS_MILLIS"].Style.BackColor = Color.White;
}
catch (Exception _excptoconver)
{
selected_row.Cells["Column_NOTES_DURATIONS_MILLIS"].Style.BackColor = Color.PaleVioletRed;
INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN = 300;
}//catch(Exception _excptoconver)
if (selected_row.Cells["Column_NOTES_VELOCITY"].Value != null)
{
STRING_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN = selected_row.Cells["Column_NOTES_VELOCITY"].Value.ToString().TrimEnd().TrimStart().Trim();
try
{
INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN
= Convert.ToInt16(STRING_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN);
selected_row.Cells["Column_NOTES_VELOCITY"].Style.BackColor = Color.White;
}
catch (Exception _excptoconver)
{
selected_row.Cells["Column_NOTES_VELOCITY"].Style.BackColor = Color.PaleVioletRed;
INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN = 127;
}//catch(Exception _excptoconver)
if (INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN < 0 || INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN > 127)
{
selected_row.Cells["Column_NOTES_VELOCITY"].Style.BackColor = Color.PaleVioletRed;
INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN = 127;
}//if(INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN<0 || INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN>127)
else
{
selected_row.Cells["Column_NOTES_VELOCITY"].Style.BackColor = Color.White;
}//end of else of if(INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN<0 || INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN>127)
if (selected_row.Cells["Column_CURRENT_NOTES_PATCH"].Value != null)
{
STRING_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN = selected_row.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().Trim();
try
{
INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN = Convert.ToInt16(STRING_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN);
selected_row.Cells["Column_CURRENT_NOTES_PATCH"].Style.BackColor = Color.White;
}
catch (Exception _excptoconver)
{
selected_row.Cells["Column_CURRENT_NOTES_PATCH"].Style.BackColor = Color.PaleVioletRed;
INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN = 127;//easily recogs
}//catch(Exception _excptoconver)
if (INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN < 0 || INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN > 127)
{
selected_row.Cells["Column_CURRENT_NOTES_PATCH"].Style.BackColor = Color.PaleVioletRed;
INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN = 127;//easily recogs
}// if(INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN<0 || INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN>127)
else
{
selected_row.Cells["Column_CURRENT_NOTES_PATCH"].Style.BackColor = Color.White;
}// end of else of if(INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN<0 || INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN>127)
//for references string STRING_NOTE_INTERMEDIATE_PITCHBEND_DURATIONS_PERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN = "";
//for references string STRING_NOTE_INTERMEDIATE_PITCHBEND_DATA_VALUES_SPERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN = "";
if (selected_row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value != null)
{
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
STRING_NOTE_INTERMEDIATE_PITCHBEND_DURATIONS_PERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN
=
selected_row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value
.ToString().TrimEnd().TrimStart().Trim();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (selected_row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value != null)
{
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
STRING_NOTE_INTERMEDIATE_PITCHBEND_DATA_VALUES_SPERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN
=
selected_row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value
.ToString().TrimEnd().TrimStart().Trim();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (selected_row.Cells["Column_FOR_CHANNEL"].Value != null)
{
STRING_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
=
selected_row.Cells["Column_FOR_CHANNEL"].Value.ToString().TrimEnd().TrimStart().Trim();
try
{
INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
= Convert.ToInt16(STRING_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN);
selected_row.Cells["Column_FOR_CHANNEL"].Style.BackColor = Color.White;
if (INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN < 0 || INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN > 15)
{
selected_row.Cells["Column_FOR_CHANNEL"].Style.BackColor = Color.PaleVioletRed;
System.Windows.Forms.MessageBox.Show("Channel numbers 0 to 15 only and channel numbers 9 9+ are for percussions beats");
INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 3;
if (INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN == 9 || INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN == (9 + 1))
{
selected_row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Style.BackColor = Color.LightGreen;
}//if(INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN==9 || INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN==(9+1))
else
{
selected_row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Style.BackColor = Color.White;
}//end of else of if(INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN==9 || INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN==(9+1))
}//if(INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN<0 || INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN>15)
else
{
selected_row.Cells["Column_FOR_CHANNEL"].Style.BackColor = Color.White;
}//end of else of if(INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN<0 || INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN>15)
}
catch (Exception _excptoconver)
{
selected_row.Cells["Column_FOR_CHANNEL"].Style.BackColor = Color.PaleVioletRed;
INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 3;//easily recogs
}//catch(Exception _excptoconver)
}//if (selected_row.Cells["Column_FOR_CHANNEL"].Value != null)
if (selected_row.Cells["Column_FOR_TRACK"].Value != null)
{
STRING_NOTE_TRACK_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
=
selected_row.Cells["Column_FOR_TRACK"].Value.ToString().TrimEnd().TrimStart().Trim();
try
{
INT_NOTE_TRACK_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
= Convert.ToInt16(STRING_NOTE_TRACK_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN);
}
catch (Exception _excptoconver)
{
INT_NOTE_TRACK_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 3;//easily recogs
}//catch(Exception _excptoconver)
}//if (selected_row.Cells["Column_FOR_TRACK"].Value != null)
___string_to_check_data_grabbed += "\r\nselected_row_number = " + selected_row_number;
___string_to_check_data_grabbed += "\r\nselected_notes_number = " + INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN;
___string_to_check_data_grabbed += "\r\nselected_notes_duration_number = " + INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN;
___string_to_check_data_grabbed += "\r\nselected_notes_strength_number = " + INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN;
___string_to_check_data_grabbed += "\r\nselected_patchs_number = " + INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN;
___string_to_check_data_grabbed += "\r\nselected_ptchbenddurations = " + STRING_NOTE_INTERMEDIATE_PITCHBEND_DURATIONS_PERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN;
___string_to_check_data_grabbed += "\r\nselected_ptchbenddata = " + STRING_NOTE_INTERMEDIATE_PITCHBEND_DATA_VALUES_SPERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN;
___string_to_check_data_grabbed += "\r\nselected_channelsnosdata = " + STRING_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN;
___string_to_check_data_grabbed += "\r\nselected_trksnosdata = " + STRING_NOTE_TRACK_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN;
if (SAANS_TEMP_SAANAUDS_Midi_MidiOut != null)
{
//do nothing
return;//simply dont///?????? //IT WAS NOT ERROR WHEN RETURN AND NOR ERROR WHEN I STOPPED THE RETURN
// continue;
// SAANS_TEMP_SAANAUDS_Midi_MidiOut.Volume = 300;//no error even 300
// SAANS_TEMP_SAANAUDS_Midi_MidiOut.Volume = 3000;//no error even 3000
THE_MIDIOUTSVOLUMESFOUND = SAANS_TEMP_SAANAUDS_Midi_MidiOut.Volume.ToString();
___string_to_check_data_grabbed += "\r\nTHE_MIDIOUTSVOLUMESFOUND = " + THE_MIDIOUTSVOLUMESFOUND;
}
else
{
//start of else of if(SAANS_TEMP_SAANAUDS_Midi_MidiOut!=null)
SAANS_TEMP_SAANAUDS_Midi_MidiOut = new SAANAUDS.Midi.MidiOut(0); // Initialize MIDI output on the first available device
if (INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN < 0 || INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN > 15)
{
INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 3;
}//if(INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN<0 || INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN>15)
try
{
//saan is now changing the process through notes objects constructions
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
___temp_note_objectfor_prelisten = null;
//flush the previous data
___temp_note_objectfor_prelisten
=
new SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
();
//////////////////////////////////////////////////////////////////////
___temp_note_objectfor_prelisten
.INT_CURRENT_NOTES_PATCH_0_TO_127
=
INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN;
//////////////////////////////////////////////////////////////////////
___temp_note_objectfor_prelisten
.INT_NOTE_NUMBER_TO_PLAY_0_TO_127
= INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN;
//////////////////////////////////////////////////////////////////////
___temp_note_objectfor_prelisten
.INT_CURRENT_NOTES_VELOCITY_0_TO_127
= INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN;
//////////////////////////////////////////////////////////////////////
___temp_note_objectfor_prelisten
.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY
=
// (double)
INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN;
//////////////////////////////////////////////////////////////////////
___temp_note_objectfor_prelisten
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15
=
INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN;
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
STRING_NOTE_INTERMEDIATE_PITCHBEND_DURATIONS_PERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN
=
selected_row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value
.ToString().TrimEnd().TrimStart().Trim();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_note_objectfor_prelisten
.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS
=
STRING_NOTE_INTERMEDIATE_PITCHBEND_DURATIONS_PERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
STRING_NOTE_INTERMEDIATE_PITCHBEND_DATA_VALUES_SPERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN
=
selected_row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value
.ToString().TrimEnd().TrimStart().Trim();
___temp_note_objectfor_prelisten
.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES
=
STRING_NOTE_INTERMEDIATE_PITCHBEND_DATA_VALUES_SPERCENTAGES_COMMASEPERATED_FROM_SELECTED_ROW_TO_PRELISTEN;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////
___temp_note_objectfor_prelisten
.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 0;
if (selected_row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value != null)
{
try
{
___temp_note_objectfor_prelisten
.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP
=
Convert.ToDouble
(selected_row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _excptoconver)
{
___temp_note_objectfor_prelisten
.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP
= 0;//easily recogs
}//catch(Exception _excptoconver)
}//if (selected_row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value != null)
else
{
//if the data is null
selected_row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value="30";//until user enforces zero its decides to put 30
___temp_note_objectfor_prelisten
.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP
= 30;//
// Convert.ToDouble
// (selected_row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value.ToString().TrimEnd().TrimStart().Trim());
}//end of else of //if (selected_row.Cells["Column_PITCHBEND_JERKS_MILLIS_GAP"].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_note_objectfor_prelisten.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 0;
if (selected_row.Cells["Column_JUERK_UP_PITCHBEND"].Value != null)
{
try
{
___temp_note_objectfor_prelisten
.PUBLIC_INT___Column_JUERK_UP_PITCHBEND
=
Convert.ToInt16
(selected_row.Cells["Column_JUERK_UP_PITCHBEND"].Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _excptoconver)
{
___temp_note_objectfor_prelisten
.PUBLIC_INT___Column_JUERK_UP_PITCHBEND
= 0;//easily recogs
}//catch(Exception _excptoconver)
}//if (selected_row.Cells["Column_JUERK_UP_PITCHBEND"].Value != null)
else
{
selected_row.Cells["Column_JUERK_UP_PITCHBEND"].Value = "60";
___temp_note_objectfor_prelisten
.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 60;//until user enforces the zero there we take it 60
}//end of else of //if (selected_row.Cells["Column_JUERK_UP_PITCHBEND"].Value != null)
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_note_objectfor_prelisten.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 0;
if (selected_row.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value != null)
{
try
{
___temp_note_objectfor_prelisten
.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND
=
Convert.ToInt16
(selected_row.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _excptoconver)
{
___temp_note_objectfor_prelisten
.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND
= 0;//easily recogs
}//catch(Exception _excptoconver)
}//if (selected_row.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value != null)
else
{
selected_row.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value = "60";
___temp_note_objectfor_prelisten
.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 60;//until user enforces the zero the data is taken 60
}//end of else of //if (selected_row.Cells["Column_JERK_DOWNS_PITCH_BEND"].Value != null)
///////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//starting point of the duration is zero for the click cases
//starting point of the duration is zero for the click cases
//starting point of the duration is zero for the click cases
//starting point of the duration is zero for the click cases
//starting point of the duration is zero for the click cases
//starting point of the duration is zero for the click cases
//here we have taken the miliseconds to miditiks conversions as 1.0
//here we have taken the miliseconds to miditiks conversions as 1.0
//here we have taken the miliseconds to miditiks conversions as 1.0
//////for references double START_ABSOLUTE_START_TIME_MILISECONDS
//////for references ,double MILLISECONDS_TO_MIDITIKS_MULTIPLIER
//////for references ,int CURRENT_NOTE_NUMBER
//////for references ,int INT_MILLISECOND_TOLERANCE_FOR_RIPPLES_PITCHBENDS
//////for references ,int INT_UPSIDE_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES
//////for references ,int INT_DOWNSIES_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES
___temp_note_objectfor_prelisten
.PUBLIC_NONSTATIC_VOID_UPDATE_CURRENT_NOTE_TO_UPDATE_PITCHBENDS_AND_OTHER_EFFECTS_FOR_CURRENT_NOTES_WITH_CURRENT_STARTING_ABSOLUTE_TIME_LONG
(
0
,
1.0
//////,
//////30
//////,
//////60
//////,
//////30
);//THIS ZERO IS THE START MILISECOND FOR THE CURRENT NOTE
//starting point of the duration is zero for the click cases
//starting point of the duration is zero for the click cases
//starting point of the duration is zero for the click cases
//here we have taken the miliseconds to miditiks conversions as 1.0
//here we have taken the miliseconds to miditiks conversions as 1.0
//here we have taken the miliseconds to miditiks conversions as 1.0
////////////////////// too important call to update the pitch bend lists///////
////////////////////// too important call to update the pitch bend lists///////
////////////////////// too important call to update the pitch bend lists///////
///___TEMP___
///
int ___TEMP___INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN = 0;//flushed first before populating from the objects data
int ___TEMP___INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN = 0;//flushed first before populating from the objects data
int ___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 0;//flushed first before populating from the objects data
int ___TEMP___INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 0;//flushed first before populating from the objects data
int ___TEMP___INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN = 0;//flushed first before populating from the objects data
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___TEMP___INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN
=
___temp_note_objectfor_prelisten
.INT_CURRENT_NOTES_PATCH_0_TO_127;
___TEMP___INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN
=
___temp_note_objectfor_prelisten
.INT_CURRENT_NOTES_VELOCITY_0_TO_127;
___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
=
___temp_note_objectfor_prelisten
.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15;
___TEMP___INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
=
___temp_note_objectfor_prelisten
.INT_NOTE_NUMBER_TO_PLAY_0_TO_127;
___TEMP___INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN
=
(int)
___temp_note_objectfor_prelisten
.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY;
//////////////////////////////////////////////////////////
///
//////___temp_note_objectfor_prelisten
////// .PUBLIC_NONSTATIC_VOID_UPDATE_CURRENT_NOTE_TO_UPDATE_PITCHBENDS_AND_OTHER_EFFECTS_FOR_CURRENT_NOTES_WITH_CURRENT_STARTING_ABSOLUTE_TIME_LONG
////// (0, 1.0);//THIS ZERO IS THE START MILISECOND FOR THE CURRENT NOTE
#region REGIONFORSPECIALPTCHBNDORNOTSPLITTING_FOR_NOPITCHBENDSPROPERLYFILLED
//SAAN ASSUMES 0;100 AND 8192;16383 ARE THERE DEAULT pitchBendValue = Math.Max(0, Math.Min(16383, pitchBendValue));
if (___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Count<=2)
{
//___temp_note_objectfor_prelisten
//////previous hardcoded local non objects calls SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.ChangePatch(INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN, INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN).RawData);
//////// Play the current note
//////previous hardcoded local non objects calls SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StartNote(INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN, INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN, INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN).RawData);
//////// Wait for the duration of the note
//////previous hardcoded local non objects calls await Task.Delay((int)INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN);
//////// Stop the current note
//////previous hardcoded local non objects calls SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StopNote(INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN, INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN, INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN).RawData);
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send
(
SAANAUDS.Midi.MidiMessage.ChangePatch
(
___TEMP___INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN
,
___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
)
.RawData
);
// Play the current note
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send
(
SAANAUDS.Midi.MidiMessage
.StartNote
(
___TEMP___INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
,
___TEMP___INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN
,
___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
)
.RawData
);
// Wait for the duration of the note
await Task.Delay
(
(int)
___TEMP___INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN
);
// Stop the current note
SAANS_TEMP_SAANAUDS_Midi_MidiOut
.Send
(
SAANAUDS.Midi.MidiMessage.StopNote
(
___TEMP___INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
,
___TEMP___INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN
,
___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
)
.RawData);
}// if(___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Count<=2)
#endregion REGIONFORSPECIALPTCHBNDORNOTSPLITTING_FOR_NOPITCHBENDSPROPERLYFILLED
Console.WriteLine("___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Count = " + ___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Count);
///SAAN NEEDS TO HANDLE THE CASES MORE SPECIALLY
#region REGIONFORSPECIALPTCHBNDORNOTSPLITTINGFORPROPERPITCHBENDSDATATHERES
if (___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Count >2)
{
Console.WriteLine("___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Count = " + ___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Count);
//___temp_note_objectfor_prelisten
//////previous hardcoded local non objects calls SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.ChangePatch(INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN, INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN).RawData);
//////// Play the current note
//////previous hardcoded local non objects calls SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StartNote(INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN, INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN, INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN).RawData);
//////// Wait for the duration of the note
//////previous hardcoded local non objects calls await Task.Delay((int)INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN);
//////// Stop the current note
//////previous hardcoded local non objects calls SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(SAANAUDS.Midi.MidiMessage.StopNote(INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN, INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN, INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN).RawData);
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send
(
SAANAUDS.Midi.MidiMessage.ChangePatch
(
___TEMP___INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN
,
___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
)
.RawData
);
// Play the current note
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send
(
SAANAUDS.Midi.MidiMessage
.StartNote
(
___TEMP___INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
,
___TEMP___INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN
,
___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
)
.RawData
);
//////// Calculate pitch bend events
//////var pitchBendDurations = ___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS;
//////var pitchBendValues = ___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS;
//////var pitchBendTimes = new List();
//////for (int i = 0; i < pitchBendDurations.Count; i++)
//////{
////// var relativeTime = (long)(pitchBendDurations[i] / 100.0 * ___TEMP___INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN);
////// pitchBendTimes.Add(___TEMP___LONG_START_ABSOLUTE_TIME_FOR_CURRENT_NOTE + relativeTime);
//////}
// Send pitch bend messages
int intbendcounts =
___temp_note_objectfor_prelisten
.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.Count;
double[] ___tempdurationsarray
=
// ___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
// ___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.ToArray<double>();
int[] ___temp_pitchbendsdataarray
=
___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
.ToArray<int>();
Console.WriteLine("___temp_pitchbendsdataarray Length = " + ___temp_pitchbendsdataarray.Length);
for(int trys=0; trys < ___temp_pitchbendsdataarray.Length;trys++)
{
Console.WriteLine("trys = " + trys + " " + ___tempdurationsarray [trys] + " " + ___temp_pitchbendsdataarray[trys]);
}//for(int trys=0; trys < ___temp_pitchbendsdataarray.Length;trys++)
////////////////////////////////////////////////////////////////////////////////
for (int i = 0; i < intbendcounts; i++)
// for (int i = 1; i < intbendcounts; i++)
{
int ___temp_current_pitchbends_data = 8192;
___temp_current_pitchbends_data
=
___temp_pitchbendsdataarray[i];
//it disturbs times calcs and plays too long Console.WriteLine("ptchbends i = " + i + "___tempdurationsarray[i] = " + ___tempdurationsarray[i] + " ___temp_current_pitchbends_data = " + ___temp_current_pitchbends_data);
//tried to write this in the MidiMessageConstructions
//tried to write this in the MidiMessageConstructions
//tried to write this in the MidiMessageConstructions
//////// public static MidiMessage SendPitchBend___SAAN_DEFINED(MidiOut midiOut, int channel, int pitchBendValue)
//////public static MidiMessage SendPitchBend___SAAN_DEFINED(int channel, int pitchBendValue)
//////{
////// // Ensure pitchBendValue is within the valid range
////// pitchBendValue = Math.Max(0, Math.Min(16383, pitchBendValue));
////// // Calculate the two data bytes
////// int lsb = pitchBendValue & 0x7F; // Least significant 7 bits
////// int msb = (pitchBendValue >> 7) & 0x7F; // Most significant 7 bits
////// // Construct the pitch bend message
////// int statusByte = 0xE0 | (channel & 0x0F); // 0xE0 is the status byte for pitch bend
////// int pitchBendMessage = statusByte | (lsb << 8) | (msb << 16);
////// // Send the pitch bend message
////// // midiOut.Send(pitchBendMessage);
////// return new MidiMessage(pitchBendMessage);
//////}// public static MidiMessage SendPitchBend___SAAN_DEFINED( int channel, int pitchBendValue)
////// // var pitchBendMessage = SAANAUDS.Midi.MidiMessage.PitchBend(___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN, pitchBendValues[i]);
////// SendPitchBend___DEFINED_IN_THIS_FORMS
////// (
////// SAANS_TEMP_SAANAUDS_Midi_MidiOut
////// ,
////// ___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
////// ,
////// ___temp_current_pitchbends_data
////// ); // Send a pitch bend message with no pitch bend on channel 0
//////// SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send(pitchBendMessage.RawData);
// await Task.Delay((int)(pitchBendDurations[i] / 100.0 * ___TEMP___INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN));
try
{
//////SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send
//////(
//////SAANAUDS.Midi.MidiMessage
////// .SendPitchBend___SAAN_DEFINED
////// (
////// ___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
////// ,
////// ___temp_current_pitchbends_data
////// ).RawData
////// );
/////////////////////////// yessssssssssssssss it works in the pre listens also
///////// </summary>
///////// <param name="patch to pitch wheel saan tries">The pitch wheels number</param>
///////// <param name="channel">The MIDI channel number (1-16)</param>
///////// <returns>A new MidiMessageObject</returns>
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS //////public static MidiMessage ChangePitchWheelSAANTriesCopyingPatchChangeStyles___FOR_PRELISTENS_SEPERATE_DELAYS(int pitchwheelsvalues, int channel)
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS //////{
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS ////// int pitchBendValue = Math.Max(0, Math.Min(16383, pitchwheelsvalues));
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS ////// // int pitchwheelvalsadjusted = pitchwheelsvalues;
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS ////// return new MidiMessage((int)MidiCommandCode.PitchWheelChange + channel - 1, pitchBendValue, 0);
//FOR REFERENCES AS SAAN ADDED THIS IN THE MIDIMESSAGECLASS //////}//public static MidiMessage ChangePitchWheelSAANTriesCopyingPatchChangeStyles___FOR_PRELISTENS_SEPERATE_DELAYS(int pitchwheelsvalues, int channel)
/////////////////////////////// yesssssssss the effect looks like working
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Send
(
SAANAUDS.Midi.MidiMessage
.ChangePitchWheelSAANTriesCopyingPatchChangeStyles___FOR_PRELISTENS_SEPERATE_DELAYS
(
___temp_current_pitchbends_data
,
___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
).RawData
);
//RawData
int delayint = 0;
delayint=(int)(___tempdurationsarray[i]);// (int)(___tempdurationsarray[i] - ___tempdurationsarray[i-1] );
if(i>1)
{
//testing ok while rendering
delayint = (int)(___tempdurationsarray[i] - ___tempdurationsarray[i-1]);
}//if(i>1)
//int delayint = (int)(___tempdurationsarray[i] - ___tempdurationsarray[i-1] );
delayint = Math.Max(3, delayint);
// await Task.Delay((int)___tempdurationsarray[i]);
await Task.Delay((int)(delayint));
}
catch (Exception ___excp_to_awaits)
{
Console.WriteLine("___excp_to_awaits = " + ___excp_to_awaits.Message + " " + ___excp_to_awaits.StackTrace.ToString());
}//catch(Exception ___excp_to_awaits)
}//for (int i = 0; i < intbendcounts; i++)
//////// Wait for the duration of the note
//////await Task.Delay((int)___TEMP___INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN);
//////// Wait for the duration of the note
//////await Task.Delay
////// (
////// (int)
////// ___TEMP___INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN
////// );
// Stop the current note
SAANS_TEMP_SAANAUDS_Midi_MidiOut
.Send
(
SAANAUDS.Midi.MidiMessage.StopNote
(
___TEMP___INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
,
___TEMP___INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN
,
___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN
)
.RawData);
}// if(___temp_note_objectfor_prelisten.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Count>2)
#endregion REGIONFORSPECIALPTCHBNDORNOTSPLITTINGFORPROPERPITCHBENDSDATATHERES
//////___TEMP___INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN = 0;//flushed first before populating from the objects data
//////___TEMP___INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN = 0;//flushed first before populating from the objects data
//////___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 0;//flushed first before populating from the objects data
//////___TEMP___INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = 0;//flushed first before populating from the objects data
//////___TEMP___INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN = 0;//flushed first before populating from the objects data
___string_to_check_data_grabbed += "\r\n ___TEMP___INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN = " + ___TEMP___INT_NOTE_PATCH_FROM_SELECTED_ROW_TO_PRELISTEN;
___string_to_check_data_grabbed += "\r\n ___TEMP___INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN = " + ___TEMP___INT_NOTE_VELOCITY_FROM_SELECTED_ROW_TO_PRELISTEN;
___string_to_check_data_grabbed += "\r\n ___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = " + ___TEMP___INT_NOTE_CHANNEL_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN;
___string_to_check_data_grabbed += "\r\n ___TEMP___INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN = " + ___TEMP___INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN;
___string_to_check_data_grabbed += "\r\n ___TEMP___INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN = " + ___TEMP___INT_NOTE_DURATION_FROM_SELECTED_ROW_TO_PRELISTEN;
////////////////////////////////////////////////////////////////////////
//after playing the note the object of the note is cleaned to null///////
////////////////////////////////////////////////////////////////////////
___temp_note_objectfor_prelisten = null;
//////////////////////////// YESSSSSSSSSSSSSSSSSSSSSS WORKING /////////////
}
catch (Exception excptoPlayNote)
{
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
MessageBox.Show("excptoPlayNote = " + excptoPlayNote.Message + " " + excptoPlayNote.StackTrace.ToString() + " Note Index = " + INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN);
}//if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
Console.WriteLine("excptoPlayNote = " + excptoPlayNote.Message + " " + excptoPlayNote.StackTrace.ToString() + " Note Index = " + INT_NOTE_NUMBER_FROM_SELECTED_ROW_TO_PRELISTEN);
// return;
return;
}//catch (Exception excptoPlayNote)
THE_MIDIOUTSVOLUMESFOUND = SAANS_TEMP_SAANAUDS_Midi_MidiOut.Volume.ToString();
___string_to_check_data_grabbed += "\r\nTHE_MIDIOUTSVOLUMESFOUND = " + THE_MIDIOUTSVOLUMESFOUND;
// Clean up resources
SAANS_TEMP_SAANAUDS_Midi_MidiOut.Dispose();
}//end of else of if(SAANS_TEMP_SAANAUDS_Midi_MidiOut!=null)
}// if (selected_row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value != null)
else
{
//start of else of if (selected_row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value != null)
selected_row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value = "8192,16368";
}//end of else of if (selected_row.Cells["Column_WITHIN_NOTES_PITCH_BENDS_VALUES"].Value != null)
}//if (selected_row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value != null)
else
{
selected_row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value = "0,100";
}//end of else of //if (selected_row.Cells["ColumnINTERMEDIATE_PITCHBEND_DURATION_SLABS_PERCENTAGES_WITHIN_CURRENT_NOTES"].Value != null)
}//if (selected_row.Cells["Column_CURRENT_NOTES_PATCH"].Value != null)
}//if (selected_row.Cells["Column_NOTES_VELOCITY"].Value != null)
}//if (selected_row.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null)
}//if (selected_row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length >0)
}//if(selected_row.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
}//if(selected_row!=null)
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
System.Windows.Forms.MessageBox.Show("___string_to_check_data_grabbed = " + ___string_to_check_data_grabbed);
}//if(this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper()=="CHECKED")
}//if (e.RowIndex >= 0)
}//if(this.checkBox___DO_YOU_NEED_ON_CLICK_PRELISTEN.CheckState.ToString().ToUpper()=="CHECKED")
}
catch (Exception ___excptoplaytheselectedrows)
{
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
System.Windows.Forms.MessageBox.Show("___excptoplaytheselectedrows = " + ___excptoplaytheselectedrows.Message + " " + ___excptoplaytheselectedrows.StackTrace.ToString());
}//if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
Console.WriteLine("___excptoplaytheselectedrows = " + ___excptoplaytheselectedrows.Message + " " + ___excptoplaytheselectedrows.StackTrace.ToString());
}//catch(Exception ___excptoplaytheselectedrows)
}//private void dataGridView___COMPOSER_CellClick(object sender, DataGridViewCellEventArgs e)
private void checkBox___DO_YOU_NEED_ON_CLICK_PRELISTEN_CheckedChanged(object sender, EventArgs e)
{
System.Windows.Forms.MessageBox.Show("checkBox___DO_YOU_NEED_ON_CLICK_PRELISTEN = " + this.checkBox___DO_YOU_NEED_ON_CLICK_PRELISTEN.CheckState.ToString());
}//private void checkBox___DO_YOU_NEED_ON_CLICK_PRELISTEN_CheckedChanged(object sender, EventArgs e)
// Function to map ASCII text to Bengali Unicode
private string ConvertAsciiToBengali(string asciDETA7)
{
// Define the reverse vowel and consonant mappings
List<Tuple<string, string>> vowelMapReverse = new List<Tuple<string, string>>()
{
new Tuple<string, string>("+","্+"),
new Tuple<string, string>("khi","খি"),
new Tuple<string, string>("khe","খে"),
new Tuple<string, string>("khoi","খৈ"),
new Tuple<string, string>("kha","খা"),
new Tuple<string, string>("khee","খী"),
new Tuple<string, string>("khu","খু"),
new Tuple<string, string>("khoo","খূ"),
new Tuple<string, string>("kho","খো"),
new Tuple<string, string>("khRi","খৃ"),
new Tuple<string, string>("khRRi","খৄ"),
new Tuple<string, string>("khou","খৌ"),
new Tuple<string, string>("ki","কি"),
new Tuple<string, string>("ke","কে"),
new Tuple<string, string>("koi","কৈ"),
new Tuple<string, string>("ka","কা"),
new Tuple<string, string>("kee","কী"),
new Tuple<string, string>("ku","কু"),
new Tuple<string, string>("koo","কূ"),
new Tuple<string, string>("kRi","কৃ"),
new Tuple<string, string>("kRRi","কৄ"),
new Tuple<string, string>("kou","কৌ"),
new Tuple<string, string>("ko","কো"),
new Tuple<string, string>("ghi","ঘি"),
new Tuple<string, string>("ghe","ঘে"),
new Tuple<string, string>("ghoi","ঘৈ"),
new Tuple<string, string>("gha","ঘা"),
new Tuple<string, string>("ghee","ঘী"),
new Tuple<string, string>("ghu","ঘু"),
new Tuple<string, string>("ghoo","ঘূ"),
new Tuple<string, string>("ghRRi","ঘৄ"),
new Tuple<string, string>("ghRi","ঘৃ"),
new Tuple<string, string>("ghou","ঘৌ"),
new Tuple<string, string>("gho","ঘো"),
new Tuple<string, string>("gi","গি"),
new Tuple<string, string>("gee","গী"),
new Tuple<string, string>("ge","গে"),
new Tuple<string, string>("goi","গৈ"),
new Tuple<string, string>("ga","গা"),
new Tuple<string, string>("gu","গু"),
new Tuple<string, string>("goo","গূ"),
new Tuple<string, string>("gRi","গৃ"),
new Tuple<string, string>("gRRi","গৄ"),
new Tuple<string, string>("go","গো"),
new Tuple<string, string>("gou","গৌ"),
new Tuple<string, string>("ngi","ঙি"),
new Tuple<string, string>("nge","ঙে"),
new Tuple<string, string>("ngoi","ঙৈ"),
new Tuple<string, string>("nga","ঙা"),
new Tuple<string, string>("ngee","ঙী"),
new Tuple<string, string>("ngu","ঙু"),
new Tuple<string, string>("ngoo","ঙূ"),
new Tuple<string, string>("ngRi","ঙৃ"),
new Tuple<string, string>("ngRRi","ঙৄ"),
new Tuple<string, string>("ngou","ঙৌ"),
new Tuple<string, string>("ngo","ঙো"),
new Tuple<string, string>("cHHi","ছি"),
new Tuple<string, string>("cHHee","ছী"),
new Tuple<string, string>("cHHe","ছে"),
new Tuple<string, string>("cHHoi","ছৈ"),
new Tuple<string, string>("cHHa","ছা"),
new Tuple<string, string>("cHHu","ছু"),
new Tuple<string, string>("cHHoo","ছূ"),
new Tuple<string, string>("cHHRi","ছৃ"),
new Tuple<string, string>("cHHRRi","ছৄ"),
new Tuple<string, string>("cHHou","ছৌ"),
new Tuple<string, string>("cHHo","ছো"),
new Tuple<string, string>("chi","চি"),
new Tuple<string, string>("che","চে"),
new Tuple<string, string>("choi","চৈ"),
new Tuple<string, string>("cha","চা"),
new Tuple<string, string>("chee","চী"),
new Tuple<string, string>("chu","চু"),
new Tuple<string, string>("choo","চূ"),
new Tuple<string, string>("chRi","চৃ"),
new Tuple<string, string>("chRRi","চৄ"),
new Tuple<string, string>("cho","চো"),
new Tuple<string, string>("chou","চৌ"),
new Tuple<string, string>("JHi","ঝি"),
new Tuple<string, string>("JHe","ঝে"),
new Tuple<string, string>("JHoi","ঝৈ"),
new Tuple<string, string>("JHa","ঝা"),
new Tuple<string, string>("JHEE","ঝী"),
new Tuple<string, string>("JHu","ঝু"),
new Tuple<string, string>("JHOO","ঝূ"),
new Tuple<string, string>("JHRi","ঝৃ"),
new Tuple<string, string>("JHRRI","ঝৄ"),
new Tuple<string, string>("JHou","ঝৌ"),
new Tuple<string, string>("JHo","ঝো"),
new Tuple<string, string>("ji","জি"),
new Tuple<string, string>("je","জে"),
new Tuple<string, string>("joi","জৈ"),
new Tuple<string, string>("ja","জা"),
new Tuple<string, string>("jee","জী"),
new Tuple<string, string>("ju","জু"),
new Tuple<string, string>("joo","জূ"),
new Tuple<string, string>("jRi","জৃ"),
new Tuple<string, string>("jRRi","জৄ"),
new Tuple<string, string>("jou","জৌ"),
new Tuple<string, string>("jo","জো"),
new Tuple<string, string>("NGi","ঞি"),
new Tuple<string, string>("NGEE","ঞী"),
new Tuple<string, string>("NGE","ঞে"),
new Tuple<string, string>("NGOI","ঞৈ"),
new Tuple<string, string>("NGA","ঞা"),
new Tuple<string, string>("NGu","ঞু"),
new Tuple<string, string>("NGOO","ঞূ"),
new Tuple<string, string>("NGRi","ঞৃ"),
new Tuple<string, string>("NGRREE","ঞৄ"),
new Tuple<string, string>("NGO","ঞো"),
new Tuple<string, string>("NGOU","ঞৌ"),
new Tuple<string, string>("TTHi","ঠি"),
new Tuple<string, string>("TTHe","ঠে"),
new Tuple<string, string>("TTHoi","ঠৈ"),
new Tuple<string, string>("TTHA","ঠা"),
new Tuple<string, string>("TTHEE","ঠী"),
new Tuple<string, string>("TTHu","ঠু"),
new Tuple<string, string>("TTHOO","ঠূ"),
new Tuple<string, string>("TTHRi","ঠৃ"),
new Tuple<string, string>("TTHRRi","ঠৄ"),
new Tuple<string, string>("TTHou","ঠৌ"),
new Tuple<string, string>("TTHo","ঠো"),
new Tuple<string, string>("TTi","টি"),
new Tuple<string, string>("TTee","টী"),
new Tuple<string, string>("TTe","টে"),
new Tuple<string, string>("TToi","টৈ"),
new Tuple<string, string>("TTa","টা"),
new Tuple<string, string>("TTu","টু"),
new Tuple<string, string>("TToo","টূ"),
new Tuple<string, string>("TTRi","টৃ"),
new Tuple<string, string>("TTRRi","টৄ"),
new Tuple<string, string>("TTou","টৌ"),
new Tuple<string, string>("TTo","টো"),
new Tuple<string, string>("DDi","ডি"),
new Tuple<string, string>("DDe","ডে"),
new Tuple<string, string>("DDoi","ডৈ"),
new Tuple<string, string>("DDa","ডা"),
new Tuple<string, string>("DDEE","ডী"),
new Tuple<string, string>("DDu","ডু"),
new Tuple<string, string>("DDoo","ডূ"),
new Tuple<string, string>("DDRi","ডৃ"),
new Tuple<string, string>("DDRee","ডৄ"),
new Tuple<string, string>("DDou","ডৌ"),
new Tuple<string, string>("DDo","ডো"),
new Tuple<string, string>("DDHHi","ঢি"),
new Tuple<string, string>("DDHHe","ঢে"),
new Tuple<string, string>("DDHHoi","ঢৈ"),
new Tuple<string, string>("DDHHa","ঢা"),
new Tuple<string, string>("DDHHee","ঢী"),
new Tuple<string, string>("DDHHu","ঢু"),
new Tuple<string, string>("DDHHoo","ঢূ"),
new Tuple<string, string>("DDHHRi","ঢৃ"),
new Tuple<string, string>("DDHHRRi","ঢৄ"),
new Tuple<string, string>("DDHHo","ঢো"),
new Tuple<string, string>("DDHHou","ঢৌ"),
new Tuple<string, string>("NNi","ণি"),
new Tuple<string, string>("NNe","ণে"),
new Tuple<string, string>("NNoi","ণৈ"),
new Tuple<string, string>("NNa","ণা"),
new Tuple<string, string>("NNee","ণী"),
new Tuple<string, string>("NNu","ণু"),
new Tuple<string, string>("NNOO","ণূ"),
new Tuple<string, string>("NNRi","ণৃ"),
new Tuple<string, string>("NNRRi","ণৄ"),
new Tuple<string, string>("NNo","ণো"),
new Tuple<string, string>("NNou","ণৌ"),
new Tuple<string, string>("THHi","থি"),
new Tuple<string, string>("THHee","থী"),
new Tuple<string, string>("THHe","থে"),
new Tuple<string, string>("THHoi","থৈ"),
new Tuple<string, string>("THHa","থা"),
new Tuple<string, string>("THu","থু"),
new Tuple<string, string>("THoo","থূ"),
new Tuple<string, string>("THRi","থৃ"),
new Tuple<string, string>("THRRi","থৄ"),
new Tuple<string, string>("THou","থৌ"),
new Tuple<string, string>("THo","থো"),
new Tuple<string, string>("ti","তি"),
new Tuple<string, string>("te","তে"),
new Tuple<string, string>("toi","তৈ"),
new Tuple<string, string>("ta","তা"),
new Tuple<string, string>("tee","তী"),
new Tuple<string, string>("tu","তু"),
new Tuple<string, string>("too","তূ"),
new Tuple<string, string>("tRi","তৃ"),
new Tuple<string, string>("tRRi","তৄ"),
new Tuple<string, string>("tou","তৌ"),
new Tuple<string, string>("to","তো"),
new Tuple<string, string>("DHHi","ধি"),
new Tuple<string, string>("DHHee","ধী"),
new Tuple<string, string>("DHHe","ধে"),
new Tuple<string, string>("DHHoi","ধৈ"),
new Tuple<string, string>("DHHa","ধা"),
new Tuple<string, string>("DHHu","ধু"),
new Tuple<string, string>("DHHoo","ধূ"),
new Tuple<string, string>("DHHRi","ধৃ"),
new Tuple<string, string>("DHHRRi","ধৄ"),
new Tuple<string, string>("DHHou","ধৌ"),
new Tuple<string, string>("DHHo","ধো"),
new Tuple<string, string>("di","দি"),
new Tuple<string, string>("dee","দী"),
new Tuple<string, string>("de","দে"),
new Tuple<string, string>("doi","দৈ"),
new Tuple<string, string>("da","দা"),
new Tuple<string, string>("du","দু"),
new Tuple<string, string>("doo","দূ"),
new Tuple<string, string>("dRi","দৃ"),
new Tuple<string, string>("dRRi","দৄ"),
new Tuple<string, string>("dou","দৌ"),
new Tuple<string, string>("do","দো"),
new Tuple<string, string>("pi","পি"),
new Tuple<string, string>("pe","পে"),
new Tuple<string, string>("poi","পৈ"),
new Tuple<string, string>("pa","পা"),
new Tuple<string, string>("pee","পী"),
new Tuple<string, string>("pu","পু"),
new Tuple<string, string>("poo","পূ"),
new Tuple<string, string>("pRi","পৃ"),
new Tuple<string, string>("pRRi","পৄ"),
new Tuple<string, string>("pou","পৌ"),
new Tuple<string, string>("po","পো"),
new Tuple<string, string>("Fi","ফি"),
new Tuple<string, string>("Fe","ফে"),
new Tuple<string, string>("Foi","ফৈ"),
new Tuple<string, string>("Fa","ফা"),
new Tuple<string, string>("Fee","ফী"),
new Tuple<string, string>("Fu","ফু"),
new Tuple<string, string>("Foo","ফূ"),
new Tuple<string, string>("FRi","ফৃ"),
new Tuple<string, string>("FRRi","ফৄ"),
new Tuple<string, string>("Fou","ফৌ"),
new Tuple<string, string>("Fo","ফো"),
new Tuple<string, string>("bi","বি"),
new Tuple<string, string>("be","বে"),
new Tuple<string, string>("boi","বৈ"),
new Tuple<string, string>("ba","বা"),
new Tuple<string, string>("bee","বী"),
new Tuple<string, string>("bu","বু"),
new Tuple<string, string>("boo","বূ"),
new Tuple<string, string>("bRi","বৃ"),
new Tuple<string, string>("bRRi","বৄ"),
new Tuple<string, string>("bo","বো"),
new Tuple<string, string>("bou","বৌ"),
new Tuple<string, string>("vi","ভি"),
new Tuple<string, string>("ve","ভে"),
new Tuple<string, string>("voi","ভৈ"),
new Tuple<string, string>("va","ভা"),
new Tuple<string, string>("vee","ভী"),
new Tuple<string, string>("vu","ভু"),
new Tuple<string, string>("voo","ভূ"),
new Tuple<string, string>("vRi","ভৃ"),
new Tuple<string, string>("vRRi","ভৄ"),
new Tuple<string, string>("vo","ভো"),
new Tuple<string, string>("vou","ভৌ"),
new Tuple<string, string>("mi","মি"),
new Tuple<string, string>("me","মে"),
new Tuple<string, string>("ma","মা"),
new Tuple<string, string>("mee","মী"),
new Tuple<string, string>("mu","মু"),
new Tuple<string, string>("moo","মূ"),
new Tuple<string, string>("mRi","মৃ"),
new Tuple<string, string>("mRRi","মৄ"),
new Tuple<string, string>("moi","মৈ"),
new Tuple<string, string>("mou","মৌ"),
new Tuple<string, string>("mo","মো"),
new Tuple<string, string>("ZYJi","যি"),
new Tuple<string, string>("ZYJe","যে"),
new Tuple<string, string>("ZYJoi","যৈ"),
new Tuple<string, string>("ZYJa","যা"),
new Tuple<string, string>("ZYJee","যী"),
new Tuple<string, string>("ZYJu","যু"),
new Tuple<string, string>("ZYJoo","যূ"),
new Tuple<string, string>("ZYJRi","যৃ"),
new Tuple<string, string>("ZYJRRi","যৄ"),
new Tuple<string, string>("ZYJo","যো"),
new Tuple<string, string>("ZYJou","যৌ"),
new Tuple<string, string>("ri","রি"),
new Tuple<string, string>("ree","রী"),
new Tuple<string, string>("re","রে"),
new Tuple<string, string>("roi","রৈ"),
new Tuple<string, string>("ra","রা"),
new Tuple<string, string>("ru","রু"),
new Tuple<string, string>("roo","রূ"),
new Tuple<string, string>("rRi","রৃ"),
new Tuple<string, string>("rRRi","রৄ"),
new Tuple<string, string>("rou","রৌ"),
new Tuple<string, string>("ro","রো"),
new Tuple<string, string>("li","লি"),
new Tuple<string, string>("lee","লী"),
new Tuple<string, string>("le","লে"),
new Tuple<string, string>("loi","লৈ"),
new Tuple<string, string>("la","লা"),
new Tuple<string, string>("lu","লু"),
new Tuple<string, string>("loo","লূ"),
new Tuple<string, string>("lRi","লৃ"),
new Tuple<string, string>("lRRi","লৄ"),
new Tuple<string, string>("lou","লৌ"),
new Tuple<string, string>("lo","লো"),
new Tuple<string, string>("SHHi","ষি"),
new Tuple<string, string>("SHHe","ষে"),
new Tuple<string, string>("SHHee","ষী"),
new Tuple<string, string>("SHHoi","ষৈ"),
new Tuple<string, string>("SHHa","ষা"),
new Tuple<string, string>("SHHu","ষু"),
new Tuple<string, string>("SHHoo","ষূ"),
new Tuple<string, string>("SHHRi","ষৃ"),
new Tuple<string, string>("SHHRRi","ষৄ"),
new Tuple<string, string>("SHHou","ষৌ"),
new Tuple<string, string>("SHHo","ষো"),
new Tuple<string, string>("SHi","শি"),
new Tuple<string, string>("SHee","শী"),
new Tuple<string, string>("SHe","শে"),
new Tuple<string, string>("SHoi","শৈ"),
new Tuple<string, string>("SHa","শা"),
new Tuple<string, string>("SHo","শু"),
new Tuple<string, string>("SHoo","শূ"),
new Tuple<string, string>("SHRi","শৃ"),
new Tuple<string, string>("SHRRi","শৄ"),
new Tuple<string, string>("SHou","শৌ"),
new Tuple<string, string>("SHo","শো"),
new Tuple<string, string>("si","সি"),
new Tuple<string, string>("see","সী"),
new Tuple<string, string>("se","সে"),
new Tuple<string, string>("soi","সৈ"),
new Tuple<string, string>("sa","সা"),
new Tuple<string, string>("su","সু"),
new Tuple<string, string>("soo","সূ"),
new Tuple<string, string>("sRi","সৃ"),
new Tuple<string, string>("sRRi","সৄ"),
new Tuple<string, string>("sou","সৌ"),
new Tuple<string, string>("so","সো"),
new Tuple<string, string>("hi","হি"),
new Tuple<string, string>("hee","হী"),
new Tuple<string, string>("he","হে"),
new Tuple<string, string>("hoi","হৈ"),
new Tuple<string, string>("ha","হা"),
new Tuple<string, string>("hu","হু"),
new Tuple<string, string>("hoo","হূ"),
new Tuple<string, string>("hRi","হৃ"),
new Tuple<string, string>("hRRi","হৄ"),
new Tuple<string, string>("hou","হৌ"),
new Tuple<string, string>("ho","হো"),
new Tuple<string, string>("ni","নি"),
new Tuple<string, string>("ne","নে"),
new Tuple<string, string>("noi","নৈ"),
new Tuple<string, string>("na","না"),
new Tuple<string, string>("nee","নী"),
new Tuple<string, string>("nu","নু"),
new Tuple<string, string>("noo","নূ"),
new Tuple<string, string>("nRRi","নৃ"),
new Tuple<string, string>("nRRi","নৄ"),
new Tuple<string, string>("no","নো"),
new Tuple<string, string>("nou","নৌ"),
new Tuple<string, string>("JHA","ঝ"),
new Tuple<string, string>("NGA","ঞ"),
new Tuple<string, string>("TTHA","ঠ"),
new Tuple<string, string>("DDHHA","ঢ"),
new Tuple<string, string>("DHHA","ধ"),
new Tuple<string, string>("DDA","ড"),
new Tuple<string, string>("ZYJA","য"),
new Tuple<string, string>("SHHA","ষ"),
new Tuple<string, string>("SHA","শ"),
new Tuple<string, string>("ha","হ"),
new Tuple<string, string>("sa","স"),
new Tuple<string, string>("ma","ম"),
new Tuple<string, string>("va","ভ"),
new Tuple<string, string>("ba","ব"),
new Tuple<string, string>("fa","ফ"),
new Tuple<string, string>("pa","প"),
new Tuple<string, string>("NNa","ণ"),
new Tuple<string, string>("la","ল"),
new Tuple<string, string>("ra","র"),
new Tuple<string, string>("na","ন"),
new Tuple<string, string>("da","দ"),
new Tuple<string, string>("THHa","থ"),
new Tuple<string, string>("ngo","ঙ"),
new Tuple<string, string>("TTa","ট"),
new Tuple<string, string>("ta","ত"),
new Tuple<string, string>("ja","জ"),
new Tuple<string, string>("cHHa","ছ"),
new Tuple<string, string>("cha","চ"),
new Tuple<string, string>("gha","ঘ"),
new Tuple<string, string>("ga","গ"),
new Tuple<string, string>("kha","খ"),
new Tuple<string, string>("ka","ক"),
new Tuple<string, string>("Ao","অ"),
new Tuple<string, string>("AA","আ"),
new Tuple<string, string>("I","ই"),
new Tuple<string, string>("III","ঈ"),
new Tuple<string, string>("U","উ"),
new Tuple<string, string>("OOO","ঊ"),
new Tuple<string, string>("RRi","ঋ"),
new Tuple<string, string>("EY","এ"),
new Tuple<string, string>("OEE","ঐ"),
new Tuple<string, string>("O","ও"),
new Tuple<string, string>("Ang","অং"),
new Tuple<string, string>("Rri","ঋ"),
new Tuple<string, string>("ei","এই"),
new Tuple<string, string>("YA","য়"),
new Tuple<string, string>("h","ঃ"),
new Tuple<string, string>("a","া"),
new Tuple<string, string>("i","ি"),
new Tuple<string, string>("ii","ী"),
new Tuple<string, string>("u","ু"),
new Tuple<string, string>("uu","ূ"),
new Tuple<string, string>("ri","ৃ"),
new Tuple<string, string>("e","ে"),
new Tuple<string, string>("oi","ৈ"),
new Tuple<string, string>("n", "ঁ"), new Tuple<string, string>("h", "ঃ"),
new Tuple<string, string>("a", "া"), new Tuple<string, string>("i", "ি"),
new Tuple<string, string>("ii", "ী"), new Tuple<string, string>("u", "ু"),
new Tuple<string, string>("uu", "ূ"), new Tuple<string, string>("ri", "ৃ"),
new Tuple<string, string>("e", "ে"), new Tuple<string, string>("oi", "ৈ"),
new Tuple<string, string>("o", "ো"), new Tuple<string, string>("ou", "ৌ"),
new Tuple<string, string>("ya", "য়") // Bengali 'ya'
};
List<Tuple<string, string>> consonantMapReverse = new List<Tuple<string, string>>()
{
new Tuple<string, string>("+","্+"),
new Tuple<string, string>("khi","খি"),
new Tuple<string, string>("khe","খে"),
new Tuple<string, string>("khoi","খৈ"),
new Tuple<string, string>("kha","খা"),
new Tuple<string, string>("khee","খী"),
new Tuple<string, string>("khu","খু"),
new Tuple<string, string>("khoo","খূ"),
new Tuple<string, string>("kho","খো"),
new Tuple<string, string>("khRi","খৃ"),
new Tuple<string, string>("khRRi","খৄ"),
new Tuple<string, string>("khou","খৌ"),
new Tuple<string, string>("ki","কি"),
new Tuple<string, string>("ke","কে"),
new Tuple<string, string>("koi","কৈ"),
new Tuple<string, string>("ka","কা"),
new Tuple<string, string>("kee","কী"),
new Tuple<string, string>("ku","কু"),
new Tuple<string, string>("koo","কূ"),
new Tuple<string, string>("kRi","কৃ"),
new Tuple<string, string>("kRRi","কৄ"),
new Tuple<string, string>("kou","কৌ"),
new Tuple<string, string>("ko","কো"),
new Tuple<string, string>("ghi","ঘি"),
new Tuple<string, string>("ghe","ঘে"),
new Tuple<string, string>("ghoi","ঘৈ"),
new Tuple<string, string>("gha","ঘা"),
new Tuple<string, string>("ghee","ঘী"),
new Tuple<string, string>("ghu","ঘু"),
new Tuple<string, string>("ghoo","ঘূ"),
new Tuple<string, string>("ghRRi","ঘৄ"),
new Tuple<string, string>("ghRi","ঘৃ"),
new Tuple<string, string>("ghou","ঘৌ"),
new Tuple<string, string>("gho","ঘো"),
new Tuple<string, string>("gi","গি"),
new Tuple<string, string>("gee","গী"),
new Tuple<string, string>("ge","গে"),
new Tuple<string, string>("goi","গৈ"),
new Tuple<string, string>("ga","গা"),
new Tuple<string, string>("gu","গু"),
new Tuple<string, string>("goo","গূ"),
new Tuple<string, string>("gRi","গৃ"),
new Tuple<string, string>("gRRi","গৄ"),
new Tuple<string, string>("go","গো"),
new Tuple<string, string>("gou","গৌ"),
new Tuple<string, string>("ngi","ঙি"),
new Tuple<string, string>("nge","ঙে"),
new Tuple<string, string>("ngoi","ঙৈ"),
new Tuple<string, string>("nga","ঙা"),
new Tuple<string, string>("ngee","ঙী"),
new Tuple<string, string>("ngu","ঙু"),
new Tuple<string, string>("ngoo","ঙূ"),
new Tuple<string, string>("ngRi","ঙৃ"),
new Tuple<string, string>("ngRRi","ঙৄ"),
new Tuple<string, string>("ngou","ঙৌ"),
new Tuple<string, string>("ngo","ঙো"),
new Tuple<string, string>("cHHi","ছি"),
new Tuple<string, string>("cHHee","ছী"),
new Tuple<string, string>("cHHe","ছে"),
new Tuple<string, string>("cHHoi","ছৈ"),
new Tuple<string, string>("cHHa","ছা"),
new Tuple<string, string>("cHHu","ছু"),
new Tuple<string, string>("cHHoo","ছূ"),
new Tuple<string, string>("cHHRi","ছৃ"),
new Tuple<string, string>("cHHRRi","ছৄ"),
new Tuple<string, string>("cHHou","ছৌ"),
new Tuple<string, string>("cHHo","ছো"),
new Tuple<string, string>("chi","চি"),
new Tuple<string, string>("che","চে"),
new Tuple<string, string>("choi","চৈ"),
new Tuple<string, string>("cha","চা"),
new Tuple<string, string>("chee","চী"),
new Tuple<string, string>("chu","চু"),
new Tuple<string, string>("choo","চূ"),
new Tuple<string, string>("chRi","চৃ"),
new Tuple<string, string>("chRRi","চৄ"),
new Tuple<string, string>("cho","চো"),
new Tuple<string, string>("chou","চৌ"),
new Tuple<string, string>("JHi","ঝি"),
new Tuple<string, string>("JHe","ঝে"),
new Tuple<string, string>("JHoi","ঝৈ"),
new Tuple<string, string>("JHa","ঝা"),
new Tuple<string, string>("JHEE","ঝী"),
new Tuple<string, string>("JHu","ঝু"),
new Tuple<string, string>("JHOO","ঝূ"),
new Tuple<string, string>("JHRi","ঝৃ"),
new Tuple<string, string>("JHRRI","ঝৄ"),
new Tuple<string, string>("JHou","ঝৌ"),
new Tuple<string, string>("JHo","ঝো"),
new Tuple<string, string>("ji","জি"),
new Tuple<string, string>("je","জে"),
new Tuple<string, string>("joi","জৈ"),
new Tuple<string, string>("ja","জা"),
new Tuple<string, string>("jee","জী"),
new Tuple<string, string>("ju","জু"),
new Tuple<string, string>("joo","জূ"),
new Tuple<string, string>("jRi","জৃ"),
new Tuple<string, string>("jRRi","জৄ"),
new Tuple<string, string>("jou","জৌ"),
new Tuple<string, string>("jo","জো"),
new Tuple<string, string>("NGi","ঞি"),
new Tuple<string, string>("NGEE","ঞী"),
new Tuple<string, string>("NGE","ঞে"),
new Tuple<string, string>("NGOI","ঞৈ"),
new Tuple<string, string>("NGA","ঞা"),
new Tuple<string, string>("NGu","ঞু"),
new Tuple<string, string>("NGOO","ঞূ"),
new Tuple<string, string>("NGRi","ঞৃ"),
new Tuple<string, string>("NGRREE","ঞৄ"),
new Tuple<string, string>("NGO","ঞো"),
new Tuple<string, string>("NGOU","ঞৌ"),
new Tuple<string, string>("TTHi","ঠি"),
new Tuple<string, string>("TTHe","ঠে"),
new Tuple<string, string>("TTHoi","ঠৈ"),
new Tuple<string, string>("TTHA","ঠা"),
new Tuple<string, string>("TTHEE","ঠী"),
new Tuple<string, string>("TTHu","ঠু"),
new Tuple<string, string>("TTHOO","ঠূ"),
new Tuple<string, string>("TTHRi","ঠৃ"),
new Tuple<string, string>("TTHRRi","ঠৄ"),
new Tuple<string, string>("TTHou","ঠৌ"),
new Tuple<string, string>("TTHo","ঠো"),
new Tuple<string, string>("TTi","টি"),
new Tuple<string, string>("TTee","টী"),
new Tuple<string, string>("TTe","টে"),
new Tuple<string, string>("TToi","টৈ"),
new Tuple<string, string>("TTa","টা"),
new Tuple<string, string>("TTu","টু"),
new Tuple<string, string>("TToo","টূ"),
new Tuple<string, string>("TTRi","টৃ"),
new Tuple<string, string>("TTRRi","টৄ"),
new Tuple<string, string>("TTou","টৌ"),
new Tuple<string, string>("TTo","টো"),
new Tuple<string, string>("DDi","ডি"),
new Tuple<string, string>("DDe","ডে"),
new Tuple<string, string>("DDoi","ডৈ"),
new Tuple<string, string>("DDa","ডা"),
new Tuple<string, string>("DDEE","ডী"),
new Tuple<string, string>("DDu","ডু"),
new Tuple<string, string>("DDoo","ডূ"),
new Tuple<string, string>("DDRi","ডৃ"),
new Tuple<string, string>("DDRee","ডৄ"),
new Tuple<string, string>("DDou","ডৌ"),
new Tuple<string, string>("DDo","ডো"),
new Tuple<string, string>("DDHHi","ঢি"),
new Tuple<string, string>("DDHHe","ঢে"),
new Tuple<string, string>("DDHHoi","ঢৈ"),
new Tuple<string, string>("DDHHa","ঢা"),
new Tuple<string, string>("DDHHee","ঢী"),
new Tuple<string, string>("DDHHu","ঢু"),
new Tuple<string, string>("DDHHoo","ঢূ"),
new Tuple<string, string>("DDHHRi","ঢৃ"),
new Tuple<string, string>("DDHHRRi","ঢৄ"),
new Tuple<string, string>("DDHHo","ঢো"),
new Tuple<string, string>("DDHHou","ঢৌ"),
new Tuple<string, string>("NNi","ণি"),
new Tuple<string, string>("NNe","ণে"),
new Tuple<string, string>("NNoi","ণৈ"),
new Tuple<string, string>("NNa","ণা"),
new Tuple<string, string>("NNee","ণী"),
new Tuple<string, string>("NNu","ণু"),
new Tuple<string, string>("NNOO","ণূ"),
new Tuple<string, string>("NNRi","ণৃ"),
new Tuple<string, string>("NNRRi","ণৄ"),
new Tuple<string, string>("NNo","ণো"),
new Tuple<string, string>("NNou","ণৌ"),
new Tuple<string, string>("THHi","থি"),
new Tuple<string, string>("THHee","থী"),
new Tuple<string, string>("THHe","থে"),
new Tuple<string, string>("THHoi","থৈ"),
new Tuple<string, string>("THHa","থা"),
new Tuple<string, string>("THu","থু"),
new Tuple<string, string>("THoo","থূ"),
new Tuple<string, string>("THRi","থৃ"),
new Tuple<string, string>("THRRi","থৄ"),
new Tuple<string, string>("THou","থৌ"),
new Tuple<string, string>("THo","থো"),
new Tuple<string, string>("ti","তি"),
new Tuple<string, string>("te","তে"),
new Tuple<string, string>("toi","তৈ"),
new Tuple<string, string>("ta","তা"),
new Tuple<string, string>("tee","তী"),
new Tuple<string, string>("tu","তু"),
new Tuple<string, string>("too","তূ"),
new Tuple<string, string>("tRi","তৃ"),
new Tuple<string, string>("tRRi","তৄ"),
new Tuple<string, string>("tou","তৌ"),
new Tuple<string, string>("to","তো"),
new Tuple<string, string>("DHHi","ধি"),
new Tuple<string, string>("DHHee","ধী"),
new Tuple<string, string>("DHHe","ধে"),
new Tuple<string, string>("DHHoi","ধৈ"),
new Tuple<string, string>("DHHa","ধা"),
new Tuple<string, string>("DHHu","ধু"),
new Tuple<string, string>("DHHoo","ধূ"),
new Tuple<string, string>("DHHRi","ধৃ"),
new Tuple<string, string>("DHHRRi","ধৄ"),
new Tuple<string, string>("DHHou","ধৌ"),
new Tuple<string, string>("DHHo","ধো"),
new Tuple<string, string>("di","দি"),
new Tuple<string, string>("dee","দী"),
new Tuple<string, string>("de","দে"),
new Tuple<string, string>("doi","দৈ"),
new Tuple<string, string>("da","দা"),
new Tuple<string, string>("du","দু"),
new Tuple<string, string>("doo","দূ"),
new Tuple<string, string>("dRi","দৃ"),
new Tuple<string, string>("dRRi","দৄ"),
new Tuple<string, string>("dou","দৌ"),
new Tuple<string, string>("do","দো"),
new Tuple<string, string>("pi","পি"),
new Tuple<string, string>("pe","পে"),
new Tuple<string, string>("poi","পৈ"),
new Tuple<string, string>("pa","পা"),
new Tuple<string, string>("pee","পী"),
new Tuple<string, string>("pu","পু"),
new Tuple<string, string>("poo","পূ"),
new Tuple<string, string>("pRi","পৃ"),
new Tuple<string, string>("pRRi","পৄ"),
new Tuple<string, string>("pou","পৌ"),
new Tuple<string, string>("po","পো"),
new Tuple<string, string>("Fi","ফি"),
new Tuple<string, string>("Fe","ফে"),
new Tuple<string, string>("Foi","ফৈ"),
new Tuple<string, string>("Fa","ফা"),
new Tuple<string, string>("Fee","ফী"),
new Tuple<string, string>("Fu","ফু"),
new Tuple<string, string>("Foo","ফূ"),
new Tuple<string, string>("FRi","ফৃ"),
new Tuple<string, string>("FRRi","ফৄ"),
new Tuple<string, string>("Fou","ফৌ"),
new Tuple<string, string>("Fo","ফো"),
new Tuple<string, string>("bi","বি"),
new Tuple<string, string>("be","বে"),
new Tuple<string, string>("boi","বৈ"),
new Tuple<string, string>("ba","বা"),
new Tuple<string, string>("bee","বী"),
new Tuple<string, string>("bu","বু"),
new Tuple<string, string>("boo","বূ"),
new Tuple<string, string>("bRi","বৃ"),
new Tuple<string, string>("bRRi","বৄ"),
new Tuple<string, string>("bo","বো"),
new Tuple<string, string>("bou","বৌ"),
new Tuple<string, string>("vi","ভি"),
new Tuple<string, string>("ve","ভে"),
new Tuple<string, string>("voi","ভৈ"),
new Tuple<string, string>("va","ভা"),
new Tuple<string, string>("vee","ভী"),
new Tuple<string, string>("vu","ভু"),
new Tuple<string, string>("voo","ভূ"),
new Tuple<string, string>("vRi","ভৃ"),
new Tuple<string, string>("vRRi","ভৄ"),
new Tuple<string, string>("vo","ভো"),
new Tuple<string, string>("vou","ভৌ"),
new Tuple<string, string>("mi","মি"),
new Tuple<string, string>("me","মে"),
new Tuple<string, string>("ma","মা"),
new Tuple<string, string>("mee","মী"),
new Tuple<string, string>("mu","মু"),
new Tuple<string, string>("moo","মূ"),
new Tuple<string, string>("mRi","মৃ"),
new Tuple<string, string>("mRRi","মৄ"),
new Tuple<string, string>("moi","মৈ"),
new Tuple<string, string>("mou","মৌ"),
new Tuple<string, string>("mo","মো"),
new Tuple<string, string>("ZYJi","যি"),
new Tuple<string, string>("ZYJe","যে"),
new Tuple<string, string>("ZYJoi","যৈ"),
new Tuple<string, string>("ZYJa","যা"),
new Tuple<string, string>("ZYJee","যী"),
new Tuple<string, string>("ZYJu","যু"),
new Tuple<string, string>("ZYJoo","যূ"),
new Tuple<string, string>("ZYJRi","যৃ"),
new Tuple<string, string>("ZYJRRi","যৄ"),
new Tuple<string, string>("ZYJo","যো"),
new Tuple<string, string>("ZYJou","যৌ"),
new Tuple<string, string>("ri","রি"),
new Tuple<string, string>("ree","রী"),
new Tuple<string, string>("re","রে"),
new Tuple<string, string>("roi","রৈ"),
new Tuple<string, string>("ra","রা"),
new Tuple<string, string>("ru","রু"),
new Tuple<string, string>("roo","রূ"),
new Tuple<string, string>("rRi","রৃ"),
new Tuple<string, string>("rRRi","রৄ"),
new Tuple<string, string>("rou","রৌ"),
new Tuple<string, string>("ro","রো"),
new Tuple<string, string>("li","লি"),
new Tuple<string, string>("lee","লী"),
new Tuple<string, string>("le","লে"),
new Tuple<string, string>("loi","লৈ"),
new Tuple<string, string>("la","লা"),
new Tuple<string, string>("lu","লু"),
new Tuple<string, string>("loo","লূ"),
new Tuple<string, string>("lRi","লৃ"),
new Tuple<string, string>("lRRi","লৄ"),
new Tuple<string, string>("lou","লৌ"),
new Tuple<string, string>("lo","লো"),
new Tuple<string, string>("SHHi","ষি"),
new Tuple<string, string>("SHHe","ষে"),
new Tuple<string, string>("SHHee","ষী"),
new Tuple<string, string>("SHHoi","ষৈ"),
new Tuple<string, string>("SHHa","ষা"),
new Tuple<string, string>("SHHu","ষু"),
new Tuple<string, string>("SHHoo","ষূ"),
new Tuple<string, string>("SHHRi","ষৃ"),
new Tuple<string, string>("SHHRRi","ষৄ"),
new Tuple<string, string>("SHHou","ষৌ"),
new Tuple<string, string>("SHHo","ষো"),
new Tuple<string, string>("SHi","শি"),
new Tuple<string, string>("SHee","শী"),
new Tuple<string, string>("SHe","শে"),
new Tuple<string, string>("SHoi","শৈ"),
new Tuple<string, string>("SHa","শা"),
new Tuple<string, string>("SHo","শু"),
new Tuple<string, string>("SHoo","শূ"),
new Tuple<string, string>("SHRi","শৃ"),
new Tuple<string, string>("SHRRi","শৄ"),
new Tuple<string, string>("SHou","শৌ"),
new Tuple<string, string>("SHo","শো"),
new Tuple<string, string>("si","সি"),
new Tuple<string, string>("see","সী"),
new Tuple<string, string>("se","সে"),
new Tuple<string, string>("soi","সৈ"),
new Tuple<string, string>("sa","সা"),
new Tuple<string, string>("su","সু"),
new Tuple<string, string>("soo","সূ"),
new Tuple<string, string>("sRi","সৃ"),
new Tuple<string, string>("sRRi","সৄ"),
new Tuple<string, string>("sou","সৌ"),
new Tuple<string, string>("so","সো"),
new Tuple<string, string>("hi","হি"),
new Tuple<string, string>("hee","হী"),
new Tuple<string, string>("he","হে"),
new Tuple<string, string>("hoi","হৈ"),
new Tuple<string, string>("ha","হা"),
new Tuple<string, string>("hu","হু"),
new Tuple<string, string>("hoo","হূ"),
new Tuple<string, string>("hRi","হৃ"),
new Tuple<string, string>("hRRi","হৄ"),
new Tuple<string, string>("hou","হৌ"),
new Tuple<string, string>("ho","হো"),
new Tuple<string, string>("ni","নি"),
new Tuple<string, string>("ne","নে"),
new Tuple<string, string>("noi","নৈ"),
new Tuple<string, string>("na","না"),
new Tuple<string, string>("nee","নী"),
new Tuple<string, string>("nu","নু"),
new Tuple<string, string>("noo","নূ"),
new Tuple<string, string>("nRRi","নৃ"),
new Tuple<string, string>("nRRi","নৄ"),
new Tuple<string, string>("no","নো"),
new Tuple<string, string>("nou","নৌ"),
new Tuple<string, string>("JHA","ঝ"),
new Tuple<string, string>("NGA","ঞ"),
new Tuple<string, string>("TTHA","ঠ"),
new Tuple<string, string>("DDHHA","ঢ"),
new Tuple<string, string>("DHHA","ধ"),
new Tuple<string, string>("DDA","ড"),
new Tuple<string, string>("ZYJA","য"),
new Tuple<string, string>("SHHA","ষ"),
new Tuple<string, string>("SHA","শ"),
new Tuple<string, string>("ha","হ"),
new Tuple<string, string>("sa","স"),
new Tuple<string, string>("ma","ম"),
new Tuple<string, string>("va","ভ"),
new Tuple<string, string>("ba","ব"),
new Tuple<string, string>("fa","ফ"),
new Tuple<string, string>("pa","প"),
new Tuple<string, string>("NNa","ণ"),
new Tuple<string, string>("la","ল"),
new Tuple<string, string>("ra","র"),
new Tuple<string, string>("na","ন"),
new Tuple<string, string>("da","দ"),
new Tuple<string, string>("THHa","থ"),
new Tuple<string, string>("ngo","ঙ"),
new Tuple<string, string>("TTa","ট"),
new Tuple<string, string>("ta","ত"),
new Tuple<string, string>("ja","জ"),
new Tuple<string, string>("cHHa","ছ"),
new Tuple<string, string>("cha","চ"),
new Tuple<string, string>("gha","ঘ"),
new Tuple<string, string>("ga","গ"),
new Tuple<string, string>("kha","খ"),
new Tuple<string, string>("ka","ক"),
new Tuple<string, string>("Ao","অ"),
new Tuple<string, string>("AA","আ"),
new Tuple<string, string>("I","ই"),
new Tuple<string, string>("III","ঈ"),
new Tuple<string, string>("U","উ"),
new Tuple<string, string>("OOO","ঊ"),
new Tuple<string, string>("RRi","ঋ"),
new Tuple<string, string>("EY","এ"),
new Tuple<string, string>("OEE","ঐ"),
new Tuple<string, string>("O","ও"),
new Tuple<string, string>("Ang","অং"),
new Tuple<string, string>("Rri","ঋ"),
new Tuple<string, string>("ei","এই"),
new Tuple<string, string>("YA","য়"),
new Tuple<string, string>("h","ঃ"),
new Tuple<string, string>("a","া"),
new Tuple<string, string>("i","ি"),
new Tuple<string, string>("ii","ী"),
new Tuple<string, string>("u","ু"),
new Tuple<string, string>("uu","ূ"),
new Tuple<string, string>("ri","ৃ"),
new Tuple<string, string>("e","ে"),
new Tuple<string, string>("oi","ৈ"),
new Tuple<string, string>("k", "ক"), new Tuple<string, string>("kh", "খ"),
new Tuple<string, string>("g", "গ"), new Tuple<string, string>("gh", "ঘ"),
new Tuple<string, string>("ng", "ঙ"), new Tuple<string, string>("ch", "চ"),
new Tuple<string, string>("chh", "ছ"), new Tuple<string, string>("j", "জ"),
new Tuple<string, string>("jh", "ঝ"), new Tuple<string, string>("ny", "ঞ"),
new Tuple<string, string>("t", "ট"), new Tuple<string, string>("th", "ঠ"),
new Tuple<string, string>("d", "ড"), new Tuple<string, string>("dh", "ঢ"),
new Tuple<string, string>("n", "ণ"), new Tuple<string, string>("t", "ত"),
new Tuple<string, string>("th", "থ"), new Tuple<string, string>("d", "দ"),
new Tuple<string, string>("dh", "ধ"), new Tuple<string, string>("n", "ন"),
new Tuple<string, string>("p", "প"), new Tuple<string, string>("ph", "ফ"),
new Tuple<string, string>("b", "ব"), new Tuple<string, string>("bh", "ভ"),
new Tuple<string, string>("m", "ম"), new Tuple<string, string>("y", "য"),
new Tuple<string, string>("r", "র"), new Tuple<string, string>("l", "ল"),
new Tuple<string, string>("sh", "শ"), new Tuple<string, string>("ss", "ষ"),
new Tuple<string, string>("s", "স"), new Tuple<string, string>("h", "হ"),
new Tuple<string, string>("r", "ড়"), new Tuple<string, string>("rh", "ঢ়"),
new Tuple<string, string>("y", "য়"), new Tuple<string, string>("t", "ৎ")
};
// Replace ASCII vowels in the text back to Bengali
foreach (var map in vowelMapReverse)
{
// We need to replace the longer strings first to avoid partial replacement
asciDETA7 = asciDETA7.Replace(map.Item1, map.Item2);
}
// Replace ASCII consonants in the text back to Bengali
foreach (var map in consonantMapReverse)
{
// We need to replace the longer strings first to avoid partial replacement
asciDETA7 = asciDETA7.Replace(map.Item1, map.Item2);
}
return asciDETA7;
}// private string ConvertAsciiToBengali(string asciDETA7)
public static string RemoveNonPrintableCharacters(string input)
{
StringBuilder result = new StringBuilder();
foreach (char c in input)
{
if (c == ' ' || c == '\n' || c == '\r' || (c >= 32 && c <= 126))
{
result.Append(c);
}
}
return result.ToString();
}//public static string RemoveNonPrintableCharacters(string input)
public string ConvertANY_STORY_POEMS_CONVERTED_TO_ASCII_UPPERCASES_SPLIT_SYLLABLES_DO_STRATEGIES(string pre_asciified_filesnames)
{
string returned_ucased_preasciified_files_content_vowels_repeats_splits = "";
string ___temp_loading_the_file_content = "";
___temp_loading_the_file_content = System.IO.File.ReadAllText(pre_asciified_filesnames);
returned_ucased_preasciified_files_content_vowels_repeats_splits
=
___temp_loading_the_file_content;
returned_ucased_preasciified_files_content_vowels_repeats_splits
=
returned_ucased_preasciified_files_content_vowels_repeats_splits
.ToUpper()
.Replace(" "," ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace(" ", " ")
.Replace("+", "")
.Replace(" ", "~ ")
.Replace("EE", "EE ")
.Replace("EI", "EI ")
.Replace("AO", "AO ")
.Replace("AU", "AU ")
.Replace("AE", "AE ")
.Replace("AI", "AI ")
.Replace("II", "II ")
.Replace("A", "A ")
.Replace("E", "E ")
.Replace("I", "I ")
.Replace("O", "O ")
.Replace("U", "U ")
.Replace(" ", "\r\n")
;
returned_ucased_preasciified_files_content_vowels_repeats_splits
=
RemoveNonPrintableCharacters
(returned_ucased_preasciified_files_content_vowels_repeats_splits);
return returned_ucased_preasciified_files_content_vowels_repeats_splits;
}//public string ConvertANY_STORY_POEMS_CONVERTED_TO_ASCII_UPPERCASES_SPLIT_SYLLABLES_DO_STRATEGIES(string pre_asciified_filesnames)
private string ConvertBengaliToAscii___WITH_REGEXES(string bengalDETA7)
{
char hasanta = '্';
// Define the vowel and consonant mappings
List<Tuple<string, string>> vowelMap = new List<Tuple<string, string>>()
{
//need these in the consonants maps also
new Tuple<string, string>("্","+"),
new Tuple<string, string>("খি","khi"),
new Tuple<string, string>("খে","khe"),
new Tuple<string, string>("খৈ","khoi"),
new Tuple<string, string>("খা","kha"),
new Tuple<string, string>("খী","khee"),
new Tuple<string, string>("খু","khu"),
new Tuple<string, string>("খূ","khoo"),
new Tuple<string, string>("খো","kho"),
new Tuple<string, string>("খৃ","khRi"),
new Tuple<string, string>("খৄ","khRRi"),
new Tuple<string, string>("খৌ","khou"),
new Tuple<string, string>("কি","ki"),
new Tuple<string, string>("কে","ke"),
new Tuple<string, string>("কৈ","koi"),
new Tuple<string, string>("কা","ka"),
new Tuple<string, string>("কী","kee"),
new Tuple<string, string>("কু","ku"),
new Tuple<string, string>("কূ","koo"),
new Tuple<string, string>("কৃ","kRi"),
new Tuple<string, string>("কৄ","kRRi"),
new Tuple<string, string>("কৌ","kou"),
new Tuple<string, string>("কো","ko"),
new Tuple<string, string>("ঘি","ghi"),
new Tuple<string, string>("ঘে","ghe"),
new Tuple<string, string>("ঘৈ","ghoi"),
new Tuple<string, string>("ঘা","gha"),
new Tuple<string, string>("ঘী","ghee"),
new Tuple<string, string>("ঘু","ghu"),
new Tuple<string, string>("ঘূ","ghoo"),
new Tuple<string, string>("ঘৄ","ghRRi"),
new Tuple<string, string>("ঘৃ","ghRi"),
new Tuple<string, string>("ঘৌ","ghou"),
new Tuple<string, string>("ঘো","gho"),
new Tuple<string, string>("গি","gi"),
new Tuple<string, string>("গী","gee"),
new Tuple<string, string>("গে","ge"),
new Tuple<string, string>("গৈ","goi"),
new Tuple<string, string>("গা","ga"),
new Tuple<string, string>("গু","gu"),
new Tuple<string, string>("গূ","goo"),
new Tuple<string, string>("গৃ","gRi"),
new Tuple<string, string>("গৄ","gRRi"),
new Tuple<string, string>("গো","go"),
new Tuple<string, string>("গৌ","gou"),
new Tuple<string, string>("ঙি","ngi"),
new Tuple<string, string>("ঙে","nge"),
new Tuple<string, string>("ঙৈ","ngoi"),
new Tuple<string, string>("ঙা","nga"),
new Tuple<string, string>("ঙী","ngee"),
new Tuple<string, string>("ঙু","ngu"),
new Tuple<string, string>("ঙূ","ngoo"),
new Tuple<string, string>("ঙৃ","ngRi"),
new Tuple<string, string>("ঙৄ","ngRRi"),
new Tuple<string, string>("ঙৌ","ngou"),
new Tuple<string, string>("ঙো","ngo"),
new Tuple<string, string>("ছি","cHHi"),
new Tuple<string, string>("ছী","cHHee"),
new Tuple<string, string>("ছে","cHHe"),
new Tuple<string, string>("ছৈ","cHHoi"),
new Tuple<string, string>("ছা","cHHa"),
new Tuple<string, string>("ছু","cHHu"),
new Tuple<string, string>("ছূ","cHHoo"),
new Tuple<string, string>("ছৃ","cHHRi"),
new Tuple<string, string>("ছৄ","cHHRRi"),
new Tuple<string, string>("ছৌ","cHHou"),
new Tuple<string, string>("ছো","cHHo"),
new Tuple<string, string>("চি","chi"),
new Tuple<string, string>("চে","che"),
new Tuple<string, string>("চৈ","choi"),
new Tuple<string, string>("চা","cha"),
new Tuple<string, string>("চী","chee"),
new Tuple<string, string>("চু","chu"),
new Tuple<string, string>("চূ","choo"),
new Tuple<string, string>("চৃ","chRi"),
new Tuple<string, string>("চৄ","chRRi"),
new Tuple<string, string>("চো","cho"),
new Tuple<string, string>("চৌ","chou"),
new Tuple<string, string>("ঝি","JHi"),
new Tuple<string, string>("ঝে","JHe"),
new Tuple<string, string>("ঝৈ","JHoi"),
new Tuple<string, string>("ঝা","JHa"),
new Tuple<string, string>("ঝী","JHEE"),
new Tuple<string, string>("ঝু","JHu"),
new Tuple<string, string>("ঝূ","JHOO"),
new Tuple<string, string>("ঝৃ","JHRi"),
new Tuple<string, string>("ঝৄ","JHRRI"),
new Tuple<string, string>("ঝৌ","JHou"),
new Tuple<string, string>("ঝো","JHo"),
new Tuple<string, string>("জি","ji"),
new Tuple<string, string>("জে","je"),
new Tuple<string, string>("জৈ","joi"),
new Tuple<string, string>("জা","ja"),
new Tuple<string, string>("জী","jee"),
new Tuple<string, string>("জু","ju"),
new Tuple<string, string>("জূ","joo"),
new Tuple<string, string>("জৃ","jRi"),
new Tuple<string, string>("জৄ","jRRi"),
new Tuple<string, string>("জৌ","jou"),
new Tuple<string, string>("জো","jo"),
new Tuple<string, string>("ঞি","NGi"),
new Tuple<string, string>("ঞী","NGEE"),
new Tuple<string, string>("ঞে","NGE"),
new Tuple<string, string>("ঞৈ","NGOI"),
new Tuple<string, string>("ঞা","NGA"),
new Tuple<string, string>("ঞু","NGu"),
new Tuple<string, string>("ঞূ","NGOO"),
new Tuple<string, string>("ঞৃ","NGRi"),
new Tuple<string, string>("ঞৄ","NGRREE"),
new Tuple<string, string>("ঞো","NGO"),
new Tuple<string, string>("ঞৌ","NGOU"),
new Tuple<string, string>("ঠি","TTHi"),
new Tuple<string, string>("ঠে","TTHe"),
new Tuple<string, string>("ঠৈ","TTHoi"),
new Tuple<string, string>("ঠা","TTHA"),
new Tuple<string, string>("ঠী","TTHEE"),
new Tuple<string, string>("ঠু","TTHu"),
new Tuple<string, string>("ঠূ","TTHOO"),
new Tuple<string, string>("ঠৃ","TTHRi"),
new Tuple<string, string>("ঠৄ","TTHRRi"),
new Tuple<string, string>("ঠৌ","TTHou"),
new Tuple<string, string>("ঠো","TTHo"),
new Tuple<string, string>("টি","TTi"),
new Tuple<string, string>("টী","TTee"),
new Tuple<string, string>("টে","TTe"),
new Tuple<string, string>("টৈ","TToi"),
new Tuple<string, string>("টা","TTa"),
new Tuple<string, string>("টু","TTu"),
new Tuple<string, string>("টূ","TToo"),
new Tuple<string, string>("টৃ","TTRi"),
new Tuple<string, string>("টৄ","TTRRi"),
new Tuple<string, string>("টৌ","TTou"),
new Tuple<string, string>("টো","TTo"),
new Tuple<string, string>("ডি","DDi"),
new Tuple<string, string>("ডে","DDe"),
new Tuple<string, string>("ডৈ","DDoi"),
new Tuple<string, string>("ডা","DDa"),
new Tuple<string, string>("ডী","DDEE"),
new Tuple<string, string>("ডু","DDu"),
new Tuple<string, string>("ডূ","DDoo"),
new Tuple<string, string>("ডৃ","DDRi"),
new Tuple<string, string>("ডৄ","DDRee"),
new Tuple<string, string>("ডৌ","DDou"),
new Tuple<string, string>("ডো","DDo"),
new Tuple<string, string>("ঢি","DDHHi"),
new Tuple<string, string>("ঢে","DDHHe"),
new Tuple<string, string>("ঢৈ","DDHHoi"),
new Tuple<string, string>("ঢা","DDHHa"),
new Tuple<string, string>("ঢী","DDHHee"),
new Tuple<string, string>("ঢু","DDHHu"),
new Tuple<string, string>("ঢূ","DDHHoo"),
new Tuple<string, string>("ঢৃ","DDHHRi"),
new Tuple<string, string>("ঢৄ","DDHHRRi"),
new Tuple<string, string>("ঢো","DDHHo"),
new Tuple<string, string>("ঢৌ","DDHHou"),
new Tuple<string, string>("ণি","NNi"),
new Tuple<string, string>("ণে","NNe"),
new Tuple<string, string>("ণৈ","NNoi"),
new Tuple<string, string>("ণা","NNa"),
new Tuple<string, string>("ণী","NNee"),
new Tuple<string, string>("ণু","NNu"),
new Tuple<string, string>("ণূ","NNOO"),
new Tuple<string, string>("ণৃ","NNRi"),
new Tuple<string, string>("ণৄ","NNRRi"),
new Tuple<string, string>("ণো","NNo"),
new Tuple<string, string>("ণৌ","NNou"),
new Tuple<string, string>("থি","THHi"),
new Tuple<string, string>("থী","THHee"),
new Tuple<string, string>("থে","THHe"),
new Tuple<string, string>("থৈ","THHoi"),
new Tuple<string, string>("থা","THHa"),
new Tuple<string, string>("থু","THu"),
new Tuple<string, string>("থূ","THoo"),
new Tuple<string, string>("থৃ","THRi"),
new Tuple<string, string>("থৄ","THRRi"),
new Tuple<string, string>("থৌ","THou"),
new Tuple<string, string>("থো","THo"),
new Tuple<string, string>("তি","ti"),
new Tuple<string, string>("তে","te"),
new Tuple<string, string>("তৈ","toi"),
new Tuple<string, string>("তা","ta"),
new Tuple<string, string>("তী","tee"),
new Tuple<string, string>("তু","tu"),
new Tuple<string, string>("তূ","too"),
new Tuple<string, string>("তৃ","tRi"),
new Tuple<string, string>("তৄ","tRRi"),
new Tuple<string, string>("তৌ","tou"),
new Tuple<string, string>("তো","to"),
new Tuple<string, string>("ধি","DHHi"),
new Tuple<string, string>("ধী","DHHee"),
new Tuple<string, string>("ধে","DHHe"),
new Tuple<string, string>("ধৈ","DHHoi"),
new Tuple<string, string>("ধা","DHHa"),
new Tuple<string, string>("ধু","DHHu"),
new Tuple<string, string>("ধূ","DHHoo"),
new Tuple<string, string>("ধৃ","DHHRi"),
new Tuple<string, string>("ধৄ","DHHRRi"),
new Tuple<string, string>("ধৌ","DHHou"),
new Tuple<string, string>("ধো","DHHo"),
new Tuple<string, string>("দি","di"),
new Tuple<string, string>("দী","dee"),
new Tuple<string, string>("দে","de"),
new Tuple<string, string>("দৈ","doi"),
new Tuple<string, string>("দা","da"),
new Tuple<string, string>("দু","du"),
new Tuple<string, string>("দূ","doo"),
new Tuple<string, string>("দৃ","dRi"),
new Tuple<string, string>("দৄ","dRRi"),
new Tuple<string, string>("দৌ","dou"),
new Tuple<string, string>("দো","do"),
new Tuple<string, string>("পি","pi"),
new Tuple<string, string>("পে","pe"),
new Tuple<string, string>("পৈ","poi"),
new Tuple<string, string>("পা","pa"),
new Tuple<string, string>("পী","pee"),
new Tuple<string, string>("পু","pu"),
new Tuple<string, string>("পূ","poo"),
new Tuple<string, string>("পৃ","pRi"),
new Tuple<string, string>("পৄ","pRRi"),
new Tuple<string, string>("পৌ","pou"),
new Tuple<string, string>("পো","po"),
new Tuple<string, string>("ফি","Fi"),
new Tuple<string, string>("ফে","Fe"),
new Tuple<string, string>("ফৈ","Foi"),
new Tuple<string, string>("ফা","Fa"),
new Tuple<string, string>("ফী","Fee"),
new Tuple<string, string>("ফু","Fu"),
new Tuple<string, string>("ফূ","Foo"),
new Tuple<string, string>("ফৃ","FRi"),
new Tuple<string, string>("ফৄ","FRRi"),
new Tuple<string, string>("ফৌ","Fou"),
new Tuple<string, string>("ফো","Fo"),
new Tuple<string, string>("বি","bi"),
new Tuple<string, string>("বে","be"),
new Tuple<string, string>("বৈ","boi"),
new Tuple<string, string>("বা","ba"),
new Tuple<string, string>("বী","bee"),
new Tuple<string, string>("বু","bu"),
new Tuple<string, string>("বূ","boo"),
new Tuple<string, string>("বৃ","bRi"),
new Tuple<string, string>("বৄ","bRRi"),
new Tuple<string, string>("বো","bo"),
new Tuple<string, string>("বৌ","bou"),
new Tuple<string, string>("ভি","vi"),
new Tuple<string, string>("ভে","ve"),
new Tuple<string, string>("ভৈ","voi"),
new Tuple<string, string>("ভা","va"),
new Tuple<string, string>("ভী","vee"),
new Tuple<string, string>("ভু","vu"),
new Tuple<string, string>("ভূ","voo"),
new Tuple<string, string>("ভৃ","vRi"),
new Tuple<string, string>("ভৄ","vRRi"),
new Tuple<string, string>("ভো","vo"),
new Tuple<string, string>("ভৌ","vou"),
new Tuple<string, string>("মি","mi"),
new Tuple<string, string>("মে","me"),
new Tuple<string, string>("মা","ma"),
new Tuple<string, string>("মী","mee"),
new Tuple<string, string>("মু","mu"),
new Tuple<string, string>("মূ","moo"),
new Tuple<string, string>("মৃ","mRi"),
new Tuple<string, string>("মৄ","mRRi"),
//////////////////////////////////////////////////////
///
new Tuple<string, string>("মৈ","moi"),
new Tuple<string, string>("মৌ","mou"),
new Tuple<string, string>("মো","mo"),
new Tuple<string, string>("যি","ZYJi"),
new Tuple<string, string>("যে","ZYJe"),
new Tuple<string, string>("যৈ","ZYJoi"),
new Tuple<string, string>("যা","ZYJa"),
new Tuple<string, string>("যী","ZYJee"),
new Tuple<string, string>("যু","ZYJu"),
new Tuple<string, string>("যূ","ZYJoo"),
new Tuple<string, string>("যৃ","ZYJRi"),
new Tuple<string, string>("যৄ","ZYJRRi"),
new Tuple<string, string>("যো","ZYJo"),
new Tuple<string, string>("যৌ","ZYJou"),
new Tuple<string, string>("রি","ri"),
new Tuple<string, string>("রী","ree"),
new Tuple<string, string>("রে","re"),
new Tuple<string, string>("রৈ","roi"),
new Tuple<string, string>("রা","ra"),
new Tuple<string, string>("রু","ru"),
new Tuple<string, string>("রূ","roo"),
new Tuple<string, string>("রৃ","rRi"),
new Tuple<string, string>("রৄ","rRRi"),
new Tuple<string, string>("রৌ","rou"),
new Tuple<string, string>("রো","ro"),
new Tuple<string, string>("লি","li"),
new Tuple<string, string>("লী","lee"),
new Tuple<string, string>("লে","le"),
new Tuple<string, string>("লৈ","loi"),
new Tuple<string, string>("লা","la"),
new Tuple<string, string>("লু","lu"),
new Tuple<string, string>("লূ","loo"),
new Tuple<string, string>("লৃ","lRi"),
new Tuple<string, string>("লৄ","lRRi"),
new Tuple<string, string>("লৌ","lou"),
new Tuple<string, string>("লো","lo"),
new Tuple<string, string>("ষি","SHHi"),
new Tuple<string, string>("ষে","SHHe"),
new Tuple<string, string>("ষী","SHHee"),
new Tuple<string, string>("ষৈ","SHHoi"),
new Tuple<string, string>("ষা","SHHa"),
new Tuple<string, string>("ষু","SHHu"),
new Tuple<string, string>("ষূ","SHHoo"),
new Tuple<string, string>("ষৃ","SHHRi"),
new Tuple<string, string>("ষৄ","SHHRRi"),
new Tuple<string, string>("ষৌ","SHHou"),
new Tuple<string, string>("ষো","SHHo"),
new Tuple<string, string>("শি","SHi"),
new Tuple<string, string>("শী","SHee"),
new Tuple<string, string>("শে","SHe"),
new Tuple<string, string>("শৈ","SHoi"),
new Tuple<string, string>("শা","SHa"),
new Tuple<string, string>("শু","SHo"),
new Tuple<string, string>("শূ","SHoo"),
new Tuple<string, string>("শৃ","SHRi"),
new Tuple<string, string>("শৄ","SHRRi"),
new Tuple<string, string>("শৌ","SHou"),
new Tuple<string, string>("শো","SHo"),
new Tuple<string, string>("সি","si"),
new Tuple<string, string>("সী","see"),
new Tuple<string, string>("সে","se"),
new Tuple<string, string>("সৈ","soi"),
new Tuple<string, string>("সা","sa"),
new Tuple<string, string>("সু","su"),
new Tuple<string, string>("সূ","soo"),
new Tuple<string, string>("সৃ","sRi"),
new Tuple<string, string>("সৄ","sRRi"),
new Tuple<string, string>("সৌ","sou"),
new Tuple<string, string>("সো","so"),
new Tuple<string, string>("হি","hi"),
new Tuple<string, string>("হী","hee"),
new Tuple<string, string>("হে","he"),
new Tuple<string, string>("হৈ","hoi"),
new Tuple<string, string>("হা","ha"),
new Tuple<string, string>("হু","hu"),
new Tuple<string, string>("হূ","hoo"),
new Tuple<string, string>("হৃ","hRi"),
new Tuple<string, string>("হৄ","hRRi"),
new Tuple<string, string>("হৌ","hou"),
new Tuple<string, string>("হো","ho"),
new Tuple<string, string>("নি","ni"),
new Tuple<string, string>("নে","ne"),
new Tuple<string, string>("নৈ","noi"),
new Tuple<string, string>("না","na"),
new Tuple<string, string>("নী","nee"),
new Tuple<string, string>("নু","nu"),
new Tuple<string, string>("নূ","noo"),
new Tuple<string, string>("নৃ","nRRi"),
new Tuple<string, string>("নৄ","nRRi"),
new Tuple<string, string>("নো","no"),
new Tuple<string, string>("নৌ","nou"),
/////////////////////////////////////////////////
/////to keep things in the descending repeat alphabets counts orders
///
new Tuple<string, string>("ঝ","JHA"),
new Tuple<string, string>("ঞ","NGA"),
new Tuple<string, string>("ঠ","TTHA"),
new Tuple<string, string>("ঢ","DDHHA"),
new Tuple<string, string>("ধ","DHHA"),
new Tuple<string, string>("ড","DDA"),
new Tuple<string, string>("য","ZYJA"),
new Tuple<string, string>("ষ","SHHA"),
new Tuple<string, string>("শ","SHA"),
new Tuple<string, string>("হ","ha"),
new Tuple<string, string>("স","sa"),
new Tuple<string, string>("ম","ma"),
new Tuple<string, string>("ভ","va"),
new Tuple<string, string>("ব","ba"),
new Tuple<string, string>("ফ","fa"),
new Tuple<string, string>("প","pa"),
new Tuple<string, string>("ণ","NNa"),
new Tuple<string, string>("ল","la"),
new Tuple<string, string>("র","ra"),
new Tuple<string, string>("ন","na"),
new Tuple<string, string>("দ","da"),
new Tuple<string, string>("থ","THHa"),
new Tuple<string, string>("ঙ","ngo"),
new Tuple<string, string>("ট","TTa"),
new Tuple<string, string>("ত","ta"),
new Tuple<string, string>("জ","ja"),
new Tuple<string, string>("ছ","cHHa"),
new Tuple<string, string>("চ","cha"),
new Tuple<string, string>("ঘ","gha"),
new Tuple<string, string>("গ","ga"),
new Tuple<string, string>("খ","kha"),
new Tuple<string, string>("ক","ka"),
///////////////////////////////////////////////////////////
new Tuple<string, string>("অ", "Ao"),
new Tuple<string, string>("আ", "AA"),
new Tuple<string, string>("ই", "I"),
new Tuple<string, string>("ঈ", "III"),
new Tuple<string, string>("উ", "U"),
new Tuple<string, string>("ঊ", "OOO"),
new Tuple<string, string>("ঋ", "RRi"),
new Tuple<string, string>("এ", "EY"),
new Tuple<string, string>("ঐ", "OEE"),
new Tuple<string, string>("ও", "O"),
new Tuple<string, string>("অং", "Ang") ,
new Tuple<string, string>("ঋ", "Rri"),
new Tuple<string, string>("এই", "ei"),
new Tuple<string, string>("য়", "YA") // Bengali 'ya'
///note that we need to handle these also .Replace("য়া", "| য়া |")
//////new Tuple<string, string>("ঃ", "h"),
//////new Tuple<string, string>("া", "a"),
//////new Tuple<string, string>("ি", "i"),
//////new Tuple<string, string>("ী", "ii"),
//////new Tuple<string, string>("ু", "u"),
//////new Tuple<string, string>("ূ", "uu"),
//////new Tuple<string, string>("ৃ", "ri"),
//////new Tuple<string, string>("ে", "e"),
//////new Tuple<string, string>("ৈ", "oi"),
// new Tuple<string, string>("অ", "a"),
// new Tuple<string, string>("ই", "i"),
};
//////////////////////////////////////////////////////////////////////////
List<Tuple<string, string>> consonantMap = new List<Tuple<string, string>>()
{
new Tuple<string, string>("ক", "ka"), new Tuple<string, string>("খ", "kh"),
new Tuple<string, string>("গ", "ga"), new Tuple<string, string>("ঘ", "gh"),
new Tuple<string, string>("ঙ", "ngo"), new Tuple<string, string>("চ", "ch"),
new Tuple<string, string>("ছ", "chha"), new Tuple<string, string>("জ", "j"),
new Tuple<string, string>("ঝ", "jha"), new Tuple<string, string>("ঞ", "ny"),
new Tuple<string, string>("ট", "ta"), new Tuple<string, string>("ঠ", "th"),
new Tuple<string, string>("ড", "da"), new Tuple<string, string>("ঢ", "dh"),
new Tuple<string, string>("ণ", "na"), new Tuple<string, string>("ত", "t"),
new Tuple<string, string>("থ", "tha"), new Tuple<string, string>("দ", "d"),
new Tuple<string, string>("ধ", "dha"), new Tuple<string, string>("ন", "n"),
new Tuple<string, string>("প", "pa"), new Tuple<string, string>("ফ", "ph"),
new Tuple<string, string>("ব", "ba"), new Tuple<string, string>("ভ", "bh"),
new Tuple<string, string>("ম", "ma"), new Tuple<string, string>("য", "y"),
new Tuple<string, string>("র", "ra"), new Tuple<string, string>("ল", "l"),
new Tuple<string, string>("শ", "SHa"), new Tuple<string, string>("ষ", "ss"),
new Tuple<string, string>("স", "sa"), new Tuple<string, string>("হ", "h"),
new Tuple<string, string>("ড়", "RRR"), new Tuple<string, string>("ঢ়", "rh"),
new Tuple<string, string>("য়", "y"), new Tuple<string, string>("ৎ", "t")
};
// Replace vowels in the text
foreach (var map in vowelMap)
{
bengalDETA7 = Regex.Replace(bengalDETA7, map.Item1, map.Item2);
}//foreach (var map in vowelMap)
// Replace consonants in the text
foreach (var map in consonantMap)
{
bengalDETA7 = Regex.Replace(bengalDETA7, map.Item1, map.Item2);
}
/////////we have done detailed listing so it looks better when i do vowels mapping after consonants mappings
//////// Replace vowels in the text
//////foreach (var map in vowelMap)
//////{
////// bengalDETA7 = Regex.Replace(bengalDETA7, map.Item1, map.Item2);
//////}
return bengalDETA7;
}// private string ConvertBengaliToAscii___WITH_REGEXES(string bengalDETA7)
private void button_TO_SAVE_SAAN_COMPOSER_DATA_Click(object sender, EventArgs e)
{
//we assume the notepad++ so we dont save when reload current
//////TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ######
//////61 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D4 ###### 293.66 ###### ROW_NUMBER=0
//////62 ###### 1000 ###### 127 ###### 71 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D#4/Eb4 ###### 311.13 ###### ROW_NUMBER=1
//////63 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### E4 ###### 329.63 ###### ROW_NUMBER=2
//////57 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### A#3/Bb3 ###### 233.08 ###### ROW_NUMBER=3
//////53 ###### 1000 ###### 127 ###### 66 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F#3/Gb3 ###### 185 ###### ROW_NUMBER=4
//////52 ###### 1000 ###### 127 ###### 68 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F3 ###### 174.61 ###### ROW_NUMBER=5
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";//flushing first
save_current_composer_datagrids_state_to_files("");//default files names at default folders
//automatically saves the files at default locations
// Create a SaveFileDialog to ask the user where to save the PDF
SaveFileDialog saveFileDialog = new SaveFileDialog
{
Filter = "COMPOSERF Files|*.dataGridView___COMPOSER|SAANCOMPOSER FILES|*.SAANCOMPOSER|All Files (*.*)|*.*",
Title = "Save dataGridView___COMPOSER File"
};
// Show the dialog and get the result
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
// Get the selected file path
string outputPath = saveFileDialog.FileName;
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = outputPath;
save_current_composer_datagrids_state_to_files(outputPath);//user choose the files names
}//if (saveFileDialog.ShowDialog() == DialogResult.OK)
}//private void button_TO_SAVE_SAAN_COMPOSER_DATA_Click(object sender, EventArgs e)
private void button___TO_EDIT_IN_NOTEPAD_Click(object sender, EventArgs e)
{
//we assume the notepad++ so we dont save when reload current
//we assume the notepad++ so we dont save when reload current
//we assume the notepad++ so we dont save when reload current
//////TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ######
//////61 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D4 ###### 293.66 ###### ROW_NUMBER=0
//////62 ###### 1000 ###### 127 ###### 71 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D#4/Eb4 ###### 311.13 ###### ROW_NUMBER=1
//////63 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### E4 ###### 329.63 ###### ROW_NUMBER=2
//////57 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### A#3/Bb3 ###### 233.08 ###### ROW_NUMBER=3
//////53 ###### 1000 ###### 127 ###### 66 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F#3/Gb3 ###### 185 ###### ROW_NUMBER=4
//////52 ###### 1000 ###### 127 ###### 68 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F3 ###### 174.61 ###### ROW_NUMBER=5
//SIMPLY OPEN NO SAVES HERE save_current_composer_datagrids_state_to_files();
string SAANCOMPOSERFILESNAMES =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "OVERWRITESANDRELOADS.SAANCOMPOSER";
System.Diagnostics.Process.Start("notepad.exe", SAANCOMPOSERFILESNAMES);
}// private void button___TO_EDIT_IN_NOTEPAD_Click(object sender, EventArgs e)
private void button_OPEN_COMPOSER_FILES_Click(object sender, EventArgs e)
{
//we assume the notepad++ so we dont save when reload current
//we assume the notepad++ so we dont save when reload current
//we assume the notepad++ so we dont save when reload current
//////TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ######
//////61 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D4 ###### 293.66 ###### ROW_NUMBER=0
//////62 ###### 1000 ###### 127 ###### 71 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D#4/Eb4 ###### 311.13 ###### ROW_NUMBER=1
//////63 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### E4 ###### 329.63 ###### ROW_NUMBER=2
//////57 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### A#3/Bb3 ###### 233.08 ###### ROW_NUMBER=3
//////53 ###### 1000 ###### 127 ###### 66 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F#3/Gb3 ###### 185 ###### ROW_NUMBER=4
//////52 ###### 1000 ###### 127 ###### 68 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F3 ###### 174.61 ###### ROW_NUMBER=5
//////LYRSYLLS ###### INDINOTES ###### TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ###### JERK_MILLIS_GAP ###### JERK_UP_PITCHBEND ###### JERK_DOWN_PITCH_BEND ######
//////- ###### n ###### 64 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### F4 ###### 349.23 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=0
//////- ###### s ###### 64 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### F4 ###### 349.23 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=1
//////- ###### s ###### 53 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### F#3/Gb3 ###### 185 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=2
//////- ###### g ###### 57 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### A#3/Bb3 ###### 233.08 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=3
//////- ###### d ###### 64 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### F4 ###### 349.23 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=4
//////- ###### r ###### 55 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### G#3/Ab3 ###### 349.23 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=5
//////- ###### r ###### 55 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### G#3/Ab3 ###### 349.23 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=6
///FOR REFERENCES openFileDialogForDXFFiles.Filter = "dstv/nc1 Files (.nc1)|*.nc1|AdvanceSteels dstv/nc1 Files (.nc)|*.nc|All Files (*.*)|*.*";
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "COMPOSERF Files|*.dataGridView___COMPOSER|SAANCOMPOSER FILES|*.SAANCOMPOSER|All Files (*.*)|*.*";
string ___dummyfilesnamesformids_currentdatagridsstates_timestamps =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder;
//+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
openFileDialog.FileName = ___dummyfilesnamesformids_currentdatagridsstates_timestamps;
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputdataGridView___COMPOSER = openFileDialog.FileName;
// string outputPdfPath = inputPdfPath + "_output_with_circle.pdf"; // Output file path
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = inputdataGridView___COMPOSER;
Console.WriteLine("inputdataGridView___COMPOSER = " + inputdataGridView___COMPOSER);
to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files(inputdataGridView___COMPOSER);
//stopped from heres
/// System.Windows.Forms.MessageBox.Show("We will call RagaPaltasGenerator___reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER on inputdataGridView___COMPOSER " + inputdataGridView___COMPOSER);
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .RagaPaltasGenerator___reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER
////// .GenerateExtendedRagaFile
////// (
////// inputdataGridView___COMPOSER
////// ,
////// inputdataGridView___COMPOSER.Replace(".dataGridView___COMPOSER","_extended_durations_loops_003")+".dataGridView___COMPOSER"
////// );
///
///
///
/// //stopping this it copies all durations to all notes and generates nxn data structures
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .RagaPaltasGenerator___reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER
////// .GenerateExtendedRagaFile___ALL_THE_NOTES_WITH_SAMES_DURATIONS_OF_OTHER_NOTES
////// //.GenerateExtendedRagaFile
////// (
////// inputdataGridView___COMPOSER
////// ,
////// inputdataGridView___COMPOSER + "_SAMES_durations_REPEATS_loops_003" + ".dataGridView___COMPOSER"
////// );
// to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files
//stopped from heres
////// System.Windows.Forms.MessageBox.Show("We will call RagaPaltasGenerator___reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER on inputdataGridView___COMPOSER " + inputdataGridView___COMPOSER);
////// //i will generate only first 5990 rows
////// SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .RagaPaltasGenerator___PERMUTED_DURATIONS_SEQUENCES_COPIERS_reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER
//////.GenerateExtendedRagaFile___ALL_THE_NOTES_WITH_PERMUTED_DURATIONS_OF_OTHER_NOTES
////////.GenerateExtendedRagaFile
//////(
//////inputdataGridView___COMPOSER
//////,
//////inputdataGridView___COMPOSER + "_WITH_PERMUTED__durations_loops_003" + ".dataGridView___COMPOSER"
//////);
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
this.dataGridView___COMPOSER.ClearSelection();
}//private void button_OPEN_COMPOSER_FILES_Click(object sender, EventArgs e)
private void button_LOAD_EDITED_CURRENT_Click(object sender, EventArgs e)
{
//we assume the notepad++ so we dont save when reload current
//we assume the notepad++ so we dont save when reload current
//we assume the notepad++ so we dont save when reload current
//////TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ######
//////61 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D4 ###### 293.66 ###### ROW_NUMBER=0
//////62 ###### 1000 ###### 127 ###### 71 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D#4/Eb4 ###### 311.13 ###### ROW_NUMBER=1
//////63 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### E4 ###### 329.63 ###### ROW_NUMBER=2
//////57 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### A#3/Bb3 ###### 233.08 ###### ROW_NUMBER=3
//////53 ###### 1000 ###### 127 ###### 66 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F#3/Gb3 ###### 185 ###### ROW_NUMBER=4
//////52 ###### 1000 ###### 127 ###### 68 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F3 ###### 174.61 ###### ROW_NUMBER=5
//SIMPLY OPEN NO SAVES HERE save_current_composer_datagrids_state_to_files();
string SAANCOMPOSERFILESNAMES =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "OVERWRITESANDRELOADS.SAANCOMPOSER";
Console.WriteLine("SAANCOMPOSERFILESNAMES = " + SAANCOMPOSERFILESNAMES);
to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files(SAANCOMPOSERFILESNAMES);
this.dataGridView___COMPOSER.ClearSelection();
}//private void button_LOAD_EDITED_CURRENT_Click(object sender, EventArgs e)
private void checkBox___TO_AUTOMATICALLY_SAVE_MIDI_FILES_CheckedChanged(object sender, EventArgs e)
{
if (checkBox___TO_AUTOMATICALLY_SAVE_MIDI_FILES.CheckState.ToString().ToUpper() == "CHECKED")
{
this.button___PLAY_MIDI_STREAMS.BackColor = Color.LightCyan;
}
else
{
this.button___PLAY_MIDI_STREAMS.BackColor = Color.PaleVioletRed;
}//end of else of if (checkBox___TO_AUTOMATICALLY_SAVE_MIDI_FILES.CheckState.ToString().ToUpper() == "CHECKED")
}//private void checkBox___TO_AUTOMATICALLY_SAVE_MIDI_FILES_CheckedChanged(object sender, EventArgs e)
//////static void thebmpfilesgenerators(string midsfiles)
//////{
////// string midiPath = midsfiles;// "input.mid"; // Replace with your MIDI file path
////// string outputBmp = midsfiles + "_report.bmp";//"miditiks.bmp";
////// int width = 1000;
////// int height = 200;
////// System.Collections.Generic.HashSet<int> playedNotes = new System.Collections.Generic.HashSet<int>();
////// // Read MIDI file and collect note numbers
////// //THIS CONSTRUCTOR HAS SOME PROBLEMS SINCE IT DOES DEEP DETAILED TASKS
////// SAANAUDS.Midi.MidiFile midiFile = new SAANAUDS.Midi.MidiFile(midiPath, false);
////// foreach (var track in midiFile.Events)
////// {
////// foreach (var midiEvent in track)
////// {
////// if (midiEvent is NoteOnEvent noteOn && noteOn.Velocity > 0)
////// {
////// playedNotes.Add(noteOn.NoteNumber);
////// }//if (midiEvent is NoteOnEvent noteOn && noteOn.Velocity > 0)
////// }//foreach (var midiEvent in track)
////// }//foreach (var track in midiFile.Events)
////// // Create bitmap
////// // using
////// Bitmap bmp = new Bitmap(width, height);
////// Graphics g = Graphics.FromImage(bmp);
////// g.Clear(Color.White);
////// int totalKeys = 88;
////// int firstMidiNote = 21; // A0
////// int whiteKeyCount = 52;
////// int whiteKeyWidth = width / whiteKeyCount;
////// int blackKeyWidth = whiteKeyWidth / 2;
////// int blackKeyHeight = (int)(height * 0.6);
////// // Draw white keys
////// int whiteKeyIndex = 0;
////// for (int i = 0; i < totalKeys; i++)
////// {
////// int midiNote = firstMidiNote + i;
////// if (!IsBlackKey(midiNote))
////// {
////// int x = whiteKeyIndex * whiteKeyWidth;
////// var color = playedNotes.Contains(midiNote) ? Color.LightGreen : Color.White;
////// g.FillRectangle(new SolidBrush(color), x, 0, whiteKeyWidth, height);
////// g.DrawRectangle(Pens.Black, x, 0, whiteKeyWidth, height);
////// whiteKeyIndex++;
////// }//if (!IsBlackKey(midiNote))
////// }//for (int i = 0; i < totalKeys; i++)
////// // Draw black keys
////// whiteKeyIndex = 0;
////// for (int i = 0; i < totalKeys; i++)
////// {
////// int midiNote = firstMidiNote + i;
////// if (!IsBlackKey(midiNote))
////// {
////// whiteKeyIndex++;
////// }
////// else
////// {
////// int x = whiteKeyIndex * whiteKeyWidth - blackKeyWidth / 2;
////// var color = playedNotes.Contains(midiNote) ? Color.Green : Color.Black;
////// g.FillRectangle(new SolidBrush(color), x, 0, blackKeyWidth, blackKeyHeight);
////// }//end of else of if (!IsBlackKey(midiNote))
////// }//for (int i = 0; i < totalKeys; i++)
////// bmp.Save(outputBmp);
////// // Console.WriteLine($"Saved piano visualization to {outputBmp}");
//////}
//////static bool IsBlackKey(int midiNote)
//////{
////// int noteInOctave = midiNote % 12;
////// return noteInOctave == 1 || noteInOctave == 3 || noteInOctave == 6 || noteInOctave == 8 || noteInOctave == 10;
//////}//static bool IsBlackKey(int midiNote)
private void button______SAANS_MIDSTOCSVS_Click(object sender, EventArgs e)
{
////// string ___initialsmessages_for_22_cols___SAANOWNCSVLINIERSCALEDDXFFORMIDI =
////// "___initialsmessages_for_22_cols___SAANOWNCSVLINIERSCALEDDXFFORMIDI" +
//////"\r\n col 0 track(number categorizing like dxf layers)" +
//////"\r\n col 1 ,channel(9 for percussions only 0 to 15 only)" +
//////"\r\n col 2 ,patch_number(0 to 127)" +
//////"\r\n col 3 ,patch_name" +
//////"\r\n col 3+ ,pitch_bend_number(0 to 8190 to 16368 original note has no change frequency at 8190)" +
//////"\r\n col 3++ ,note_frequency_linier_y_start_data_OR_START_RADIUS(0,0,0 has zero frequency)" +
//////"\r\n col 6 ,note_frequency_linier_y_final_data_OR_FINAL_RADIUS(0,0,0 has zero frequency)" +
//////"\r\n col 7 ,note_name_FOUND_FROM_START_SIDES_FREQUENCY" +
//////"\r\n col 8 ,note_start_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE" +
//////"\r\n col 9 ,note_final_time_from_linier_x_data_FROM_THE_DEGREES_ANTICLOCKWISE" +
//////"\r\n col 10 ,note_duration_IN_MIDITICKS_CALCULATED_FROM_THE_DEGREES_AND_TOTAL_DURATIONS_MICROSECONDS" +
//////"\r\n col 10+1 ,note_velocity_TRICKY_CALCULATION_OR_FROM_LAYERS" +
//////"\r\n col 10+2 ,grabbed_lyrics_text_FROM_LAYERS_NAMES_DATA" +
//////"\r\n col 10+3 ,grabbed_lyrics_Absolute_times_IN_LAYERS_DATA_FOR_TRACK_ZERO_WITH_MIDITICKS" +
//////"\r\n col 10+3+1 ,OPTIONAL_MILLISECONDS_DATA_FOR_START" +
//////"\r\n col 10+3+2 ,OPTIONAL_MILLISECONDS_DATA_FOR_FINAL" +
//////"\r\n col 10+3+3 ,OPTIONAL_MILLISECONDS_DATA_FOR_DURATIONS(normally 100 to 4300)" +
//////"\r\n col 10+3+3 +1 ,OPTIONAL_NOTE_OR_OTHER_CONTROLLER_LIKE_PITCH_BEND(DECIDER_TO_PROCESS)" +
//////"\r\n col 10+3+3 +2 ,OPTIONAL_THE_RAW_MIDI_EVENT_COUNTER_PRESERVED_FOR_SORTING_WHILE_EXPORTING" +
//////"\r\n col 10+3+3 +3 ,OPTIONAL_SIN_THETA_ADJUSTED_SLOPE_FOR_VELOCITY_CONTROLLER" +
//////"\r\n col 10+3+3 +3+1 ,DEGREE_DIFF_TO_TRACK_BLANK_REGIONS" +
//////"\r\n col 21 ,DEGREE_START" +
//////"\r\n col 22 ,DEGREE_FINAL";
////// StringBuilder LOCAL_STRINGBUILDER_FOR___22_COLS___SAANOWNCSVLINIERSCALEDDXFFORMIDI = new StringBuilder();
////// LOCAL_STRINGBUILDER_FOR___22_COLS___SAANOWNCSVLINIERSCALEDDXFFORMIDI.Clear();
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Mid files|*.mid";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputmidPath = openFileDialog.FileName;
// string outputPdfPath = inputPdfPath + "_output_with_circle.pdf"; // Output file path
MidiCsvConverter
.Program_formiditocsv
.Program_formiditocsv_Main(inputmidPath);
// thebmpfilesgenerators(inputmidPath);
System.Windows.Forms.MessageBox.Show("Dones");
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
}//private void button______SAANS_MIDSTOCSVS_Click(object sender, EventArgs e)
private void button___SAAN_CSV_TO_MIDS_Click(object sender, EventArgs e)
{
try
{
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "csv files|*.csv";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputcsvsPath = openFileDialog.FileName;
// string outputPdfPath = inputPdfPath + "_output_with_circle.pdf"; // Output file path
CsvToMidiConverter
.ProgramForCsvToMidiConverter
.CsvToMidiConverter_Main
(inputcsvsPath);
System.Windows.Forms.MessageBox.Show("Dones");
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
}
catch (Exception ___excp)
{
}//catch(Exception ___excp)
}//private void button___SAAN_CSV_TO_MIDS_Click(object sender, EventArgs e)
public string DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES(string filled_notes_name)
{
string returned_note_number = "";
try
{
if(filled_notes_name=="-")
{
return "127";
}// if(filled_notes_name=="-")
string ___temp_text_in_textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS = "";
string ___TEMP_STRING_INDIAN_NOTES_NAME = "";
int ___TEMP_INT_INDIAN_NOTES_NUMBER = 0;
___temp_text_in_textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS
=
this.textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS.Text.ToString().TrimEnd().TrimStart().Trim().ToUpper();
string[] ___splitted_string
=
___temp_text_in_textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS.Split('=');
___temp_text_in_textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS
=
this.textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS
.Text.ToString().TrimEnd().TrimStart().Trim()
.ToUpper();
if (___splitted_string.Length != 2)
{
this.textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS.Text = "S.=69";
___temp_text_in_textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS
=
this.textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS.Text.ToString().TrimEnd().TrimStart().Trim().ToUpper();
___TEMP_STRING_INDIAN_NOTES_NAME = "S.";
___TEMP_INT_INDIAN_NOTES_NUMBER = 69;
}
else
{
___TEMP_STRING_INDIAN_NOTES_NAME
=
___splitted_string[0].TrimEnd().TrimStart().Trim().ToUpper();
try
{
___TEMP_INT_INDIAN_NOTES_NUMBER
=
Convert.ToInt16(___splitted_string[1].TrimEnd().TrimStart().Trim().ToUpper());
}
catch (Exception ___excp_To_Convert)
{
___temp_text_in_textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS
=
this.textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS.Text.ToString().TrimEnd().TrimStart().Trim().ToUpper();
___TEMP_STRING_INDIAN_NOTES_NAME = "S.";
___TEMP_INT_INDIAN_NOTES_NUMBER = 69;
}//catch(Exception ___excp_To_Convert)
}//END OF ELSE OF if(___splitted_string.Length!=2)
//CALLING CONVENTIONS SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_STRING_INDIAN_NOTES_NAME___________PUBLIC_STATIC_STRING_FOR_GLOBAL_ACCESS
//CALLING CONVENTIONS SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_INT_INDIAN_NOTES_NUMBER___________PUBLIC_STATIC_INT_FOR_GLOBAL_ACCESS
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_STRING_INDIAN_NOTES_NAME___________PUBLIC_STATIC_STRING_FOR_GLOBAL_ACCESS = ___TEMP_STRING_INDIAN_NOTES_NAME;
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_INT_INDIAN_NOTES_NUMBER___________PUBLIC_STATIC_INT_FOR_GLOBAL_ACCESS = ___TEMP_INT_INDIAN_NOTES_NUMBER;
string ___report_for_populations
=
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING___return_NOTES_NUMBER_STRING_FROM_PRECONFIGURED_KEY_NAMES_TO_NUMBER______FROM___PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3
(___TEMP_STRING_INDIAN_NOTES_NAME, ___TEMP_INT_INDIAN_NOTES_NUMBER, filled_notes_name);
returned_note_number = ___report_for_populations;
}
catch (Exception ___excp_to_run_textsassigns)
{
Console.WriteLine("___excp_to_run_textsassigns= " + ___excp_to_run_textsassigns.Message + " " + ___excp_to_run_textsassigns.StackTrace.ToString());
}//catch(Exception ___excp_to_run_textsassigns)
if(returned_note_number=="")
{
returned_note_number = "";
}//if(returned_note_number=="")
return returned_note_number;
}// public string DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES(string filled_notes_name)
private void textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS_Leave(object sender, EventArgs e)
{
// DO_POPULATE_INDIANIZED_NOTES();
//here we are taking the blank notes name supplied
//this will simply fill the data and populate the internal static arrays every times
string _returned_notes_number_string
= DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES("S");//SPECIALLY FILLED S
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_BOOL_TO_SHOW_THE_MESSAGEBOX___TO_SAVE_FILES_ALSO = true;
System.Windows.Forms.MessageBox.Show
(
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING_INDIANIZED_NOTES_REPORT
);
}// if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
else
{
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_BOOL_TO_SHOW_THE_MESSAGEBOX___TO_SAVE_FILES_ALSO = false;
}//end of else of if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
// PUBLIC_STATIC_BOOL_TO_SHOW_THE_MESSAGEBOX
}// private void textBox_FOR_INDIAN_NOTESNAMES_TO_ASSIGNS_Leave(object sender, EventArgs e)
////////////Bengali Unicode Block Overview
////////////Description Value
////////////Minimum Unicode U+0980
////////////Minimum Decimal 2432
////////////Maximum Unicode U+09FF
////////////Maximum Decimal 2559
////////////🔤 Common Bengali Characters – Unicode Table
////////////Character Name Unicode Decimal
////////////ঁ Bengali Sign Candrabindu U+0981 2433
////////////ং Bengali Sign Anusvara U+0982 2434
////////////ঃ Bengali Sign Visarga U+0983 2435
////////////অ Bengali Letter A U+0985 2437
////////////আ Bengali Letter AA U+0986 2438
////////////ই Bengali Letter I U+0987 2439
////////////ঈ Bengali Letter II U+0988 2440
////////////উ Bengali Letter U U+0989 2441
////////////ঊ Bengali Letter UU U+098A 2442
////////////ঋ Bengali Letter Vocalic R U+098B 2443
////////////এ Bengali Letter E U+098F 2447
////////////ঐ Bengali Letter AI U+0990 2448
////////////ও Bengali Letter O U+0993 2451
////////////ঔ Bengali Letter AU U+0994 2452
////////////ক Bengali Letter KA U+0995 2453
////////////খ Bengali Letter KHA U+0996 2454
////////////গ Bengali Letter GA U+0997 2455
////////////ঘ Bengali Letter GHA U+0998 2456
////////////ঙ Bengali Letter NGA U+0999 2457
////////////চ Bengali Letter CA U+099A 2458
////////////ছ Bengali Letter CHA U+099B 2459
////////////জ Bengali Letter JA U+099C 2460
////////////ঝ Bengali Letter JHA U+099D 2461
////////////ঞ Bengali Letter NYA U+099E 2462
////////////ট Bengali Letter TTA U+099F 2463
////////////ঠ Bengali Letter TTHA U+09A0 2464
////////////ড Bengali Letter DDA U+09A1 2465
////////////ঢ Bengali Letter DDHA U+09A2 2466
////////////ণ Bengali Letter NNA U+09A3 2467
////////////ত Bengali Letter TA U+09A4 2476
////////////থ Bengali Letter THA U+09A5 2477
////////////দ Bengali Letter DA U+09A6 2470
////////////ধ Bengali Letter DHA U+09A7 2471
////////////ন Bengali Letter NA U+09A8 2472
////////////প Bengali Letter PA U+09AA 2474
////////////ফ Bengali Letter PHA U+09AB 2475
////////////ব Bengali Letter BA U+09AC 2476
////////////ভ Bengali Letter BHA U+09AD 2477
////////////ম Bengali Letter MA U+09AE 2478
////////////য Bengali Letter YA U+09AF 2479
////////////র Bengali Letter RA U+09B0 2480
////////////ল Bengali Letter LA U+09B2 2482
////////////শ Bengali Letter SHA U+09B6 2486
////////////ষ Bengali Letter SSA U+09B7 2487
////////////স Bengali Letter SA U+09B8 2488
////////////হ Bengali Letter HA U+09B9 2489
////////////় Bengali Nukta U+09BC 2492
////////////া Bengali Vowel Sign AA U+09BE 2494
////////////ি Bengali Vowel Sign I U+09BF 2495
////////////ী Bengali Vowel Sign II U+09C0 2496
////////////ু Bengali Vowel Sign U U+09C1 2497
////////////ূ Bengali Vowel Sign UU U+09C2 2498
////////////ে Bengali Vowel Sign E U+09C7 2503
////////////ৈ Bengali Vowel Sign AI U+09C8 2504
////////////ো Bengali Vowel Sign O U+09CB 2507
////////////ৌ Bengali Vowel Sign AU U+09CC 2508
////////////্ Bengali Virama(Halant) U+09CD 2509
////////////ঢ় Bengali Letter RRA U+09DD 2525
////////////য় Bengali Letter YYA U+09DF 2527
////////////০ Bengali Digit Zero U+09E6 2534
////////////১ Bengali Digit One U+09E7 2535
////////////২ Bengali Digit Two U+09E8 2536
////////////৩ Bengali Digit Three U+09E9 2537
////////////৪ Bengali Digit Four U+09EA 2538
////////////৫ Bengali Digit Five U+09EB 2539
////////////৬ Bengali Digit Six U+09EC 2540
////////////৭ Bengali Digit Seven U+09ED 2541
////////////৮ Bengali Digit Eight U+09EE 2542
////////////৯ Bengali Digit Nine U+09EF 2543
static void CONVERT_THE_BENGALI_WORDS_TO_UNIKODES_SEMIKOLONED_DATASYSTEMS(string filename_with_bengaliswords)
{
//////ঁ Bengali Sign Candrabindu U+0981 2433
//////ং Bengali Sign Anusvara U+0982 2434
//////ঃ Bengali Sign Visarga U+0983 2435
///
///
///
//////অ Bengali Letter A U + 0985 2437
//////আ Bengali Letter AA U + 0986 2438
//////ই Bengali Letter I U + 0987 2439
//////ঈ Bengali Letter II U + 0988 2440
//////উ Bengali Letter U U + 0989 2441
//////ঊ Bengali Letter UU U + 098A 2442
//////ঋ Bengali Letter Vocalic R U+098B 2443
//////এ Bengali Letter E U + 098F 2447
//////ঐ Bengali Letter AI U + 0990 2448
//////ও Bengali Letter O U + 0993 2451
//////ঔ Bengali Letter AU U + 0994 2452
///
///
///
//////ক Bengali Letter KA U + 0995 2453
//////খ Bengali Letter KHA U + 0996 2454
//////গ Bengali Letter GA U + 0997 2455
//////ঘ Bengali Letter GHA U + 0998 2456
//////ঙ Bengali Letter NGA U + 0999 2457
//////চ Bengali Letter CA U + 099A 2458
//////ছ Bengali Letter CHA U + 099B 2459
//////জ Bengali Letter JA U + 099C 2460
//////ঝ Bengali Letter JHA U + 099D 2461
//////ঞ Bengali Letter NYA U + 099E 2462
//////ট Bengali Letter TTA U + 099F 2463
//////ঠ Bengali Letter TTHA U + 09A0 2464
//////ড Bengali Letter DDA U + 09A1 2465
//////ঢ Bengali Letter DDHA U + 09A2 2466
//////ণ Bengali Letter NNA U + 09A3 2467
//////ত Bengali Letter TA U + 09A4 2476
//////থ Bengali Letter THA U + 09A5 2477
//////দ Bengali Letter DA U + 09A6 2470
//////ধ Bengali Letter DHA U + 09A7 2471
//////ন Bengali Letter NA U + 09A8 2472
//////প Bengali Letter PA U + 09AA 2474
//////ফ Bengali Letter PHA U + 09AB 2475
//////ব Bengali Letter BA U + 09AC 2476
//////ভ Bengali Letter BHA U + 09AD 2477
//////ম Bengali Letter MA U + 09AE 2478
//////য Bengali Letter YA U + 09AF 2479
//////র Bengali Letter RA U + 09B0 2480
//////ল Bengali Letter LA U + 09B2 2482
//////শ Bengali Letter SHA U + 09B6 2486
//////ষ Bengali Letter SSA U + 09B7 2487
//////স Bengali Letter SA U + 09B8 2488
//////হ Bengali Letter HA U + 09B9 2489
///
///
///
//////় Bengali Nukta U + 09BC 2492
//////া Bengali Vowel Sign AA U + 09BE 2494
//////ি Bengali Vowel Sign I U + 09BF 2495
//////ী Bengali Vowel Sign II U + 09C0 2496
//////ু Bengali Vowel Sign U U + 09C1 2497
//////ূ Bengali Vowel Sign UU U + 09C2 2498
//////ে Bengali Vowel Sign E U + 09C7 2503
//////ৈ Bengali Vowel Sign AI U + 09C8 2504
//////ো Bengali Vowel Sign O U + 09CB 2507
//////ৌ Bengali Vowel Sign AU U + 09CC 2508
//////্ Bengali Virama(Halant) U + 09CD 2509
//////ঢ় Bengali Letter RRA U + 09DD 2525
//////য় Bengali Letter YYA U + 09DF 2527
//////০ Bengali Digit Zero U+09E6 2534
//////১ Bengali Digit One U+09E7 2535
//////২ Bengali Digit Two U+09E8 2536
//////৩ Bengali Digit Three U+09E9 2537
//////৪ Bengali Digit Four U+09EA 2538
//////৫ Bengali Digit Five U+09EB 2539
//////৬ Bengali Digit Six U+09EC 2540
//////৭ Bengali Digit Seven U+09ED 2541
//////৮ Bengali Digit Eight U+09EE 2542
//////৯ Bengali Digit Nine U+09EF 2543
//////new Tuple<string, string>("ঃ", "h"),
//////new Tuple<string, string>("া", "a"),
//////new Tuple<string, string>("ি", "i"),
//////new Tuple<string, string>("ী", "ii"),
//////new Tuple<string, string>("ু", "u"),
//////new Tuple<string, string>("ূ", "uu"),
//////new Tuple<string, string>("ৃ", "ri"),
//////new Tuple<string, string>("ে", "e"),
//////new Tuple<string, string>("ৈ", "oi"),
///
///
///////// new Tuple<string, string>("n", "ঁ"), new Tuple<string, string>("h", "ঃ"),
//////new Tuple<string, string>("a", "া"), new Tuple<string, string>("i", "ি"),
//////new Tuple<string, string>("ii", "ী"), new Tuple<string, string>("u", "ু"),
//////new Tuple<string, string>("uu", "ূ"), new Tuple<string, string>("ri", "ৃ"),
//////new Tuple<string, string>("e", "ে"), new Tuple<string, string>("oi", "ৈ"),
//////new Tuple<string, string>("o", "ো"), new Tuple<string, string>("ou", "ৌ"),
//////new Tuple<string, string>("ya", "য়") // Bengali 'ya'
///
string halant = "\u09CD"; // 2509
string bishrgs = "ঃ";
string aaakar = "া";
string horshoikaars = "ি";
string dirgaikar = "ী";
string harshookar = "ু";
string dirghaukar = "ূ";
string rrikaar = "ৃ";
string ekaar = "ে";
string oikaar = "ৈ";
string O_kaar = "ো";
string Ou___kaar = "ৌ";
string jyafalas = "য়";//yes this i yafalas also
// string dari = "\u0964";
// Console.OutputEncoding = Encoding.UTF8;
// Console.InputEncoding = Encoding.UTF8;
// Update paths if needed
string inputFilePath = filename_with_bengaliswords;// "input.txt"; // File containing Bengali words (one per line)
string outputFilePath = filename_with_bengaliswords + "_unikodified.txt";// "output.txt"; // File to write the output format
if (!File.Exists(inputFilePath))
{
Console.WriteLine($"Input file '{inputFilePath}' not found.");
return;
}// if (!File.Exists(inputFilePath))
string dari = "\u0964";
/// string[] bengaliWords = File.ReadAllLines(inputFilePath, Encoding.UTF8);
///
string bengaliWordsrawreads = File.ReadAllText(inputFilePath, Encoding.UTF8);
string[] bengaliWords = bengaliWordsrawreads.Split(new string[] { "\r\n", "\r", "\n", " " , ",", ";", ".", dari }, StringSplitOptions.RemoveEmptyEntries);
StringBuilder output = new StringBuilder();
output.Clear();
StringBuilder output_without_hashes_and_the_vowelsigns_splitted = new StringBuilder();
output_without_hashes_and_the_vowelsigns_splitted.Clear();
StringBuilder output_for_reversed_words__unicodes= new StringBuilder();
output_for_reversed_words__unicodes.Clear();
List<string> ___temp_list_of_string___for_windowed_words = new List<string>();
___temp_list_of_string___for_windowed_words.Clear();
string ___temp_string_to_split_syllables = "";
string ___temp_string_for___unicodes_numbers_ = "";
StringBuilder ___temp_stringbuilder_for_windowed_substrings = new StringBuilder();
___temp_stringbuilder_for_windowed_substrings.Clear();
List<string> ___temp_list_of_reversed_string___for_windowed_words = new List<string>();
___temp_list_of_reversed_string___for_windowed_words.Clear();
///////////////////////////////////////////////////////////////
StringBuilder ___temp_for_reversed_strings_stringbuilder_for_windowed_substrings = new StringBuilder();
___temp_for_reversed_strings_stringbuilder_for_windowed_substrings.Clear();
foreach (string word in bengaliWords)
{
string trimmedWord = word.Trim();
string reversed___trimmedWord =( new string(trimmedWord.ToCharArray().Reverse().ToArray())).TrimEnd().TrimStart().Trim();// (word.Trim().ToCharArray().Reverse()).TrimEnd().TrimStart().Trim().ToString();
int length_of_word = trimmedWord.Length;
for (int start_pos=0; start_pos<=(length_of_word-1); start_pos++)
{
for (int window_width = 1; window_width <= (length_of_word - start_pos); window_width++)
{
try
{
___temp_list_of_string___for_windowed_words
.Add(trimmedWord.Substring(start_pos, window_width));
///////////////////////////////////////////////////////////////
___temp_stringbuilder_for_windowed_substrings
.AppendLine(trimmedWord.Substring(start_pos, window_width));
}
catch (Exception _excp)
{
}//catch(Exception _excp)
}//for (int window_width = 1; window_width < (length_of_word - start_pos); window_width++)
}// for(int start_pos=0; start_pos<(length_of_word-1); start_pos++)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
for (int start_pos = 0; start_pos <= (length_of_word - 1); start_pos++)
{
for (int window_width = 1; window_width <= (length_of_word - start_pos); window_width++)
{
try
{
___temp_list_of_reversed_string___for_windowed_words
.Add(reversed___trimmedWord.Substring(start_pos, window_width));
///////////////////////////////////////////////////////////////
___temp_for_reversed_strings_stringbuilder_for_windowed_substrings
.AppendLine(reversed___trimmedWord.Substring(start_pos, window_width));
}
catch (Exception _excp)
{
}//catch(Exception _excp)
}//for (int window_width = 1; window_width < (length_of_word - start_pos); window_width++)
}// for(int start_pos=0; start_pos<(length_of_word-1); start_pos++)
output_for_reversed_words__unicodes
.Append(trimmedWord + " reversed is " + reversed___trimmedWord + " ");
___temp_string_to_split_syllables = "";
___temp_string_for___unicodes_numbers_ = "";
if (string.IsNullOrWhiteSpace(trimmedWord))
{
continue;
}// if (string.IsNullOrWhiteSpace(trimmedWord))
else
{
output.Append(trimmedWord + " ");
output_without_hashes_and_the_vowelsigns_splitted.Append(trimmedWord + " ");
//////trimmedWord
////// =
////// trimmedWord
////// .Replace("অ্যাং","|অ্যাং|")
////// ;
string _____preconditioned_sylls_trimmed_word = "";
_____preconditioned_sylls_trimmed_word = trimmedWord;
_____preconditioned_sylls_trimmed_word
=
_____preconditioned_sylls_trimmed_word
.Replace("খি", "| খি |")
.Replace("খে", "| খে |")
.Replace("খৈ", "| খৈ |")
.Replace("খা", "| খা |")
.Replace("খী", "| খী |")
.Replace("খু", "| খু |")
.Replace("খূ", "| খূ |")
.Replace("খো", "| খো |")
.Replace("খৃ", "| খৃ |")
.Replace("খৄ", "| খৄ |")
.Replace("খৌ", "| খৌ |")
.Replace("কি", "| কি |")
.Replace("কে", "| কে |")
.Replace("কৈ", "| কৈ |")
.Replace("কা", "| কা |")
.Replace("কী", "| কী |")
.Replace("কু", "| কু |")
.Replace("কূ", "| কূ |")
.Replace("কৃ", "| কৃ |")
.Replace("কৄ", "| কৄ |")
.Replace("কৌ", "| কৌ |")
.Replace("কো", "| কো |")
.Replace("ঘি", "| ঘি |")
.Replace("ঘে", "| ঘে |")
.Replace("ঘৈ", "| ঘৈ |")
.Replace("ঘা", "| ঘা |")
.Replace("ঘী", "| ঘী |")
.Replace("ঘু", "| ঘু |")
.Replace("ঘূ", "| ঘূ |")
.Replace("ঘৄ", "| ঘৄ |")
.Replace("ঘৃ", "| ঘৃ |")
.Replace("ঘৌ", "| ঘৌ |")
.Replace("ঘো", "| ঘো |")
.Replace("গি", "| গি |")
.Replace("গী", "| গী |")
.Replace("গে", "| গে |")
.Replace("গৈ", "| গৈ |")
.Replace("গা", "| গা |")
.Replace("গু", "| গু |")
.Replace("গূ", "| গূ |")
.Replace("গৃ", "| গৃ |")
.Replace("গৄ", "| গৄ |")
.Replace("গো", "| গো |")
.Replace("গৌ", "| গৌ |")
.Replace("ঙি", "| ঙি |")
.Replace("ঙে", "| ঙে |")
.Replace("ঙৈ", "| ঙৈ |")
.Replace("ঙা", "| ঙা |")
.Replace("ঙী", "| ঙী |")
.Replace("ঙু", "| ঙু |")
.Replace("ঙূ", "| ঙূ |")
.Replace("ঙৃ", "| ঙৃ |")
.Replace("ঙৄ", "| ঙৄ |")
.Replace("ঙৌ", "| ঙৌ |")
.Replace("ঙো", "| ঙো |")
.Replace("ছি", "| ছি |")
.Replace("ছী", "| ছী |")
.Replace("ছে", "| ছে |")
.Replace("ছৈ", "| ছৈ |")
.Replace("ছা", "| ছা |")
.Replace("ছু", "| ছু |")
.Replace("ছূ", "| ছূ |")
.Replace("ছৃ", "| ছৃ |")
.Replace("ছৄ", "| ছৄ |")
.Replace("ছৌ", "| ছৌ |")
.Replace("ছো", "| ছো |")
.Replace("চি", "| চি |")
.Replace("চে", "| চে |")
.Replace("চৈ", "| চৈ |")
.Replace("চা", "| চা |")
.Replace("চী", "| চী |")
.Replace("চু", "| চু |")
.Replace("চূ", "| চূ |")
.Replace("চৃ", "| চৃ |")
.Replace("চৄ", "| চৄ |")
.Replace("চো", "| চো |")
.Replace("চৌ", "| চৌ |")
.Replace("ঝি", "| ঝি |")
.Replace("ঝে", "| ঝে |")
.Replace("ঝৈ", "| ঝৈ |")
.Replace("ঝা", "| ঝা |")
.Replace("ঝী", "| ঝী |")
.Replace("ঝু", "| ঝু |")
.Replace("ঝূ", "| ঝূ |")
.Replace("ঝৃ", "| ঝৃ |")
.Replace("ঝৄ", "| ঝৄ |")
.Replace("ঝৌ", "| ঝৌ |")
.Replace("ঝো", "| ঝো |")
.Replace("জি", "| জি |")
.Replace("জে", "| জে |")
.Replace("জৈ", "| জৈ |")
.Replace("জা", "| জা |")
.Replace("জী", "| জী |")
.Replace("জু", "| জু |")
.Replace("জূ", "| জূ |")
.Replace("জৃ", "| জৃ |")
.Replace("জৄ", "| জৄ |")
.Replace("জৌ", "| জৌ |")
.Replace("জো", "| জো |")
.Replace("ঞি", "| ঞি |")
.Replace("ঞী", "| ঞী |")
.Replace("ঞে", "| ঞে |")
.Replace("ঞৈ", "| ঞৈ |")
.Replace("ঞা", "| ঞা |")
.Replace("ঞু", "| ঞু |")
.Replace("ঞূ", "| ঞূ |")
.Replace("ঞৃ", "| ঞৃ |")
.Replace("ঞৄ", "| ঞৄ |")
.Replace("ঞো", "| ঞো |")
.Replace("ঞৌ", "| ঞৌ |")
.Replace("ঠি", "| ঠি |")
.Replace("ঠে", "| ঠে |")
.Replace("ঠৈ", "| ঠৈ |")
.Replace("ঠা", "| ঠা |")
.Replace("ঠী", "| ঠী |")
.Replace("ঠু", "| ঠু |")
.Replace("ঠূ", "| ঠূ |")
.Replace("ঠৃ", "| ঠৃ |")
.Replace("ঠৄ", "| ঠৄ |")
.Replace("ঠৌ", "| ঠৌ |")
.Replace("ঠো", "| ঠো |")
.Replace("টি", "| টি |")
.Replace("টী", "| টী |")
.Replace("টে", "| টে |")
.Replace("টৈ", "| টৈ |")
.Replace("টা", "| টা |")
.Replace("টু", "| টু |")
.Replace("টূ", "| টূ |")
.Replace("টৃ", "| টৃ |")
.Replace("টৄ", "| টৄ |")
.Replace("টৌ", "| টৌ |")
.Replace("টো", "| টো |")
.Replace("ডি", "| ডি |")
.Replace("ডে", "| ডে |")
.Replace("ডৈ", "| ডৈ |")
.Replace("ডা", "| ডা |")
.Replace("ডী", "| ডী |")
.Replace("ডু", "| ডু |")
.Replace("ডূ", "| ডূ |")
.Replace("ডৃ", "| ডৃ |")
.Replace("ডৄ", "| ডৄ |")
.Replace("ডৌ", "| ডৌ |")
.Replace("ডো", "| ডো |")
.Replace("ঢি", "| ঢি |")
.Replace("ঢে", "| ঢে |")
.Replace("ঢৈ", "| ঢৈ |")
.Replace("ঢা", "| ঢা |")
.Replace("ঢী", "| ঢী |")
.Replace("ঢু", "| ঢু |")
.Replace("ঢূ", "| ঢূ |")
.Replace("ঢৃ", "| ঢৃ |")
.Replace("ঢৄ", "| ঢৄ |")
.Replace("ঢো", "| ঢো |")
.Replace("ঢৌ", "| ঢৌ |")
.Replace("ণি", "| ণি |")
.Replace("ণে", "| ণে |")
.Replace("ণৈ", "| ণৈ |")
.Replace("ণা", "| ণা |")
.Replace("ণী", "| ণী |")
.Replace("ণু", "| ণু |")
.Replace("ণূ", "| ণূ |")
.Replace("ণৃ", "| ণৃ |")
.Replace("ণৄ", "| ণৄ |")
.Replace("ণো", "| ণো |")
.Replace("ণৌ", "| ণৌ |")
.Replace("থি", "| থি |")
.Replace("থী", "| থী |")
.Replace("থে", "| থে |")
.Replace("থৈ", "| থৈ |")
.Replace("থা", "| থা |")
.Replace("থু", "| থু |")
.Replace("থূ", "| থূ |")
.Replace("থৃ", "| থৃ |")
.Replace("থৄ", "| থৄ |")
.Replace("থৌ", "| থৌ |")
.Replace("থো", "| থো |")
.Replace("তি", "| তি |")
.Replace("তে", "| তে |")
.Replace("তৈ", "| তৈ |")
.Replace("তা", "| তা |")
.Replace("তী", "| তী |")
.Replace("তু", "| তু |")
.Replace("তূ", "| তূ |")
.Replace("তৃ", "| তৃ |")
.Replace("তৄ", "| তৄ |")
.Replace("তৌ", "| তৌ |")
.Replace("তো", "| তো |")
.Replace("ধি", "| ধি |")
.Replace("ধী", "| ধী |")
.Replace("ধে", "| ধে |")
.Replace("ধৈ", "| ধৈ |")
.Replace("ধা", "| ধা |")
.Replace("ধু", "| ধু |")
.Replace("ধূ", "| ধূ |")
.Replace("ধৃ", "| ধৃ |")
.Replace("ধৄ", "| ধৄ |")
.Replace("ধৌ", "| ধৌ |")
.Replace("ধো", "| ধো |")
.Replace("দি", "| দি |")
.Replace("দী", "| দী |")
.Replace("দে", "| দে |")
.Replace("দৈ", "| দৈ |")
.Replace("দা", "| দা |")
.Replace("দু", "| দু |")
.Replace("দূ", "| দূ |")
.Replace("দৃ", "| দৃ |")
.Replace("দৄ", "| দৄ |")
.Replace("দৌ", "| দৌ |")
.Replace("দো", "| দো |")
.Replace("পি", "| পি |")
.Replace("পে", "| পে |")
.Replace("পৈ", "| পৈ |")
.Replace("পা", "| পা |")
.Replace("পী", "| পী |")
.Replace("পু", "| পু |")
.Replace("পূ", "| পূ |")
.Replace("পৃ", "| পৃ |")
.Replace("পৄ", "| পৄ |")
.Replace("পৌ", "| পৌ |")
.Replace("পো", "| পো |")
.Replace("ফি", "| ফি |")
.Replace("ফে", "| ফে |")
.Replace("ফৈ", "| ফৈ |")
.Replace("ফা", "| ফা |")
.Replace("ফী", "| ফী |")
.Replace("ফু", "| ফু |")
.Replace("ফূ", "| ফূ |")
.Replace("ফৃ", "| ফৃ |")
.Replace("ফৄ", "| ফৄ |")
.Replace("ফৌ", "| ফৌ |")
.Replace("ফো", "| ফো |")
.Replace("বি", "| বি |")
.Replace("বে", "| বে |")
.Replace("বৈ", "| বৈ |")
.Replace("বা", "| বা |")
.Replace("বী", "| বী |")
.Replace("বু", "| বু |")
.Replace("বূ", "| বূ |")
.Replace("বৃ", "| বৃ |")
.Replace("বৄ", "| বৄ |")
.Replace("বো", "| বো |")
.Replace("বৌ", "| বৌ |")
.Replace("ভি", "| ভি |")
.Replace("ভে", "| ভে |")
.Replace("ভৈ", "| ভৈ |")
.Replace("ভা", "| ভা |")
.Replace("ভী", "| ভী |")
.Replace("ভু", "| ভু |")
.Replace("ভূ", "| ভূ |")
.Replace("ভৃ", "| ভৃ |")
.Replace("ভৄ", "| ভৄ |")
.Replace("ভো", "| ভো |")
.Replace("ভৌ", "| ভৌ |")
.Replace("মি", "| মি |")
.Replace("মে", "| মে |")
.Replace("মা", "| মা |")
.Replace("মী", "| মী |")
.Replace("মু", "| মু |")
.Replace("মূ", "| মূ |")
.Replace("মৃ", "| মৃ |")
.Replace("মৄ", "| মৄ |")
.Replace("মৈ", "| মৈ |")
.Replace("মৌ", "| মৌ |")
.Replace("মো", "| মো |")
.Replace("যি", "| যি |")
.Replace("যে", "| যে |")
.Replace("যৈ", "| যৈ |")
.Replace("যা", "| যা |")
.Replace("যী", "| যী |")
.Replace("যু", "| যু |")
.Replace("যূ", "| যূ |")
.Replace("যৃ", "| যৃ |")
.Replace("যৄ", "| যৄ |")
.Replace("যো", "| যো |")
.Replace("যৌ", "| যৌ |")
.Replace("রি", "| রি |")
.Replace("রী", "| রী |")
.Replace("রে", "| রে |")
.Replace("রৈ", "| রৈ |")
.Replace("রা", "| রা |")
.Replace("রু", "| রু |")
.Replace("রূ", "| রূ |")
.Replace("রৃ", "| রৃ |")
.Replace("রৄ", "| রৄ |")
.Replace("রৌ", "| রৌ |")
.Replace("রো", "| রো |")
.Replace("লি", "| লি |")
.Replace("লী", "| লী |")
.Replace("লে", "| লে |")
.Replace("লৈ", "| লৈ |")
.Replace("লা", "| লা |")
.Replace("লু", "| লু |")
.Replace("লূ", "| লূ |")
.Replace("লৃ", "| লৃ |")
.Replace("লৄ", "| লৄ |")
.Replace("লৌ", "| লৌ |")
.Replace("লো", "| লো |")
.Replace("ষি", "| ষি |")
.Replace("ষে", "| ষে |")
.Replace("ষী", "| ষী |")
.Replace("ষৈ", "| ষৈ |")
.Replace("ষা", "| ষা |")
.Replace("ষু", "| ষু |")
.Replace("ষূ", "| ষূ |")
.Replace("ষৃ", "| ষৃ |")
.Replace("ষৄ", "| ষৄ |")
.Replace("ষৌ", "| ষৌ |")
.Replace("ষো", "| ষো |")
.Replace("শি", "| শি |")
.Replace("শী", "| শী |")
.Replace("শে", "| শে |")
.Replace("শৈ", "| শৈ |")
.Replace("শা", "| শা |")
.Replace("শু", "| শু |")
.Replace("শূ", "| শূ |")
.Replace("শৃ", "| শৃ |")
.Replace("শৄ", "| শৄ |")
.Replace("শৌ", "| শৌ |")
.Replace("শো", "| শো |")
.Replace("সি", "| সি |")
.Replace("সী", "| সী |")
.Replace("সে", "| সে |")
.Replace("সৈ", "| সৈ |")
.Replace("সা", "| সা |")
.Replace("সু", "| সু |")
.Replace("সূ", "| সূ |")
.Replace("সৃ", "| সৃ |")
.Replace("সৄ", "| সৄ |")
.Replace("সৌ", "| সৌ |")
.Replace("সো", "| সো |")
.Replace("হি", "| হি |")
.Replace("হী", "| হী |")
.Replace("হে", "| হে |")
.Replace("হৈ", "| হৈ |")
.Replace("হা", "| হা |")
.Replace("হু", "| হু |")
.Replace("হূ", "| হূ |")
.Replace("হৃ", "| হৃ |")
.Replace("হৄ", "| হৄ |")
.Replace("হৌ", "| হৌ |")
.Replace("হো", "| হো |")
.Replace("নি", "| নি |")
.Replace("নে", "| নে |")
.Replace("নৈ", "| নৈ |")
.Replace("না", "| না |")
.Replace("নী", "| নী |")
.Replace("নু", "| নু |")
.Replace("নূ", "| নূ |")
.Replace("নৃ", "| নৃ |")
.Replace("নৄ", "| নৄ |")
.Replace("নো", "| নো |")
.Replace("নৌ", "| নৌ |")
.Replace("ঝ", "| ঝ |")
.Replace("ঞ", "| ঞ |")
.Replace("ঠ", "| ঠ |")
.Replace("ঢ", "| ঢ |")
.Replace("ধ", "| ধ |")
.Replace("ড", "| ড |")
.Replace("য", "| য |")
.Replace("ষ", "| ষ |")
.Replace("শ", "| শ |")
.Replace("হ", "| হ |")
.Replace("স", "| স |")
.Replace("ম", "| ম |")
.Replace("ভ", "| ভ |")
.Replace("ব", "| ব |")
.Replace("ফ", "| ফ |")
.Replace("প", "| প |")
.Replace("ণ", "| ণ |")
.Replace("ল", "| ল |")
.Replace("র", "| র |")
.Replace("ন", "| ন |")
.Replace("দ", "| দ |")
.Replace("থ", "| থ |")
.Replace("ঙ", "| ঙ |")
.Replace("ট", "| ট |")
.Replace("ত", "| ত |")
.Replace("জ", "| জ |")
.Replace("ছ", "| ছ |")
.Replace("চ", "| চ |")
.Replace("ঘ", "| ঘ |")
.Replace("গ", "| গ |")
.Replace("খ", "| খ |")
.Replace("ক", "| ক |")
.Replace("অ", "| অ |")
.Replace("আ", "| আ |")
.Replace("ই", "| ই |")
.Replace("ঈ", "| ঈ |")
.Replace("উ", "| উ |")
.Replace("ঊ", "| ঊ |")
.Replace("ঋ", "| ঋ |")
.Replace("এ", "| এ |")
.Replace("ঐ", "| ঐ |")
.Replace("ও", "| ও |")
.Replace("অং", "| অং |")
.Replace("ঋ", "| ঋ |")
.Replace("এই", "| এই |")
.Replace("য়", "| য় |")
//ঞ্চিৎ
.Replace("ঞ্চিৎ", "| ঞ্চিৎ |")
.Replace("ৎ", "| ৎ |")
////////////////////////////////////////////
///
.Replace("ক্ক", "| ক্ক |")
.Replace("ক্ট", "| ক্ট |")
.Replace("ক্ত", "| ক্ত |")
.Replace("ক্ন", "| ক্ন |")
.Replace("ক্ব", "| ক্ব |")
.Replace("ক্ম", "| ক্ম |")
.Replace("ক্য", "| ক্য |")
.Replace("ক্র", "| ক্র |")
.Replace("ক্ল", "| ক্ল |")
.Replace("ক্ষ", "| ক্ষ |")
.Replace("ক্স", "| ক্স |")
.Replace("খ্য", "| খ্য |")
.Replace("খ্র", "| খ্র |")
.Replace("গ্গ", "| গ্গ |")
.Replace("গ্ধ", "| গ্ধ |")
.Replace("গ্ন", "| গ্ন |")
.Replace("গ্ব", "| গ্ব |")
.Replace("গ্ম", "| গ্ম |")
.Replace("গ্য", "| গ্য |")
.Replace("গ্র", "| গ্র |")
.Replace("গ্ল", "| গ্ল |")
.Replace("ঘ্ন", "| ঘ্ন |")
.Replace("ঘ্য", "| ঘ্য |")
.Replace("ঘ্র", "| ঘ্র |")
.Replace("ঙ্ক", "| ঙ্ক |")
.Replace("ঙ্খ", "| ঙ্খ |")
.Replace("ঙ্গ", "| ঙ্গ |")
.Replace("ঙ্ঘ", "| ঙ্ঘ |")
.Replace("ঙ্ম", "| ঙ্ম |")
.Replace("ঙ্য", "| ঙ্য |")
.Replace("ঙ্র", "| ঙ্র |")
.Replace("চ্চ", "| চ্চ |")
.Replace("চ্ছ", "| চ্ছ |")
.Replace("চ্য", "| চ্য |")
.Replace("চ্র", "| চ্র |")
.Replace("ছ্য", "| ছ্য |")
.Replace("ছ্র", "| ছ্র |")
.Replace("জ্জ", "| জ্জ |")
.Replace("জ্ঝ", "| জ্ঝ |")
.Replace("জ্ঞ", "| জ্ঞ |")
.Replace("জ্ব", "| জ্ব |")
.Replace("জ্য", "| জ্য |")
.Replace("জ্র", "| জ্র |")
.Replace("ঝ্য", "| ঝ্য |")
.Replace("ঝ্র", "| ঝ্র |")
.Replace("ঞ্চ", "| ঞ্চ |")
.Replace("ঞ্ছ", "| ঞ্ছ |")
.Replace("ঞ্জ", "| ঞ্জ |")
.Replace("ঞ্ঝ", "| ঞ্ঝ |")
.Replace("ঞ্য", "| ঞ্য |")
.Replace("ঞ্র", "| ঞ্র |")
.Replace("ঞ", "| ঞ |")
.Replace("ট্ট", "| ট্ট |")
.Replace("ট্ব", "| ট্ব |")
.Replace("ট্য", "| ট্য |")
.Replace("ট্র", "| ট্র |")
.Replace("ঠ্য", "| ঠ্য |")
.Replace("ঠ্র", "| ঠ্র |")
.Replace("ড্ড", "| ড্ড |")
.Replace("ড্য", "| ড্য |")
.Replace("ড্র", "| ড্র |")
.Replace("ঢ্য", "| ঢ্য |")
.Replace("ঢ্র", "| ঢ্র |")
.Replace("ণ্ট", "| ণ্ট |")
.Replace("ণ্ঠ", "| ণ্ঠ |")
.Replace("ণ্ড", "| ণ্ড |")
.Replace("ণ্ঢ", "| ণ্ঢ |")
.Replace("ণ্ণ", "| ণ্ণ |")
.Replace("ণ্ব", "| ণ্ব |")
.Replace("ণ্ম", "| ণ্ম |")
.Replace("ণ্য", "| ণ্য |")
.Replace("ণ্র", "| ণ্র |")
.Replace("ত্ত", "| ত্ত |")
.Replace("ত্থ", "| ত্থ |")
.Replace("ত্ন", "| ত্ন |")
.Replace("ত্ব", "| ত্ব |")
.Replace("ত্ম", "| ত্ম |")
.Replace("ত্য", "| ত্য |")
.Replace("ত্র", "| ত্র |")
.Replace("থ্ব", "| থ্ব |")
.Replace("থ্য", "| থ্য |")
.Replace("থ্র", "| থ্র |")
.Replace("দ্দ", "| দ্দ |")
.Replace("দ্ধ", "| দ্ধ |")
.Replace("দ্ব", "| দ্ব |")
.Replace("দ্ভ", "| দ্ভ |")
.Replace("দ্ম", "| দ্ম |")
.Replace("দ্য", "| দ্য |")
.Replace("দ্র", "| দ্র |")
.Replace("ধ্ন", "| ধ্ন |")
.Replace("ধ্য", "| ধ্য |")
.Replace("ধ্র", "| ধ্র |")
.Replace("ন্জ", "| ন্জ |")
.Replace("ন্ট", "| ন্ট |")
.Replace("ন্ঠ", "| ন্ঠ |")
.Replace("ন্ড", "| ন্ড |")
.Replace("ন্ত", "| ন্ত |")
.Replace("ন্থ", "| ন্থ |")
.Replace("ন্দ", "| ন্দ |")
.Replace("ন্ধ", "| ন্ধ |")
.Replace("ন্ন", "| ন্ন |")
.Replace("ন্ব", "| ন্ব |")
.Replace("ন্ম", "| ন্ম |")
.Replace("ন্য", "| ন্য |")
.Replace("ন্র", "| ন্র |")
.Replace("ন্স", "| ন্স |")
.Replace("প্ট", "| প্ট |")
.Replace("প্ত", "| প্ত |")
.Replace("প্ন", "| প্ন |")
.Replace("প্প", "| প্প |")
.Replace("প্য", "| প্য |")
.Replace("প্র", "| প্র |")
.Replace("প্ল", "| প্ল |")
.Replace("প্স", "| প্স |")
.Replace("ফ্ট", "| ফ্ট |")
.Replace("ফ্য", "| ফ্য |")
.Replace("ফ্র", "| ফ্র |")
.Replace("ফ্ল", "| ফ্ল |")
.Replace("ব্জ", "| ব্জ |")
.Replace("ব্দ", "| ব্দ |")
.Replace("ব্ধ", "| ব্ধ |")
.Replace("ব্ব", "| ব্ব |")
.Replace("ব্ভ", "| ব্ভ |")
.Replace("ব্য", "| ব্য |")
.Replace("ব্র", "| ব্র |")
.Replace("ব্ল", "| ব্ল |")
.Replace("ভ্য", "| ভ্য |")
.Replace("ভ্র", "| ভ্র |")
.Replace("ম্ন", "| ম্ন |")
.Replace("ম্প", "| ম্প |")
.Replace("ম্ফ", "| ম্ফ |")
.Replace("ম্ব", "| ম্ব |")
.Replace("ম্ভ", "| ম্ভ |")
.Replace("ম্ম", "| ম্ম |")
.Replace("ম্য", "| ম্য |")
.Replace("ম্র", "| ম্র |")
.Replace("ম্ল", "| ম্ল |")
.Replace("য্য", "| য্য |")
.Replace("য্র", "| য্র |")
.Replace("র্ক", "| র্ক |")
.Replace("র্খ", "| র্খ |")
.Replace("র্গ", "| র্গ |")
.Replace("র্ঘ", "| র্ঘ |")
.Replace("র্ঙ", "| র্ঙ |")
.Replace("র্চ", "| র্চ |")
.Replace("র্ছ", "| র্ছ |")
.Replace("র্জ", "| র্জ |")
.Replace("র্ঝ", "| র্ঝ |")
.Replace("র্ঞ", "| র্ঞ |")
.Replace("র্ট", "| র্ট |")
.Replace("র্ঠ", "| র্ঠ |")
.Replace("র্ড", "| র্ড |")
.Replace("র্ঢ", "| র্ঢ |")
.Replace("র্ণ", "| র্ণ |")
.Replace("র্ত", "| র্ত |")
.Replace("র্থ", "| র্থ |")
.Replace("র্দ", "| র্দ |")
.Replace("র্ধ", "| র্ধ |")
.Replace("র্ন", "| র্ন |")
.Replace("র্প", "| র্প |")
.Replace("র্ফ", "| র্ফ |")
.Replace("র্ব", "| র্ব |")
.Replace("র্ভ", "| র্ভ |")
.Replace("র্ম", "| র্ম |")
.Replace("র্য", "| র্য |")
.Replace("র্র", "| র্র |")
.Replace("র্ল", "| র্ল |")
.Replace("র্শ", "| র্শ |")
.Replace("র্ষ", "| র্ষ |")
.Replace("র্স", "| র্স |")
.Replace("র্হ", "| র্হ |")
.Replace("ল্ক", "| ল্ক |")
.Replace("ল্গ", "| ল্গ |")
.Replace("ল্ট", "| ল্ট |")
.Replace("ল্ড", "| ল্ড |")
.Replace("ল্প", "| ল্প |")
.Replace("ল্ফ", "| ল্ফ |")
.Replace("ল্ব", "| ল্ব |")
.Replace("ল্ম", "| ল্ম |")
.Replace("ল্য", "| ল্য |")
.Replace("ল্র", "| ল্র |")
.Replace("ল্ল", "| ল্ল |")
.Replace("ল্স", "| ল্স |")
.Replace("শ্চ", "| শ্চ |")
.Replace("শ্ছ", "| শ্ছ |")
.Replace("শ্ত", "| শ্ত |")
.Replace("শ্ন", "| শ্ন |")
.Replace("শ্ব", "| শ্ব |")
.Replace("শ্ম", "| শ্ম |")
.Replace("শ্য", "| শ্য |")
.Replace("শ্র", "| শ্র |")
.Replace("শ্ল", "| শ্ল |")
.Replace("ষ্ক", "| ষ্ক |")
.Replace("ষ্ট", "| ষ্ট |")
.Replace("ষ্ঠ", "| ষ্ঠ |")
.Replace("ষ্ণ", "| ষ্ণ |")
.Replace("ষ্প", "| ষ্প |")
.Replace("ষ্ফ", "| ষ্ফ |")
.Replace("ষ্ব", "| ষ্ব |")
.Replace("ষ্ম", "| ষ্ম |")
.Replace("ষ্য", "| ষ্য |")
.Replace("ষ্র", "| ষ্র |")
.Replace("স্ক", "| স্ক |")
.Replace("স্খ", "| স্খ |")
.Replace("স্ট", "| স্ট |")
.Replace("স্ত", "| স্ত |")
.Replace("স্থ", "| স্থ |")
.Replace("স্ন", "| স্ন |")
.Replace("স্প", "| স্প |")
.Replace("স্ফ", "| স্ফ |")
.Replace("স্ব", "| স্ব |")
.Replace("স্ম", "| স্ম |")
.Replace("স্য", "| স্য |")
.Replace("স্র", "| স্র |")
.Replace("স্ল", "| স্ল |")
.Replace("হ্ণ", "| হ্ণ |")
.Replace("হ্ন", "| হ্ন |")
.Replace("হ্ব", "| হ্ব |")
.Replace("হ্ম", "| হ্ম |")
.Replace("হ্য", "| হ্য |")
.Replace("হ্র", "| হ্র |")
.Replace("হ্ল", "| হ্ল |")
.Replace("র্অ", "| র্অ |")
.Replace("র্আ", "| র্আ |")
.Replace("র্ই", "| র্ই |")
.Replace("র্ঈ", "| র্ঈ |")
.Replace("র্উ", "| র্উ |")
.Replace("র্ঊ", "| র্ঊ |")
.Replace("র্ঋ", "| র্ঋ |")
.Replace("র্ঌ", "| র্ঌ |")
.Replace("র্এ", "| র্এ |")
.Replace("র্ঐ", "| র্ঐ |")
.Replace("র্ও", "| র্ও |")
.Replace("র্ঔ", "| র্ঔ |")
.Replace("ল", "| ল |")
.Replace("র্অ", "| র্অ |")
.Replace("র্আ", "| র্আ |")
.Replace("র্ই", "| র্ই |")
.Replace("র্ঈ", "| র্ঈ |")
.Replace("র্উ", "| র্উ |")
.Replace("র্ঊ", "| র্ঊ |")
.Replace("র্ঋ", "| র্ঋ |")
.Replace("ক্ঌ", "| ক্ঌ |")
.Replace("খ্ঌ", "| খ্ঌ |")
.Replace("গ্ঌ", "| গ্ঌ |")
.Replace("ঘ্ঌ", "| ঘ্ঌ |")
.Replace("ঙ্ঌ", "| ঙ্ঌ |")
.Replace("চ্ঌ", "| চ্ঌ |")
.Replace("ছ্ঌ", "| ছ্ঌ |")
.Replace("জ্ঌ", "| জ্ঌ |")
.Replace("ঝ্ঌ", "| ঝ্ঌ |")
.Replace("ঞ্ঌ", "| ঞ্ঌ |")
.Replace("ট্ঌ", "| ট্ঌ |")
.Replace("ঠ্ঌ", "| ঠ্ঌ |")
.Replace("ড্ঌ", "| ড্ঌ |")
.Replace("ঢ্ঌ", "| ঢ্ঌ |")
.Replace("ণ্ঌ", "| ণ্ঌ |")
.Replace("ত্ঌ", "| ত্ঌ |")
.Replace("থ্ঌ", "| থ্ঌ |")
.Replace("দ্ঌ", "| দ্ঌ |")
.Replace("ধ্ঌ", "| ধ্ঌ |")
.Replace("ন্ঌ", "| ন্ঌ |")
.Replace("প্ঌ", "| প্ঌ |")
.Replace("ফ্ঌ", "| ফ্ঌ |")
.Replace("ব্ঌ", "| ব্ঌ |")
.Replace("ভ্ঌ", "| ভ্ঌ |")
.Replace("ম্ঌ", "| ম্ঌ |")
.Replace("য্ঌ", "| য্ঌ |")
.Replace("র্ঌ", "| র্ঌ |")
.Replace("ল্ঌ", "| ল্ঌ |")
.Replace("শ্ঌ", "| শ্ঌ |")
.Replace("ষ্ঌ", "| ষ্ঌ |")
.Replace("স্ঌ", "| স্ঌ |")
.Replace("হ্ঌ", "| হ্ঌ |")
.Replace("র্এ", "| র্এ |")
.Replace("র্ঐ", "| র্ঐ |")
.Replace("র্ও", "| র্ও |")
.Replace("র্ঔ", "| র্ঔ |")
//new findings
.Replace("য়া", "| য়া |")
.Replace("য়া", "| য়া |")
;
// foreach (char ch in trimmedWord)
foreach (char ch in _____preconditioned_sylls_trimmed_word)
{
if( ((int)ch >= 2432) && ((int)ch <= 2559))
{
////////////া Bengali Vowel Sign AA U+09BE 2494
////////////ি Bengali Vowel Sign I U+09BF 2495
////////////ী Bengali Vowel Sign II U+09C0 2496
////////////ু Bengali Vowel Sign U U+09C1 2497
////////////ূ Bengali Vowel Sign UU U+09C2 2498
////////////ে Bengali Vowel Sign E U+09C7 2503
////////////ৈ Bengali Vowel Sign AI U+09C8 2504
////////////ো Bengali Vowel Sign O U+09CB 2507
////////////ৌ Bengali Vowel Sign AU U+09CC 2508
////////////্ Bengali Virama(Halant) U+09CD 2509
///
output.Append("#" + ((int)ch) + ";");
if(
//preconditioned
((int)ch == 2494)
||
((int)ch == 2495)
||
((int)ch == 2496)
||
((int)ch == 2497)
||
((int)ch == 2498)
||
((int)ch == 2503)
||
((int)ch == 2504)
||
//the ng symbols
((int)ch == 2434)
////////////ঁ Bengali Sign Candrabindu U+0981 2433
// ||
//////((int)ch == 2433)
////////now we have the plans to reorient the pipes while syllabling that
//////////////////ঁ Bengali Sign Candrabindu U+0981 2433
||
((int)ch == 2433)
||
////////////ং Bengali Sign Anusvara U+0982 2434
((int)ch == 2464)
//////ঃ Bengali Sign Visarga U+0983 2435
||
//////ং Bengali Sign Anusvara U+0982 2434
((int)ch == 2435)
||
((int)ch == 2507)
||
((int)ch == 2508)
////// //2499 ree kar
||
((int)ch == 2499)
/////////////////////////////////////////////
//////||
//////((int)ch == 2509)//halantas are to keep togather
//////////////য় Bengali Letter YYA U+09DF 2527
///
||
((int)ch == 2527)
// rrr
////////////অ Bengali Letter A U+0985 2437
||
((int)ch == 2437)
////////////আ Bengali Letter AA U+0986 2438
||
((int)ch == 2438)
////////////ই Bengali Letter I U+0987 2439
||
((int)ch == 2439)
////////////ঈ Bengali Letter II U+0988 2440
||
((int)ch == 2440)
////////////উ Bengali Letter U U+0989 2441
||
((int)ch == 2441)
////////////ঊ Bengali Letter UU U+098A 2442
||
((int)ch == 2442)
////////////ঋ Bengali Letter Vocalic R U+098B 2443
||
((int)ch == 2443)
////////////এ Bengali Letter E U+098F 2447
||
((int)ch == 2447)
////////////ঐ Bengali Letter AI U+0990 2448
||
((int)ch == 2448)
////////////ও Bengali Letter O U+0993 2451
||
((int)ch == 2451)
////////////ঔ Bengali Letter AU U+0994 2452
||
((int)ch == 2452)
//2510 khonrotts
||
((int)ch == 2510)
)
{
___temp_string_to_split_syllables = ___temp_string_to_split_syllables + ch + " | ";
___temp_string_for___unicodes_numbers_ = ___temp_string_for___unicodes_numbers_ + ";" + (int)ch + " | ";
}
else
{
////////////ঁ Bengali Sign Candrabindu U+0981 2433
// ||
//////((int)ch == 2433)
///
if(
((int)ch == 2433)
)
{
//special cases where left sides splitting necessarys
// ___temp_string_to_split_syllables = ___temp_string_to_split_syllables + " | " + ch ;
// ___temp_string_for___unicodes_numbers_ = ___temp_string_for___unicodes_numbers_ + " | " + ";" + (int)ch ;
}
else
{
___temp_string_to_split_syllables = ___temp_string_to_split_syllables + ch;
___temp_string_for___unicodes_numbers_ = ___temp_string_for___unicodes_numbers_ + ";" + (int)ch;
}//end of else of left splitter
}//end of else of symbols for the vowels
}// if( ((int)ch >= 2432) && ((int)ch <= 2559))
}// foreach (char ch in trimmedWord)
//| ং |
//| ঁ |
// ্
//ঞ্জ
//ঞ্চ
//দ্ধ
// .Replace("ৎ", "| ৎ |")
___temp_string_to_split_syllables
=
___temp_string_to_split_syllables
.Replace("| ঁ | ", " ঁ | ")
// .Replace("| ং |", " ং |")
.Replace("| ঁ | ", " ঁ | ")
// .Replace("ঞ্জ", "| ঞ্জ |")
.Replace("ঞ্চ", "| ঞ্চ |")
.Replace("দ্ধ", "| দ্ধ |")
// .Replace("অ | ্যা | ", "অ ্যা | ")
.Replace("ট্ট ", "| ট্ট | ")
.Replace("বৃ ", "| বৃ | ")
.Replace("্ষ", "| ্ষ |")
//halantas
.Replace("্", " ্ |")
// .Replace(" | ্যা ং |", " ্যা ং |")
.Replace("ক্ক", "| ক্ক |")
.Replace("ক্ট", "| ক্ট |")
.Replace("ক্ত", "| ক্ত |")
.Replace("ক্ন", "| ক্ন |")
.Replace("ক্ব", "| ক্ব |")
.Replace("ক্ম", "| ক্ম |")
.Replace("ক্য", "| ক্য |")
.Replace("ক্র", "| ক্র |")
.Replace("ক্ল", "| ক্ল |")
.Replace("ক্ষ", "| ক্ষ |")
.Replace("ক্স", "| ক্স |")
.Replace("খ্য", "| খ্য |")
.Replace("খ্র", "| খ্র |")
.Replace("গ্গ", "| গ্গ |")
.Replace("গ্ধ", "| গ্ধ |")
.Replace("গ্ন", "| গ্ন |")
.Replace("গ্ব", "| গ্ব |")
.Replace("গ্ম", "| গ্ম |")
.Replace("গ্য", "| গ্য |")
.Replace("গ্র", "| গ্র |")
.Replace("গ্ল", "| গ্ল |")
.Replace("ঘ্ন", "| ঘ্ন |")
.Replace("ঘ্য", "| ঘ্য |")
.Replace("ঘ্র", "| ঘ্র |")
.Replace("ঙ্ক", "| ঙ্ক |")
.Replace("ঙ্খ", "| ঙ্খ |")
.Replace("ঙ্গ", "| ঙ্গ |")
.Replace("ঙ্ঘ", "| ঙ্ঘ |")
.Replace("ঙ্ম", "| ঙ্ম |")
.Replace("ঙ্য", "| ঙ্য |")
.Replace("ঙ্র", "| ঙ্র |")
.Replace("চ্চ", "| চ্চ |")
.Replace("চ্ছ", "| চ্ছ |")
.Replace("চ্য", "| চ্য |")
.Replace("চ্র", "| চ্র |")
.Replace("ছ্য", "| ছ্য |")
.Replace("ছ্র", "| ছ্র |")
//////.Replace("ছ্ল", "| ছ্ল |")
//////.Replace("ছ্শ", "| ছ্শ |")
//////.Replace("ছ্ষ", "| ছ্ষ |")
//////.Replace("ছ্স", "| ছ্স |")
//////.Replace("ছ্হ", "| ছ্হ |")
//////.Replace("জ্ক", "| জ্ক |")
//////.Replace("জ্খ", "| জ্খ |")
//////.Replace("জ্গ", "| জ্গ |")
//////.Replace("জ্ঘ", "| জ্ঘ |")
//////.Replace("জ্ঙ", "| জ্ঙ |")
//////.Replace("জ্চ", "| জ্চ |")
//////.Replace("জ্ছ", "| জ্ছ |")
.Replace("জ্জ", "| জ্জ |")
.Replace("জ্ঝ", "| জ্ঝ |")
.Replace("জ্ঞ", "| জ্ঞ |")
.Replace("জ্ব", "| জ্ব |")
.Replace("জ্য", "| জ্য |")
.Replace("জ্র", "| জ্র |")
.Replace("ঝ্য", "| ঝ্য |")
.Replace("ঝ্র", "| ঝ্র |")
.Replace("ঞ্চ", "| ঞ্চ |")
.Replace("ঞ্ছ", "| ঞ্ছ |")
.Replace("ঞ্জ", "| ঞ্জ |")
.Replace("ঞ্ঝ", "| ঞ্ঝ |")
.Replace("ঞ্য", "| ঞ্য |")
.Replace("ঞ্র", "| ঞ্র |")
.Replace("ঞ", "| ঞ |")
.Replace("ট্ট", "| ট্ট |")
.Replace("ট্ব", "| ট্ব |")
.Replace("ট্য", "| ট্য |")
.Replace("ট্র", "| ট্র |")
.Replace("ঠ্য", "| ঠ্য |")
.Replace("ঠ্র", "| ঠ্র |")
.Replace("ড্ড", "| ড্ড |")
.Replace("ড্য", "| ড্য |")
.Replace("ড্র", "| ড্র |")
.Replace("ঢ্য", "| ঢ্য |")
.Replace("ঢ্র", "| ঢ্র |")
.Replace("ণ্ট", "| ণ্ট |")
.Replace("ণ্ঠ", "| ণ্ঠ |")
.Replace("ণ্ড", "| ণ্ড |")
.Replace("ণ্ঢ", "| ণ্ঢ |")
.Replace("ণ্ণ", "| ণ্ণ |")
.Replace("ণ্ব", "| ণ্ব |")
.Replace("ণ্ম", "| ণ্ম |")
.Replace("ণ্য", "| ণ্য |")
.Replace("ণ্র", "| ণ্র |")
.Replace("ত্ত", "| ত্ত |")
.Replace("ত্থ", "| ত্থ |")
.Replace("ত্ন", "| ত্ন |")
.Replace("ত্ব", "| ত্ব |")
.Replace("ত্ম", "| ত্ম |")
.Replace("ত্য", "| ত্য |")
.Replace("ত্র", "| ত্র |")
.Replace("থ্ব", "| থ্ব |")
.Replace("থ্য", "| থ্য |")
.Replace("থ্র", "| থ্র |")
.Replace("দ্দ", "| দ্দ |")
.Replace("দ্ধ", "| দ্ধ |")
.Replace("দ্ব", "| দ্ব |")
.Replace("দ্ভ", "| দ্ভ |")
.Replace("দ্ম", "| দ্ম |")
.Replace("দ্য", "| দ্য |")
.Replace("দ্র", "| দ্র |")
.Replace("ধ্ন", "| ধ্ন |")
.Replace("ধ্য", "| ধ্য |")
.Replace("ধ্র", "| ধ্র |")
.Replace("ন্জ", "| ন্জ |")
.Replace("ন্ট", "| ন্ট |")
.Replace("ন্ঠ", "| ন্ঠ |")
.Replace("ন্ড", "| ন্ড |")
.Replace("ন্ত", "| ন্ত |")
.Replace("ন্থ", "| ন্থ |")
.Replace("ন্দ", "| ন্দ |")
.Replace("ন্ধ", "| ন্ধ |")
.Replace("ন্ন", "| ন্ন |")
.Replace("ন্ব", "| ন্ব |")
.Replace("ন্ম", "| ন্ম |")
.Replace("ন্য", "| ন্য |")
.Replace("ন্র", "| ন্র |")
.Replace("ন্স", "| ন্স |")
.Replace("প্ট", "| প্ট |")
.Replace("প্ত", "| প্ত |")
.Replace("প্ন", "| প্ন |")
.Replace("প্প", "| প্প |")
.Replace("প্য", "| প্য |")
.Replace("প্র", "| প্র |")
.Replace("প্ল", "| প্ল |")
.Replace("প্স", "| প্স |")
.Replace("ফ্ট", "| ফ্ট |")
.Replace("ফ্য", "| ফ্য |")
.Replace("ফ্র", "| ফ্র |")
.Replace("ফ্ল", "| ফ্ল |")
.Replace("ব্জ", "| ব্জ |")
.Replace("ব্দ", "| ব্দ |")
.Replace("ব্ধ", "| ব্ধ |")
.Replace("ব্ব", "| ব্ব |")
.Replace("ব্ভ", "| ব্ভ |")
.Replace("ব্য", "| ব্য |")
.Replace("ব্র", "| ব্র |")
.Replace("ব্ল", "| ব্ল |")
.Replace("ভ্য", "| ভ্য |")
.Replace("ভ্র", "| ভ্র |")
.Replace("ম্ন", "| ম্ন |")
.Replace("ম্প", "| ম্প |")
.Replace("ম্ফ", "| ম্ফ |")
.Replace("ম্ব", "| ম্ব |")
.Replace("ম্ভ", "| ম্ভ |")
.Replace("ম্ম", "| ম্ম |")
.Replace("ম্য", "| ম্য |")
.Replace("ম্র", "| ম্র |")
.Replace("ম্ল", "| ম্ল |")
.Replace("য্য", "| য্য |")
.Replace("য্র", "| য্র |")
.Replace("র্ক", "| র্ক |")
.Replace("র্খ", "| র্খ |")
.Replace("র্গ", "| র্গ |")
.Replace("র্ঘ", "| র্ঘ |")
.Replace("র্ঙ", "| র্ঙ |")
.Replace("র্চ", "| র্চ |")
.Replace("র্ছ", "| র্ছ |")
.Replace("র্জ", "| র্জ |")
.Replace("র্ঝ", "| র্ঝ |")
.Replace("র্ঞ", "| র্ঞ |")
.Replace("র্ট", "| র্ট |")
.Replace("র্ঠ", "| র্ঠ |")
.Replace("র্ড", "| র্ড |")
.Replace("র্ঢ", "| র্ঢ |")
.Replace("র্ণ", "| র্ণ |")
.Replace("র্ত", "| র্ত |")
.Replace("র্থ", "| র্থ |")
.Replace("র্দ", "| র্দ |")
.Replace("র্ধ", "| র্ধ |")
.Replace("র্ন", "| র্ন |")
.Replace("র্প", "| র্প |")
.Replace("র্ফ", "| র্ফ |")
.Replace("র্ব", "| র্ব |")
.Replace("র্ভ", "| র্ভ |")
.Replace("র্ম", "| র্ম |")
.Replace("র্য", "| র্য |")
.Replace("র্র", "| র্র |")
.Replace("র্ল", "| র্ল |")
.Replace("র্শ", "| র্শ |")
.Replace("র্ষ", "| র্ষ |")
.Replace("র্স", "| র্স |")
.Replace("র্হ", "| র্হ |")
.Replace("ল্ক", "| ল্ক |")
.Replace("ল্গ", "| ল্গ |")
.Replace("ল্ট", "| ল্ট |")
.Replace("ল্ড", "| ল্ড |")
.Replace("ল্প", "| ল্প |")
.Replace("ল্ফ", "| ল্ফ |")
.Replace("ল্ব", "| ল্ব |")
.Replace("ল্ম", "| ল্ম |")
.Replace("ল্য", "| ল্য |")
.Replace("ল্র", "| ল্র |")
.Replace("ল্ল", "| ল্ল |")
.Replace("ল্স", "| ল্স |")
.Replace("শ্চ", "| শ্চ |")
.Replace("শ্ছ", "| শ্ছ |")
.Replace("শ্ত", "| শ্ত |")
.Replace("শ্ন", "| শ্ন |")
.Replace("শ্ব", "| শ্ব |")
.Replace("শ্ম", "| শ্ম |")
.Replace("শ্য", "| শ্য |")
.Replace("শ্র", "| শ্র |")
.Replace("শ্ল", "| শ্ল |")
.Replace("ষ্ক", "| ষ্ক |")
.Replace("ষ্ট", "| ষ্ট |")
.Replace("ষ্ঠ", "| ষ্ঠ |")
.Replace("ষ্ণ", "| ষ্ণ |")
.Replace("ষ্প", "| ষ্প |")
.Replace("ষ্ফ", "| ষ্ফ |")
.Replace("ষ্ব", "| ষ্ব |")
.Replace("ষ্ম", "| ষ্ম |")
.Replace("ষ্য", "| ষ্য |")
.Replace("ষ্র", "| ষ্র |")
.Replace("স্ক", "| স্ক |")
.Replace("স্খ", "| স্খ |")
.Replace("স্ট", "| স্ট |")
.Replace("স্ত", "| স্ত |")
.Replace("স্থ", "| স্থ |")
.Replace("স্ন", "| স্ন |")
.Replace("স্প", "| স্প |")
.Replace("স্ফ", "| স্ফ |")
.Replace("স্ব", "| স্ব |")
.Replace("স্ম", "| স্ম |")
.Replace("স্য", "| স্য |")
.Replace("স্র", "| স্র |")
.Replace("স্ল", "| স্ল |")
.Replace("হ্ণ", "| হ্ণ |")
.Replace("হ্ন", "| হ্ন |")
.Replace("হ্ব", "| হ্ব |")
.Replace("হ্ম", "| হ্ম |")
.Replace("হ্য", "| হ্য |")
.Replace("হ্র", "| হ্র |")
.Replace("হ্ল", "| হ্ল |")
.Replace("র্অ", "| র্অ |")
.Replace("র্আ", "| র্আ |")
.Replace("র্ই", "| র্ই |")
.Replace("র্ঈ", "| র্ঈ |")
.Replace("র্উ", "| র্উ |")
.Replace("র্ঊ", "| র্ঊ |")
.Replace("র্ঋ", "| র্ঋ |")
.Replace("র্ঌ", "| র্ঌ |")
.Replace("র্এ", "| র্এ |")
.Replace("র্ঐ", "| র্ঐ |")
.Replace("র্ও", "| র্ও |")
.Replace("র্ঔ", "| র্ঔ |")
.Replace("ল", "| ল |")
.Replace("র্অ", "| র্অ |")
.Replace("র্আ", "| র্আ |")
.Replace("র্ই", "| র্ই |")
.Replace("র্ঈ", "| র্ঈ |")
.Replace("র্উ", "| র্উ |")
.Replace("র্ঊ", "| র্ঊ |")
.Replace("র্ঋ", "| র্ঋ |")
.Replace("ক্ঌ", "| ক্ঌ |")
.Replace("খ্ঌ", "| খ্ঌ |")
.Replace("গ্ঌ", "| গ্ঌ |")
.Replace("ঘ্ঌ", "| ঘ্ঌ |")
.Replace("ঙ্ঌ", "| ঙ্ঌ |")
.Replace("চ্ঌ", "| চ্ঌ |")
.Replace("ছ্ঌ", "| ছ্ঌ |")
.Replace("জ্ঌ", "| জ্ঌ |")
.Replace("ঝ্ঌ", "| ঝ্ঌ |")
.Replace("ঞ্ঌ", "| ঞ্ঌ |")
.Replace("ট্ঌ", "| ট্ঌ |")
.Replace("ঠ্ঌ", "| ঠ্ঌ |")
.Replace("ড্ঌ", "| ড্ঌ |")
.Replace("ঢ্ঌ", "| ঢ্ঌ |")
.Replace("ণ্ঌ", "| ণ্ঌ |")
.Replace("ত্ঌ", "| ত্ঌ |")
.Replace("থ্ঌ", "| থ্ঌ |")
.Replace("দ্ঌ", "| দ্ঌ |")
.Replace("ধ্ঌ", "| ধ্ঌ |")
.Replace("ন্ঌ", "| ন্ঌ |")
.Replace("প্ঌ", "| প্ঌ |")
.Replace("ফ্ঌ", "| ফ্ঌ |")
.Replace("ব্ঌ", "| ব্ঌ |")
.Replace("ভ্ঌ", "| ভ্ঌ |")
.Replace("ম্ঌ", "| ম্ঌ |")
.Replace("য্ঌ", "| য্ঌ |")
.Replace("র্ঌ", "| র্ঌ |")
.Replace("ল্ঌ", "| ল্ঌ |")
.Replace("শ্ঌ", "| শ্ঌ |")
.Replace("ষ্ঌ", "| ষ্ঌ |")
.Replace("স্ঌ", "| স্ঌ |")
.Replace("হ্ঌ", "| হ্ঌ |")
.Replace("র্এ", "| র্এ |")
.Replace("র্ঐ", "| র্ঐ |")
.Replace("র্ও", "| র্ও |")
.Replace("র্ঔ", "| র্ঔ |")
.TrimEnd().TrimStart().Trim()
.Replace(" ","")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace(" ", "")
.Replace("||||||", "|")
.Replace("|||||", "|")
.Replace("||||", "|")
.Replace("|||", "|")
.Replace("||", "|")
.Replace("|", "|")
//"| ্ |"halantas
.Replace("| ্ |", " ্")
.Replace("ক| ্|ষ|", "ক ্ষ|")
//chandras
// "|ঁ|" "| ঁ |"
//.Replace("|ঁ|", "|ঁ|")
.Replace("| ঁ|", " ঁ")
.Replace(" ঁ|", " ঁ")
.Replace("| ঁ", " ঁ")
//halanta in wrong places
.Replace("| ্|", " ্")
//halanta in wrong places
.Replace(" ্|", " ্")
//| ্
//halanta in wrong places
.Replace("| ্|", " ্")
//halanta in wrong places
.Replace("| ্", " ্")
//halanta in wrong places
.Replace(" ্|", " ্")
////////////string halant = "\u09CD"; // 2509
////////////string bishrgs = "ঃ";
.Replace(("|" + bishrgs + "|").TrimEnd().TrimStart().Trim(), (bishrgs + "|").TrimEnd().TrimStart().Trim())
////////////string aaakar = "া";
.Replace(("|" + aaakar + "|").TrimEnd().TrimStart().Trim(), (aaakar + "|").TrimEnd().TrimStart().Trim())
////////////string horshoikaars = "ি";
.Replace(("|" + horshoikaars + "|").TrimEnd().TrimStart().Trim(), (horshoikaars + "|").TrimEnd().TrimStart().Trim())
////////////string dirgaikar = "ী";
///
.Replace(("|" + dirgaikar + "|").TrimEnd().TrimStart().Trim(), (dirgaikar + "|").TrimEnd().TrimStart().Trim())
////////////string harshookar = "ু";
.Replace(("|" + harshookar + "|").TrimEnd().TrimStart().Trim(), (harshookar + "|").TrimEnd().TrimStart().Trim())
////////////string dirghaukar = "ূ";
.Replace(("|" + dirghaukar + "|").TrimEnd().TrimStart().Trim(), (dirghaukar + "|").TrimEnd().TrimStart().Trim())
////////////string rrikaar = "ৃ";
.Replace(("|" + rrikaar + "|").TrimEnd().TrimStart().Trim(), (rrikaar + "|").TrimEnd().TrimStart().Trim())
////////////string ekaar = "ে";
.Replace(("|" + ekaar + "|").TrimEnd().TrimStart().Trim(), (ekaar + "|").TrimEnd().TrimStart().Trim())
////////////string oikaar = "ৈ";
.Replace(("|" + oikaar + "|").TrimEnd().TrimStart().Trim(), (oikaar + "|").TrimEnd().TrimStart().Trim())
////////////string O_kaar = "ৌ";
.Replace(("|" + O_kaar + "|").TrimEnd().TrimStart().Trim(), (O_kaar + "|").TrimEnd().TrimStart().Trim())///
////////////string Ou___kaar = "ৌ";
.Replace(("|" + Ou___kaar + "|").TrimEnd().TrimStart().Trim(), (Ou___kaar + "|").TrimEnd().TrimStart().Trim())///
////////////string jyafalas = "য়";//yes this i yafalas also
.Replace(("|" + jyafalas + "|").TrimEnd().TrimStart().Trim(), (jyafalas + "|").TrimEnd().TrimStart().Trim())///
//i kar juxtaposer
.Replace("|ি", "ি|")
//ng kar
.Replace("|ং", "ং|")
//aakar
.Replace("|া ", "া|")
//rsh kar
.Replace("|্ষ", "্ষ| ")
// .Replace("|"+((char)2509))
// string halant = "\u09CD"; // 2509
//u kar
.Replace("|ু ", "ু|")
.Replace("|ৎ ", "ৎ|")
//o kar
.Replace("|ো ", "ো|")
////////////string halant = "\u09CD"; // 2509
////////////string bishrgs = "ঃ";
.Replace(("|"+ bishrgs).TrimEnd().TrimStart().Trim(), (bishrgs+"|" ).TrimEnd().TrimStart().Trim())
////////////string aaakar = "া";
.Replace(("|" + aaakar).TrimEnd().TrimStart().Trim(), (aaakar + "|").TrimEnd().TrimStart().Trim())
////////////string horshoikaars = "ি";
.Replace(("|" + horshoikaars).TrimEnd().TrimStart().Trim(), (horshoikaars + "|").TrimEnd().TrimStart().Trim())
////////////string dirgaikar = "ী";
///
.Replace(("|" + dirgaikar).TrimEnd().TrimStart().Trim(), (dirgaikar + "|").TrimEnd().TrimStart().Trim())
////////////string harshookar = "ু";
.Replace(("|" + harshookar).TrimEnd().TrimStart().Trim(), (harshookar + "|").TrimEnd().TrimStart().Trim())
////////////string dirghaukar = "ূ";
.Replace(("|" + dirghaukar).TrimEnd().TrimStart().Trim(), (dirghaukar + "|").TrimEnd().TrimStart().Trim())
////////////string rrikaar = "ৃ";
.Replace(("|" + rrikaar).TrimEnd().TrimStart().Trim(), (rrikaar + "|").TrimEnd().TrimStart().Trim())
////////////string ekaar = "ে";
.Replace(("|" + ekaar).TrimEnd().TrimStart().Trim(), (ekaar + "|").TrimEnd().TrimStart().Trim())
////////////string oikaar = "ৈ";
.Replace(("|" + oikaar).TrimEnd().TrimStart().Trim(), (oikaar + "|").TrimEnd().TrimStart().Trim())
////////////string O_kaar = "ৌ";
.Replace(("|" + O_kaar).TrimEnd().TrimStart().Trim(), (O_kaar + "|").TrimEnd().TrimStart().Trim())///
////////////string Ou___kaar = "ৌ";
.Replace(("|" + Ou___kaar).TrimEnd().TrimStart().Trim(), (Ou___kaar + "|").TrimEnd().TrimStart().Trim())///
////////////string jyafalas = "য়";//yes this i yafalas also
.Replace(("|" + jyafalas).TrimEnd().TrimStart().Trim(), (jyafalas + "|").TrimEnd().TrimStart().Trim())///
.Replace("|"," | ")
;
output_without_hashes_and_the_vowelsigns_splitted.Append(" " + ___temp_string_to_split_syllables + " " + ___temp_string_for___unicodes_numbers_+ " reversed___trimmedWord = " + reversed___trimmedWord);
output_without_hashes_and_the_vowelsigns_splitted.AppendLine();//.Append("#" + ((int)ch) + ";");
output_for_reversed_words__unicodes.Append(___temp_string_for___unicodes_numbers_);
output.AppendLine(); // Move to next line after each word
output_for_reversed_words__unicodes.AppendLine();
// output_without_hashes_and_the_vowelsigns_splitted.AppendLine();
}//end of else of else if (string.IsNullOrWhiteSpace(trimmedWord))
}// foreach (string word in bengaliWords)
File.WriteAllText(outputFilePath, output.ToString(), Encoding.UTF8);
Console.WriteLine($"Unicode conversion completed. Output written to '{outputFilePath}'");
File.WriteAllText(outputFilePath+"_syllables.txt", output_without_hashes_and_the_vowelsigns_splitted.ToString(), Encoding.UTF8);
File.WriteAllText(outputFilePath+"_windowed_splitted_substrings.txt", ___temp_stringbuilder_for_windowed_substrings.ToString(), Encoding.UTF8);
///////////////////////////////////////////////////////////////////////////
___temp_list_of_string___for_windowed_words
.Sort();
// Dictionary to hold the frequency of each string
Dictionary<string, int> strings_frequency_dictionary = new Dictionary<string, int>();
// Count the frequency of each string
foreach (string str in ___temp_list_of_string___for_windowed_words)
{
if (strings_frequency_dictionary.ContainsKey(str))
{
strings_frequency_dictionary[str]++;
}
else
{
strings_frequency_dictionary[str] = 1;
}
}// foreach (string str in ___temp_list_of_string___for_windowed_words)
// Define the output file path
string outputFilePath_for_frequency_report = outputFilePath + "_freqs_report_for_windowed_splitted_substrings.txt";// "frequency_report.txt";
// Write the frequency counts to the file
using (StreamWriter writer = new StreamWriter(outputFilePath_for_frequency_report))
{
foreach (var entry in strings_frequency_dictionary)
{
writer.WriteLine($"{entry.Key}: {entry.Value}");
}// foreach (var entry in strings_frequency_dictionary)
}// using (StreamWriter writer = new StreamWriter(outputFilePath_for_frequency_report))
File.WriteAllText(outputFilePath + "_reversed_with_strgts_unikodes.txt", output_for_reversed_words__unicodes.ToString(), Encoding.UTF8);
// Write the frequency counts in ascending order to the file
string ascendingFilePath = outputFilePath + "_ascending.txt";
using (StreamWriter writer = new StreamWriter(ascendingFilePath))
{
foreach (var entry in strings_frequency_dictionary.OrderBy(x => x.Value))
{
writer.WriteLine($"{entry.Key}: {entry.Value}");
}// foreach (var entry in strings_frequency_dictionary.OrderBy(x => x.Value))
}// using (StreamWriter writer = new StreamWriter(ascendingFilePath))
// Write the frequency counts in descending order to the file
string descendingFilePath = outputFilePath + "_descending.txt";
using (StreamWriter writer = new StreamWriter(descendingFilePath))
{
foreach (var entry in strings_frequency_dictionary.OrderByDescending(x => x.Value))
{
writer.WriteLine($"{entry.Key}: {entry.Value}");
}// foreach (var entry in strings_frequency_dictionary.OrderByDescending(x => x.Value))
}// using (StreamWriter writer = new StreamWriter(descendingFilePath))
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
___temp_list_of_reversed_string___for_windowed_words
.Sort();
// Dictionary to hold the frequency of each string
Dictionary<string, int> strings_reversed_frequency_dictionary = new Dictionary<string, int>();
// Count the frequency of each string
foreach (string str in ___temp_list_of_reversed_string___for_windowed_words)
{
if (strings_reversed_frequency_dictionary.ContainsKey(str))
{
strings_reversed_frequency_dictionary[str]++;
}
else
{
strings_reversed_frequency_dictionary[str] = 1;
}
}// foreach (string str in ___temp_list_of_reversed_string___for_windowed_words)
// Define the output file path
string outputFilePath_for_reversed_string_frequency_report = outputFilePath + "_freqs_report_reversed_strings_for_windowed_splitted_substrings.txt";// "frequency_report.txt";
// Write the frequency counts to the file
using (StreamWriter writer = new StreamWriter(outputFilePath_for_reversed_string_frequency_report))
{
foreach (var entry in strings_reversed_frequency_dictionary)
{
writer.WriteLine($"{entry.Key}: {entry.Value}");
}// foreach (var entry in strings_reversed_frequency_dictionary)
}// using (StreamWriter writer = new StreamWriter(outputFilePath_for_reversed_string_frequency_report))
File.WriteAllText(outputFilePath + "_reversed_strings_with_strgts_unikodes.txt", output_for_reversed_words__unicodes.ToString(), Encoding.UTF8);
// Write the frequency counts in ascending order to the file
string ascendingFilePath_reversed_strings = outputFilePath + "_reversed_strings_ascending.txt";
using (StreamWriter writer = new StreamWriter(ascendingFilePath_reversed_strings))
{
foreach (var entry in strings_reversed_frequency_dictionary.OrderBy(x => x.Value))
{
writer.WriteLine($"{entry.Key}: {entry.Value}");
}// foreach (var entry in strings_reversed_frequency_dictionary.OrderBy(x => x.Value))
}// using (StreamWriter writer = new StreamWriter(ascendingFilePath_reversed_strings))
// Write the frequency counts in descending order to the file
string descendingFilePath_reversed_strings = outputFilePath + "_reversed_strings__descending.txt";
using (StreamWriter writer = new StreamWriter(descendingFilePath_reversed_strings))
{
foreach (var entry in strings_reversed_frequency_dictionary.OrderByDescending(x => x.Value))
{
writer.WriteLine($"{entry.Key}: {entry.Value}");
}// foreach (var entry in strings_reversed_frequency_dictionary.OrderByDescending(x => x.Value))
}// using (StreamWriter writer = new StreamWriter(descendingFilePath_reversed_strings))
///////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show($"Unicode conversion completed. Output written to '{outputFilePath}'");
}// static void CONVERT_THE_BENGALI_WORDS_TO_UNIKODES_SEMIKOLONED_DATASYSTEMS(string filename_with_bengaliswords)
private void checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT_CheckedChanged(object sender, EventArgs e)
{
if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
{
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_BOOL_TO_SHOW_THE_MESSAGEBOX___TO_SAVE_FILES_ALSO = true;
}// if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
else
{
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_BOOL_TO_SHOW_THE_MESSAGEBOX___TO_SAVE_FILES_ALSO = false;
}//end of else of if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
}//private void checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT_CheckedChanged(object sender, EventArgs e)
private void button___TO_CONVERT_BENGSUNIKODES_TO_ASCII_Click(object sender, EventArgs e)
{
// Create and configure the OpenFileDialog to open the Bengali Unicode text file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Text files (*.txt)|*.txt";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputFilePath = openFileDialog.FileName; // Get the input file path
// Create the output file path
string outputFilePath = inputFilePath + "_asciified.txt";
CONVERT_THE_BENGALI_WORDS_TO_UNIKODES_SEMIKOLONED_DATASYSTEMS(inputFilePath);
// Open the file, read content, and perform transliteration
using (StreamReader reader = new StreamReader(inputFilePath, Encoding.UTF8))
{
using (StreamWriter writer = new StreamWriter(outputFilePath, false, Encoding.UTF8))
{
string content = reader.ReadToEnd(); // Read the entire content of the Bengali file
// Convert Bengali content to ASCII transliteration
string asciiContent = ConvertBengaliToAscii___WITH_REGEXES(content);
// Write the transliterated content to the new file
writer.Write(asciiContent);
}// using (StreamWriter writer = new StreamWriter(outputFilePath, false, Encoding.UTF8))
}// using (StreamReader reader = new StreamReader(inputFilePath, Encoding.UTF8))
// Notify the user that the file has been saved
MessageBox.Show($"Transliterated file saved as: {outputFilePath}");
System.Diagnostics.Process.Start("notepad.exe", outputFilePath);
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
}//private void button___TO_CONVERT_BENGSUNIKODES_TO_ASCII_Click(object sender, EventArgs e)
private void button___TO_CONVERT_ASCII_TO_BENGS_Click(object sender, EventArgs e)
{
////// //SAANDESIGNDRAWINGREADERSOL.DxfDocument DDC =
//////// Step 1: Create a new DXF document
//////SAANDESIGNDRAWINGREADERSOL.DxfDocument dxf = new SAANDESIGNDRAWINGREADERSOL.DxfDocumen();
////// // Step 2: Create entities and add them to the DXF document
////// // Line
////// SAANDESIGNDRAWINGREADERSOL.Entities.Line line = new SAANDESIGNDRAWINGREADERSOL.Entities.Line(new SAANDESIGNDRAWINGREADERSOL.Entities.Vector3(0, 0, 0), new netDxf.Vector3(10, 0, 0));
////// dxf.AddEntity(line);
////// // Circle
////// Circle circle = new Circle(new netDxf.Vector3(5, 5, 0), 3);
////// dxf.AddEntity(circle);
////// // Point
////// Point point = new Point(new netDxf.Vector3(0, 5, 0));
////// dxf.AddEntity(point);
////// // Text
////// Text text = new Text("Hello, DXF!", new netDxf.Vector3(2, 3, 0), 1);
////// dxf.AddEntity(text);
////// // Step 3: Create a layer and assign it to all entities
////// Layer layer = new Layer("ExampleLayer");
////// dxf.Layers.Add(layer);
////// line.Layer = layer;
////// circle.Layer = layer;
////// point.Layer = layer;
////// text.Layer = layer;
////// // Step 4: Save the DXF file
////// dxf.Save("example_extended.dxf");
////// Console.WriteLine("DXF file created and saved as 'example_extended.dxf'");
//////// Create and configure the OpenFileDialog to open the ASCII transliterated text file
//////OpenFileDialog openFileDialog = new OpenFileDialog();
//////openFileDialog.Filter = "Text files (*.txt)|*.txt";
//////if (openFileDialog.ShowDialog() == DialogResult.OK)
//////{
////// string inputFilePath = openFileDialog.FileName; // Get the input file path
////// // Create the output file path
////// string outputFilePath = inputFilePath + "_bengali.txt";
////// // Open the file, read content, and perform reverse transliteration
////// using (StreamReader reader = new StreamReader(inputFilePath, Encoding.UTF8))
////// {
////// using (StreamWriter writer = new StreamWriter(outputFilePath, false, Encoding.UTF8))
////// {
////// string content = reader.ReadToEnd(); // Read the entire content of the ASCII file
////// // Convert ASCII content back to Bengali Unicode
////// string bengaliContent = ConvertAsciiToBengali(content);
////// // Write the Bengali Unicode content to the new file
////// writer.Write(bengaliContent);
////// }
////// }
////// // Notify the user that the file has been saved
////// MessageBox.Show($"Bengali Unicode file saved as: {outputFilePath}");
//////}
// Create and configure the OpenFileDialog to open the ASCII transliterated text file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Text files (*.txt)|*.txt";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputFilePath = openFileDialog.FileName; // Get the input file path
// Create the output file path
string outputFilePath = inputFilePath + "_bengali.txt";
// Open the file, read content, and perform reverse transliteration
using (StreamReader reader = new StreamReader(inputFilePath, Encoding.UTF8))
{
using (StreamWriter writer = new StreamWriter(outputFilePath, false, Encoding.UTF8))
{
string content = reader.ReadToEnd(); // Read the entire content of the ASCII file
// Convert ASCII content back to Bengali Unicode
string bengaliContent = ConvertAsciiToBengali(content);
// Write the Bengali Unicode content to the new file
writer.Write(bengaliContent);
}// using (StreamWriter writer = new StreamWriter(outputFilePath, false, Encoding.UTF8))
}// using (StreamReader reader = new StreamReader(inputFilePath, Encoding.UTF8))
// Notify the user that the file has been saved
MessageBox.Show($"Bengali Unicode file saved as: {outputFilePath}");
System.Diagnostics.Process.Start("notepad.exe", outputFilePath);
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
}// private void button___TO_CONVERT_ASCII_TO_BENGS_Click(object sender, EventArgs e)
private void button___FILL_ALL_CELLS_WITH_NOTES_NUMBERS_Click(object sender, EventArgs e)
{
try
{
for (int rrrrrr = 0; rrrrrr < this.dataGridView___COMPOSER.RowCount; rrrrrr++)
{
int selected_row_number_WITHOUTONCLICKPRELISTENS = 0;
int selected_col_number_WITHOUTONCLICKPRELISTENS = 0;
if (rrrrrr >= 0)
{
selected_row_number_WITHOUTONCLICKPRELISTENS = rrrrrr;// e.RowIndex;
selected_col_number_WITHOUTONCLICKPRELISTENS = 0;// e.ColumnIndex;
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = true;
DataGridViewRow selected_row_WITHOUTONCLICKPRELISTENS = null;
//////selected_row = this.dataGridView___COMPOSER.SelectedRows.;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[1].Value = "76";//////"TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH";
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.BackColor = Color.LightGray;
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.ForeColor = Color.Black;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS
= this.dataGridView___COMPOSER.Rows[selected_row_number_WITHOUTONCLICKPRELISTENS];
string ___the_current_rows_indinotes_or_commands_found = "";
string _returned_notes_number_string_another = "";
//here we are taking the blank notes name supplied
//this will simply fill the data and populate the internal static arrays every times
if (selected_row_WITHOUTONCLICKPRELISTENS != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0 )
{
___the_current_rows_indinotes_or_commands_found
=
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim();
}// if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0 )
else
{
___the_current_rows_indinotes_or_commands_found = "-";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value
= "";
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0 )
}
else
{
___the_current_rows_indinotes_or_commands_found = "-";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value
= "";
}//end of else of if(selected_row.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value!=null)
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
/////since there are several systems for data entry we need to handle special intelligenses
//////if(
//////!(
//////___the_current_rows_indinotes_or_commands_found.EndsWith("#")
//////||
//////___the_current_rows_indinotes_or_commands_found.EndsWith("_")
//////)
//////)
//{
//////if (___the_current_rows_indinotes_or_commands_found == ".s")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "..N#";
//////}
//////if (___the_current_rows_indinotes_or_commands_found == ".S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".r")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".R_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".R")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".g")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".G_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".G")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".m")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".M_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".M")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".M";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".p")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".P_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".P")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".P";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".d")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".D")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".n")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".N_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".N")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "s")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "r")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "R")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "g")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "G")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "m")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "M")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "p")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "P")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "d")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "D")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "n")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "N")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "s.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "r.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "R.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "g.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "G.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "m.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "M.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "p.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "P.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "d.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "D.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "n.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "N.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S..")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S..";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "s")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "r")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "R")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "g")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "G")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "m")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "M")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "p")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "P")
//////{
////// // ___the_current_rows_indinotes_or_commands_found = "P#";
////// ___the_current_rows_indinotes_or_commands_found = "P";//THERE IS NO P#
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "d")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";//THERE IS NO D_
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "D")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "n")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "N")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "-")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "|")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "@")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "(")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "n";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ")")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "{")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "}")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "[")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "]")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "\\")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "/")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "~")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
////else
////{
////}//preconditionings done
// }
//////if (
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("#")
//////||
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("_")
//////)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[0, 0] = ".S/.S"; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[1, 0] = ".R/.R"; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[2, 0] = ".R#/.G_"; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3, 0] = ".G/.G"; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[4, 0] = ".G#/.M_"; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[5, 0] = ".M/.M"; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[6, 0] = ".M#/.P_"; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[7, 0] = ".P/.P"; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[8, 0] = ".D/.D"; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[9, 0] = ".D#/.N_"; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[10, 0] = ".N/.N"; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[11, 0] = ".N#/.S_"; // Shuddha Ni
////// ////// Madhya Saptak(Middle Octave)
////// ///////////////Madhya Saptak is the middle octave, considered the standard range for vocal and instrumental music.Notes in this octave are denoted without any dots.
////// // Madhya Saptak (Middle Octave)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[12, 0] = "S/S"; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[13, 0] = "R/R"; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[14, 0] = "R#/G_"; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15, 0] = "G/G"; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[16, 0] = "G#/M_"; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[17, 0] = "M/M"; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[18, 0] = "M#/P_"; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[19, 0] = "P/P"; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[20, 0] = "D/D"; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[21, 0] = "D#/N_"; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[22, 0] = "N/N"; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[23, 0] = "N#/S_."; // Shuddha Ni
////// /// Taar Saptak(Upper Octave)
///////////////Taar Saptak is the upper octave, where the frequency of notes is one octave higher than the Madhya Saptak.These notes are denoted by placing a dot above them.Wikipedia + 8Sitar Teacher: Anupama Gagneja+8schoolofindianmusic.com + 8
////////////////////////// Taar Saptak (Upper Octave)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[24, 0] = "S./S."; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[25, 0] = "R./R."; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[26, 0] = "R#./G_."; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[27, 0] = "G./G_."; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[28, 0] = "G#./M_."; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[29, 0] = "M./M."; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30, 0] = "M#./P_."; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[31, 0] = "P./P."; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[32, 0] = "D./D."; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[33, 0] = "D#./N_."; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[34, 0] = "N./N."; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[35, 0] = "N#./S.."; // Shuddha Ni
///////////////////In Hindustani classical music, Mandra Saptak refers to the lower octave, Madhya Saptak to the middle octave, and Taar Saptak
//////////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 45
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 46
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 47
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 48
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 49
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[36, 0] = "(";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[37, 0] = ")";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[38, 0] = "{";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[39, 0] = "}";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[40, 0] = "[";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[41, 0] = "]";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[42, 0] = "|";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[43, 0] = "!";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[44, 0] = "@";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45, 0] = "-";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 1, 0] = "~";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 2, 0] = "^";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 3, 0] = "\\";//single backslash
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 4, 0] = "/";
//////In Hindustani classical music, "raga vistar"(raag विस्तार) refers to the expansion or elaboration of a musical melody within a specific raga(melody scale). It involves the performer moving around within the raga, exploring its notes, and creating a musical narrative.Vistar is a crucial part of a raga performance, allowing the musician to showcase their creativity and skill.
//////Here's a more detailed breakdown:
//////Aalap and Vistar:
//////Vistar is often a part of the "aalap" section, which is the introductory improvisation that sets the tone of the raga. Aalap allows the musician to establish the raga's character and create a musical mood before moving into the more rhythmic sections of the performance.
//////Chalan:
//////Vistar is closely related to "chalan," which refers to the characteristic way in which a raga is played or sung, including its melodic phrases and patterns. Vistar builds upon the chalan, exploring its possibilities and nuances.
//////Improvisation:
//////Vistar involves improvisation, where the musician uses their knowledge of the raga's notes, patterns, and emotional qualities to create a unique musical piece.
//////Swar Vistaar:
//////The term "swar vistar" specifically refers to the exploration of notes within a raga.
//////Examples:
////////////Different ragas have different characteristics and vistar styles. For example, the raga Yaman, known for its grandeur and fundamental nature, allows for a wide range of improvisational possibilities.The raga Malkauns is considered an old raga in Indian classical music with its own unique vistar.
//////In Hindustani classical music, the concept of "raga vistaar"(raag विस्तार) refers to the expansive elaboration of a raga, allowing the performer to explore its melodic contours and emotional depth. This process is not merely an improvisational exercise but follows a structured approach that combines theoretical understanding with creative expression.
//////Mathematical and Structural Foundations of Raga Vistaar
//////Pitch Distribution and Tonal Hierarchy: Each raga is characterized by a specific set of notes(svaras), and the frequency with which these notes are used can be analyzed statistically.Research has shown that the relative frequency of more significant notes stabilizes more quickly than that of others, indicating their importance in expressing the raga's mood and structure.
//////MTG GitHub Pages
//////arXiv
//////Finite Automaton Models: Computational models, such as finite automata, have been employed to simulate the melodic progression in raga performances. These models help in understanding the sequence and transition of notes, reflecting the raga's inherent grammar and syntax.
//////CSE IIT Bombay
//////Statistical Analysis of Melodic Phrases: The identification of recurring melodic phrases or motifs is crucial in raga vistaar. By analyzing the occurrence and transition of these phrases, one can discern the underlying structure and emotional trajectory of the raga.
//////CSE IIT Bombay
//////Rhythmic and Temporal Structuring: While the melodic aspect is central, the rhythmic framework(tala) also plays a significant role in raga vistaar. The interplay between melody and rhythm is carefully structured to enhance the raga's expression and to guide the listener through its emotional journey.
//////Improvisational Techniques: Vistaar involves various improvisational techniques, such as meend (glides), gamak(oscillations), and murki(quick note clusters), which add nuance and depth to the performance. These techniques are not random but are governed by the raga's rules and the performer's creativity.
//////Conclusion
//////Raga vistaar is a sophisticated blend of mathematical principles, structural analysis, and artistic expression.While computational models provide insights into the underlying patterns and structures, the true essence of vistaar lies in the performer's ability to breathe life into these structures, creating a unique and emotive rendition of the raga.
//////Raga vistaar, a core element of Indian classical music, builds upon a mathematical and structural foundation. The vistaar, or expansion, involves exploring the melodic possibilities within a raga(scale), often using structures like alaap(melodic improvisation) and taans(rapid melodic ornamentation). The mathematical underpinnings lie in the relationships between notes, the construction of alankars(melodic exercises), and the systematic arrangement of notes within a raga.
//////Here's a more detailed look:
//////1.Mathematical Foundations:
//////Relationships between notes:
//////Ragas are built on specific relationships between the seven fundamental notes(Swaras Sa, Re, Ga, Ma, Pa, Dha, Ni), according to Artium Academy. These relationships, including intervals and microtones, are mathematically defined.
//////Alankars:
//////Alankars are melodic exercises that explore the notes within a raga.They are often structured using mathematical functions, such as the example of applying a pattern to the notes of a Thaat(a set of notes) to create a sequence of phrases.
//////Combinatorial Structures:
//////Indian music has a vast number of ragas, created through combinations and permutations of the seven fundamental notes.For instance, the 72 distinct scales(ragas) are a result of mathematical combinations.
//////2.Structural Foundations:
//////Compositional Structures:
//////Raga vistaar builds upon established compositional structures like gat(the main composition of a raga), which often starts from the melodic center and explores different octaves before returning to the starting point.
//////Alaap:
//////Alaap is a melodic improvisation that explores the emotional and expressive potential of a raga, often using specific melodic figures and ornaments.
//////Taan:
//////Taan is a rapid melodic ornamentation that adds dynamism and excitement to the performance, often incorporating various melodic patterns.
//////Bol Baant/ Bol Laya:
//////Some schools of Hindustani music also incorporate Bol Baant(rhythmic patterns) and Bol Laya(rhythmic improvisation) into the vistaar.
//https://swarsindhu.pratibha-spandan.org/wp-content/uploads/v10i02a11.pdf
//https://swarsindhu.pratibha-spandan.org/wp-content/uploads/v12i01a57.pdf // good list of the raaga orderings
//////(For our understanding r g d n stands for komal Re, komal Ga, komal Dha, komal NI; R,G ,D N
//////stands for Suddha Re, Suddha Ga, Suddha Dha and Suddha Ni ; m = Suddha Madhyam, M = Teevra
//////Ma)
//////SCALES WITH SUDDHA MA SCALES WITH TEEVRA MA
//////S r g m P d n S { BHAIRAVI}
//////S r g M P d n S { BHAVAPRIYA}
//////S r g m P d N S { DHENUKA}
//////S r g M P d N S { TODI}
//////S r g m P D n S { NATAKAPRIYA}
//////S r g M P D n S { SHADVIDHAMARGINI}
//////S r g m P D N S { KOKILAPRIYA}
//////S r g M P D N S { SUVARNANGI}
//////S R g m P d n S { ASAVERI}
//////S R g M P d n S { SHANMUKHAPRIYA}
//////S R g m P d N S { KEERVANI}
//////S R g M P d N S { SIMHENDRAMADHYAM}
//////S R g m P D n S { KAFI}
//////S R g M P D n S { HEMAVATI}
//////S R g m P D N S { GOURIMANOHARI}
//////S R g M P D N S { DHARMAVATI}
//////S r G m P d n S { BASANT MUKHARI}
//////S r G M P d n S { NAMANARAYANI}
//////S r G m P d N S { BHAIRAV}
//////S r G M P d N S { PURVI}
//////S r G m P D n S { AHIR BHAIRAV}
//////S r G M P D n S { RAMAPRIYA}
//////S r G m P D N S { ANAND BHAIRAV}
//////S r G M P D N S { MARWA}
//////S R G m P d n S { CHARUKESHI}
//////S R G M P d n S { RISHABHAPRIYA}
//////S R G m P d N S { NAT BHAIRAV}
//////S R G M P d N S { LATANGI}
//////S R G m P D n S { KHAMAJ}
//////S R G M P D n S { VACHASPATI}
//////S R G m P D N S { BILAWAL}
//////S R G M P D N S { KALYAN}
//////Of the above combinations, Pt. Bhatkhande chose only 10 primary Thaats, which were enough to
//////accommodate the ragas prevalent in his time. They are:
//////Bilawal, Khamaj, Kafi, Bhairav, Kalyan, Marwa, Purvi, Asaveri, Bhairavi and Todi.
//////According to Dr.Nupur Ganguly(HOD, Vocal Department, Rabindra Bharati University) in her
//////book “A Bird's eye view of Indian Musicology”, Pg 82-83 ( ISBN 9788177681109 ) (published
//////Jan 2018) this improvised scientific 32 Thaat system was the conception of the Senia Gharana.
//////The names of the musical scales have too been given for students of music.Shobhana Nayar‟s
//////book “Bhatkhande‟s Contribution to Music: A Historical Perspective” [ISBN 97808
//////(For our understanding r g d n stands for komal Re, komal Ga, komal Dha, komal NI; R,G ,D N
//////stands for Suddha Re, Suddha Ga, Suddha Dha and Suddha Ni ; m = Suddha Madhyam, M = Teevra
//////Ma)
//////SCALES WITH SUDDHA MA SCALES WITH TEEVRA MA
//////S r g m P d n S { BHAIRAVI}
//////S r g M P d n S { BHAVAPRIYA}
//////S r g m P d N S { DHENUKA}
//////S r g M P d N S { TODI}
//////S r g m P D n S { NATAKAPRIYA}
//////S r g M P D n S { SHADVIDHAMARGINI}
//////S r g m P D N S { KOKILAPRIYA}
//////S r g M P D N S { SUVARNANGI}
//////S R g m P d n S { ASAVERI}
//////S R g M P d n S { SHANMUKHAPRIYA}
//////S R g m P d N S { KEERVANI}
//////S R g M P d N S { SIMHENDRAMADHYAM}
//////S R g m P D n S { KAFI}
//////S R g M P D n S { HEMAVATI}
//////S R g m P D N S { GOURIMANOHARI}
//////S R g M P D N S { DHARMAVATI}
//////S r G m P d n S { BASANT MUKHARI}
//////S r G M P d n S { NAMANARAYANI}
//////S r G m P d N S { BHAIRAV}
//////S r G M P d N S { PURVI}
//////S r G m P D n S { AHIR BHAIRAV}
//////S r G M P D n S { RAMAPRIYA}
//////S r G m P D N S { ANAND BHAIRAV}
//////S r G M P D N S { MARWA}
//////S R G m P d n S { CHARUKESHI}
//////S R G M P d n S { RISHABHAPRIYA}
//////S R G m P d N S { NAT BHAIRAV}
//////S R G M P d N S { LATANGI}
//////S R G m P D n S { KHAMAJ}
//////S R G M P D n S { VACHASPATI}
//////S R G m P D N S { BILAWAL}
//////S R G M P D N S { KALYAN}
//////Of the above combinations, Pt. Bhatkhande chose only 10 primary Thaats, which we
if (___the_current_rows_indinotes_or_commands_found == ".s")
{
___the_current_rows_indinotes_or_commands_found = "..N#";//NOT IN THE ARRAY
}
if (___the_current_rows_indinotes_or_commands_found == ".S")
{
___the_current_rows_indinotes_or_commands_found = ".S";//NO S# THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".r")
{
___the_current_rows_indinotes_or_commands_found = ".R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".R")
{
___the_current_rows_indinotes_or_commands_found = ".R";//we have to type R# for our needs
}
else if (___the_current_rows_indinotes_or_commands_found == ".g")
{
___the_current_rows_indinotes_or_commands_found = ".G_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".G")
{
___the_current_rows_indinotes_or_commands_found = ".G";//we have to specify the G# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".m")
{
___the_current_rows_indinotes_or_commands_found = ".M_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".M")
{
___the_current_rows_indinotes_or_commands_found = ".M";//we have to specify M# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".p")
{
___the_current_rows_indinotes_or_commands_found = ".P_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".P")
{
___the_current_rows_indinotes_or_commands_found = ".P";//NO P SHARP THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".d")
{
___the_current_rows_indinotes_or_commands_found = ".D";//NO D FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".D")
{
___the_current_rows_indinotes_or_commands_found = ".D";//we have to specify D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".n")
{
___the_current_rows_indinotes_or_commands_found = ".N_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".N")
{
___the_current_rows_indinotes_or_commands_found = ".N";//we have to specify N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".S")
{
___the_current_rows_indinotes_or_commands_found = ".S";// there is no S sharp (we are at lower octave)
}
else if (___the_current_rows_indinotes_or_commands_found == "s")
{
___the_current_rows_indinotes_or_commands_found = ".N#";//here it is ok for small s we take previous octaves .N#
}
else if (___the_current_rows_indinotes_or_commands_found == "S")
{
___the_current_rows_indinotes_or_commands_found = "S";//there is no S#
}
else if (___the_current_rows_indinotes_or_commands_found == "r")
{
___the_current_rows_indinotes_or_commands_found = "R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "R")
{
___the_current_rows_indinotes_or_commands_found = "R";//We have to specify the R# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "g")
{
___the_current_rows_indinotes_or_commands_found = "G_";
}
else if (___the_current_rows_indinotes_or_commands_found == "G")
{
___the_current_rows_indinotes_or_commands_found = "G";//we have to specify G# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m")
{
___the_current_rows_indinotes_or_commands_found = "M_";
}
else if (___the_current_rows_indinotes_or_commands_found == "M")
{
___the_current_rows_indinotes_or_commands_found = "M";//we have to specify M# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p")
{
___the_current_rows_indinotes_or_commands_found = "P_";
}
else if (___the_current_rows_indinotes_or_commands_found == "P")
{
___the_current_rows_indinotes_or_commands_found = "P";//there is no P#
}
else if (___the_current_rows_indinotes_or_commands_found == "d")
{
___the_current_rows_indinotes_or_commands_found = "D";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "D")
{
___the_current_rows_indinotes_or_commands_found = "D";//we have to specify the D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n")
{
___the_current_rows_indinotes_or_commands_found = "N_";
}
else if (___the_current_rows_indinotes_or_commands_found == "N")
{
___the_current_rows_indinotes_or_commands_found = "N";//We have to Specify the conditions of N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S.";//we are in higer octaves
}
else if (___the_current_rows_indinotes_or_commands_found == "s.")
{
___the_current_rows_indinotes_or_commands_found = "N#.";//this is the N# for the previous octave where it is called this means we are calling from the next octave
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S.";// there is no S#
}
else if (___the_current_rows_indinotes_or_commands_found == "r.")
{
___the_current_rows_indinotes_or_commands_found = "R.";//there is no R flat
}
else if (___the_current_rows_indinotes_or_commands_found == "R.")
{
___the_current_rows_indinotes_or_commands_found = "R.";// there is no R Flat and if necessary type the R#. specify that
}
else if (___the_current_rows_indinotes_or_commands_found == "g.")
{
___the_current_rows_indinotes_or_commands_found = "G_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "G.")
{
___the_current_rows_indinotes_or_commands_found = "G.";//specify G#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m.")
{
___the_current_rows_indinotes_or_commands_found = "M_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "M.")
{
___the_current_rows_indinotes_or_commands_found = "M.";// if necessary type M#. specify that
}
else if (___the_current_rows_indinotes_or_commands_found == "p.")
{
___the_current_rows_indinotes_or_commands_found = "P_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "P.")
{
___the_current_rows_indinotes_or_commands_found = "P.";//there is no P sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "d.")
{
___the_current_rows_indinotes_or_commands_found = "D.";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "D.")
{
___the_current_rows_indinotes_or_commands_found = "D.";// Specify the D#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "N.")
{
___the_current_rows_indinotes_or_commands_found = "N.";// if necessary specify N#.
}
else if (___the_current_rows_indinotes_or_commands_found == "S..")
{
___the_current_rows_indinotes_or_commands_found = "S..";//we are at higher to higher octave
}
else if (___the_current_rows_indinotes_or_commands_found == "s")
{
___the_current_rows_indinotes_or_commands_found = "S_";
}
else if (___the_current_rows_indinotes_or_commands_found == "S")
{
___the_current_rows_indinotes_or_commands_found = "S";//NO S SHARP THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "r")
{
___the_current_rows_indinotes_or_commands_found = "R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "R")
{
___the_current_rows_indinotes_or_commands_found = "R";
}
else if (___the_current_rows_indinotes_or_commands_found == "g")
{
___the_current_rows_indinotes_or_commands_found = "G_";
}
else if (___the_current_rows_indinotes_or_commands_found == "G")
{
___the_current_rows_indinotes_or_commands_found = "G";
}
else if (___the_current_rows_indinotes_or_commands_found == "m")
{
___the_current_rows_indinotes_or_commands_found = "M_";
}
else if (___the_current_rows_indinotes_or_commands_found == "M")
{
___the_current_rows_indinotes_or_commands_found = "M";//type M# ifnecessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p")
{
___the_current_rows_indinotes_or_commands_found = "P_";//p has the flat and no sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "P")
{
// ___the_current_rows_indinotes_or_commands_found = "P#";
___the_current_rows_indinotes_or_commands_found = "P";//THERE IS NO P#
}
else if (___the_current_rows_indinotes_or_commands_found == "d")
{
___the_current_rows_indinotes_or_commands_found = "D";//THERE IS NO D_
}
else if (___the_current_rows_indinotes_or_commands_found == "D")
{
___the_current_rows_indinotes_or_commands_found = "D";//type D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n")
{
___the_current_rows_indinotes_or_commands_found = "N_";
}
else if (___the_current_rows_indinotes_or_commands_found == "N")
{
___the_current_rows_indinotes_or_commands_found = "N";// type N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "s.")
{
___the_current_rows_indinotes_or_commands_found = "N#";// this is calling of current octave from the upper octaves S
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S";//THERE IS NO S SHARP we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "r.")
{
___the_current_rows_indinotes_or_commands_found = "R.";//THERE IS NO r flat we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "R.")
{
___the_current_rows_indinotes_or_commands_found = "R."; // we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "g.")
{
___the_current_rows_indinotes_or_commands_found = "G_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "G.")
{
___the_current_rows_indinotes_or_commands_found = "G.";//type G#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m.")
{
___the_current_rows_indinotes_or_commands_found = "M_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "M.")
{
___the_current_rows_indinotes_or_commands_found = "M.";//type M#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p.")
{
___the_current_rows_indinotes_or_commands_found = "P_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "P.")
{
___the_current_rows_indinotes_or_commands_found = "P.";//there is no p sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "d.")
{
___the_current_rows_indinotes_or_commands_found = "D.";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "n.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "N.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";//type N#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "-")
{
___the_current_rows_indinotes_or_commands_found = "S";//we will take care this with the last note continuations
}
else if (___the_current_rows_indinotes_or_commands_found == "|")
{
___the_current_rows_indinotes_or_commands_found = "|";//this is the decorations notes
}
else if (___the_current_rows_indinotes_or_commands_found == "@")
{
___the_current_rows_indinotes_or_commands_found = "@";
}
else if (___the_current_rows_indinotes_or_commands_found == "(")
{
___the_current_rows_indinotes_or_commands_found = "(";
}
else if (___the_current_rows_indinotes_or_commands_found == ")")
{
___the_current_rows_indinotes_or_commands_found = ")";
}
else if (___the_current_rows_indinotes_or_commands_found == "{")
{
___the_current_rows_indinotes_or_commands_found = "{";
}
else if (___the_current_rows_indinotes_or_commands_found == "}")
{
___the_current_rows_indinotes_or_commands_found = "}";
}
else if (___the_current_rows_indinotes_or_commands_found == "[")
{
___the_current_rows_indinotes_or_commands_found = "[";
}
else if (___the_current_rows_indinotes_or_commands_found == "]")
{
___the_current_rows_indinotes_or_commands_found = "]";
}
else if (___the_current_rows_indinotes_or_commands_found == "\\")
{
___the_current_rows_indinotes_or_commands_found = "\\";//to handle these specially with references to the previous non decorative pure melody note assigned
}
else if (___the_current_rows_indinotes_or_commands_found == "/")
{
___the_current_rows_indinotes_or_commands_found = "/";//to handle these specially with references to the previous non decorative pure melody note assigned
}
else if (___the_current_rows_indinotes_or_commands_found == "~")
{
___the_current_rows_indinotes_or_commands_found = "~";//to handle these specially with references to the previous non decorative pure melody note assigned
}
////else
////{
////}//preconditionings done
// }
//////if (
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("#")
//////||
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("_")
//////)
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
/////since there are several systems for data entry we need to handle special intelligenses
//////if (___the_current_rows_indinotes_or_commands_found == "s")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "r")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "g")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "m")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "p")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "d")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "n")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
////////i had to do it specially
//////else if (___the_current_rows_indinotes_or_commands_found == "-")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}//if(___the_current_rows_indinotes_or_commands_found=="-")
//////else
//////{
//////}
_returned_notes_number_string_another
=
DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES
(___the_current_rows_indinotes_or_commands_found);
//////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
=
_returned_notes_number_string_another;
Console.WriteLine("___the_current_rows_indinotes_or_commands_found = " + ___the_current_rows_indinotes_or_commands_found + " _returned_notes_number_string_another = " + _returned_notes_number_string_another);
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value != null)
{
//dont fill the data for the case where the lyr sylls data is there
//selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
//if the lyr sylls data is null then fill that with the indinotes
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
=
_returned_notes_number_string_another;
}
else
{
//specially for indinotes null cases
_returned_notes_number_string_another
=
DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES
(___the_current_rows_indinotes_or_commands_found);
//////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
=
_returned_notes_number_string_another;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Style.BackColor = Color.LightPink;
Console.WriteLine("___the_current_rows_indinotes_or_commands_found = " + ___the_current_rows_indinotes_or_commands_found + " _returned_notes_number_string_another = " + _returned_notes_number_string_another);
//if the lyr sylls data is null then fill that with the indinotes
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
=
_returned_notes_number_string_another;
}//end of else of if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim().Length ==0)
{
if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
{
// trys notes number already filled
//if indinotes are blank
//dont remove the previous data
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
////// = "";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Style.BackColor = Color.PaleVioletRed;
if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length==0)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Style.BackColor = Color.LightGray;
}//if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length==0)
else
{
_returned_notes_number_string_another
=
DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES
(___the_current_rows_indinotes_or_commands_found);
//////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
=
_returned_notes_number_string_another;
Console.WriteLine("___the_current_rows_indinotes_or_commands_found = " + ___the_current_rows_indinotes_or_commands_found + " _returned_notes_number_string_another = " + _returned_notes_number_string_another);
//do nothing to this
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Style.BackColor = Color.LightBlue;
}//end of else of if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length==0)
}
else
{
//specially for indinotes null cases
_returned_notes_number_string_another
=
DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES
(___the_current_rows_indinotes_or_commands_found);
//////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
=
_returned_notes_number_string_another;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Style.BackColor = Color.LightPink;
Console.WriteLine("___the_current_rows_indinotes_or_commands_found = " + ___the_current_rows_indinotes_or_commands_found + " _returned_notes_number_string_another = " + _returned_notes_number_string_another);
//if null
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
= "";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Style.BackColor = Color.PaleTurquoise;
}//end of else of if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim().Length ==0)
else
{
//specially for indinotes null cases
_returned_notes_number_string_another
=
DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES
(___the_current_rows_indinotes_or_commands_found);
//////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
=
_returned_notes_number_string_another;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"]
.Style.BackColor = Color.LightPink;
Console.WriteLine("___the_current_rows_indinotes_or_commands_found = " + ___the_current_rows_indinotes_or_commands_found + " _returned_notes_number_string_another = " + _returned_notes_number_string_another);
}
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value != null)
else
{
//if the indinotes are null
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
= "";
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value != null)
}// if (selected_row !=null)
else
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
= "";
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS != null)
}//if (e.RowIndex >= 0)
}// for (int rrrrrr = 0; rrrrrr < this.dataGridView___COMPOSER.RowCount; rrrrrr++)
this.dataGridView___COMPOSER.ClearSelection();
}
catch (Exception _excptohandlestheindinotes)
{
Console.WriteLine("_excptohandlestheindinotes = " + _excptohandlestheindinotes.Message + " " + _excptohandlestheindinotes.StackTrace.ToString());
}//catch(Exception _excptohandlestheindinotes)
}//private void button___FILL_ALL_CELLS_WITH_NOTES_NUMBERS_Click(object sender, EventArgs e)
private void button___TO_FILL_SAME_PATCH_FOR_ALL_Click(object sender, EventArgs e)
{
string THE_STRING_DATA_FROMS_PATCHES_TO_PATCHES = "";
string ___temp_common_patch_to_fill_in_all_rows =
THE_STRING_DATA_FROMS_PATCHES_TO_PATCHES
=
textBox___COMPOSERS_COMMON_PATCH_NUMBERS_TO_FILL_ALL.Text.ToString().TrimEnd().TrimStart().Trim();
THE_STRING_DATA_FROMS_PATCHES_TO_PATCHES
=
THE_STRING_DATA_FROMS_PATCHES_TO_PATCHES.TrimStart().TrimEnd().Trim().ToUpper();
if(!THE_STRING_DATA_FROMS_PATCHES_TO_PATCHES.Contains("TO"))
{
THE_STRING_DATA_FROMS_PATCHES_TO_PATCHES
=
"- TO " + THE_STRING_DATA_FROMS_PATCHES_TO_PATCHES;
}//if(!THE_STRING_DATA_FROMS_PATCHES_TO_PATCHES.Contains("TO"))
string[] ___splitted_with_TO_or_commas_or_semicolons_or_slashes
= THE_STRING_DATA_FROMS_PATCHES_TO_PATCHES.Split(new string[] { "TO", ",", ";", "/" }, StringSplitOptions.RemoveEmptyEntries);
string ___string_first_patch_number_found = "";
string ___string___TO_patch_number_found = "";
int ___converted_to_from_patch_number = 0;
int ___converted_to_int___TO_patch_number = 0;
if (___splitted_with_TO_or_commas_or_semicolons_or_slashes.Length > 0)
{
___string_first_patch_number_found
=
___splitted_with_TO_or_commas_or_semicolons_or_slashes[0].TrimEnd().TrimStart().Trim();
if (___splitted_with_TO_or_commas_or_semicolons_or_slashes.Length > 1)
{
try
{
___string___TO_patch_number_found
=
___splitted_with_TO_or_commas_or_semicolons_or_slashes[1].TrimEnd().TrimStart().Trim();
___converted_to_from_patch_number
=
Convert.ToInt16(___splitted_with_TO_or_commas_or_semicolons_or_slashes[0].TrimEnd().TrimStart().Trim());
}
catch (Exception ___Excp)
{
___converted_to_from_patch_number = 0;
textBox___COMPOSERS_COMMON_PATCH_NUMBERS_TO_FILL_ALL.Text = "- TO 22 ";
System.Windows.Forms.MessageBox.Show("Please enter previous_patches_number TO new_patches_numbers \r\n eg... - to 73 OR 73 TO 22");
}//catch(Exception ___Excp)
try
{
___converted_to_int___TO_patch_number
=
Convert.ToInt16(___splitted_with_TO_or_commas_or_semicolons_or_slashes[1].TrimEnd().TrimStart().Trim());
}
catch (Exception ___excptoconvert)
{
___converted_to_int___TO_patch_number = 127;
textBox___COMPOSERS_COMMON_PATCH_NUMBERS_TO_FILL_ALL.Text = "73 TO 22";
System.Windows.Forms.MessageBox.Show("Please enter previous_patches_number TO new_patches_numbers \r\n eg... - to 73 OR 73 TO 22");
}//catch(Exception ___excptoconvert)
}// if(___splitted_with_TO_or_commas_or_semicolons_or_slashes.Length>1)
}// if(___splitted_with_TO_or_commas_or_semicolons_or_slashes.Length>0)
else
{
___string_first_patch_number_found = "-";
___string___TO_patch_number_found
=
textBox___COMPOSERS_COMMON_PATCH_NUMBERS_TO_FILL_ALL.Text.ToString().TrimEnd().TrimStart().Trim();
System.Windows.Forms.MessageBox.Show("Please enter previous_patches_number TO new_patches_numbers \r\n eg... - to 73 OR 73 TO 22");
textBox___COMPOSERS_COMMON_PATCH_NUMBERS_TO_FILL_ALL.Text = "73 TO 22";
}//end of else of if (___splitted_with_TO_or_commas_or_semicolons_or_slashes.Length > 0)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (___splitted_with_TO_or_commas_or_semicolons_or_slashes.Length == 0)
{
___string_first_patch_number_found = "-";
___string___TO_patch_number_found
=
textBox___COMPOSERS_COMMON_PATCH_NUMBERS_TO_FILL_ALL.Text.ToString().TrimEnd().TrimStart().Trim();
}// if (___splitted_with_TO_or_commas_or_semicolons_or_slashes.Length ==0)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
for (int rrrrrr = 0; rrrrrr < this.dataGridView___COMPOSER.RowCount; rrrrrr++)
{
int selected_row_number_WITHOUTONCLICKPRELISTENS = 0;
int selected_col_number_WITHOUTONCLICKPRELISTENS = 0;
if (rrrrrr >= 0)
{
selected_row_number_WITHOUTONCLICKPRELISTENS = rrrrrr;// e.RowIndex;
selected_col_number_WITHOUTONCLICKPRELISTENS = 0;// e.ColumnIndex;
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = true;
DataGridViewRow selected_row_WITHOUTONCLICKPRELISTENS = null;
//////selected_row = this.dataGridView___COMPOSER.SelectedRows.;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[1].Value = "76";//////"TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH";
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.BackColor = Color.LightGray;
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.ForeColor = Color.Black;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS
=
this.dataGridView___COMPOSER.Rows[selected_row_number_WITHOUTONCLICKPRELISTENS];
string ___the_current_rows_indinotes_or_commands_found = "";
string _returned_notes_number_string_another = "";
//here we are taking the blank notes name supplied
//this will simply fill the data and populate the internal static arrays every times
if (selected_row_WITHOUTONCLICKPRELISTENS != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value != null)
{
___the_current_rows_indinotes_or_commands_found
=
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim();
}
else
{
___the_current_rows_indinotes_or_commands_found = "-";
}//end of else of if(selected_row.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value!=null)
//////if (___the_current_rows_indinotes_or_commands_found == "s")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "r")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "R")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "g")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "G")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "m")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "M")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "p")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "P")
//////{
////// // ___the_current_rows_indinotes_or_commands_found = "P#";
////// ___the_current_rows_indinotes_or_commands_found = "P";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "d")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "D")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "n")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "N")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "-")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "|")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "@")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "(")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "n";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ")")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "{")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "}")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "[")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "]")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "\\")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "/")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "~")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////if (___the_current_rows_indinotes_or_commands_found == "s")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".N#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "r")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "R")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "g")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "G")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "m")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "M")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "p")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "P")
//////{
////// // ___the_current_rows_indinotes_or_commands_found = "P#";
////// ___the_current_rows_indinotes_or_commands_found = "P";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "d")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "D")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "n")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "N")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "-")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "|")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "@")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "(")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "n";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ")")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "{")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "}")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "[")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "]")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "\\")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "/")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "~")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
////else
////{
////}//preconditionings done
// }
//////if (
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("#")
//////||
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("_")
//////)
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
/////since there are several systems for data entry we need to handle special intelligenses
////if (___the_current_rows_indinotes_or_commands_found == "s")
////{
//// ___the_current_rows_indinotes_or_commands_found = "S";
////}
////else if (___the_current_rows_indinotes_or_commands_found == "r")
////{
//// ___the_current_rows_indinotes_or_commands_found = "R";
////}
////else if (___the_current_rows_indinotes_or_commands_found == "g")
////{
//// ___the_current_rows_indinotes_or_commands_found = "G";
////}
////else if (___the_current_rows_indinotes_or_commands_found == "m")
////{
//// ___the_current_rows_indinotes_or_commands_found = "M";
////}
////else if (___the_current_rows_indinotes_or_commands_found == "p")
////{
//// ___the_current_rows_indinotes_or_commands_found = "P";
////}
////else if (___the_current_rows_indinotes_or_commands_found == "d")
////{
//// ___the_current_rows_indinotes_or_commands_found = "D";
////}
////else if (___the_current_rows_indinotes_or_commands_found == "n")
////{
//// ___the_current_rows_indinotes_or_commands_found = "N";
////}
////else
////{
////}
//////if (___the_current_rows_indinotes_or_commands_found == ".s")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "..N#";
//////}
//////if (___the_current_rows_indinotes_or_commands_found == ".S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".r")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".R_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".R")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".g")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".G_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".G")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".m")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".M_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".M")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".M";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".p")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".P_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".P")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".P";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".d")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".D")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".n")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".N_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".N")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ".S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = ".S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "s")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N#";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "r")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "R")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "g")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "G")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "m")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "M")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "p")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "P")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "d")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "D")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "n")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "N")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "s.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "r.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "R.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "g.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "G.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "m.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "M.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "p.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "P.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "d.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "D.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "n.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N_.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "N.")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N.";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S..")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S..";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "s")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "S")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "r")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "R")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "g")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "G")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "m")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "M")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "M";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "p")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "P_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "P")
//////{
////// // ___the_current_rows_indinotes_or_commands_found = "P#";
////// ___the_current_rows_indinotes_or_commands_found = "P";//THERE IS NO P#
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "d")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";//THERE IS NO D_
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "D")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "D";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "n")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N_";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "N")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "-")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "|")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "R";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "@")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "G";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "(")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "n";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == ")")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "{")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "}")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "[")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "]")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "\\")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "/")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////else if (___the_current_rows_indinotes_or_commands_found == "~")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "N";//to handle these specially with references to the previous non decorative pure melody note assigned
//////}
//////////else
//////////{
//////////}//preconditionings done
//////// }
////////////if (
////////////!___the_current_rows_indinotes_or_commands_found.EndsWith("#")
////////////||
////////////!___the_current_rows_indinotes_or_commands_found.EndsWith("_")
////////////)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[0, 0] = ".S/.S"; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[1, 0] = ".R/.R"; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[2, 0] = ".R#/.G_"; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3, 0] = ".G/.G"; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[4, 0] = ".G#/.M_"; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[5, 0] = ".M/.M"; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[6, 0] = ".M#/.P_"; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[7, 0] = ".P/.P"; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[8, 0] = ".D/.D"; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[9, 0] = ".D#/.N_"; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[10, 0] = ".N/.N"; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[11, 0] = ".N#/.S_"; // Shuddha Ni
////// ////// Madhya Saptak(Middle Octave)
////// ///////////////Madhya Saptak is the middle octave, considered the standard range for vocal and instrumental music.Notes in this octave are denoted without any dots.
////// // Madhya Saptak (Middle Octave)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[12, 0] = "S/S"; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[13, 0] = "R/R"; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[14, 0] = "R#/G_"; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15, 0] = "G/G"; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[16, 0] = "G#/M_"; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[17, 0] = "M/M"; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[18, 0] = "M#/P_"; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[19, 0] = "P/P"; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[20, 0] = "D/D"; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[21, 0] = "D#/N_"; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[22, 0] = "N/N"; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[23, 0] = "N#/S_."; // Shuddha Ni
////// /// Taar Saptak(Upper Octave)
///////////////Taar Saptak is the upper octave, where the frequency of notes is one octave higher than the Madhya Saptak.These notes are denoted by placing a dot above them.Wikipedia + 8Sitar Teacher: Anupama Gagneja+8schoolofindianmusic.com + 8
////////////////////////// Taar Saptak (Upper Octave)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[24, 0] = "S./S."; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[25, 0] = "R./R."; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[26, 0] = "R#./G_."; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[27, 0] = "G./G_."; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[28, 0] = "G#./M_."; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[29, 0] = "M./M."; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30, 0] = "M#./P_."; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[31, 0] = "P./P."; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[32, 0] = "D./D."; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[33, 0] = "D#./N_."; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[34, 0] = "N./N."; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[35, 0] = "N#./S.."; // Shuddha Ni
///////////////////In Hindustani classical music, Mandra Saptak refers to the lower octave, Madhya Saptak to the middle octave, and Taar Saptak
//////////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 45
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 46
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 47
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 48
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 49
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[36, 0] = "(";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[37, 0] = ")";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[38, 0] = "{";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[39, 0] = "}";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[40, 0] = "[";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[41, 0] = "]";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[42, 0] = "|";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[43, 0] = "!";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[44, 0] = "@";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45, 0] = "-";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 1, 0] = "~";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 2, 0] = "^";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 3, 0] = "\\";//single backslash
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 4, 0] = "/";
//////In Hindustani classical music, "raga vistar"(raag विस्तार) refers to the expansion or elaboration of a musical melody within a specific raga(melody scale). It involves the performer moving around within the raga, exploring its notes, and creating a musical narrative.Vistar is a crucial part of a raga performance, allowing the musician to showcase their creativity and skill.
//////Here's a more detailed breakdown:
//////Aalap and Vistar:
//////Vistar is often a part of the "aalap" section, which is the introductory improvisation that sets the tone of the raga. Aalap allows the musician to establish the raga's character and create a musical mood before moving into the more rhythmic sections of the performance.
//////Chalan:
//////Vistar is closely related to "chalan," which refers to the characteristic way in which a raga is played or sung, including its melodic phrases and patterns. Vistar builds upon the chalan, exploring its possibilities and nuances.
//////Improvisation:
//////Vistar involves improvisation, where the musician uses their knowledge of the raga's notes, patterns, and emotional qualities to create a unique musical piece.
//////Swar Vistaar:
//////The term "swar vistar" specifically refers to the exploration of notes within a raga.
//////Examples:
////////////Different ragas have different characteristics and vistar styles. For example, the raga Yaman, known for its grandeur and fundamental nature, allows for a wide range of improvisational possibilities.The raga Malkauns is considered an old raga in Indian classical music with its own unique vistar.
//////In Hindustani classical music, the concept of "raga vistaar"(raag विस्तार) refers to the expansive elaboration of a raga, allowing the performer to explore its melodic contours and emotional depth. This process is not merely an improvisational exercise but follows a structured approach that combines theoretical understanding with creative expression.
//////Mathematical and Structural Foundations of Raga Vistaar
//////Pitch Distribution and Tonal Hierarchy: Each raga is characterized by a specific set of notes(svaras), and the frequency with which these notes are used can be analyzed statistically.Research has shown that the relative frequency of more significant notes stabilizes more quickly than that of others, indicating their importance in expressing the raga's mood and structure.
//////MTG GitHub Pages
//////arXiv
//////Finite Automaton Models: Computational models, such as finite automata, have been employed to simulate the melodic progression in raga performances. These models help in understanding the sequence and transition of notes, reflecting the raga's inherent grammar and syntax.
//////CSE IIT Bombay
//////Statistical Analysis of Melodic Phrases: The identification of recurring melodic phrases or motifs is crucial in raga vistaar. By analyzing the occurrence and transition of these phrases, one can discern the underlying structure and emotional trajectory of the raga.
//////CSE IIT Bombay
//////Rhythmic and Temporal Structuring: While the melodic aspect is central, the rhythmic framework(tala) also plays a significant role in raga vistaar. The interplay between melody and rhythm is carefully structured to enhance the raga's expression and to guide the listener through its emotional journey.
//////Improvisational Techniques: Vistaar involves various improvisational techniques, such as meend (glides), gamak(oscillations), and murki(quick note clusters), which add nuance and depth to the performance. These techniques are not random but are governed by the raga's rules and the performer's creativity.
//////Conclusion
//////Raga vistaar is a sophisticated blend of mathematical principles, structural analysis, and artistic expression.While computational models provide insights into the underlying patterns and structures, the true essence of vistaar lies in the performer's ability to breathe life into these structures, creating a unique and emotive rendition of the raga.
//////Raga vistaar, a core element of Indian classical music, builds upon a mathematical and structural foundation. The vistaar, or expansion, involves exploring the melodic possibilities within a raga(scale), often using structures like alaap(melodic improvisation) and taans(rapid melodic ornamentation). The mathematical underpinnings lie in the relationships between notes, the construction of alankars(melodic exercises), and the systematic arrangement of notes within a raga.
//////Here's a more detailed look:
//////1.Mathematical Foundations:
//////Relationships between notes:
//////Ragas are built on specific relationships between the seven fundamental notes(Swaras Sa, Re, Ga, Ma, Pa, Dha, Ni), according to Artium Academy. These relationships, including intervals and microtones, are mathematically defined.
//////Alankars:
//////Alankars are melodic exercises that explore the notes within a raga.They are often structured using mathematical functions, such as the example of applying a pattern to the notes of a Thaat(a set of notes) to create a sequence of phrases.
//////Combinatorial Structures:
//////Indian music has a vast number of ragas, created through combinations and permutations of the seven fundamental notes.For instance, the 72 distinct scales(ragas) are a result of mathematical combinations.
//////2.Structural Foundations:
//////Compositional Structures:
//////Raga vistaar builds upon established compositional structures like gat(the main composition of a raga), which often starts from the melodic center and explores different octaves before returning to the starting point.
//////Alaap:
//////Alaap is a melodic improvisation that explores the emotional and expressive potential of a raga, often using specific melodic figures and ornaments.
//////Taan:
//////Taan is a rapid melodic ornamentation that adds dynamism and excitement to the performance, often incorporating various melodic patterns.
//////Bol Baant/ Bol Laya:
//////Some schools of Hindustani music also incorporate Bol Baant(rhythmic patterns) and Bol Laya(rhythmic improvisation) into the vistaar.
//https://swarsindhu.pratibha-spandan.org/wp-content/uploads/v10i02a11.pdf
//https://swarsindhu.pratibha-spandan.org/wp-content/uploads/v12i01a57.pdf // good list of the raaga orderings
//////(For our understanding r g d n stands for komal Re, komal Ga, komal Dha, komal NI; R,G ,D N
//////stands for Suddha Re, Suddha Ga, Suddha Dha and Suddha Ni ; m = Suddha Madhyam, M = Teevra
//////Ma)
//////SCALES WITH SUDDHA MA SCALES WITH TEEVRA MA
//////S r g m P d n S { BHAIRAVI}
//////S r g M P d n S { BHAVAPRIYA}
//////S r g m P d N S { DHENUKA}
//////S r g M P d N S { TODI}
//////S r g m P D n S { NATAKAPRIYA}
//////S r g M P D n S { SHADVIDHAMARGINI}
//////S r g m P D N S { KOKILAPRIYA}
//////S r g M P D N S { SUVARNANGI}
//////S R g m P d n S { ASAVERI}
//////S R g M P d n S { SHANMUKHAPRIYA}
//////S R g m P d N S { KEERVANI}
//////S R g M P d N S { SIMHENDRAMADHYAM}
//////S R g m P D n S { KAFI}
//////S R g M P D n S { HEMAVATI}
//////S R g m P D N S { GOURIMANOHARI}
//////S R g M P D N S { DHARMAVATI}
//////S r G m P d n S { BASANT MUKHARI}
//////S r G M P d n S { NAMANARAYANI}
//////S r G m P d N S { BHAIRAV}
//////S r G M P d N S { PURVI}
//////S r G m P D n S { AHIR BHAIRAV}
//////S r G M P D n S { RAMAPRIYA}
//////S r G m P D N S { ANAND BHAIRAV}
//////S r G M P D N S { MARWA}
//////S R G m P d n S { CHARUKESHI}
//////S R G M P d n S { RISHABHAPRIYA}
//////S R G m P d N S { NAT BHAIRAV}
//////S R G M P d N S { LATANGI}
//////S R G m P D n S { KHAMAJ}
//////S R G M P D n S { VACHASPATI}
//////S R G m P D N S { BILAWAL}
//////S R G M P D N S { KALYAN}
//////Of the above combinations, Pt. Bhatkhande chose only 10 primary Thaats, which were enough to
//////accommodate the ragas prevalent in his time. They are:
//////Bilawal, Khamaj, Kafi, Bhairav, Kalyan, Marwa, Purvi, Asaveri, Bhairavi and Todi.
//////According to Dr.Nupur Ganguly(HOD, Vocal Department, Rabindra Bharati University) in her
//////book “A Bird's eye view of Indian Musicology”, Pg 82-83 ( ISBN 9788177681109 ) (published
//////Jan 2018) this improvised scientific 32 Thaat system was the conception of the Senia Gharana.
//////The names of the musical scales have too been given for students of music.Shobhana Nayar‟s
//////book “Bhatkhande‟s Contribution to Music: A Historical Perspective” [ISBN 97808
//////(For our understanding r g d n stands for komal Re, komal Ga, komal Dha, komal NI; R,G ,D N
//////stands for Suddha Re, Suddha Ga, Suddha Dha and Suddha Ni ; m = Suddha Madhyam, M = Teevra
//////Ma)
//////SCALES WITH SUDDHA MA SCALES WITH TEEVRA MA
//////S r g m P d n S { BHAIRAVI}
//////S r g M P d n S { BHAVAPRIYA}
//////S r g m P d N S { DHENUKA}
//////S r g M P d N S { TODI}
//////S r g m P D n S { NATAKAPRIYA}
//////S r g M P D n S { SHADVIDHAMARGINI}
//////S r g m P D N S { KOKILAPRIYA}
//////S r g M P D N S { SUVARNANGI}
//////S R g m P d n S { ASAVERI}
//////S R g M P d n S { SHANMUKHAPRIYA}
//////S R g m P d N S { KEERVANI}
//////S R g M P d N S { SIMHENDRAMADHYAM}
//////S R g m P D n S { KAFI}
//////S R g M P D n S { HEMAVATI}
//////S R g m P D N S { GOURIMANOHARI}
//////S R g M P D N S { DHARMAVATI}
//////S r G m P d n S { BASANT MUKHARI}
//////S r G M P d n S { NAMANARAYANI}
//////S r G m P d N S { BHAIRAV}
//////S r G M P d N S { PURVI}
//////S r G m P D n S { AHIR BHAIRAV}
//////S r G M P D n S { RAMAPRIYA}
//////S r G m P D N S { ANAND BHAIRAV}
//////S r G M P D N S { MARWA}
//////S R G m P d n S { CHARUKESHI}
//////S R G M P d n S { RISHABHAPRIYA}
//////S R G m P d N S { NAT BHAIRAV}
//////S R G M P d N S { LATANGI}
//////S R G m P D n S { KHAMAJ}
//////S R G M P D n S { VACHASPATI}
//////S R G m P D N S { BILAWAL}
//////S R G M P D N S { KALYAN}
//////Of the above combinations, Pt. Bhatkhande chose only 10 primary Thaats, which we
if (___the_current_rows_indinotes_or_commands_found == ".s")
{
___the_current_rows_indinotes_or_commands_found = "..N#";//NOT IN THE ARRAY
}
if (___the_current_rows_indinotes_or_commands_found == ".S")
{
___the_current_rows_indinotes_or_commands_found = ".S";//NO S# THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".r")
{
___the_current_rows_indinotes_or_commands_found = ".R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".R")
{
___the_current_rows_indinotes_or_commands_found = ".R";//we have to type R# for our needs
}
else if (___the_current_rows_indinotes_or_commands_found == ".g")
{
___the_current_rows_indinotes_or_commands_found = ".G_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".G")
{
___the_current_rows_indinotes_or_commands_found = ".G";//we have to specify the G# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".m")
{
___the_current_rows_indinotes_or_commands_found = ".M_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".M")
{
___the_current_rows_indinotes_or_commands_found = ".M";//we have to specify M# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".p")
{
___the_current_rows_indinotes_or_commands_found = ".P_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".P")
{
___the_current_rows_indinotes_or_commands_found = ".P";//NO P SHARP THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".d")
{
___the_current_rows_indinotes_or_commands_found = ".D";//NO D FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".D")
{
___the_current_rows_indinotes_or_commands_found = ".D";//we have to specify D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".n")
{
___the_current_rows_indinotes_or_commands_found = ".N_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".N")
{
___the_current_rows_indinotes_or_commands_found = ".N";//we have to specify N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".S")
{
___the_current_rows_indinotes_or_commands_found = ".S";// there is no S sharp (we are at lower octave)
}
else if (___the_current_rows_indinotes_or_commands_found == "s")
{
___the_current_rows_indinotes_or_commands_found = ".N#";//here it is ok for small s we take previous octaves .N#
}
else if (___the_current_rows_indinotes_or_commands_found == "S")
{
___the_current_rows_indinotes_or_commands_found = "S";//there is no S#
}
else if (___the_current_rows_indinotes_or_commands_found == "r")
{
___the_current_rows_indinotes_or_commands_found = "R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "R")
{
___the_current_rows_indinotes_or_commands_found = "R";//We have to specify the R# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "g")
{
___the_current_rows_indinotes_or_commands_found = "G_";
}
else if (___the_current_rows_indinotes_or_commands_found == "G")
{
___the_current_rows_indinotes_or_commands_found = "G";//we have to specify G# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m")
{
___the_current_rows_indinotes_or_commands_found = "M_";
}
else if (___the_current_rows_indinotes_or_commands_found == "M")
{
___the_current_rows_indinotes_or_commands_found = "M";//we have to specify M# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p")
{
___the_current_rows_indinotes_or_commands_found = "P_";
}
else if (___the_current_rows_indinotes_or_commands_found == "P")
{
___the_current_rows_indinotes_or_commands_found = "P";//there is no P#
}
else if (___the_current_rows_indinotes_or_commands_found == "d")
{
___the_current_rows_indinotes_or_commands_found = "D";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "D")
{
___the_current_rows_indinotes_or_commands_found = "D";//we have to specify the D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n")
{
___the_current_rows_indinotes_or_commands_found = "N_";
}
else if (___the_current_rows_indinotes_or_commands_found == "N")
{
___the_current_rows_indinotes_or_commands_found = "N";//We have to Specify the conditions of N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S.";//we are in higer octaves
}
else if (___the_current_rows_indinotes_or_commands_found == "s.")
{
___the_current_rows_indinotes_or_commands_found = "N#.";//this is the N# for the previous octave where it is called this means we are calling from the next octave
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S.";// there is no S#
}
else if (___the_current_rows_indinotes_or_commands_found == "r.")
{
___the_current_rows_indinotes_or_commands_found = "R.";//there is no R flat
}
else if (___the_current_rows_indinotes_or_commands_found == "R.")
{
___the_current_rows_indinotes_or_commands_found = "R.";// there is no R Flat and if necessary type the R#. specify that
}
else if (___the_current_rows_indinotes_or_commands_found == "g.")
{
___the_current_rows_indinotes_or_commands_found = "G_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "G.")
{
___the_current_rows_indinotes_or_commands_found = "G.";//specify G#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m.")
{
___the_current_rows_indinotes_or_commands_found = "M_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "M.")
{
___the_current_rows_indinotes_or_commands_found = "M.";// if necessary type M#. specify that
}
else if (___the_current_rows_indinotes_or_commands_found == "p.")
{
___the_current_rows_indinotes_or_commands_found = "P_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "P.")
{
___the_current_rows_indinotes_or_commands_found = "P.";//there is no P sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "d.")
{
___the_current_rows_indinotes_or_commands_found = "D.";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "D.")
{
___the_current_rows_indinotes_or_commands_found = "D.";// Specify the D#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "N.")
{
___the_current_rows_indinotes_or_commands_found = "N.";// if necessary specify N#.
}
else if (___the_current_rows_indinotes_or_commands_found == "S..")
{
___the_current_rows_indinotes_or_commands_found = "S..";//we are at higher to higher octave
}
else if (___the_current_rows_indinotes_or_commands_found == "s")
{
___the_current_rows_indinotes_or_commands_found = "S_";
}
else if (___the_current_rows_indinotes_or_commands_found == "S")
{
___the_current_rows_indinotes_or_commands_found = "S";//NO S SHARP THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "r")
{
___the_current_rows_indinotes_or_commands_found = "R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "R")
{
___the_current_rows_indinotes_or_commands_found = "R";
}
else if (___the_current_rows_indinotes_or_commands_found == "g")
{
___the_current_rows_indinotes_or_commands_found = "G_";
}
else if (___the_current_rows_indinotes_or_commands_found == "G")
{
___the_current_rows_indinotes_or_commands_found = "G";
}
else if (___the_current_rows_indinotes_or_commands_found == "m")
{
___the_current_rows_indinotes_or_commands_found = "M_";
}
else if (___the_current_rows_indinotes_or_commands_found == "M")
{
___the_current_rows_indinotes_or_commands_found = "M";//type M# ifnecessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p")
{
___the_current_rows_indinotes_or_commands_found = "P_";//p has the flat and no sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "P")
{
// ___the_current_rows_indinotes_or_commands_found = "P#";
___the_current_rows_indinotes_or_commands_found = "P";//THERE IS NO P#
}
else if (___the_current_rows_indinotes_or_commands_found == "d")
{
___the_current_rows_indinotes_or_commands_found = "D";//THERE IS NO D_
}
else if (___the_current_rows_indinotes_or_commands_found == "D")
{
___the_current_rows_indinotes_or_commands_found = "D";//type D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n")
{
___the_current_rows_indinotes_or_commands_found = "N_";
}
else if (___the_current_rows_indinotes_or_commands_found == "N")
{
___the_current_rows_indinotes_or_commands_found = "N";// type N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "s.")
{
___the_current_rows_indinotes_or_commands_found = "N#";// this is calling of current octave from the upper octaves S
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S";//THERE IS NO S SHARP we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "r.")
{
___the_current_rows_indinotes_or_commands_found = "R.";//THERE IS NO r flat we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "R.")
{
___the_current_rows_indinotes_or_commands_found = "R."; // we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "g.")
{
___the_current_rows_indinotes_or_commands_found = "G_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "G.")
{
___the_current_rows_indinotes_or_commands_found = "G.";//type G#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m.")
{
___the_current_rows_indinotes_or_commands_found = "M_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "M.")
{
___the_current_rows_indinotes_or_commands_found = "M.";//type M#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p.")
{
___the_current_rows_indinotes_or_commands_found = "P_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "P.")
{
___the_current_rows_indinotes_or_commands_found = "P.";//there is no p sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "d.")
{
___the_current_rows_indinotes_or_commands_found = "D.";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "n.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "N.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";//type N#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "-")
{
___the_current_rows_indinotes_or_commands_found = "S";//we will take care this with the last note continuations
}
else if (___the_current_rows_indinotes_or_commands_found == "|")
{
___the_current_rows_indinotes_or_commands_found = "|";//this is the decorations notes
}
else if (___the_current_rows_indinotes_or_commands_found == "@")
{
___the_current_rows_indinotes_or_commands_found = "@";
}
else if (___the_current_rows_indinotes_or_commands_found == "(")
{
___the_current_rows_indinotes_or_commands_found = "(";
}
else if (___the_current_rows_indinotes_or_commands_found == ")")
{
___the_current_rows_indinotes_or_commands_found = ")";
}
else if (___the_current_rows_indinotes_or_commands_found == "{")
{
___the_current_rows_indinotes_or_commands_found = "{";
}
else if (___the_current_rows_indinotes_or_commands_found == "}")
{
___the_current_rows_indinotes_or_commands_found = "}";
}
else if (___the_current_rows_indinotes_or_commands_found == "[")
{
___the_current_rows_indinotes_or_commands_found = "[";
}
else if (___the_current_rows_indinotes_or_commands_found == "]")
{
___the_current_rows_indinotes_or_commands_found = "]";
}
else if (___the_current_rows_indinotes_or_commands_found == "\\")
{
___the_current_rows_indinotes_or_commands_found = "\\";//to handle these specially with references to the previous non decorative pure melody note assigned
}
else if (___the_current_rows_indinotes_or_commands_found == "/")
{
___the_current_rows_indinotes_or_commands_found = "/";//to handle these specially with references to the previous non decorative pure melody note assigned
}
else if (___the_current_rows_indinotes_or_commands_found == "~")
{
___the_current_rows_indinotes_or_commands_found = "~";//to handle these specially with references to the previous non decorative pure melody note assigned
}
////else
////{
////}//preconditionings done
// }
//////if (
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("#")
//////||
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("_")
//////)
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
_returned_notes_number_string_another
=
DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES
(___the_current_rows_indinotes_or_commands_found);
//////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
=
_returned_notes_number_string_another;
Console.WriteLine("___the_current_rows_indinotes_or_commands_found = " + ___the_current_rows_indinotes_or_commands_found + " _returned_notes_number_string_another = " + _returned_notes_number_string_another);
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value != null)
{
if( selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
{
if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value!=null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim().Length==0)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
=
// ___converted_to_int___TO_patch_number.ToString();
___string___TO_patch_number_found;
if (___string_first_patch_number_found=="-")
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
=
// ___converted_to_int___TO_patch_number.ToString();
___string___TO_patch_number_found;
}
else
{
if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim()==___string_first_patch_number_found)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
=
___string___TO_patch_number_found;
}//if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim()==___string_first_patch_number_found)
}//end of else of if(___string_first_patch_number_found=="-")
}// if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim().Length==0)
else
{
//for nons blank cases
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim() == ___string_first_patch_number_found)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
=
___string___TO_patch_number_found;
}//if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim()==___string_first_patch_number_found)
else if
(
(___string_first_patch_number_found == "-" || ___string_first_patch_number_found == "")
&&
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim()==""
)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
=
// ___converted_to_int___TO_patch_number.ToString();
___string___TO_patch_number_found;
}
else
{
//for nons blank cases
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim() == ___string_first_patch_number_found)
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
=
___string___TO_patch_number_found;
}//if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim()==___string_first_patch_number_found)
}//end of else of if(___string_first_patch_number_found=="-")
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value.ToString().TrimEnd().TrimStart().Trim().Length==0)
}
else
{
//start of else of if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value!=null)
// this means the data is not filled here for the patches
//// selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
//// =
////// ___string___TO_patch_number_found.ToString();
///
//double check
if(null==selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value )
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
=
// ___converted_to_int___TO_patch_number.ToString();
___string___TO_patch_number_found;
}// if(null==selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value )
}//end of else of if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value!=null)
//dont fill the data for the case where the lyr sylls data is there
}
else
{
//clean the patches
////////dont fill the data for the case where the lyr sylls data is there
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
////// =
////// "";
}//end of else of if( selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
}
else
{
//////caution this is patch filling codes
////////if the lyr sylls data is null then fill that with the indinotes
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
////// =
////// ___the_current_rows_indinotes_or_commands_found;
////////dont fill the data for the case where the lyr sylls data is there
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
////// =
//////___converted_to_int___patch_number.ToString();
}//end of else of if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
}// if (selected_row !=null)
else
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
= "";
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS != null)
}//if (e.RowIndex >= 0)
}// for (int rrrrrr = 0; rrrrrr < this.dataGridView___COMPOSER.RowCount; rrrrrr++)
this.dataGridView___COMPOSER.ClearSelection();
}
catch (Exception _excptohandlestheindinotes)
{
Console.WriteLine("_excptohandlestheindinotes = " + _excptohandlestheindinotes.Message + " " + _excptohandlestheindinotes.StackTrace.ToString());
}//catch(Exception _excptohandlestheindinotes)
}//private void button___TO_FILL_SAME_PATCH_FOR_ALL_Click(object sender, EventArgs e)
private void button___TO_SCALE_EXISTING_TIMES_Click(object sender, EventArgs e)
{
string ___temp_STRING_DATA_SCALE_FACTORS_FOR_ALL_PREFILLED_TIMES =
textBox______TIMES_SCALERS_FACTORS.Text.ToString().TrimEnd().TrimStart().Trim();
string ___temp_string_current_rows_existing_durations = "";
double ___temp_double_current_rows_existing_durations = 0;
double ___converted_to_double___TIMES_SCALERS_FACTORS = 1;
try
{
___converted_to_double___TIMES_SCALERS_FACTORS
=
Convert.ToDouble(___temp_STRING_DATA_SCALE_FACTORS_FOR_ALL_PREFILLED_TIMES);
}
catch (Exception ___excptoconvert)
{
___converted_to_double___TIMES_SCALERS_FACTORS = 1;
}//catch(Exception ___excptoconvert)
try
{
for (int rrrrrr = 0; rrrrrr < this.dataGridView___COMPOSER.RowCount; rrrrrr++)
{
int selected_row_number_WITHOUTONCLICKPRELISTENS = 0;
int selected_col_number_WITHOUTONCLICKPRELISTENS = 0;
if (rrrrrr >= 0)
{
selected_row_number_WITHOUTONCLICKPRELISTENS = rrrrrr;// e.RowIndex;
selected_col_number_WITHOUTONCLICKPRELISTENS = 0;// e.ColumnIndex;
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = true;
DataGridViewRow selected_row_WITHOUTONCLICKPRELISTENS = null;
//////selected_row = this.dataGridView___COMPOSER.SelectedRows.;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[1].Value = "76";//////"TRACK_53_GTMIDS_PATCH_52___371_WINDS_12____9TH_TO_8TH";
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.BackColor = Color.LightGray;
////// for references this.dataGridViewFOR_GT_PRESETS_DATA.Rows[371].Cells[0].Style.ForeColor = Color.Black;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
selected_row_WITHOUTONCLICKPRELISTENS
=
this.dataGridView___COMPOSER.Rows[selected_row_number_WITHOUTONCLICKPRELISTENS];
string ___the_current_rows_indinotes_or_commands_found = "";
string _returned_notes_number_string_another = "";
//here we are taking the blank notes name supplied
//this will simply fill the data and populate the internal static arrays every times
if (selected_row_WITHOUTONCLICKPRELISTENS != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
{
___temp_string_current_rows_existing_durations = "";//flushing first
___temp_string_current_rows_existing_durations
=
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim();
___temp_double_current_rows_existing_durations = 0;
try
{
___temp_double_current_rows_existing_durations
=
Convert.ToDouble
(
___temp_string_current_rows_existing_durations
);
}
catch (Exception ___excp_to_convert)
{
___temp_double_current_rows_existing_durations = 1.00;
}//catch(Exception ___excp_to_convert)
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value
=
Math.Round(
(___temp_double_current_rows_existing_durations
*
___converted_to_double___TIMES_SCALERS_FACTORS)
,0)
.ToString();
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
}// if(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value!=null)
}
else
{
// ___the_current_rows_indinotes_or_commands_found = "-";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value
= "";
}//end of else of if(selected_row.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value!=null)
}
else
{
//////caution this is patch filling codes
////////if the lyr sylls data is null then fill that with the indinotes
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
////// =
////// ___the_current_rows_indinotes_or_commands_found;
////////dont fill the data for the case where the lyr sylls data is there
//////selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
////// =
//////___converted_to_int___patch_number.ToString();
///
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value
= "";
}//END OF ELSE OF // if (selected_row_WITHOUTONCLICKPRELISTENS != null)
}//if (rrrrrr >= 0)
else
{
}//end of else of //if (rrrrrr >= 0)
}// for (int rrrrrr = 0; rrrrrr < this.dataGridView___COMPOSER.RowCount; rrrrrr++)
this.dataGridView___COMPOSER.ClearSelection();
}
catch (Exception _excptohandlestheindinotes)
{
Console.WriteLine("_excptohandlestheindinotes = " + _excptohandlestheindinotes.Message + " " + _excptohandlestheindinotes.StackTrace.ToString());
}//catch(Exception _excptohandlestheindinotes)
}// private void button___TO_SCALE_EXISTING_TIMES_Click(object sender, EventArgs e)
private void button___TO___OPEN___INDINOTATIONS_FILES_OR_INDITALAS_FILES_Click(object sender, EventArgs e)
{
/// .SWARALIPIS_WITH_MILLIS TO GENERATES
//I \ R DES TO DO \ WE GENERATED 22 LOW SHRUTIS AND 22 HIGH SHRUTIS FOR SAME RAGAS with 44 times shrutis completes.mp4
////// //I \ R DES TO DO \ WE GENERATED 22 LOW SHRUTIS AND 22 HIGH SHRUTIS FOR SAME RAGAS with 44 times shrutis completes.mp4
////// try
////// {
////// string ___dummyfilesnamesformids_currentdatagridsstates_timestamps =
////// ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// + "_before_indinotesinditaals_loads_" + System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
////// /////////////////// THIS IS TO PRESERVE PREVIOUS TASKS IF THERE IS DATA ALREADY IN THE DATA GRIDS
////// save_current_composer_datagrids_state_to_files(___dummyfilesnamesformids_currentdatagridsstates_timestamps);//user choose the files names
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// System.Windows.Forms.MessageBox.Show("it loads the INDINOTATIONS Files | *.INDINOTATIONS | INDITALAS FILES | *.INDITALAS | All Files(*.*) | *.* ");
////// ///FOR REFERENCES openFileDialogForDXFFiles.Filter = "dstv/nc1 Files (.nc1)|*.nc1|AdvanceSteels dstv/nc1 Files (.nc)|*.nc|All Files (*.*)|*.*";
////// // Open file dialog to select PDF file
////// OpenFileDialog openFileDialog = new OpenFileDialog();
////// // openFileDialog.Filter = "INDINOTATIONS Files|*.INDINOTATIONS|INDITALAS FILES|*.INDITALAS|All Files (*.*)|*.*";
////// string ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS =
////// ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// + "choosefiles.INDINOTATIONS";
////// ;
////// //+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
////// openFileDialog.FileName = ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS;
////// this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";
////// if (openFileDialog.ShowDialog() == DialogResult.OK)
////// {
////////////L_Re1
////////////L_Re2
////////////L_Re
////////////L_Ga1
////////////L_Ga2
////////////L_Ga
////////////L_Ma
////////////L_Ma1
////////////L_Ma2
////////////L_Pa
////////////L_Dha1
////////////L_Dha2
////////////L_Dha
////////////L_Ni1
////////////L_Ni2
////////////L_Ni2
////////////L_Re2S
////////////L_Ga2S
////////////L_Ma2S
////////////L_Pa2
////////////M_Sa
////////////M_Re1
////////////M_Re2
////////////M_Re
////////////M_Ga1
////////////M_Ga2
////////////M_Ga
////////////M_Ma
////////////M_Ma1
////////////M_Ma2
////////////M_Pa
////////////M_Dha1
////////////M_Dha2
////////////M_Dha
////////////M_Ni1
////////////M_Ni2
////////////M_Ni
////////////M_Sa2
////////////M_Re2S
////////////M_Ga2S
////////////M_Ma2S
////////////M_Pa2
////////////U_Sa
////////////U_Re1
////////////U_Re2
////////////U_Re
////////////U_Ga1
////////////U_Ga2
////////////U_Ga
////////////U_Ma
////////////U_Ma1
////////////U_Ma2
////////////U_Pa
////////////U_Dha1
////////////U_Dha2
////////////U_Dha
////////////U_Ni1
////////////U_Ni2
////////////U_Ni
////////////U_Sa2
////////////U_Re2S
////////////U_Ga2S
////////////U_Ma2S
////////////U_Pa2
////// string SWARALIPITEXTFILES_IN_SHRUTIS = openFileDialog.FileName;
////// //////// string outputPdfPath = inputPdfPath + "_output_with_circle.pdf"; // Output file path
////// ////////TO DO AS NECESSARY
////// //////this.___selected_filesnames_for_INDINOTATIONS_OR_INDITALAS
////// //////= inputdataFORINDINOTATIONS_OR_INDITALAS_FILES;
////// //////Console.WriteLine("___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS = " + ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS);
////// ////////////////////////////////////// IMPORTANT CODE WHICH FIRST READS THE MEASURES DURATIONS ///textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS
////// //////////////////////////////// IMPORTANT CODE WHICH FIRST READS THE MEASURES DURATIONS ///textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS
////// //////////////////////////////// IMPORTANT CODE WHICH FIRST READS THE MEASURES DURATIONS ///textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS
////// /// to___load_INDINOTATIONS_FILES_OR_INDITALAS_FILES(inputdataFORINDINOTATIONS_OR_INDITALAS_FILES);
////// }// if (openFileDialog.ShowDialog() == DialogResult.OK)
////// }
////// catch (Exception ___excptoimportdata)
////// {
////// System.Windows.Forms.MessageBox.Show("___excptoimportdata = " + ___excptoimportdata.Message + " " + ___excptoimportdata.StackTrace.ToString());
////// }//catch(Exception ___excptoimportdata)
try
{
string ___dummyfilesnamesformids_currentdatagridsstates_timestamps =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "_before_indinotesinditaals_loads_"+System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
/////////////////// THIS IS TO PRESERVE PREVIOUS TASKS IF THERE IS DATA ALREADY IN THE DATA GRIDS
save_current_composer_datagrids_state_to_files(___dummyfilesnamesformids_currentdatagridsstates_timestamps);//user choose the files names
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("it loads the INDINOTATIONS Files | *.INDINOTATIONS | INDITALAS FILES | *.INDITALAS | All Files(*.*) | *.* ");
///FOR REFERENCES openFileDialogForDXFFiles.Filter = "dstv/nc1 Files (.nc1)|*.nc1|AdvanceSteels dstv/nc1 Files (.nc)|*.nc|All Files (*.*)|*.*";
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "INDINOTATIONS Files|*.INDINOTATIONS|INDITALAS FILES|*.INDITALAS|All Files (*.*)|*.*";
string ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "choosefiles.INDINOTATIONS";
;
//+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
openFileDialog.FileName = ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS ;
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputdataFORINDINOTATIONS_OR_INDITALAS_FILES = openFileDialog.FileName;
// string outputPdfPath = inputPdfPath + "_output_with_circle.pdf"; // Output file path
//TO DO AS NECESSARY
this.___selected_filesnames_for_INDINOTATIONS_OR_INDITALAS
= inputdataFORINDINOTATIONS_OR_INDITALAS_FILES;
Console.WriteLine("___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS = " + ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS);
//////////////////////////////// IMPORTANT CODE WHICH FIRST READS THE MEASURES DURATIONS ///textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS
//////////////////////////////// IMPORTANT CODE WHICH FIRST READS THE MEASURES DURATIONS ///textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS
//////////////////////////////// IMPORTANT CODE WHICH FIRST READS THE MEASURES DURATIONS ///textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS
to___load_INDINOTATIONS_FILES_OR_INDITALAS_FILES(inputdataFORINDINOTATIONS_OR_INDITALAS_FILES);
////// IMPORTANT SYNTAX READERS FOR THE INDINOTES AND INDITALAS FILES
////// IMPORTANT SYNTAX READERS FOR THE INDINOTES AND INDITALAS FILES
////// IMPORTANT SYNTAX READERS FOR THE INDINOTES AND INDITALAS FILES
// to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files(inputdataGridView___COMPOSER);
// to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files
this.dataGridView___COMPOSER.ClearSelection();
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
}
catch (Exception ___excptoimportdata)
{
System.Windows.Forms.MessageBox.Show("___excptoimportdata = " + ___excptoimportdata.Message + " " + ___excptoimportdata.StackTrace.ToString());
}//catch(Exception ___excptoimportdata)
}// private void button___TO___OPEN___INDINOTATIONS_FILES_OR_INDITALAS_FILES_Click(object sender, EventArgs e)
private void button______TO_CONVERT_ANY_STORY_TO_INDINOTATIONS_AND_INDITALAS_Click(object sender, EventArgs e)
{
// Create and configure the OpenFileDialog to open the Bengali Unicode text file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Text files (*.txt)|*.txt";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputFilePath = openFileDialog.FileName; // Get the input file path
// Create the output file path
string outputFilePath = inputFilePath + "_asciified.txt";
CONVERT_THE_BENGALI_WORDS_TO_UNIKODES_SEMIKOLONED_DATASYSTEMS(inputFilePath);
// Open the file, read content, and perform transliteration
using (StreamReader reader = new StreamReader(inputFilePath, Encoding.UTF8))
{
using (StreamWriter writer = new StreamWriter(outputFilePath, false, Encoding.UTF8))
{
string content = reader.ReadToEnd(); // Read the entire content of the Bengali file
//caution we do this activity first to convert everythings to english ascii
// Convert Bengali content to ASCII transliteration
string asciiContent = ConvertBengaliToAscii___WITH_REGEXES(content);
// Write the transliterated content to the new file
writer.Write(asciiContent);
}// using (StreamWriter writer = new StreamWriter(outputFilePath, false, Encoding.UTF8))
}// using (StreamReader reader = new StreamReader(inputFilePath, Encoding.UTF8))
// Notify the user that the file has been saved
MessageBox.Show($"Transliterated file saved as: {outputFilePath}");
System.Diagnostics.Process.Start("notepad.exe", outputFilePath);
string STRING_CONVERTED_TO_SYLLABLES_LYRICS_FILES_WITH_STRATEGY_DEPENDENT_NOTATIONS
=
ConvertANY_STORY_POEMS_CONVERTED_TO_ASCII_UPPERCASES_SPLIT_SYLLABLES_DO_STRATEGIES
(outputFilePath);
string THE_STORY_OR_POEMS_TO_SINGLE_COLUMNS_LYRIK_FILESNAME = outputFilePath + ".SAAN_LYRIKS";
string THE_STORY_OR_POEMS_TO_INDINOTATIONS_INDITALAS_FILESNAME = outputFilePath + ".INDINOTATIONS";
System.IO.File.WriteAllText
(
THE_STORY_OR_POEMS_TO_SINGLE_COLUMNS_LYRIK_FILESNAME
,
STRING_CONVERTED_TO_SYLLABLES_LYRICS_FILES_WITH_STRATEGY_DEPENDENT_NOTATIONS
);
MessageBox.Show($"Transliterated file saved as: {THE_STORY_OR_POEMS_TO_SINGLE_COLUMNS_LYRIK_FILESNAME}");
System.Diagnostics.Process.Start("notepad.exe", THE_STORY_OR_POEMS_TO_SINGLE_COLUMNS_LYRIK_FILESNAME);
///////////////////////// NOW WE WILL DO A ROUGH CALCULATIONS TO ASSIGN THE NOTATIONS DURATIONS AND THE VELOCITY AND THE SIMPLEST .INDINOTATIONS FILES
this.dataGridView___COMPOSER.ClearSelection();
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
}//private void button______TO_CONVERT_ANY_STORY_TO_INDINOTATIONS_AND_INDITALAS_Click(object sender, EventArgs e)
public static int GetAsciiSumvalues(string syllable)
{
int sum = 0;
foreach (char c in syllable)
{
sum += (int)c;
}
return sum;
}//public static int GetAsciiSumvalues(string syllable)
public static int GetAsciiSumModulus12(string syllable)
{
int sum = 0;
foreach (char c in syllable)
{
sum += (int)c;
}
return sum % 12;
}//public static int GetAsciiSumModulus12(string syllable)
public void to___SIMPLY_load_SAAN_LYRIKS_FILES___NO_INTELLIGENCES___STRATEGY_0___TO___Column_LYRIK_SYLLABLES(string filesnametoload)
{
Console.WriteLine("filesnametoload = " + filesnametoload);
//cleans the data for whole data grid first and then load only col 0 to col 7
//cleans the data for whole data grid first and then load only col 0 to col 7
//cleans the data for whole data grid first and then load only col 0 to col 7
for (int rrr = 0; rrr < this.dataGridView___COMPOSER.RowCount; rrr++)
{
for (int ccc = 0; ccc < this.dataGridView___COMPOSER.ColumnCount; ccc++)
{
this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Value = "";
this.dataGridView___COMPOSER.Rows[rrr].Cells[ccc].Style.BackColor = Color.LightGreen;
}//for (int ccc = 0; ccc < this.dataGridView___COMPOSER.ColumnCount; ccc++)
}//for (int rrr = 0; rrr < this.dataGridView___COMPOSER.RowCount; rrr++)
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
///
Console.WriteLine("cleaning dones");
string ___total_files_read_data = "";
___total_files_read_data
=
System.IO.File.ReadAllText
(
filesnametoload.Replace("\\", "\\\\")
);
//we assume the notepad++ so we dont save when reload current
Console.WriteLine("___total_files_read_data = " + ___total_files_read_data);
string ___temp_whole_string_in_SAAN_LYRIKS_files
=
___total_files_read_data
.Replace(" ", "-")
.Replace("\r\n\r\n\r\n", "\r\n")
.Replace("\r\n\r\n", "\r\n")
.Replace("\r", "\r\n")
.Replace("\n", "\r\n")
;
string[] ___arrays_of_lines_of______total_files_read_data
=
___temp_whole_string_in_SAAN_LYRIKS_files
.Split(new string[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
int valid_rows_counter_in_files = 0;
if (___arrays_of_lines_of______total_files_read_data.Length > 1)
{
Console.WriteLine("___arrays_of_lines_of______total_files_read_data.Length = " + ___arrays_of_lines_of______total_files_read_data.Length);
//first line is header
// this.dataGridView___COMPOSER.RowCount = 3;
// this.dataGridView___COMPOSER.RowCount = Math.Max(___arrays_of_lines_of______total_files_read_data.Length+3 ,6000);
this.dataGridView___COMPOSER.RowCount = Math.Max(___arrays_of_lines_of______total_files_read_data.Length + 3, 30000);// 6000);
Console.WriteLine(" this.dataGridView___COMPOSER.RowCount = " + this.dataGridView___COMPOSER.RowCount);
for (int files_lines = 0; files_lines < ___arrays_of_lines_of______total_files_read_data.Length; files_lines++)
{
string ___current_record_lines_string = ___arrays_of_lines_of______total_files_read_data[files_lines];
if (___current_record_lines_string.TrimEnd().TrimStart().Trim().Length > 0)
{
Console.WriteLine
(
___current_record_lines_string.TrimEnd().TrimStart().Trim()
+" " + ___current_record_lines_string.TrimEnd().TrimStart().Trim());
this.dataGridView___COMPOSER.Rows[files_lines].Selected = true;
DataGridViewRow selected_row_WITHOUTONCLICKPRELISTENS = null;
selected_row_WITHOUTONCLICKPRELISTENS
= this.dataGridView___COMPOSER.Rows[files_lines];
string ___the_current_rows_SYLLABLES_DATA_or_commands_found = "";
___the_current_rows_SYLLABLES_DATA_or_commands_found
=
___arrays_of_lines_of______total_files_read_data[files_lines];
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_LYRIK_SYLLABLES"].Value
=
___the_current_rows_SYLLABLES_DATA_or_commands_found;
;
int calcdata = GetAsciiSumModulus12(___the_current_rows_SYLLABLES_DATA_or_commands_found);
string indinote = "";
if(calcdata==0)
{
indinote = "s";
}
else if(calcdata == 1)
{
indinote = "S";
}
else if (calcdata == 2)
{
indinote = "r";
}
else if (calcdata == 3)
{
indinote = "R";
}
else if (calcdata == (3+1))
{
indinote = "g";
}
else if (calcdata == (3+2))
{
indinote = "G";
}
else if (calcdata == (3+3))
{
indinote = "m";
}
else if (calcdata == 7)
{
indinote = "M";
}
else if (calcdata == 8)
{
indinote = "p";
}
else if (calcdata == 9)
{
indinote = "P";
}
else if (calcdata == 8+2)
{
indinote = "d";
}
else if (calcdata == 11)
{
indinote = "D";
}
else if (calcdata == 8)
{
indinote = "n";
}
else if (calcdata == 11+1)
{
indinote = "N";
}
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value
= indinote;
;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value
=
DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES
(indinote);
/// ___the_current_rows_indinotes_or_commands_found.Length*60;
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CURRENT_NOTES_PATCH"].Value
= "73";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value
=
////// (int)
////// (
////// Math.Min
////// (
////// 60
////// ,
//////___the_current_rows_SYLLABLES_DATA_or_commands_found.Length
//////* 60
//////* ( Math.Min(1,calcdata/3))
////// )
////// )
///
Math.Min( GetAsciiSumvalues(
___the_current_rows_SYLLABLES_DATA_or_commands_found)
,
___the_current_rows_SYLLABLES_DATA_or_commands_found.Length*60
)
;
if (___the_current_rows_SYLLABLES_DATA_or_commands_found == "-")
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value
= "-";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"0";
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value
=
"600";//to calculate
}//if(___the_current_rows_indinotes_or_commands_found=="-")
else
{
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_VELOCITY"].Value
=
"127";
}//end of else of //if(___the_current_rows_indinotes_or_commands_found=="-")
}// if(___current_record_lines_string.TrimEnd().TrimStart().Trim().Length>0)
}//for(int files_lines=1; files_lines< ___arrays_of_lines_of______total_files_read_data.Length; files_lines++)
}// if(___arrays_of_lines_of______total_files_read_data.Length>1)
}// public void to___SIMPLY_load_SAAN_LYRIKS_FILES___NO_INTELLIGENCES___STRATEGY_0___TO___Column_LYRIK_SYLLABLES(string filesnametoload)
// // // // // // static int GetFluteNoteNumber(string syllable)
// // // // // // {
// // // // // // // Define a simple mapping for demonstration purposes
// // // // // // Dictionary<string, int> noteMap = new Dictionary<string, int></string, int></string, int>
// // // // // // {
// // // // // // { "A", 60 }, { "B", 62 }, { "C", 64 }, { "D", 65 },
// // // // // // { "E", 67 }, { "F", 69 }, { "G", 71 }
// // // // // // };
// // // // // // if (syllable == " " || syllable == "-")
// // // // // // {
// // // // // // return 127; // Rest note
// // // // // // }
// // // // // // else if (syllable == "!")
// // // // // // {
// // // // // // // Handle pitch bend for the previous note
// // // // // // // This is a placeholder, actual implementation may vary
// // // // // // return 0; // Placeholder value
// // // // // // }
// // // // // // else
// // // // // // {
// // // // // // // Assign note number based on syllable
// // // // // // // This is a placeholder, actual implementation may vary
// // // // // // return noteMap.ContainsKey(syllable) ? noteMap[syllable] : 60; // Default to middle C
// // // // // // }
// // // // // // }
// // // // // // static int GetFluteVelocity(string syllable)
// // // // // // {
// // // // // // if (syllable == " " || syllable == "-")
// // // // // // {
// // // // // // return 0; // No sound
// // // // // // }
// // // // // // else
// // // // // // {
// // // // // // // Placeholder velocity, actual implementation may vary
// // // // // // return 100; // Default velocity
// // // // // // }
// // // // // // }
private void button___TO___LOAD___SAAN_LYRIKS___FILES_TO_GRID_Click(object sender, EventArgs e)
{
string ___dummyfilesnamesformids_currentdatagridsstates_timestamps =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "_before_indinotesinditaals_loads_" + System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
save_current_composer_datagrids_state_to_files(___dummyfilesnamesformids_currentdatagridsstates_timestamps);//user choose the files names
System.Windows.Forms.MessageBox.Show("it loads the INDINOTATIONS Files | *.INDINOTATIONS | INDITALAS FILES | *.INDITALAS | All Files(*.*) | *.* ");
///FOR REFERENCES openFileDialogForDXFFiles.Filter = "dstv/nc1 Files (.nc1)|*.nc1|AdvanceSteels dstv/nc1 Files (.nc)|*.nc|All Files (*.*)|*.*";
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "SAAN_LYRIKS Files|*.SAAN_LYRIKS|GTLYRS FILES|*.GTLYRS|All Files (*.*)|*.*";
string ___dummyfilesnamesformids_current_SAAN_LYRIKS =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "choosefiles.SAAN_LYRIKS";
;
//+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
openFileDialog.FileName = ___dummyfilesnamesformids_current_SAAN_LYRIKS;
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputdataFOR___SAAN_LYRIKS_FILES = openFileDialog.FileName;
// string outputPdfPath = inputPdfPath + "_output_with_circle.pdf"; // Output file path
//TO DO AS NECESSARY
this.___selected_filesnames_for_SAAN_LYRIKS_FILES
= inputdataFOR___SAAN_LYRIKS_FILES;
Console.WriteLine("___dummyfilesnamesformids_current_SAAN_LYRIKS = " + ___dummyfilesnamesformids_current_SAAN_LYRIKS);
to___SIMPLY_load_SAAN_LYRIKS_FILES___NO_INTELLIGENCES___STRATEGY_0___TO___Column_LYRIK_SYLLABLES(inputdataFOR___SAAN_LYRIKS_FILES);
// to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files(inputdataGridView___COMPOSER);
// to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files
this.dataGridView___COMPOSER.ClearSelection();
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
}//private void button___TO___LOAD___SAAN_LYRIKS___FILES_TO_GRID_Click(object sender, EventArgs e)
static string GetBENGSUnicodeValuesFORVOWELSINCLUSIONSALSO_WITH_INTEGERS_DATA_ALSO(string text)
{
StringBuilder unicodeValues = new StringBuilder();
foreach (char c in text)
{
unicodeValues.AppendFormat("U+{0:X4} ({1}) ", (int)c, (int)c);
}// static string GetBENGSUnicodeValuesFORVOWELSINCLUSIONSALSO(string text)
return unicodeValues.ToString().Trim();
}// static string GetBENGSUnicodeValuesFORVOWELSINCLUSIONSALSO (string text)
static bool HasPreassignedGlyph(string text)
{
using (Bitmap bmp = new Bitmap(1, 1))
{
using (Graphics g = Graphics.FromImage(bmp))
{
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
Font font = new Font("Arial Unicode MS", 12); // Using an inbuilt font that supports Bengali script
SizeF size = g.MeasureString(text, font);
return size.Width > 0 && size.Height > 0;
}//using (Graphics g = Graphics.FromImage(bmp))
}//using (Bitmap bmp = new Bitmap(1, 1))
}//static bool HasPreassignedGlyph(string text)
static string RETURN_WIDTH_HEIGHT_FOR_GLYPHS_PreassignedGlyph(string text)
{
string return_width_heights = "";
using (Bitmap bmp = new Bitmap(1, 1))
{
using (Graphics g = Graphics.FromImage(bmp))
{
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
Font font = new Font("Arial Unicode MS", 12); // Using an inbuilt font that supports Bengali script
SizeF size = g.MeasureString(text, font);
// return size.Width > 0 && size.Height > 0;
return_width_heights = "Width= " + size.Width + " Height = " + size.Height + " for " +text;
}//using (Graphics g = Graphics.FromImage(bmp))
}//using (Bitmap bmp = new Bitmap(1, 1))
return return_width_heights;
}//static string RETURN_WIDTH_HEIGHT_FOR_GLYPHS_PreassignedGlyph(string text)
private void button___GENERATETHEBENGJUKTAKSHORS_Click(object sender, EventArgs e)
{
string dari = "\u0964";
string Bengali_Letter_OVERALL_NO_OBJECTS = "";
string Bengali_Letter_KA = "\u0995";
string Bengali_Letter_KHA = "\u0996";
string Bengali_Letter_GA = "\u0997";
string Bengali_Letter_GHA = "\u0998";
string Bengali_Letter_NGA = "\u0999";
string Bengali_Letter_CA = "\u099A";
string Bengali_Letter_CHA = "\u099B";
string Bengali_Letter_JA = "\u099C";
string Bengali_Letter_JHA = "\u099D";
string Bengali_Letter_NYA = "\u099E";
string Bengali_Letter_TTA = "\u099F";
string Bengali_Letter_TTHA = "\u09A0";
string Bengali_Letter_DDA = "\u09A1";
string Bengali_Letter_DDHA = "\u09A2";
string Bengali_Letter_NNA = "\u09A3";
string Bengali_Letter_TA = "\u09A4";
string Bengali_Letter_THA = "\u09A5";
string Bengali_Letter_DA = "\u09A6";
string Bengali_Letter_DHA = "\u09A7";
string Bengali_Letter_NA = "\u09A8";
string Bengali_Letter_PA = "\u09AA";
string Bengali_Letter_PHA = "\u09AB";
string Bengali_Letter_BA = "\u09AC";
string Bengali_Letter_BHA = "\u09AD";
string Bengali_Letter_MA = "\u09AE";
string Bengali_Letter_YA = "\u09AF";
string Bengali_Letter_RA = "\u09B0";
string Bengali_Letter_LA = "\u09B2";
string Bengali_Letter_SHA = "\u09B6";
string Bengali_Letter_SSA = "\u09B7";
string Bengali_Letter_SA = "\u09B8";
string Bengali_Letter_HA = "\u09B9";
string Bengali_Letter_RRA = "\u09DD";
string Bengali_Letter_YYA = "\u09DF";
List<string> SAANS_NAMED_CONSONANTS_LIST
= new List<string>
{
Bengali_Letter_KA,
Bengali_Letter_KHA,
Bengali_Letter_GA,
Bengali_Letter_GHA,
Bengali_Letter_NGA,
Bengali_Letter_CA,
Bengali_Letter_CHA,
Bengali_Letter_JA,
Bengali_Letter_JHA,
Bengali_Letter_NYA,
Bengali_Letter_TTA,
Bengali_Letter_TTHA,
Bengali_Letter_DDA,
Bengali_Letter_DDHA,
Bengali_Letter_NNA,
Bengali_Letter_TA,
Bengali_Letter_THA,
Bengali_Letter_DA,
Bengali_Letter_DHA,
Bengali_Letter_NA,
Bengali_Letter_PA,
Bengali_Letter_PHA,
Bengali_Letter_BA,
Bengali_Letter_BHA,
Bengali_Letter_MA,
Bengali_Letter_YA,
Bengali_Letter_RA,
Bengali_Letter_LA,
Bengali_Letter_SHA,
Bengali_Letter_SSA,
Bengali_Letter_SA,
Bengali_Letter_HA,
Bengali_Letter_RRA,
Bengali_Letter_YYA,
Bengali_Letter_OVERALL_NO_OBJECTS
};// List<string> SAANS_NAMED_CONSONANTS_LIST
string Bengali_Letter_A = "\u0985";
string Bengali_Letter_AA = "\u0986";
string Bengali_Letter_I = "\u0987";
string Bengali_Letter_II = "\u0988";
string Bengali_Letter_U = "\u0989";
string Bengali_Letter_UU = "\u098A";
string Bengali_Letter_Vocalic_R = "\u098B";
string Bengali_Letter_E = "\u098F";
string Bengali_Letter_AI = "\u0990";
string Bengali_Letter_O = "\u0993";
string Bengali_Letter_AU = "\u0994";
List<string> SAANS_NAMED_ONLY_VOWELS_LIST
= new List<string>
{
Bengali_Letter_A,
Bengali_Letter_AA,
Bengali_Letter_I,
Bengali_Letter_II,
Bengali_Letter_U,
Bengali_Letter_UU,
Bengali_Letter_Vocalic_R,
Bengali_Letter_E,
Bengali_Letter_AI,
Bengali_Letter_O,
Bengali_Letter_AU,
Bengali_Letter_OVERALL_NO_OBJECTS
};//List<string> SAANS_NAMED_ONLY_VOWELS_LIST
string Bengali_Sign_Candrabindu= "\u0981";// 2433
string Bengali_Sign_Anusvara= "\u0982";// 2434
string Bengali_Sign_Visarga = "\u0983";// 2435
string Bengali_Sign_halant = "\u09CD"; // 2509
string Bengali_Sign_yafalas = "\u09CD"; // 2509
List<string> SAANS_NAMED_ONLY_SPECIAL_COLORS_LIST
= new List<string>
{
Bengali_Letter_OVERALL_NO_OBJECTS,
Bengali_Sign_Candrabindu,
Bengali_Sign_Anusvara,
Bengali_Sign_Visarga,
Bengali_Sign_halant,
Bengali_Sign_yafalas
};//List<string> SAANS_NAMED_ONLY_SPECIAL_COLORS_LIST
//া
string Bengali_Vowel_Sign_AA = "\u09BE";// 2494
//ি
string Bengali_Vowel_Sign_I = "\u09BF";// 2495
//ী
string Bengali_Vowel_Sign_II = "\u09C0";// 2496
//ু
string Bengali_Vowel_Sign_U = "\u09C1";// 2497
//ূ
string Bengali_Vowel_Sign_UU = "\u09C2";// 2498
//ে
string Bengali_Vowel_Sign_E = "\u09C7";// 2503
//ৈ
string Bengali_Vowel_Sign_AI = "\u09C8";// 2504
//ো
string Bengali_Vowel_Sign_O = "\u09CB";// 2507
//ৌ
string Bengali_Vowel_Sign_AU = "\u09CC";// 2508
List<string> SAANS_NAMED_ONLY_SIGNS_OF_THE_VOWELS_LIST
= new List<string>
{
Bengali_Letter_OVERALL_NO_OBJECTS,
Bengali_Vowel_Sign_AA,
Bengali_Vowel_Sign_I,
Bengali_Vowel_Sign_II,
Bengali_Vowel_Sign_U,
Bengali_Vowel_Sign_UU,
Bengali_Vowel_Sign_E,
Bengali_Vowel_Sign_AI,
Bengali_Vowel_Sign_O,
Bengali_Vowel_Sign_AU,
Bengali_Sign_yafalas
};//List<string> SAANS_NAMED_ONLY_SIGNS_OF_THE_VOWELS_LIST
StringBuilder ___strblds_to_check_which_of_the_consonants_are_halanta_clubbables = new StringBuilder();
___strblds_to_check_which_of_the_consonants_are_halanta_clubbables.Clear();
foreach(string ___consonant_1 in SAANS_NAMED_CONSONANTS_LIST)
{
//////___strblds_to_check_which_of_the_consonants_are_halanta_clubbables
////// .AppendLine(___consonant_1 );
foreach (string ___consonant_2 in SAANS_NAMED_CONSONANTS_LIST)
{
___strblds_to_check_which_of_the_consonants_are_halanta_clubbables
.AppendLine(___consonant_1 + Bengali_Sign_halant + ___consonant_2);
}//foreach(string ___consonant_2 in SAANS_NAMED_CONSONANTS_LIST)
}//foreach(string ___consonant_1 in SAANS_NAMED_CONSONANTS_LIST)
string saans_valid_halantifiables_consonants______kk="ক্ক";
string saans_valid_halantifiables_consonants______kT="ক্ট";
string saans_valid_halantifiables_consonants______kt="ক্ত";
string saans_valid_halantifiables_consonants______kn="ক্ন";
string saans_valid_halantifiables_consonants______kb="ক্ব";
string saans_valid_halantifiables_consonants______km="ক্ম";
string saans_valid_halantifiables_consonants______ky="ক্য";
string saans_valid_halantifiables_consonants______kr="ক্র";
string saans_valid_halantifiables_consonants______kl="ক্ল";
string saans_valid_halantifiables_consonants______kSH="ক্ষ";
string saans_valid_halantifiables_consonants______ks="ক্স";
string saans_valid_halantifiables_consonants______khy="খ্য";
string saans_valid_halantifiables_consonants______khr="খ্র";
string saans_valid_halantifiables_consonants______gg="গ্গ";
string saans_valid_halantifiables_consonants______gDH="গ্ধ";
string saans_valid_halantifiables_consonants______gn="গ্ন";
string saans_valid_halantifiables_consonants______gb="গ্ব";
string saans_valid_halantifiables_consonants______gm="গ্ম";
string saans_valid_halantifiables_consonants______gy="গ্য";
string saans_valid_halantifiables_consonants______gr="গ্র";
string saans_valid_halantifiables_consonants______gl="গ্ল";
string saans_valid_halantifiables_consonants______Ghn="ঘ্ন";
string saans_valid_halantifiables_consonants______GHy="ঘ্য";
string saans_valid_halantifiables_consonants______GHr="ঘ্র";
string saans_valid_halantifiables_consonants______NUOk="ঙ্ক";
string saans_valid_halantifiables_consonants______NUOKH = "ঙ্খ";
string saans_valid_halantifiables_consonants______NUOg = "ঙ্গ";
string saans_valid_halantifiables_consonants______NUOGH = "ঙ্ঘ";
string saans_valid_halantifiables_consonants______NUOm= "ঙ্ম";
string saans_valid_halantifiables_consonants______NUOy = "ঙ্য";
string saans_valid_halantifiables_consonants______NUOr = "ঙ্র";
string saans_valid_halantifiables_consonants______chch="চ্চ";
string saans_valid_halantifiables_consonants______chCHH="চ্ছ";
string saans_valid_halantifiables_consonants______chNUO="চ্ঞ";
string saans_valid_halantifiables_consonants______chy="চ্য";
string saans_valid_halantifiables_consonants______chr="চ্র";
string saans_valid_halantifiables_consonants______CHHY="ছ্য";
string saans_valid_halantifiables_consonants______CHHr="ছ্র";
string saans_valid_halantifiables_consonants______jj="জ্জ";
string saans_valid_halantifiables_consonants______jJH="জ্ঝ";
string saans_valid_halantifiables_consonants______jNUO="জ্ঞ";
string saans_valid_halantifiables_consonants______jb="জ্ব";
string saans_valid_halantifiables_consonants______jy="জ্য";
string saans_valid_halantifiables_consonants______jr="জ্র";
string saans_valid_halantifiables_consonants______JHy="ঝ্য";
string saans_valid_halantifiables_consonants______JHr="ঝ্র";
string saans_valid_halantifiables_consonants______NYAch="ঞ্চ";
string saans_valid_halantifiables_consonants______NYACHH= "ঞ্ছ";
string saans_valid_halantifiables_consonants______NYAj = "ঞ্জ";
string saans_valid_halantifiables_consonants______NYAJH = "ঞ্ঝ";
string saans_valid_halantifiables_consonants______NYAy= "ঞ্য";
string saans_valid_halantifiables_consonants______NYAr = "ঞ্র";
string saans_valid_halantifiables_consonants______Tt="ট্ট";
string saans_valid_halantifiables_consonants______Tb="ট্ব";
string saans_valid_halantifiables_consonants______Ty="ট্য";
string saans_valid_halantifiables_consonants______Tr="ট্র";
string saans_valid_halantifiables_consonants______TTHy="ঠ্য";
string saans_valid_halantifiables_consonants______TTHr = "ঠ্র";
string saans_valid_halantifiables_consonants______DD="ড্ড";
string saans_valid_halantifiables_consonants______Dy="ড্য";
string saans_valid_halantifiables_consonants______Dr="ড্র";
string saans_valid_halantifiables_consonants______DDHy="ঢ্য";
string saans_valid_halantifiables_consonants______DDHr="ঢ্র";
string saans_valid_halantifiables_consonants______NT="ণ্ট";
string saans_valid_halantifiables_consonants______NTTH="ণ্ঠ";
string saans_valid_halantifiables_consonants______ND="ণ্ড";
string saans_valid_halantifiables_consonants______NDH="ণ্ঢ";
string saans_valid_halantifiables_consonants______NN="ণ্ণ";
string saans_valid_halantifiables_consonants______Nb="ণ্ব";
string saans_valid_halantifiables_consonants______Nm="ণ্ম";
string saans_valid_halantifiables_consonants______Ny="ণ্য";
string saans_valid_halantifiables_consonants______Nr="ণ্র";
string saans_valid_halantifiables_consonants______tt="ত্ত";
string saans_valid_halantifiables_consonants______tTh="ত্থ";
string saans_valid_halantifiables_consonants______tn="ত্ন";
string saans_valid_halantifiables_consonants______tb="ত্ব";
string saans_valid_halantifiables_consonants______tm="ত্ম";
string saans_valid_halantifiables_consonants______ty="ত্য";
string saans_valid_halantifiables_consonants______tr="ত্র";
string saans_valid_halantifiables_consonants______THb="থ্ব";
string saans_valid_halantifiables_consonants______THy="থ্য";
string saans_valid_halantifiables_consonants______THr="থ্র";
string saans_valid_halantifiables_consonants______dg="দ্গ";
string saans_valid_halantifiables_consonants______dGH="দ্ঘ";
string saans_valid_halantifiables_consonants______dd="দ্দ";
string saans_valid_halantifiables_consonants______dDH="দ্ধ";
string saans_valid_halantifiables_consonants______db="দ্ব";
string saans_valid_halantifiables_consonants______dv="দ্ভ";
string saans_valid_halantifiables_consonants______dm="দ্ম";
string saans_valid_halantifiables_consonants______dy="দ্য";
string saans_valid_halantifiables_consonants______dr="দ্র";
string saans_valid_halantifiables_consonants______DHn="ধ্ন";
string saans_valid_halantifiables_consonants______DHb="ধ্ব";
string saans_valid_halantifiables_consonants______DHy="ধ্য";
string saans_valid_halantifiables_consonants______DHr="ধ্র";
string saans_valid_halantifiables_consonants______nj="ন্জ";
string saans_valid_halantifiables_consonants______nT="ন্ট";
string saans_valid_halantifiables_consonants______nTTH="ন্ঠ";
string saans_valid_halantifiables_consonants______nD="ন্ড";
string saans_valid_halantifiables_consonants______nt="ন্ত";
string saans_valid_halantifiables_consonants______nTHH="ন্থ";
string saans_valid_halantifiables_consonants______nd="ন্দ";
string saans_valid_halantifiables_consonants______ndh="ন্ধ";
string saans_valid_halantifiables_consonants______nn="ন্ন";
string saans_valid_halantifiables_consonants______nb="ন্ব";
string saans_valid_halantifiables_consonants______nm="ন্ম";
string saans_valid_halantifiables_consonants______ny="ন্য";
string saans_valid_halantifiables_consonants______nr="ন্র";
string saans_valid_halantifiables_consonants______ns="ন্স";
string saans_valid_halantifiables_consonants______pT="প্ট";
string saans_valid_halantifiables_consonants______pt="প্ত";
string saans_valid_halantifiables_consonants______pn="প্ন";
string saans_valid_halantifiables_consonants______pp="প্প";
string saans_valid_halantifiables_consonants______py="প্য";
string saans_valid_halantifiables_consonants______pr="প্র";
string saans_valid_halantifiables_consonants______pl="প্ল";
string saans_valid_halantifiables_consonants______ps="প্স";
string saans_valid_halantifiables_consonants______ft="ফ্ট";
string saans_valid_halantifiables_consonants______fy="ফ্য";
string saans_valid_halantifiables_consonants______fr="ফ্র";
string saans_valid_halantifiables_consonants______fl="ফ্ল";
string saans_valid_halantifiables_consonants______bj="ব্জ";
string saans_valid_halantifiables_consonants______bd ="ব্দ";
string saans_valid_halantifiables_consonants______bDH="ব্ধ";
string saans_valid_halantifiables_consonants______bb="ব্ব";
string saans_valid_halantifiables_consonants______bv="ব্ভ";
string saans_valid_halantifiables_consonants______by="ব্য";
string saans_valid_halantifiables_consonants______br="ব্র";
string saans_valid_halantifiables_consonants______bl="ব্ল";
string saans_valid_halantifiables_consonants______vy="ভ্য";
string saans_valid_halantifiables_consonants______vr="ভ্র";
string saans_valid_halantifiables_consonants______mn="ম্ন";
string saans_valid_halantifiables_consonants______mp="ম্প";
string saans_valid_halantifiables_consonants______mf="ম্ফ";
string saans_valid_halantifiables_consonants______mb="ম্ব";
string saans_valid_halantifiables_consonants______mv="ম্ভ";
string saans_valid_halantifiables_consonants______mm="ম্ম";
string saans_valid_halantifiables_consonants______my="ম্য";
string saans_valid_halantifiables_consonants______mr="ম্র";
string saans_valid_halantifiables_consonants______ml="ম্ল";
string saans_valid_halantifiables_consonants______YY="য্য";
string saans_valid_halantifiables_consonants______Yr="য্র";
string saans_valid_halantifiables_consonants______rk="র্ক";
string saans_valid_halantifiables_consonants______rKH="র্খ";
string saans_valid_halantifiables_consonants______rg="র্গ";
string saans_valid_halantifiables_consonants______rGH="র্ঘ";
string saans_valid_halantifiables_consonants______rNUO="র্ঙ";
string saans_valid_halantifiables_consonants______rch="র্চ";
string saans_valid_halantifiables_consonants______rCHH="র্ছ";
string saans_valid_halantifiables_consonants______rj="র্জ";
string saans_valid_halantifiables_consonants______rJH="র্ঝ";
string saans_valid_halantifiables_consonants______rNYA="র্ঞ";
string saans_valid_halantifiables_consonants______rT="র্ট";
string saans_valid_halantifiables_consonants______rTTH="র্ঠ";
string saans_valid_halantifiables_consonants______rD="র্ড";
string saans_valid_halantifiables_consonants______rDDH="র্ঢ";
string saans_valid_halantifiables_consonants______rN="র্ণ";
string saans_valid_halantifiables_consonants______rt="র্ত";
string saans_valid_halantifiables_consonants______rTH="র্থ";
string saans_valid_halantifiables_consonants______rd = "র্দ";
string saans_valid_halantifiables_consonants______rDH="র্ধ";
string saans_valid_halantifiables_consonants______rn="র্ন";
string saans_valid_halantifiables_consonants______rp="র্প";
string saans_valid_halantifiables_consonants______rf="র্ফ";
string saans_valid_halantifiables_consonants______rb="র্ব";
string saans_valid_halantifiables_consonants______rv="র্ভ";
string saans_valid_halantifiables_consonants______rm="র্ম";
string saans_valid_halantifiables_consonants______ry="র্য";
string saans_valid_halantifiables_consonants______rR="র্র";
string saans_valid_halantifiables_consonants______rl="র্ল";
string saans_valid_halantifiables_consonants______rsh="র্শ";
string saans_valid_halantifiables_consonants______rSH="র্ষ";
string saans_valid_halantifiables_consonants______rs="র্স";
string saans_valid_halantifiables_consonants______rh="র্হ";
string saans_valid_halantifiables_consonants______rDDR="র্ঢ়";
string saans_valid_halantifiables_consonants______rY="র্য়";
string saans_valid_halantifiables_consonants______lk="ল্ক";
string saans_valid_halantifiables_consonants______lg="ল্গ";
string saans_valid_halantifiables_consonants______lT="ল্ট";
string saans_valid_halantifiables_consonants______lD="ল্ড";
string saans_valid_halantifiables_consonants______lp="ল্প";
string saans_valid_halantifiables_consonants______lf="ল্ফ";
string saans_valid_halantifiables_consonants______lb="ল্ব";
string saans_valid_halantifiables_consonants______lm="ল্ম";
string saans_valid_halantifiables_consonants______ly="ল্য";
string saans_valid_halantifiables_consonants______lr="ল্র";
string saans_valid_halantifiables_consonants______ll="ল্ল";
string saans_valid_halantifiables_consonants______ls="ল্স";
string saans_valid_halantifiables_consonants______shch="শ্চ";
string saans_valid_halantifiables_consonants______shCHH="শ্ছ";
string saans_valid_halantifiables_consonants______sht="শ্ত";
string saans_valid_halantifiables_consonants______shn="শ্ন";
string saans_valid_halantifiables_consonants______shb="শ্ব";
string saans_valid_halantifiables_consonants______shm="শ্ম";
string saans_valid_halantifiables_consonants______shy="শ্য";
string saans_valid_halantifiables_consonants______shr="শ্র";
string saans_valid_halantifiables_consonants______shl="শ্ল";
string saans_valid_halantifiables_consonants______SHk="ষ্ক";
string saans_valid_halantifiables_consonants______SHT="ষ্ট";
string saans_valid_halantifiables_consonants______SHTTH="ষ্ঠ";
string saans_valid_halantifiables_consonants______SHNYA="ষ্ণ";
string saans_valid_halantifiables_consonants______SHp="ষ্প";
string saans_valid_halantifiables_consonants______SHf="ষ্ফ";
string saans_valid_halantifiables_consonants______SHb="ষ্ব";
string saans_valid_halantifiables_consonants______SHm="ষ্ম";
string saans_valid_halantifiables_consonants______SHy="ষ্য";
string saans_valid_halantifiables_consonants______SHr="ষ্র";
string saans_valid_halantifiables_consonants______sk="স্ক";
string saans_valid_halantifiables_consonants______sKH="স্খ";
string saans_valid_halantifiables_consonants______sT="স্ট";
string saans_valid_halantifiables_consonants______st="স্ত";
string saans_valid_halantifiables_consonants______sH="স্থ";
string saans_valid_halantifiables_consonants______sn="স্ন";
string saans_valid_halantifiables_consonants______sp="স্প";
string saans_valid_halantifiables_consonants______sf="স্ফ";
string saans_valid_halantifiables_consonants______sb="স্ব";
string saans_valid_halantifiables_consonants______sm="স্ম";
string saans_valid_halantifiables_consonants______sy="স্য";
string saans_valid_halantifiables_consonants______sr="স্র";
string saans_valid_halantifiables_consonants______sl="স্ল";
string saans_valid_halantifiables_consonants______Hn="হ্ণ";
string saans_valid_halantifiables_consonants______HN="হ্ন";
string saans_valid_halantifiables_consonants______Hb="হ্ব";
string saans_valid_halantifiables_consonants______HM="হ্ম";
string saans_valid_halantifiables_consonants______HY="হ্য";
string saans_valid_halantifiables_consonants______Hr="হ্র";
string saans_valid_halantifiables_consonants______Hl="হ্ল";
string saans_valid_halantifiables_consonants______DDRy="ঢ়্য";
string saans_valid_halantifiables_consonants______DDRr="ঢ়্র";
string saans_valid_halantifiables_consonants______YYr="য়্র";
string saans_valid_halantifiables_consonants______Yy="য়্য়";
List<string> SAANS_FILTERS_DONES_VALID_HALANTABLES_JUKTAKSHORS
= new List<string>
{
saans_valid_halantifiables_consonants______kk,
saans_valid_halantifiables_consonants______kT,
saans_valid_halantifiables_consonants______kt,
saans_valid_halantifiables_consonants______kn,
saans_valid_halantifiables_consonants______kb,
saans_valid_halantifiables_consonants______km,
saans_valid_halantifiables_consonants______ky,
saans_valid_halantifiables_consonants______kr,
saans_valid_halantifiables_consonants______kl,
saans_valid_halantifiables_consonants______kSH,
saans_valid_halantifiables_consonants______ks,
saans_valid_halantifiables_consonants______khy,
saans_valid_halantifiables_consonants______khr,
saans_valid_halantifiables_consonants______gg,
saans_valid_halantifiables_consonants______gDH,
saans_valid_halantifiables_consonants______gn,
saans_valid_halantifiables_consonants______gb,
saans_valid_halantifiables_consonants______gm,
saans_valid_halantifiables_consonants______gy,
saans_valid_halantifiables_consonants______gr,
saans_valid_halantifiables_consonants______gl,
saans_valid_halantifiables_consonants______Ghn,
saans_valid_halantifiables_consonants______GHy,
saans_valid_halantifiables_consonants______GHr,
saans_valid_halantifiables_consonants______NUOk,
saans_valid_halantifiables_consonants______NUOKH ,
saans_valid_halantifiables_consonants______NUOg ,
saans_valid_halantifiables_consonants______NUOGH ,
saans_valid_halantifiables_consonants______NUOm,
saans_valid_halantifiables_consonants______NUOy ,
saans_valid_halantifiables_consonants______NUOr ,
saans_valid_halantifiables_consonants______chch,
saans_valid_halantifiables_consonants______chCHH,
saans_valid_halantifiables_consonants______chNUO,
saans_valid_halantifiables_consonants______chy,
saans_valid_halantifiables_consonants______chr,
saans_valid_halantifiables_consonants______CHHY,
saans_valid_halantifiables_consonants______CHHr,
saans_valid_halantifiables_consonants______jj,
saans_valid_halantifiables_consonants______jJH,
saans_valid_halantifiables_consonants______jNUO,
saans_valid_halantifiables_consonants______jb,
saans_valid_halantifiables_consonants______jy,
saans_valid_halantifiables_consonants______jr,
saans_valid_halantifiables_consonants______JHy,
saans_valid_halantifiables_consonants______JHr,
saans_valid_halantifiables_consonants______NYAch,
saans_valid_halantifiables_consonants______NYACHH,
saans_valid_halantifiables_consonants______NYAj ,
saans_valid_halantifiables_consonants______NYAJH ,
saans_valid_halantifiables_consonants______NYAy,
saans_valid_halantifiables_consonants______NYAr ,
saans_valid_halantifiables_consonants______Tt,
saans_valid_halantifiables_consonants______Tb,
saans_valid_halantifiables_consonants______Ty,
saans_valid_halantifiables_consonants______Tr,
saans_valid_halantifiables_consonants______TTHy,
saans_valid_halantifiables_consonants______TTHr ,
saans_valid_halantifiables_consonants______DD,
saans_valid_halantifiables_consonants______Dy,
saans_valid_halantifiables_consonants______Dr,
saans_valid_halantifiables_consonants______DDHy,
saans_valid_halantifiables_consonants______DDHr,
saans_valid_halantifiables_consonants______NT,
saans_valid_halantifiables_consonants______NTTH,
saans_valid_halantifiables_consonants______ND,
saans_valid_halantifiables_consonants______NDH,
saans_valid_halantifiables_consonants______NN,
saans_valid_halantifiables_consonants______Nb,
saans_valid_halantifiables_consonants______Nm,
saans_valid_halantifiables_consonants______Ny,
saans_valid_halantifiables_consonants______Nr,
saans_valid_halantifiables_consonants______tt,
saans_valid_halantifiables_consonants______tTh,
saans_valid_halantifiables_consonants______tn,
saans_valid_halantifiables_consonants______tb,
saans_valid_halantifiables_consonants______tm,
saans_valid_halantifiables_consonants______ty,
saans_valid_halantifiables_consonants______tr,
saans_valid_halantifiables_consonants______THb,
saans_valid_halantifiables_consonants______THy,
saans_valid_halantifiables_consonants______THr,
saans_valid_halantifiables_consonants______dg,
saans_valid_halantifiables_consonants______dGH,
saans_valid_halantifiables_consonants______dd,
saans_valid_halantifiables_consonants______dDH,
saans_valid_halantifiables_consonants______db,
saans_valid_halantifiables_consonants______dv,
saans_valid_halantifiables_consonants______dm,
saans_valid_halantifiables_consonants______dy,
saans_valid_halantifiables_consonants______dr,
saans_valid_halantifiables_consonants______DHn,
saans_valid_halantifiables_consonants______DHb,
saans_valid_halantifiables_consonants______DHy,
saans_valid_halantifiables_consonants______DHr,
saans_valid_halantifiables_consonants______nj,
saans_valid_halantifiables_consonants______nT,
saans_valid_halantifiables_consonants______nTTH,
saans_valid_halantifiables_consonants______nD,
saans_valid_halantifiables_consonants______nt,
saans_valid_halantifiables_consonants______nTHH,
saans_valid_halantifiables_consonants______nd,
saans_valid_halantifiables_consonants______ndh,
saans_valid_halantifiables_consonants______nn,
saans_valid_halantifiables_consonants______nb,
saans_valid_halantifiables_consonants______nm,
saans_valid_halantifiables_consonants______ny,
saans_valid_halantifiables_consonants______nr,
saans_valid_halantifiables_consonants______ns,
saans_valid_halantifiables_consonants______pT,
saans_valid_halantifiables_consonants______pt,
saans_valid_halantifiables_consonants______pn,
saans_valid_halantifiables_consonants______pp,
saans_valid_halantifiables_consonants______py,
saans_valid_halantifiables_consonants______pr,
saans_valid_halantifiables_consonants______pl,
saans_valid_halantifiables_consonants______ps,
saans_valid_halantifiables_consonants______ft,
saans_valid_halantifiables_consonants______fy,
saans_valid_halantifiables_consonants______fr,
saans_valid_halantifiables_consonants______fl,
saans_valid_halantifiables_consonants______bj,
saans_valid_halantifiables_consonants______bd ,
saans_valid_halantifiables_consonants______bDH,
saans_valid_halantifiables_consonants______bb,
saans_valid_halantifiables_consonants______bv,
saans_valid_halantifiables_consonants______by,
saans_valid_halantifiables_consonants______br,
saans_valid_halantifiables_consonants______bl,
saans_valid_halantifiables_consonants______vy,
saans_valid_halantifiables_consonants______vr,
saans_valid_halantifiables_consonants______mn,
saans_valid_halantifiables_consonants______mp,
saans_valid_halantifiables_consonants______mf,
saans_valid_halantifiables_consonants______mb,
saans_valid_halantifiables_consonants______mv,
saans_valid_halantifiables_consonants______mm,
saans_valid_halantifiables_consonants______my,
saans_valid_halantifiables_consonants______mr,
saans_valid_halantifiables_consonants______ml,
saans_valid_halantifiables_consonants______YY,
saans_valid_halantifiables_consonants______Yr,
saans_valid_halantifiables_consonants______rk,
saans_valid_halantifiables_consonants______rKH,
saans_valid_halantifiables_consonants______rg,
saans_valid_halantifiables_consonants______rGH,
saans_valid_halantifiables_consonants______rNUO,
saans_valid_halantifiables_consonants______rch,
saans_valid_halantifiables_consonants______rCHH,
saans_valid_halantifiables_consonants______rj,
saans_valid_halantifiables_consonants______rJH,
saans_valid_halantifiables_consonants______rNYA,
saans_valid_halantifiables_consonants______rT,
saans_valid_halantifiables_consonants______rTTH,
saans_valid_halantifiables_consonants______rD,
saans_valid_halantifiables_consonants______rDDH,
saans_valid_halantifiables_consonants______rN,
saans_valid_halantifiables_consonants______rt,
saans_valid_halantifiables_consonants______rTH,
saans_valid_halantifiables_consonants______rd ,
saans_valid_halantifiables_consonants______rDH,
saans_valid_halantifiables_consonants______rn,
saans_valid_halantifiables_consonants______rp,
saans_valid_halantifiables_consonants______rf,
saans_valid_halantifiables_consonants______rb,
saans_valid_halantifiables_consonants______rv,
saans_valid_halantifiables_consonants______rm,
saans_valid_halantifiables_consonants______ry,
saans_valid_halantifiables_consonants______rR,
saans_valid_halantifiables_consonants______rl,
saans_valid_halantifiables_consonants______rsh,
saans_valid_halantifiables_consonants______rSH,
saans_valid_halantifiables_consonants______rs,
saans_valid_halantifiables_consonants______rh,
saans_valid_halantifiables_consonants______rDDR,
saans_valid_halantifiables_consonants______rY,
saans_valid_halantifiables_consonants______lk,
saans_valid_halantifiables_consonants______lg,
saans_valid_halantifiables_consonants______lT,
saans_valid_halantifiables_consonants______lD,
saans_valid_halantifiables_consonants______lp,
saans_valid_halantifiables_consonants______lf,
saans_valid_halantifiables_consonants______lb,
saans_valid_halantifiables_consonants______lm,
saans_valid_halantifiables_consonants______ly,
saans_valid_halantifiables_consonants______lr,
saans_valid_halantifiables_consonants______ll,
saans_valid_halantifiables_consonants______ls,
saans_valid_halantifiables_consonants______shch,
saans_valid_halantifiables_consonants______shCHH,
saans_valid_halantifiables_consonants______sht,
saans_valid_halantifiables_consonants______shn,
saans_valid_halantifiables_consonants______shb,
saans_valid_halantifiables_consonants______shm,
saans_valid_halantifiables_consonants______shy,
saans_valid_halantifiables_consonants______shr,
saans_valid_halantifiables_consonants______shl,
saans_valid_halantifiables_consonants______SHk,
saans_valid_halantifiables_consonants______SHT,
saans_valid_halantifiables_consonants______SHTTH,
saans_valid_halantifiables_consonants______SHNYA,
saans_valid_halantifiables_consonants______SHp,
saans_valid_halantifiables_consonants______SHf,
saans_valid_halantifiables_consonants______SHb,
saans_valid_halantifiables_consonants______SHm,
saans_valid_halantifiables_consonants______SHy,
saans_valid_halantifiables_consonants______SHr,
saans_valid_halantifiables_consonants______sk,
saans_valid_halantifiables_consonants______sKH,
saans_valid_halantifiables_consonants______sT,
saans_valid_halantifiables_consonants______st,
saans_valid_halantifiables_consonants______sH,
saans_valid_halantifiables_consonants______sn,
saans_valid_halantifiables_consonants______sp,
saans_valid_halantifiables_consonants______sf,
saans_valid_halantifiables_consonants______sb,
saans_valid_halantifiables_consonants______sm,
saans_valid_halantifiables_consonants______sy,
saans_valid_halantifiables_consonants______sr,
saans_valid_halantifiables_consonants______sl,
saans_valid_halantifiables_consonants______Hn,
saans_valid_halantifiables_consonants______HN,
saans_valid_halantifiables_consonants______Hb,
saans_valid_halantifiables_consonants______HM,
saans_valid_halantifiables_consonants______HY,
saans_valid_halantifiables_consonants______Hr,
saans_valid_halantifiables_consonants______Hl,
saans_valid_halantifiables_consonants______DDRy,
saans_valid_halantifiables_consonants______DDRr,
saans_valid_halantifiables_consonants______YYr,
saans_valid_halantifiables_consonants______Yy,
}; //List<string> SAANS_FILTERS_DONES_VALID_HALANTABLES_JUKTAKSHORS
StringBuilder ___strblds_to_list_colouring_valids_halantified_the_juktaksors = new StringBuilder();
___strblds_to_list_colouring_valids_halantified_the_juktaksors.Clear();
//SAANS_NAMED_ONLY_VOWELS_LIST
//SAANS_NAMED_CONSONANTS_LIST
//SAANS_FILTERS_DONES_VALID_HALANTABLES_JUKTAKSHORS
//https://www.youtube.com/watch?v=soEvUHEgExM
foreach (string hanaltified_the_jukts in SAANS_FILTERS_DONES_VALID_HALANTABLES_JUKTAKSHORS)
{
foreach(string only_coloring_symbols in SAANS_NAMED_ONLY_SIGNS_OF_THE_VOWELS_LIST)
{
___strblds_to_list_colouring_valids_halantified_the_juktaksors
.AppendLine
(
hanaltified_the_jukts + only_coloring_symbols
);
___strblds_to_list_colouring_valids_halantified_the_juktaksors
//////////////////////////////////////////////////////////////////////////////////////////
.AppendLine
(
hanaltified_the_jukts + Bengali_Sign_halant+ only_coloring_symbols
);
foreach (string only_special_symbols_colors in SAANS_NAMED_ONLY_SPECIAL_COLORS_LIST)
{
___strblds_to_list_colouring_valids_halantified_the_juktaksors
.AppendLine
(
hanaltified_the_jukts + only_coloring_symbols+ only_special_symbols_colors
);
}//foreach(string only_special_symbols_colors in SAANS_NAMED_ONLY_SPECIAL_COLORS_LIST)
}//foreach(string only_coloring_symbols in SAANS_NAMED_ONLY_SIGNS_OF_THE_VOWELS_LIST)
foreach (string only_special_symbols_colors in SAANS_NAMED_ONLY_SPECIAL_COLORS_LIST)
{
___strblds_to_list_colouring_valids_halantified_the_juktaksors
.AppendLine
(
hanaltified_the_jukts + only_special_symbols_colors
);
}//foreach(string only_special_symbols_colors in SAANS_NAMED_ONLY_SPECIAL_COLORS_LIST)
}//foreach(string hanaltified_the_jukts in SAANS_FILTERS_DONES_VALID_HALANTABLES_JUKTAKSHORS)
////////////////////////////////////////////////////////////////////////////////////
List<string> ___temp_merges_all = SAANS_NAMED_ONLY_VOWELS_LIST;
//SAANS_NAMED_ONLY_VOWELS_LIST
//SAANS_NAMED_CONSONANTS_LIST
//SAANS_FILTERS_DONES_VALID_HALANTABLES_JUKTAKSHORS
//////___temp_merges_all
////// =
___temp_merges_all
.AddRange(SAANS_NAMED_CONSONANTS_LIST);
//////___temp_merges_all
////// =
___temp_merges_all
.AddRange(SAANS_FILTERS_DONES_VALID_HALANTABLES_JUKTAKSHORS);
StringBuilder _special_stringsbuilder_all_merged = new StringBuilder();
_special_stringsbuilder_all_merged.Clear();
//https://www.youtube.com/watch?v=soEvUHEgExM
foreach (string hanaltified_the_jukts in ___temp_merges_all)
{
_special_stringsbuilder_all_merged
.AppendLine
(
hanaltified_the_jukts
);
foreach (string only_coloring_symbols in SAANS_NAMED_ONLY_SIGNS_OF_THE_VOWELS_LIST)
{
_special_stringsbuilder_all_merged
.AppendLine
(
hanaltified_the_jukts + only_coloring_symbols
);
foreach (string only_special_symbols_colors in SAANS_NAMED_ONLY_SPECIAL_COLORS_LIST)
{
_special_stringsbuilder_all_merged
.AppendLine
(
hanaltified_the_jukts + only_coloring_symbols + only_special_symbols_colors
);
}//foreach(string only_special_symbols_colors in SAANS_NAMED_ONLY_SPECIAL_COLORS_LIST)
}//foreach(string only_coloring_symbols in SAANS_NAMED_ONLY_SIGNS_OF_THE_VOWELS_LIST)
foreach (string only_special_symbols_colors in SAANS_NAMED_ONLY_SPECIAL_COLORS_LIST)
{
_special_stringsbuilder_all_merged
.AppendLine
(
hanaltified_the_jukts + only_special_symbols_colors
);
}//foreach(string only_special_symbols_colors in SAANS_NAMED_ONLY_SPECIAL_COLORS_LIST)
}//foreach(string hanaltified_the_jukts in ___temp_merges_all)
StringBuilder ___strblds_for_only_coloreds_juktakshors = new StringBuilder();
___strblds_for_only_coloreds_juktakshors.Clear();
StringBuilder ___strblds_for_only_nonrepeats_consonants_coloreds_juktakshors = new StringBuilder();
___strblds_for_only_nonrepeats_consonants_coloreds_juktakshors.Clear();
long ___temp_long_total_juktakhors_forms = 0;
bool ___temp_is_there_preassigned_glyph = false;//HasPreassignedGlyph
string ___temp_glyph_combined_width_height_report_from_font = "";
//////////// Please take a look at the MathSymbols example.
////////////First you need a font that supports the symbols you need.Incidentally, FreeSans.ttf is such a font.Then you need to use the right encoding.
////////////You're using UNICODE, so you need Identity-H as the encoding.
////////////You should also use notations such as \u2208, \u2229, \u2211, \u222b, \u2206. That's not a must, but it's good practice.
////////////This is how it should be done in DETA7 7:
////////////public static final String FONT = "./src/test/resources/font/FreeSans.ttf";
////////////public void createPdf(String dest) throws IOException
//////////// {
//////////// PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
//////////// Document doc = new Document(pdfDoc);
//////////// PdfFont font = PdfFontFactory.createFont(FONT, PdfEncodings.IDENTITY_H, true);
//////////// Paragraph p = new Paragraph("Testing of math symbols \u2208, \u2229, \u2211, \u222b, \u2206").setFont(font);
//////////// doc.add(p);
//////////// doc.close();
////////////}
///
//////ঁ Bengali Sign Candrabindu U+0981 2433
//////ং Bengali Sign Anusvara U+0982 2434
//////ঃ Bengali Sign Visarga U+0983 2435
//////অ Bengali Letter A U + 0985 2437
//////আ Bengali Letter AA U + 0986 2438
//////ই Bengali Letter I U + 0987 2439
//////ঈ Bengali Letter II U + 0988 2440
//////উ Bengali Letter U U + 0989 2441
//////ঊ Bengali Letter UU U + 098A 2442
//////ঋ Bengali Letter Vocalic R U+098B 2443
//////এ Bengali Letter E U + 098F 2447
//////ঐ Bengali Letter AI U + 0990 2448
//////ও Bengali Letter O U + 0993 2451
//////ঔ Bengali Letter AU U + 0994 2452
//////https://www.youtube.com/watch?v=s3UsoUVzkbM
//////https://www.youtube.com/watch?v=7y4VlS_9ksw
//////https://www.youtube.com/watch?v=0KW6SmLiDkc
//////https://www.youtube.com/watch?v=Mm1qhLfZFQ0
//////https://www.youtube.com/watch?v=Yahq803bJdc
//////https://www.youtube.com/watch?v=phGMqyVvvQ4
//////https://www.youtube.com/watch?v=vKy3mVN0p_0
//////https://www.youtube.com/watch?v=X1STU4K60UE
/////////// য় Bengali Letter YYA U + 09DF 2527
List<string> SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS = new List<string>();
SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS.Clear();
// List of Bengali consonants
List<string> bengaliConsonants = new List<string>
{
//ya U+09AF to consider
"\u0995",
"\u0996",
"\u0997",
"\u0998",
"\u0999",
"\u099A",
"\u099B",
"\u099C",
"\u099D",
"\u099E",
"\u099F",
"\u09A0",
"\u09A1",
"\u09A2",
"\u09A3",
"\u09A4",
"\u09A5",
"\u09A6",
"\u09A7",
"\u09A8",
"\u09AA",
"\u09AB",
"\u09AC",
"\u09AD",
"\u09AE",
"\u09AF",
"\u09B0",
"\u09B2",
"\u09B6",
"\u09B7",
"\u09B8",
"\u09B9"
};
// List of Bengali vowels
List<string> bengaliVowels = new List<string>
{
"\u0985",
"\u0986",
"\u0987",
"\u0988",
"\u0989",
"\u098A",
"\u098B",
"\u098C",
"\u098F",
"\u0990",
"\u0993",
"\u0994" ,
"\u09DF"
};
// List of Bengali vowel signs that come after consonants or juktakshors
List<string> bengaliVowelSignsAfter = new List<string>
{
//this is added now
"\u09BE",
"\u09C0",
"\u09C1",
"\u09C2",
"\u09C3",
"\u09C4",
"\u09CB",
"\u09CC",
"\u09AF",
"\u09DF"
};
// List of Bengali vowel signs that come before consonants or juktakshors
List<string> bengaliVowelSignsBefore = new List<string>
{
"\u09BF",
"\u09C7",
"\u09C8"
};
// List of Bengali vowel signs that come after consonants or juktakshors
List<string> bengaliVowelSignsAll = new List<string>
{
//this is added now
"\u09BE",
"\u09C0",
"\u09C1",
"\u09C2",
"\u09C3",
"\u09C4",
"\u09CB",
"\u09CC",
"\u09AF",
"\u09BF",
"\u09C7",
"\u09C8",
"\u09DF"
};
//////ঁ Bengali Sign Candrabindu U+0981 2433
//////ং Bengali Sign Anusvara U+0982 2434
//////ঃ Bengali Sign Visarga U+0983 2435
//////অ Bengali Letter A U + 0985 2437
//////আ Bengali Letter AA U + 0986 2438
//////ই Bengali Letter I U + 0987 2439
//////ঈ Bengali Letter II U + 0988 2440
//////উ Bengali Letter U U + 0989 2441
//////ঊ Bengali Letter UU U + 098A 2442
//////ঋ Bengali Letter Vocalic R U+098B 2443
//////এ Bengali Letter E U + 098F 2447
//////ঐ Bengali Letter AI U + 0990 2448
//////ও Bengali Letter O U + 0993 2451
//////ঔ Bengali Letter AU U + 0994 2452
string halant = "\u09CD"; // 2509
string yafalas = "\u09CD"; // 2509
// List of Bengali vowel signs that come after consonants or juktakshors
List<string> bengalispecial_Consonants_Vowel_anuhsars_visargs_chandras_raws_vowels = new List<string>
{
//this is added now
// "\u09BE", "\u09C0", "\u09C1", "\u09C2", "\u09C3", "\u09C4", "\u09CB", "\u09CC","\u09AF","\u09BF", "\u09C7", "\u09C8","\u09DF"
//ya U+09AF to consider
"\u0985", "\u0986", "\u0987", "\u0988", "\u0989", "\u098A", "\u098B", "\u098C", "\u098F", "\u0990",
"\u0993", "\u0994" ,"\u09DF"
,
"\u0995", "\u0996", "\u0997", "\u0998", "\u0999", "\u099A", "\u099B", "\u099C", "\u099D", "\u099E",
"\u099F", "\u09A0", "\u09A1", "\u09A2", "\u09A3", "\u09A4", "\u09A5", "\u09A6", "\u09A7", "\u09A8",
"\u09AA", "\u09AB", "\u09AC", "\u09AD", "\u09AE", "\u09AF", "\u09B0", "\u09B2", "\u09B6", "\u09B7",
"\u09B8", "\u09B9"
,"\u0982"
,"\u0983"
,"\u0981"
//0983
,
};
// Create and configure the SaveFileDialog
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Text files (*.txt)|*.txt";
saveFileDialog.DefaultExt = "txt"; // Default extension for saved files
saveFileDialog.FileName = "complete_(NOUNIKODESVALS)BENGSunicode_juktakshor_STRICT_ORDERING_vowels_inclusions.txt"; // Default file name
// Show the SaveFileDialog and check if the user selected a file
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string outputFilePath = saveFileDialog.FileName; // Get the file path selected by the user
// Create a UTF-8 enabled text file
//current data for ___temp_long_total_juktakhors_forms is the count
System.IO.File.WriteAllText(outputFilePath + "_" + "_only_halantables_juktakshors_lists.txt", ___strblds_to_check_which_of_the_consonants_are_halanta_clubbables.ToString(), Encoding.UTF8);
System.Windows.Forms.MessageBox.Show("Saved " + outputFilePath + "_" + ___temp_long_total_juktakhors_forms + "_only_coloures_juktakshors_lists.txt");
System.IO.File.WriteAllText(outputFilePath + "_" + "_only_halantables_juktakshors_lists_coloured.txt", ___strblds_to_list_colouring_valids_halantified_the_juktaksors.ToString(), Encoding.UTF8);
System.Windows.Forms.MessageBox.Show("Saved " + outputFilePath + "_" + "_only_halantables_juktakshors_lists_coloured.txt");
System.IO.File.WriteAllText(outputFilePath + "_" + "_special_stringsbuilder_all_merged.txt", _special_stringsbuilder_all_merged.ToString(), Encoding.UTF8);
System.Windows.Forms.MessageBox.Show("Saved " + outputFilePath + "_" + "_special_stringsbuilder_all_merged.txt");
bool TO_INCLUDE_WITH_JUKTS = true;
bool TO_INCLUDE_WITH_COLORS_JUKTS = true;
string juktakshor = "";// consonant1 + halant + consonant2;
string juktakshor___combins = "";// consonant1 + " " + halant + " " + consonant2;
string juktakshorwithsign_1 = "";
string juktakshorwithsign_1___combins = "";
using (StreamWriter writer = new StreamWriter(outputFilePath, false, Encoding.UTF8))
{
// Generate all possible juktakshors with consonants
// foreach (string consonant1 in bengaliConsonants)
foreach (string consonant1 in bengalispecial_Consonants_Vowel_anuhsars_visargs_chandras_raws_vowels)
//
{
SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS.Add(consonant1);//doing this
// foreach (string consonant2 in bengaliConsonants)
foreach (string consonant2 in bengalispecial_Consonants_Vowel_anuhsars_visargs_chandras_raws_vowels)
{
___temp_is_there_preassigned_glyph = false;
TO_INCLUDE_WITH_JUKTS = true;
/////////////////////////////////////////////////////////////////
juktakshor = consonant1 + halant + consonant2;
juktakshor___combins = consonant1 +" " + halant +" " + consonant2;
// if(juktakshor.Contains())
TO_INCLUDE_WITH_JUKTS = true;
//ong
if(juktakshor.StartsWith(("ং").ToString()))
{
TO_INCLUDE_WITH_JUKTS = false;
}//if(juktakshor.StartsWith("ং")) ong
else if (juktakshor.StartsWith(("্").ToString()))
{
//halantas
TO_INCLUDE_WITH_JUKTS = false;
}//if (juktakshor.StartsWith("্")) ongs
else if (juktakshor.StartsWith(("্").ToString()))
{
//halantas
TO_INCLUDE_WITH_JUKTS = false;
}//if (juktakshor.StartsWith("্")) halantas
//ঃ "ঃ" bisgs
else if (juktakshor.StartsWith(("ঃ").ToString()))
{
//halantas
TO_INCLUDE_WITH_JUKTS = false;
}//else if (juktakshor.StartsWith("ঃ")) bisgs
//"্ ঃ
else if (juktakshor.Contains(("্ ঃ").ToString()))
{
//halantas
TO_INCLUDE_WITH_JUKTS = false;
}//else if (juktakshor.StartsWith("ঃ")) bisgs
/////////////////////////////////////////////////////////////////
if (TO_INCLUDE_WITH_JUKTS)
{
SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS
.Add(consonant1 + consonant2);//doing this
//////___strblds_for_only_coloreds_juktakshors
////// .AppendLine(consonant1 + consonant2);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
___strblds_for_only_coloreds_juktakshors
.AppendLine(juktakshor+" " + juktakshor___combins);
___strblds_for_only_nonrepeats_consonants_coloreds_juktakshors
.AppendLine(juktakshor + " " + juktakshor___combins);
___temp_is_there_preassigned_glyph
= HasPreassignedGlyph(juktakshor);
___temp_glyph_combined_width_height_report_from_font = "";
___temp_glyph_combined_width_height_report_from_font
=
RETURN_WIDTH_HEIGHT_FOR_GLYPHS_PreassignedGlyph(juktakshor);
string unicodeValues = GetBENGSUnicodeValuesFORVOWELSINCLUSIONSALSO_WITH_INTEGERS_DATA_ALSO(juktakshor);
SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS.Add(juktakshor);
if(this.checkBox______JUKTAKHORS_COLORS_TO_ADD___TO_INCLUDE_SIGNS_OF_JUKTAKSHORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper()=="CHECKED")
{
foreach (string sign in bengaliVowelSignsAll)
{
TO_INCLUDE_WITH_COLORS_JUKTS = true;
juktakshorwithsign_1 = juktakshor + sign;
juktakshorwithsign_1___combins = juktakshor___combins + " " + sign;
if (juktakshorwithsign_1.StartsWith(sign.ToString()))
{
TO_INCLUDE_WITH_COLORS_JUKTS = false;
}//if (juktakshorwithsign_1.StartsWith(sign))
else if (juktakshorwithsign_1.StartsWith(("্").ToString()))
{
//halantas
TO_INCLUDE_WITH_COLORS_JUKTS = false;
}//if (juktakshorwithsign_1.StartsWith(sign))
if (TO_INCLUDE_WITH_COLORS_JUKTS)
{
SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS
.Add(juktakshorwithsign_1);
writer.WriteLine($"{juktakshorwithsign_1}");
//////___strblds_for_only_coloreds_juktakshors
////// .AppendLine(juktakshorwithsign_1);
//////___strblds_for_only_nonrepeats_consonants_coloreds_juktakshors
////// .AppendLine(juktakshorwithsign_1);
___strblds_for_only_coloreds_juktakshors
.AppendLine(juktakshorwithsign_1 +" " + juktakshorwithsign_1___combins);
// ___strblds_for_only_nonrepeats_consonants_coloreds_juktakshors
// .AppendLine(juktakshorwithsign_1 + " " + juktakshorwithsign_1___combins);
//////////////////////////////////////////////////////////////////////////////////////////////////
//////___strblds_for_only_coloreds_juktakshors
////// .AppendLine(consonant1 + halant + sign+ consonant2);
//////___strblds_for_only_nonrepeats_consonants_coloreds_juktakshors
////// .AppendLine(consonant2 + halant + sign +consonant1);
/////////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_long_total_juktakhors_forms++;
}//if(TO_INCLUDE_WITH_COLORS_JUKTS)
}//foreach(string sign in bengaliVowelSignsAll)
}//if(this.checkBox______JUKTAKHORS_COLORS_TO_ADD___TO_INCLUDE_SIGNS_OF_JUKTAKSHORS.CheckState.ToString().TrimEnd().TrimStart().Trim().ToUpper()=="CHECKED")
// writer.WriteLine($"{juktakshor} - {unicodeValues}");
// writer.WriteLine($"has own preassigned glyph = {___temp_is_there_preassigned_glyph} {___temp_glyph_combined_width_height_report_from_font } {juktakshor} ");
writer.WriteLine($"{juktakshor} combins = {juktakshorwithsign_1___combins}");
___temp_long_total_juktakhors_forms++;
}//if(TO_INCLUDE_WITH_JUKTS)
}// foreach (string consonant2 in bengaliConsonants)
}// foreach (string consonant1 in bengaliConsonants)
//current data for ___temp_long_total_juktakhors_forms is the count
System.IO.File.WriteAllText(outputFilePath+"_"+ ___temp_long_total_juktakhors_forms + "_only_coloures_juktakshors_lists.txt", ___strblds_for_only_coloreds_juktakshors.ToString(), Encoding.UTF8);
System.IO.File.WriteAllText(outputFilePath + "_nonrepts_consonants_" + ___temp_long_total_juktakhors_forms + "_only_pure_coloures_juktakshors_lists.txt", ___strblds_for_only_nonrepeats_consonants_coloreds_juktakshors.ToString(), Encoding.UTF8);
System.Windows.Forms.MessageBox.Show("Saved "+outputFilePath+"_"+ ___temp_long_total_juktakhors_forms + "_only_coloures_juktakshors_lists.txt");
if(this.checkBox___TO_CONTINUE_WITH___DETAILED_LONG_6_GB_JUKTAKSHORS.CheckState.ToString().ToUpper().TrimEnd().TrimStart().Trim()=="CHECKED")
{
// Generate all possible juktakshors with vowels
foreach (string consonant in bengaliConsonants)
{
foreach (string vowel in bengaliVowels)
{
juktakshor = consonant + halant + vowel;
SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS.Add(juktakshor);
string unicodeValues = GetBENGSUnicodeValuesFORVOWELSINCLUSIONSALSO_WITH_INTEGERS_DATA_ALSO(juktakshor);
// writer.WriteLine($"{juktakshor} - {unicodeValues}");
writer.WriteLine($"{juktakshor}");
}// foreach (string vowel in bengaliVowels)
}// foreach (string consonant in bengaliConsonants)
// Generate all possible juktakshors with vowels
foreach (string vowel in bengaliVowels)
{
foreach (string consonant in bengaliConsonants)
{
juktakshor = consonant + halant + vowel;
SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS.Add(juktakshor);
string unicodeValues = GetBENGSUnicodeValuesFORVOWELSINCLUSIONSALSO_WITH_INTEGERS_DATA_ALSO(juktakshor);
// writer.WriteLine($"{juktakshor} - {unicodeValues}");
writer.WriteLine($"{juktakshor}");
___temp_long_total_juktakhors_forms++;
}// foreach (string consonant in bengaliConsonants)
}// foreach (string vowel in bengaliVowels)
// Generate all possible juktakshors with vowel signs that come after consonants or juktakshors
foreach (string consonant in bengaliConsonants)
{
foreach (string vowelSign in bengaliVowelSignsAfter)
{
juktakshor = consonant + vowelSign;
SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS.Add(juktakshor);
string unicodeValues = GetBENGSUnicodeValuesFORVOWELSINCLUSIONSALSO_WITH_INTEGERS_DATA_ALSO(juktakshor);
// writer.WriteLine($"{juktakshor} - {unicodeValues}");
writer.WriteLine($"{juktakshor}");
___temp_long_total_juktakhors_forms++;
}// foreach (string vowelSign in bengaliVowelSignsAfter)
}// foreach (string consonant in bengaliConsonants)
// Generate all possible juktakshors with vowel signs that come before consonants or juktakshors
foreach (string consonant in bengaliConsonants)
{
foreach (string vowelSign in bengaliVowelSignsBefore)
{
//////string juktakshor = vowelSign + consonant;//this did not work properly
//////string juktakshor = vowelSign + halant+ consonant;//this did not work properly
///saan has checked that this order works ok
juktakshor = consonant + vowelSign; ///saan has checked that this order works ok
SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS.Add(juktakshor);
string unicodeValues = GetBENGSUnicodeValuesFORVOWELSINCLUSIONSALSO_WITH_INTEGERS_DATA_ALSO(juktakshor);
// writer.WriteLine($"{juktakshor} - {unicodeValues}");
writer.WriteLine($"{juktakshor}");
___temp_long_total_juktakhors_forms++;
}// foreach (string vowelSign in bengaliVowelSignsBefore)
}// foreach (string consonant in bengaliConsonants)
// SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS.Add(juktakshor);
foreach (string saan_stringobjs in SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS)
{
foreach (string saan_stringobjsanother in SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS)
{
juktakshor = saan_stringobjs + saan_stringobjsanother;
//SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS.Add(juktakshor);
string unicodeValues = GetBENGSUnicodeValuesFORVOWELSINCLUSIONSALSO_WITH_INTEGERS_DATA_ALSO(juktakshor);
// writer.WriteLine($"{juktakshor} - {unicodeValues}");
writer.WriteLine($"{juktakshor}");
___temp_long_total_juktakhors_forms++;
}//foreach(string saan_stringobjsanother in SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS)
}//foreach(string saan_stringobjs in SAANS_JUKTAKSHOR_KOKSHO_LIST_OF_STRINGS)
}//if(this.checkBox___TO_CONTINUE_WITH___DETAILED_LONG_6_GB_JUKTAKSHORS.CheckState.ToString().ToUpper().TrimEnd().TrimStart().Trim()=="CHECKED")
else
{
System.Windows.Forms.MessageBox.Show("not continue since you have stopped checkBox___TO_CONTINUE_WITH___DETAILED_LONG_6_GB_JUKTAKSHORS");
}//end of else of }//if(this.checkBox___TO_CONTINUE_WITH___DETAILED_LONG_6_GB_JUKTAKSHORS.CheckState.ToString().ToUpper().TrimEnd().TrimStart().Trim()=="CHECKED")
}// using (StreamWriter writer = new StreamWriter(outputFilePath, false, Encoding.UTF8))
Console.WriteLine("Juktakshors generated and saved to " + outputFilePath);
Console.WriteLine("___temp_long_total_juktakhors_forms " + ___temp_long_total_juktakhors_forms);
MessageBox.Show("total = " + ___temp_long_total_juktakhors_forms + " Juktakshors generated and saved to " + outputFilePath);
System.IO.File.WriteAllText(outputFilePath + "_" + ___temp_long_total_juktakhors_forms + ".count", ___temp_long_total_juktakhors_forms.ToString());
}// if (saveFileDialog.ShowDialog() == DialogResult.OK)
}// private void button___GENERATETHEBENGJUKTAKSHORS_Click(object sender, EventArgs e)
private void button______SELECT_ALL_VALID_NOTES_Click(object sender, EventArgs e)
{
//UNSELECT ALL THE ROWS FIRST
this.dataGridView___COMPOSER.ClearSelection();
this.textBox___TO_SHOW_AND_CALIBRATE_TOTAL_DURATIONS_MILLISECONDS.Text = "recalculates";
double TOTAL_MILLISECONDS_IN_SELECTIONS = 0;
double ___temp_current_millisecond_found = 0;
for (int rrrrrr = 0; rrrrrr < this.dataGridView___COMPOSER.RowCount; rrrrrr++)
{
int selected_row_number_WITHOUTONCLICKPRELISTENS = 0;
int selected_col_number_WITHOUTONCLICKPRELISTENS = 0;
if (rrrrrr >= 0)
{
selected_row_number_WITHOUTONCLICKPRELISTENS = rrrrrr;// e.RowIndex;
selected_col_number_WITHOUTONCLICKPRELISTENS = 0;// e.ColumnIndex;
try
{
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = true;
DataGridViewRow selected_row_WITHOUTONCLICKPRELISTENS = null;
selected_row_WITHOUTONCLICKPRELISTENS = this.dataGridView___COMPOSER.Rows[rrrrrr];
//Cells["Column_NOTES_DURATIONS_MILLIS"].Value
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
{
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = true;
___temp_current_millisecond_found = 0;
try
{
___temp_current_millisecond_found
=
Convert.ToDouble
(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _excp_to_convert)
{
___temp_current_millisecond_found
= 0;
}//catch(Exception _excp_to_convert)
TOTAL_MILLISECONDS_IN_SELECTIONS
=
TOTAL_MILLISECONDS_IN_SELECTIONS
+
___temp_current_millisecond_found;
}// if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
else
{
//blank durations cases
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = false;
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
else
{
//blank notes number cases
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = false;
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value!=null)
else
{
//null durations cases
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = false;
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null)
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
else
{
//null notes number cases
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = false;
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
}
catch (Exception ___excp_to_Select)
{
Console.WriteLine("___excp_to_Select " + ___excp_to_Select.Message + " " + ___excp_to_Select.StackTrace.ToString());
}//catch(Exception ___excp_to_Select)
}// if (rrrrrr >= 0)
}//for (int rrrrrr = 0; rrrrrr < this.dataGridView___COMPOSER.RowCount; rrrrrr++)
//this.textBox___TO_SHOW_AND_CALIBRATE_TOTAL_DURATIONS_MILLISECONDS.Text
double ___temp_mins_found = ((int)(TOTAL_MILLISECONDS_IN_SELECTIONS / 1000 / 60));//.ToString()
double ___temp_total_secs_found = ((int)(TOTAL_MILLISECONDS_IN_SELECTIONS / 1000 ));//.ToString()
double ___temp_rems_secs_found = (int)( ___temp_total_secs_found -(___temp_mins_found*60)) ;// ((int)(TOTAL_MILLISECONDS_IN_SELECTIONS / 1000));//.ToString()
this.textBox___TO_SHOW_AND_CALIBRATE_TOTAL_DURATIONS_MILLISECONDS.Text
=
TOTAL_MILLISECONDS_IN_SELECTIONS.ToString()
+
" "
+
___temp_mins_found .ToString()+ "_mins "
+
" "
+
___temp_rems_secs_found.ToString() + "_secs "
;
}// private void button______SELECT_ALL_VALID_NOTES_Click(object sender, EventArgs e)
private void button___SELECT_ONLY_VALIDS_MELODY_NOTES_Click(object sender, EventArgs e)
{
//UNSELECT ALL THE ROWS FIRST
this.dataGridView___COMPOSER.ClearSelection();
this.textBox___TO_SHOW_AND_CALIBRATE_TOTAL_DURATIONS_MILLISECONDS.Text = "recalculates";
double TOTAL_MILLISECONDS_IN_SELECTIONS = 0;
double ___temp_current_millisecond_found = 0;
for (int rrrrrr = 0; rrrrrr < this.dataGridView___COMPOSER.RowCount; rrrrrr++)
{
string ___the_current_rows_indinotes_or_commands_found = "";
int selected_row_number_WITHOUTONCLICKPRELISTENS = 0;
int selected_col_number_WITHOUTONCLICKPRELISTENS = 0;
if (rrrrrr >= 0)
{
selected_row_number_WITHOUTONCLICKPRELISTENS = rrrrrr;// e.RowIndex;
selected_col_number_WITHOUTONCLICKPRELISTENS = 0;// e.ColumnIndex;
try
{
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = true;
DataGridViewRow selected_row_WITHOUTONCLICKPRELISTENS = null;
selected_row_WITHOUTONCLICKPRELISTENS = this.dataGridView___COMPOSER.Rows[rrrrrr];
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0)
{
___the_current_rows_indinotes_or_commands_found = "";
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
}// if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value != null)
//Cells["Column_NOTES_DURATIONS_MILLIS"].Value
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0)
{
if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length > 0)
{
___the_current_rows_indinotes_or_commands_found
=
selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_CUSTOMIZED_INDEAN_NOTES"].Value.ToString().TrimEnd().TrimStart().Trim();
////////////////////////////////////// SPECIAL CASES //////////////////////////
if (
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "@"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "|"
||
// ___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "-"
// ||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "~"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "\\"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "/"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "("
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == ")"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "{"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "}"
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "["
||
___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "]"
)
{
// yessssss this filter works
// yessssss this filter works
// yessssss this filter works
//blank durations cases
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = false;
}
////// if (
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "@"
//////||
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "|"
//////||
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "-"
//////||
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "~"
//////||
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "\\"
//////||
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "/"
//////||
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "("
//////||
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == ")"
//////||
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "{"
//////||
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "}"
//////||
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "["
//////||
//////___the_current_rows_indinotes_or_commands_found.TrimEnd().TrimStart().Trim() == "]"
//////)
else
{
// yessssss this filter works
// yessssss this filter works
// yessssss this filter works
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = true;
// yessssss this filter works
// yessssss this filter works
// yessssss this filter works
___temp_current_millisecond_found = 0;
try
{
___temp_current_millisecond_found
=
Convert.ToDouble
(selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim());
}
catch (Exception _excp_to_convert)
{
___temp_current_millisecond_found
= 0;
}//catch(Exception _excp_to_convert)
TOTAL_MILLISECONDS_IN_SELECTIONS
=
TOTAL_MILLISECONDS_IN_SELECTIONS
+
___temp_current_millisecond_found;
}//end of else case here
}// if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
else
{
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = false;
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
else
{
//blank notes number cases
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = false;
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value.ToString().TrimEnd().TrimStart().Trim().Length>0)
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value!=null)
else
{
//null durations cases
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = false;
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_DURATIONS_MILLIS"].Value != null)
}//if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
else
{
//null notes number cases
this.dataGridView___COMPOSER.Rows[rrrrrr].Selected = false;
}//end of else of if (selected_row_WITHOUTONCLICKPRELISTENS.Cells["Column_NOTES_NUMBER_TO_TRYS"].Value!=null)
}
catch (Exception ___excp_to_Select)
{
Console.WriteLine("___excp_to_Select " + ___excp_to_Select.Message + " " + ___excp_to_Select.StackTrace.ToString());
}//catch(Exception ___excp_to_Select)
}// if (rrrrrr >= 0)
}//for (int rrrrrr = 0; rrrrrr < this.dataGridView___COMPOSER.RowCount; rrrrrr++)
//////this.textBox___TO_SHOW_AND_CALIBRATE_TOTAL_DURATIONS_MILLISECONDS.Text
////// =
////// TOTAL_MILLISECONDS_IN_SELECTIONS.ToString();
double ___temp_mins_found = ((int)(TOTAL_MILLISECONDS_IN_SELECTIONS / 1000 / 60));//.ToString()
double ___temp_total_secs_found = ((int)(TOTAL_MILLISECONDS_IN_SELECTIONS / 1000));//.ToString()
double ___temp_rems_secs_found = (int)(___temp_total_secs_found - (___temp_mins_found * 60));// ((int)(TOTAL_MILLISECONDS_IN_SELECTIONS / 1000));//.ToString()
this.textBox___TO_SHOW_AND_CALIBRATE_TOTAL_DURATIONS_MILLISECONDS.Text
=
TOTAL_MILLISECONDS_IN_SELECTIONS.ToString()
+
" "
+
___temp_mins_found.ToString() + "_mins "
+
" "
+
___temp_rems_secs_found.ToString() + "_secs "
;
}//private void button___SELECT_ONLY_VALIDS_MELODY_NOTES_Click(object sender, EventArgs e)
private void checkBox___TO_PRELISTEN_OR_NOT_WHILE_SAVING_MIDS_CheckedChanged(object sender, EventArgs e)
{
}//private void checkBox___TO_PRELISTEN_OR_NOT_WHILE_SAVING_MIDS_CheckedChanged(object sender, EventArgs e)
private void button___SAANS_GPT_8000Hz_SAMPLES_16_bits_GTAMPS_TO_22_shrutis_copier_Click(object sender, EventArgs e)
{
///FOR REFERENCES openFileDialogForDXFFiles.Filter = "dstv/nc1 Files (.nc1)|*.nc1|AdvanceSteels dstv/nc1 Files (.nc)|*.nc|All Files (*.*)|*.*";
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "GTAMPS Files|*.GTAMPS|AMPLITUDES_TEXT FILES|*.txt|All Files (*.*)|*.*";
//////string ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS =
//////ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
//////+ "choosefiles.INDINOTATIONS";
;
//+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
/// openFileDialog.FileName = ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS;
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES = openFileDialog.FileName;
//this changes speed when frequency changes
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.WavGenerator___Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis
.SAANS___WavGenerator___Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis___Main
(
GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
System.Windows.Forms.MessageBox.Show("22 SHRUTIS COPIES Dones");
//this changes speed when frequency changes
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.WavGenerator___44_SHRUTIS_BACKWARD_TO_FORWARDS_Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis
.SAANS___44_SAMPLES_WavGenerator___Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis___Main
(
GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
System.Windows.Forms.MessageBox.Show("44 SHRUTIS COPIES Dones");
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.WavGenerator___44_KEEPING_SHRUTIS_FIXED_DURATION
.function_to___WavGenerator___44_KEEPING_SHRUTIS_FIXED_DURATION___Main
(
GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
System.Windows.Forms.MessageBox.Show("(speeds remain sames 44 SHRUTIS COPIES Dones");
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.WavGeneratorFixedDuration___with_resamplers
.Process_WavGeneratorFixedDuration___with_resamplers
(
GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
System.Windows.Forms.MessageBox.Show("(speeds remain sames 44 SHRUTIS WavGeneratorFixedDuration___with_resamplers Dones");
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.WavGenerator___44_KEEPING_DURATION_VARIABLE_SAMPLE_RATE
.function_to___WavGenerator___44_KEEPING_DURATION_VARIABLE_SAMPLE_RATE___Main
(
GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
System.Windows.Forms.MessageBox.Show("function_to___WavGenerator___44_KEEPING_DURATION_VARIABLE_SAMPLE_RATE___Main Dones");
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.WavGenerator___ShrutiLibrary_From_SAA_Sample
.function_to___Generate_All_Shrutis_From_SAA_GTAMPS
(
GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
System.Windows.Forms.MessageBox.Show("(GENERATED DONES 88 SHRUTI FILES FROM THE SAA GTAMPS Dones");
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.WavGenerator___12x3_ChromaticShrutis_From_SAA_GTAMPS
.function_to___Generate_All_12x3_SemitoneNotes_From_SAA_GTAMPS
(
GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
System.Windows.Forms.MessageBox.Show("(GENERATED DONES 12*3=63 chromatiks library FILES FROM THE SAA GTAMPS Dones");
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.WavGenerator___MultiPitch___IT_GENERATES_SAME_PITCH_COPIES_ONLY____SingleFile_FixedDurations
.function_to___ApplyPerRegionPitchShift_AND_SaveUnifiedWav
(
GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
,
//44
// 22
//66
// 44*11
44*6
);
System.Windows.Forms.MessageBox.Show("(WavGenerator___MultiPitch_SingleFile_FixedDurations speeds remain sames44 SHRUTIS COPIES Dones");
System.Windows.Forms.MessageBox.Show("Dones");
}//if (openFileDialog.ShowDialog() == DialogResult.OK)
}//private void button___SAANS_GPT_8000Hz_SAMPLES_16_bits_GTAMPS_TO_22_shrutis_copier_Click(object sender, EventArgs e)
private void button___CONVERT_ANY_WAVS_TO_8000_HZ_SAMPLES_16_BIT_PCM___GTAMPS_FILE_GPTS_Click(object sender, EventArgs e)
{
///FOR REFERENCES openFileDialogForDXFFiles.Filter = "dstv/nc1 Files (.nc1)|*.nc1|AdvanceSteels dstv/nc1 Files (.nc)|*.nc|All Files (*.*)|*.*";
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "wav Files|*.wav|All Files (*.*)|*.*";
//////string ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS =
//////ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
//////+ "choosefiles.INDINOTATIONS";
;
//+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
/// openFileDialog.FileName = ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS;
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
//this will simply fill the data and populate the internal static arrays every times
string _returned_notes_number_string = DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES("");
//CALLING CONVENTIONS SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_STRING_INDIAN_NOTES_NAME___________PUBLIC_STATIC_STRING_FOR_GLOBAL_ACCESS
//CALLING CONVENTIONS SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_INT_INDIAN_NOTES_NUMBER___________PUBLIC_STATIC_INT_FOR_GLOBAL_ACCESS
/// THESE WILL GET FILLED SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_STRING_INDIAN_NOTES_NAME___________PUBLIC_STATIC_STRING_FOR_GLOBAL_ACCESS = ___TEMP_STRING_INDIAN_NOTES_NAME;
/// THESE WILL GET FILLED SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_INT_INDIAN_NOTES_NUMBER___________PUBLIC_STATIC_INT_FOR_GLOBAL_ACCESS = ___TEMP_INT_INDIAN_NOTES_NUMBER;
//////string ___report_for_populations
////// =
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
////// .PUBLIC_STATIC_STRING___return_NOTES_NUMBER_STRING_FROM_PRECONFIGURED_KEY_NAMES_TO_NUMBER______FROM___PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3
////// (___TEMP_STRING_INDIAN_NOTES_NAME, ___TEMP_INT_INDIAN_NOTES_NUMBER, filled_notes_name);
//////returned_note_number = ___report_for_populations;
string WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES = openFileDialog.FileName;
double totalmillis=
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.SAANS_NO_3RD_PARTY_GPT_STYLES_WAV_FILES_READER_TO_GENERATE_8000_HZ_16_BIT_PCMS_GTAMPS
.PrintWavDurationAndSampleCount
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
this.textBox_FOR_TXT_TO_WAVS_DURATIONS_MILLI_SECS.Text
= totalmillis.ToString();
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.SAANS_NO_3RD_PARTY_GPT_STYLES_WAV_FILES_READER_TO_GENERATE_8000_HZ_16_BIT_PCMS_GTAMPS
.ConvertWavToGTAMPS___with_corrections_GPT
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
,
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
+
"_totalmillis="+ totalmillis
+
"_SAAN_NO_3RD_PARTY_APIS.GTAMPS"
);
System.Windows.Forms.MessageBox.Show("YinPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files NOW WE WILL find frequencies at time stamps");
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
.GenerateShrutiVariants___GPT
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
,
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
+ "_66_COPIES_NO_FREQCHANGED_NO_DURATIONS_CHANGED_SHRUTIS_RESAMPLED___GPT.WAV"
);
System.Windows.Forms.MessageBox.Show("NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES DONES");
/////////////////////// YESSSSSSSSSSSSSSS PROPER 66 DIFFERENT COPIES DIFFERENT FREQUENCIES
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.ShrutiResampler___Revised_GPT_NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
.GenerateShrutiVariants___GPT___YESSSSSS_PROPER_66_ShrutiResampler___66_DIFFERENT_FREQUENCIES_NO_TRUNCATIONS
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
,
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
+ "_YESSSSSS_PROPER_66_ShrutiResampler___66_DIFFERENT_FREQUENCIES_NO_TRUNCATIONS___GPT.WAV"
);
System.Windows.Forms.MessageBox.Show("_YESSSSSS_PROPER_66_ShrutiResampler___66_DIFFERENT_FREQUENCIES_NO_TRUNCATIONS___GPT DONES");
try
{
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
//.TO_DO_THE_BMP_SAVING_MULTIPLE_SCANNING_ON_SUPPLIED_SAMPLES_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
.TO_DO_THE_MULTIPLE_SCANNING_ON_SUPPLIED_SAMPLES_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
.FirstScanThetaBinning
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
//WORKING PERFECT BUT SHARP PANNING NO SWINGS
/////////////////////////////////////////////////////////////////////////////////
//////SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
////// //.TO_DO_THE_BMP_SAVING_MULTIPLE_SCANNING_ON_SUPPLIED_SAMPLES_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
////// .ShrutiResamplerAnalyzer___WITH_BITMAPS____PANNING__________RECALCULATED___66_COPIES_SHRUTIS_PANNED_WITH_STATISTICS
////// .FirstScanThetaBinning
////// (
////// WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
////// );
//WITH ENHANCED SWINGS ON PANNINGS
/////////////////////////////////////////////////////////////////////////////////
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
//.TO_DO_THE_BMP_SAVING_MULTIPLE_SCANNING_ON_SUPPLIED_SAMPLES_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
.ShrutiResamplerAnalyzer___WITH_BITMAPS____DETAILED_SWINGS_OF______DEEP___PANNING__________RECALCULATED___66_COPIES_SHRUTIS_PANNED_WITH_STATISTICS
.FirstScanThetaBinning
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
////////////////////////////////
///
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
//.TO_DO_THE_BMP_SAVING_MULTIPLE_SCANNING_ON_SUPPLIED_SAMPLES_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
.special___180_wav_files_generator___to__check_______theta_rotations_transitions___ShrutiTheta180WavExporter
.Export180ThetaWavs
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
}
catch (Exception ___excp_to_handle_the_bmp_saving_180_degrees_lists_panning_codes)
{
Console.WriteLine("___excp_to_handle_the_bmp_saving_180_degrees_lists_panning_codes " + ___excp_to_handle_the_bmp_saving_180_degrees_lists_panning_codes.Message + "\r\n" + ___excp_to_handle_the_bmp_saving_180_degrees_lists_panning_codes.StackTrace.ToString());
System.Windows.Forms.MessageBox.Show("___excp_to_handle_the_bmp_saving_180_degrees_lists_panning_codes " + ___excp_to_handle_the_bmp_saving_180_degrees_lists_panning_codes.Message + "\r\n" + ___excp_to_handle_the_bmp_saving_180_degrees_lists_panning_codes.StackTrace.ToString());
}//catch(Exception ___excp_to_handle_the_bmp_saving_180_degrees_lists_panning_codes)
try
{
////////////////////// YESSSSSS WORKING TOO HEAVY FILES GENERATES WITH 44100 SAMPLES
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.TO_DO_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
.GenerateShrutiVariants___GPT
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
,
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
+ "_TRYING_PANNINGS___WITH_FREQS_66_DIFFERENT_FREQUENCIES_NO_TRUNCATIONS___GPT.WAV"
);
System.Windows.Forms.MessageBox.Show("TRYING_PANNINGS___WITH_FREQS_66_DIFFERENT_FREQUENCIES_NO_TRUNCATIONS___GPT DONES");
System.Diagnostics.Process.Start("notepad.exe",
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
+
"_totalmillis=" + totalmillis
+
"_SAAN_NO_3RD_PARTY_APIS.GTAMPS"
);
///////////////////////// toooooo important code ///////////////////
///////////////////////// toooooo important code ///////////////////
///////////////////////// toooooo important code ///////////////////
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
//.FourierCodeGenerator
.FourierCodeGenerator
.FourierCodeGenerator___Main
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
+
"_totalmillis=" + totalmillis
+
"_SAAN_NO_3RD_PARTY_APIS.GTAMPS"
);
///////////////////////// toooooo important code ///////////////////
///////////////////////// toooooo important code ///////////////////
///////////////////////// toooooo important code ///////////////////
///
///////////////////////// toooooo important code ///////////////////
///////////////////////// toooooo important code ///////////////////
///////////////////////// toooooo important code ///////////////////
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
//.FourierCodeGenerator
.FourierCodeGenerator
// .FourierCodeGenerator___MainFOR_TOP_HARMONICS
.FourierCodeGenerator___Main_TOP_HARMONIKS
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
+
"_totalmillis=" + totalmillis
+
"_SAAN_NO_3RD_PARTY_APIS.GTAMPS"
);
///////////////////////// toooooo important code ///////////////////
///////////////////////// toooooo important code ///////////////////
///////////////////////// toooooo important code ///////////////////
}
catch (Exception ___excp_to_handle_the_panning_codes)
{
Console.WriteLine("___excp_to_handle_the_panning_codes " + ___excp_to_handle_the_panning_codes.Message + "\r\n" + ___excp_to_handle_the_panning_codes.StackTrace.ToString());
System.Windows.Forms.MessageBox.Show("___excp_to_handle_the_panning_codes " + ___excp_to_handle_the_panning_codes.Message+ "\r\n"+ ___excp_to_handle_the_panning_codes.StackTrace.ToString());
}//catch(Exception ___excp_to_handle_the_panning_codes)
//////SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
////// .Program_bards_66_copier_for_shrutis
////// .CreateShrutiVariations___Main
////// (
////// WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
////// //////,
////// //////WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
////// //////+ "_66_COPIES_NO_FREQCHANGED_NO_DURATIONS_CHANGED_SHRUTIS_RESAMPLED___GPT.WAV"
////// );
///
//////bards_wavshandlingsdontuse
////// .Program_bards_66_copier_for_shrutis
////// .CreateShrutiVariations___Main
////// (
////// WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
////// //////,
////// //////WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
////// //////+ "_66_COPIES_NO_FREQCHANGED_NO_DURATIONS_CHANGED_SHRUTIS_RESAMPLED___GPT.WAV"
////// );
//////System.Windows.Forms.MessageBox.Show("NEW_KIND_OF_CreateShrutiVariations___Main todo");
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.YinPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files
.ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files___Main
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
System.Windows.Forms.MessageBox.Show("will do dynamiks thresholds YinPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files NOW WE WILL find frequencies at time stamps");
//we have already done this //this will simply fill the data and populate the internal static arrays every times
// string _returned_notes_number_string = DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES("");
try
{
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.WAVS_TO_MIDS_DYNAMIK_THRESHOLDS_YinPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files
.ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files___Main
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
}
catch (Exception ___Excp_to_handle_the_small_samples_pitchdetctions)
{
System.Windows.Forms.MessageBox.Show("(ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files___Main) ___Excp_to_handle_the_small_samples_pitchdetctions = " + ___Excp_to_handle_the_small_samples_pitchdetctions.Message + " " + ___Excp_to_handle_the_small_samples_pitchdetctions.StackTrace.ToString());
}//catch(Exception ___Excp_to_handle_the_small_samples_pitchdetctions)
System.Windows.Forms.MessageBox.Show("ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files___Main DONES ");
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.CLUBBING_CONTINUOUS_SAME_NOTES_AND_DURATIONS___PitchMidiExtractor_YinLegacyCompatible
.ExtractNotes
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
System.Windows.Forms.MessageBox.Show("ExtractNotes CLUBBED DONES");
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.SAANS_NO_3RD_PARTY_GPT_STYLES_WAV_FILES_READER_TO_GENERATE_8000_HZ_16_BIT_PCMS_GTAMPS
.
// SplitWavByLocalMinimals_Of_Amplitudes THIS IS DISCARDED SINCE IT GENERATES LARGE NUMBER OF SMALL SAMPLED FILES
// SplitWavByRisingAbove20dBRegions this dont split at all
SplitWavByAmplitudePercentilewith_dynamik_thresholds
(
WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
);
System.Windows.Forms.MessageBox.Show("Dones");
}//if (openFileDialog.ShowDialog() == DialogResult.OK)
}// private void button___CONVERT_ANY_WAVS_TO_8000_HZ_SAMPLES_16_BIT_PCM___GTAMPS_FILE_GPTS_Click(object sender, EventArgs e)
private void button___SIMPLES_SWARALIPIS_SHRUTIS_CONCATENATORS_NO_3RD_PARTY__APIS_Click(object sender, EventArgs e)
{
//I \ R DES TO DO \ WE GENERATED 22 LOW SHRUTIS AND 22 HIGH SHRUTIS FOR SAME RAGAS with 44 times shrutis completes.mp4
try
{
string ___dummyfilesnamesformids_currentdatagridsstates_timestamps =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "_before_indinotesinditaals_loads_" + System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
/////////////////// THIS IS TO PRESERVE PREVIOUS TASKS IF THERE IS DATA ALREADY IN THE DATA GRIDS
save_current_composer_datagrids_state_to_files(___dummyfilesnamesformids_currentdatagridsstates_timestamps);//user choose the files names
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("it loads the INDINOTATIONS Files | *.INDINOTATIONS | INDITALAS FILES | *.INDITALAS | All Files(*.*) | *.* ");
///FOR REFERENCES openFileDialogForDXFFiles.Filter = "dstv/nc1 Files (.nc1)|*.nc1|AdvanceSteels dstv/nc1 Files (.nc)|*.nc|All Files (*.*)|*.*";
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "SWARALIPIS_WITH_MILLIS Files|*.SWARALIPIS_WITH_MILLIS|INDINOTATIONS Files|*.INDINOTATIONS|INDITALAS FILES|*.INDITALAS|All Files (*.*)|*.*";
string ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "choosefiles.INDINOTATIONS";
;
//+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
openFileDialog.FileName = ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS;
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputdataFORINDINOTATIONS_OR_INDITALAS_FILES = openFileDialog.FileName;
// string outputPdfPath = inputPdfPath + "_output_with_circle.pdf"; // Output file path
//TO DO AS NECESSARY
this.___selected_filesnames_for_INDINOTATIONS_OR_INDITALAS
= inputdataFORINDINOTATIONS_OR_INDITALAS_FILES;
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.SwaralipiConcatenator_ResampleAware
.SwaralipiConcatenator___Main
(
inputdataFORINDINOTATIONS_OR_INDITALAS_FILES
);
System.Windows.Forms.MessageBox.Show("RESAMPPLESAWARES Durations wise eavs generated");
////////////////////////////////////////////////////////////////////////////////////////
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.SwaralipiConcatenator_DurationAware
.SwaralipiConcatenator___Main
(
inputdataFORINDINOTATIONS_OR_INDITALAS_FILES
);
////////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("Durations wise eavs generated");
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
//.SwaralipiConcatenator
.SwaralipiConcatenator___all_same_durations
.SwaralipiConcatenator___Main
(
inputdataFORINDINOTATIONS_OR_INDITALAS_FILES
);
System.Windows.Forms.MessageBox.Show("1000 millis fixed Durations wise eavs generated");
///////// Console.WriteLine("___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS = " + ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS);
//////////////////////////////// IMPORTANT CODE WHICH FIRST READS THE MEASURES DURATIONS ///textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS
//////////////////////////////// IMPORTANT CODE WHICH FIRST READS THE MEASURES DURATIONS ///textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS
//////////////////////////////// IMPORTANT CODE WHICH FIRST READS THE MEASURES DURATIONS ///textBox___THE_SINGLE_MEASURE_DURATIONS_IN_MILLIS_WHICH_IS_BETWEEN_TWO_PIPES_DEFAULT_1000_MS
////////////////to___load_INDINOTATIONS_FILES_OR_INDITALAS_FILES(inputdataFORINDINOTATIONS_OR_INDITALAS_FILES);
////// IMPORTANT SYNTAX READERS FOR THE INDINOTES AND INDITALAS FILES
////// IMPORTANT SYNTAX READERS FOR THE INDINOTES AND INDITALAS FILES
////// IMPORTANT SYNTAX READERS FOR THE INDINOTES AND INDITALAS FILES
// to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files(inputdataGridView___COMPOSER);
// to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files
//this.dataGridView___COMPOSER.ClearSelection();
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
}
catch (Exception ___excptoimportdata)
{
System.Windows.Forms.MessageBox.Show("___excptoimportdata = " + ___excptoimportdata.Message + " " + ___excptoimportdata.StackTrace.ToString());
}//catch(Exception ___excptoimportdata)
}//private void button___SIMPLES_SWARALIPIS_SHRUTIS_CONCATENATORS_NO_3RD_PARTY__APIS_Click(object sender, EventArgs e)
private void button_TO_HANDLE_WAVS_WITH_1800_BUCKETS_Click(object sender, EventArgs e)
{
string CURRENT_WAV_FILE_CHOSEN = "";
string SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES = "";
try
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("1800 BUCKETS ANALYSIS\r\n\r\n\r\nit loads the WAV FILES | *.WAV ");
///FOR REFERENCES openFileDialogForDXFFiles.Filter = "dstv/nc1 Files (.nc1)|*.nc1|AdvanceSteels dstv/nc1 Files (.nc)|*.nc|All Files (*.*)|*.*";
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "wav Files|*.wav";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
CURRENT_WAV_FILE_CHOSEN = openFileDialog.FileName;
SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
=
CURRENT_WAV_FILE_CHOSEN + "_8000SPS_16BIT_PCMRIFF.WAV";
//////////////////////////////
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.WavMetadata
.Read(CURRENT_WAV_FILE_CHOSEN);
//////////////////////////////////////////////////////////////////
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
// .DEEPER_CHECKS___SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.WavResampler
.ConvertToStandardFormat
(CURRENT_WAV_FILE_CHOSEN
,
SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
,
ref this.progressBarFOR_ANIMATIONS_SAVING
);
//////////////////////////////////////////////////////////////////////
//WE HAVE TO USE WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK
System.Windows.Forms.MessageBox.Show("Completes ConvertToStandardFormat");
////////////////////////////////////////////////////////////////////////////////////////
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.WavResampler
.WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK
(
SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
);
////////////////////////////////////////////////////////////////////////////////
/////////WHO WILL CONSTRUCT monoSamples?????????????
//////int sps_found = 8000; // hardcoded now because it's our standard format
//////float[] monoSamples
////// =
////// SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
////// .ThetaRotationBucketer
////// //.ThetaRotationBucketer
////// //.ReadWavMonoAsFloats
////// (
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES,
////// out sps_found,
////// ref progressBarFOR_ANIMATIONS_SAVING
//////);
int sps_found = 8000;
float[] monoSamples =
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.WavResampler
.ReadWavMonoAsFloats_Chunked
//.ReadWavMonoAsFloats
(
SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES,
out sps_found,
ref progressBarFOR_ANIMATIONS_SAVING
);
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show(" monoSamples COUNT(after ReadWavMonoAsFloats_Chunked) = " + monoSamples.LongCount().ToString());
int bitmapWidth___FOR_SAAN_STYLES_1800_SCALED_DEGREES = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
int bitmapHeight___FOR_SAAN_STYLES_1800_SCALED_DEGREES = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
//////////////////////////////////////////////////////////////////
//////SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
//////.WavResampler
//////.Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler
//////(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
////// +"_SAANS_wav_resampler_1800_scaled_degrees.bmp"
////// ,
////// bitmapWidth___FOR_SAAN_STYLES_1800_SCALED_DEGREES
////// ,
////// Math.Max( bitmapHeight___FOR_SAAN_STYLES_1800_SCALED_DEGREES, bitmapWidth___FOR_SAAN_STYLES_1800_SCALED_DEGREES)
//////);
////////too heavy 11 gb files
//////SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
//////.WavResampler
//////.Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler
//////(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
////// + "_SAANS_wav_resampler_1800_scaled_degrees.bmp"
////// ,
////// 10* bitmapWidth___FOR_SAAN_STYLES_1800_SCALED_DEGREES
////// ,
////// 6* Math.Max(bitmapHeight___FOR_SAAN_STYLES_1800_SCALED_DEGREES, bitmapWidth___FOR_SAAN_STYLES_1800_SCALED_DEGREES)
////// ,
////// ref this.progressBarFOR_ANIMATIONS_SAVING
//////);
//too heavy 11 gb files
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.WavResampler
.Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler
(
SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
+ "_SAANS_wav_resampler_1800_scaled_degrees.bmp"
,
(3+3)* bitmapWidth___FOR_SAAN_STYLES_1800_SCALED_DEGREES
,
3* Math.Max(bitmapHeight___FOR_SAAN_STYLES_1800_SCALED_DEGREES, bitmapWidth___FOR_SAAN_STYLES_1800_SCALED_DEGREES)
,
ref this.progressBarFOR_ANIMATIONS_SAVING
);
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show(" Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler");
//////////////////////////////////////////////////////////////////
int MINIMUM_BUCKET_NUMBER_FROM_WHICH_TO_TAKE_SAMPLES = 1100;
int MAXIMUM_BUCKET_NUMBER_UPTO_WHICH_TO_TAKE_SAMPLES = 1600;
string ___the_string_for_from_bucket_number_to__the___upto_bucket_number = "";
___the_string_for_from_bucket_number_to__the___upto_bucket_number = "1100 TO 1800";
___the_string_for_from_bucket_number_to__the___upto_bucket_number
=
this.textBox___TO_TYPE_MINIMUM_BUCKET_NUMBER_FROM_MIN_TO_MAX___0___TO___1800
.Text.ToString().ToUpper();
string[] ___splitted_with_TO_commas_spaces_semicolons_slash
=
___the_string_for_from_bucket_number_to__the___upto_bucket_number
.Split(new string[] { "TO", ",", ";", "/", " " }, StringSplitOptions.RemoveEmptyEntries);
if(___splitted_with_TO_commas_spaces_semicolons_slash.Length<2)
{
MINIMUM_BUCKET_NUMBER_FROM_WHICH_TO_TAKE_SAMPLES = 1100;
MAXIMUM_BUCKET_NUMBER_UPTO_WHICH_TO_TAKE_SAMPLES = 1600;
}//if(___splitted_with_TO_commas_spaces_semicolons_slash.Length<3)
else
{
try
{
MINIMUM_BUCKET_NUMBER_FROM_WHICH_TO_TAKE_SAMPLES
= Convert.ToInt16(___splitted_with_TO_commas_spaces_semicolons_slash[0]);
}
catch (Exception ___Excpto_convert)
{
MINIMUM_BUCKET_NUMBER_FROM_WHICH_TO_TAKE_SAMPLES = 1100;
}//catch(Exception ___Excpto_convert)
/////////////////////////////////////////////////////
try
{
MAXIMUM_BUCKET_NUMBER_UPTO_WHICH_TO_TAKE_SAMPLES
= Convert.ToInt16(___splitted_with_TO_commas_spaces_semicolons_slash[1]);
}
catch (Exception ___Excpto_convert)
{
MAXIMUM_BUCKET_NUMBER_UPTO_WHICH_TO_TAKE_SAMPLES = 1600;
}//catch(Exception ___Excpto_convert)
}//end of else of if(___splitted_with_TO_commas_spaces_semicolons_slash.Length<3)
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.WavResampler
// .SPECIAL___Generate___Bitmap_And_Wav___From_1800_Bins
.RE_SPECIAL___Generate___Bitmap_And_Wav___From_1800_Bins
(
SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
+ "_SPECIAL_FILTERED_REPORT_WITH_WAVS.bmp"
,
bitmapWidth___FOR_SAAN_STYLES_1800_SCALED_DEGREES
,
Math.Max(bitmapHeight___FOR_SAAN_STYLES_1800_SCALED_DEGREES, bitmapWidth___FOR_SAAN_STYLES_1800_SCALED_DEGREES)
,
ref this.progressBarFOR_ANIMATIONS_SAVING
,
MINIMUM_BUCKET_NUMBER_FROM_WHICH_TO_TAKE_SAMPLES
,
MAXIMUM_BUCKET_NUMBER_UPTO_WHICH_TO_TAKE_SAMPLES
);
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show(" Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler");
//////////////////////////////////////////////////////////////////
////// int sps_found = 8000;
////// float[] monoSamples
////// =
//////SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
////// .WavResampler
////// .ReadWavMonoAsFloats_Chunked
////// //.ReadWavMonoAsFloats
////// (
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES,
////// out sps_found,
////// ref progressBarFOR_ANIMATIONS_SAVING
////// );
////////////////////////////////////////////////////////////////////////////////////////
int k_supplied = 0;//for default k_supplied==0 => number_of_samples_per_second
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.ThetaRotationBucketer
//ThetaRotationBucketer
bucketer
=
new
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.ThetaRotationBucketer
(monoSamples, sps_found);
bucketer.Process___ThetaRotationBucketer
(k_supplied, ref progressBarFOR_ANIMATIONS_SAVING);//k_supplied==0 which means it will take samplepersecond
//for default k_supplied==0 => number_of_samples_per_second
////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("(after ThetaRotationBucketer) after bucketer.Process___ThetaRotationBucketer dones" );
//////////////////////////////////////////////////////////////////
//for default k_supplied==0 => number_of_samples_per_second
List<SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS.ThetaFeature>[]
all1800Buckets
= bucketer
.GetBuckets();
//for default k_supplied==0 => number_of_samples_per_second
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("(after ThetaRotationBucketer) after bucketer.Process___ThetaRotationBucketer dones for default k_supplied==0 => number_of_samples_per_second all1800Buckets + all1800Buckets.GetLength(0).ToString() = " + all1800Buckets.GetLength(0).ToString());
//////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
//for default k_supplied==0 => number_of_samples_per_second
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.WavResampler
.WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK
(SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES);
////////////////////////////////////////////////////////////////////////////////////////
//////Use Case Width Height Description
//////Full HD screen 1920 1080 Good for visual inspection
//////Ultra wide view 3840 or more 1080 Better time resolution(long audio)
//////Fast preview / small UI 1024 600 Lighter, faster to generate
//////High detail(zooming) samples / 10 1800 e.g., 1 pixel per 100ms in time
//////For large files(like your 800 MB), if you want:
//////Best balance: width = samples / 100, height = 1800
//////To reduce file size but keep clarity, use 8 - bit PNG format(but you'll need to change output from .bmp to .png using ImageFormat.Png)
//////int width = this.ClientSize.Width;
//////int height = this.ClientSize.Height;
///
//////int width = Screen.PrimaryScreen.Bounds.Width;
//////int height = Screen.PrimaryScreen.Bounds.Height;
string bitmapPath_low_clarity = CURRENT_WAV_FILE_CHOSEN +"loclarity_"+"k_supplied="+k_supplied+ "_theta_1800_visual.bmp";
int bitmapWidth = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
int bitmapHeight = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
//for default k_supplied==0 => number_of_samples_per_second
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.ThetaRotationBucketer
.GenerateBucketBitmap(all1800Buckets, bitmapPath_low_clarity, bitmapWidth, bitmapHeight);
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show($"GenerateBucketBitmap(all1800Buckets, {bitmapPath_low_clarity}, {bitmapWidth}, {bitmapHeight});");
//////////////////////////////////////////////////////////////////
///
string bitmapPath_high_clarity = CURRENT_WAV_FILE_CHOSEN + "highclarity_" + "k_supplied = "+k_supplied+ "_theta_1800_visual.bmp";
//for default k_supplied==0 => number_of_samples_per_second
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.ThetaRotationBucketer
.GenerateHighClarityBitmap1800Bins(all1800Buckets, bitmapPath_high_clarity, bitmapWidth, bitmapHeight);
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show($"GenerateHighClarityBitmap1800Bins(all1800Buckets, {bitmapPath_high_clarity}, {bitmapWidth}, {bitmapHeight});");
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK completes");
//////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
k_supplied = 1;//for default k_supplied==0 => number_of_samples_per_second
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.ThetaRotationBucketer
//ThetaRotationBucketer
bucketer_k_supplied_1
=
new
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.ThetaRotationBucketer
(monoSamples, sps_found);
bucketer_k_supplied_1.Process___ThetaRotationBucketer
(k_supplied, ref progressBarFOR_ANIMATIONS_SAVING);//k_supplied==0 which means it will take samplepersecond
//for default k_supplied==0 => number_of_samples_per_second
////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("(after ThetaRotationBucketer) after bucketer.Process___ThetaRotationBucketer dones");
//////////////////////////////////////////////////////////////////
//for default k_supplied==0 => number_of_samples_per_second
List<SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS.ThetaFeature>[]
all1800Buckets_k_supplied_1
=
bucketer_k_supplied_1
.GetBuckets();
//for default k_supplied==0 => number_of_samples_per_second
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("(after ThetaRotationBucketer) after bucketer.Process___ThetaRotationBucketer dones for default k_supplied==0 => number_of_samples_per_second all1800Buckets + all1800Buckets.GetLength(0).ToString() = " + all1800Buckets.GetLength(0).ToString());
//////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
//for default k_supplied==0 => number_of_samples_per_second
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.WavResampler
.WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK
(SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES);
////////////////////////////////////////////////////////////////////////////////////////
//////Use Case Width Height Description
//////Full HD screen 1920 1080 Good for visual inspection
//////Ultra wide view 3840 or more 1080 Better time resolution(long audio)
//////Fast preview / small UI 1024 600 Lighter, faster to generate
//////High detail(zooming) samples / 10 1800 e.g., 1 pixel per 100ms in time
//////For large files(like your 800 MB), if you want:
//////Best balance: width = samples / 100, height = 1800
//////To reduce file size but keep clarity, use 8 - bit PNG format(but you'll need to change output from .bmp to .png using ImageFormat.Png)
//////int width = this.ClientSize.Width;
//////int height = this.ClientSize.Height;
///
//////int width = Screen.PrimaryScreen.Bounds.Width;
//////int height = Screen.PrimaryScreen.Bounds.Height;
string bitmapPath_low_clarity_k_supplied_1 = CURRENT_WAV_FILE_CHOSEN + "loclarity_" + "k_supplied=" + k_supplied + "_theta_1800_visual.bmp";
// int bitmapWidth = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
// int bitmapHeight = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
//for default k_supplied==0 => number_of_samples_per_second
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.ThetaRotationBucketer
.GenerateBucketBitmap(all1800Buckets_k_supplied_1, bitmapPath_low_clarity_k_supplied_1, bitmapWidth, bitmapHeight);
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show($"GenerateBucketBitmap(all1800Buckets_k_supplied_1, k_supplied = {k_supplied} {bitmapPath_low_clarity}, {bitmapWidth}, {bitmapHeight});");
//////////////////////////////////////////////////////////////////
///
string bitmapPath_high_clarity_k_supplied_1 = CURRENT_WAV_FILE_CHOSEN + "highclarity_" + "k_supplied = " + k_supplied + "_theta_1800_visual.bmp";
//for default k_supplied==0 => number_of_samples_per_second
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
.ThetaRotationBucketer
.GenerateHighClarityBitmap1800Bins(all1800Buckets_k_supplied_1, bitmapPath_high_clarity_k_supplied_1, bitmapWidth, bitmapHeight);
//////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show($"GenerateHighClarityBitmap1800Bins(all1800Buckets_k_supplied_1,k_supplied = {k_supplied} {bitmapPath_high_clarity}, {bitmapWidth}, {bitmapHeight});");
//////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("DONES");
////////////////////////////////////////////////////////////////////////////////////////
}//if (openFileDialog.ShowDialog() == DialogResult.OK)
}
catch(Exception ___EXCP_FOR_BUTTONS_LEVEL)
{
System.Windows.Forms.MessageBox.Show("___EXCP_FOR_BUTTONS_LEVEL = " + ___EXCP_FOR_BUTTONS_LEVEL.Message + " " + ___EXCP_FOR_BUTTONS_LEVEL.StackTrace.ToString());
Console.WriteLine("___EXCP_FOR_BUTTONS_LEVEL = " + ___EXCP_FOR_BUTTONS_LEVEL.Message + " " + ___EXCP_FOR_BUTTONS_LEVEL.StackTrace.ToString());
}//catch(Exception ___EXCP_FOR_BUTTONS_LEVEL)
}//private void button_TO_HANDLE_WAVS_WITH_1800_BUCKETS_Click(object sender, EventArgs e)
private void button___OPEN_NO_VELOCITY_FLUTES_FILES_Click(object sender, EventArgs e)
{
System.Windows.Forms.MessageBox.Show(" (non velocity sensitive ) .no_velocity_flutes_melody_data\r\n\r\n\r\nstart_millisecond ######durations_in milliseconds######frequency_to_play");
try
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = ".no_velocity_flutes_melody_data | *.no_velocity_flutes_melody_data|.text| *.txt|All Files (*.*)|*.*";
string ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS =
//////ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
//////+ "choosefiles.INDINOTATIONS";
//////;
//+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
// openFileDialog.FileName = ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS;
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputno_velocity_flutes_melody_data = openFileDialog.FileName;
// string outputPdfPath = inputPdfPath + "_output_with_circle.pdf"; // Output file path
//TO DO AS NECESSARY
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
//.FluteMelodyWavGenerator___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
//public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
//public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
.FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
.GenerateWavFromMelodyData___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
(inputno_velocity_flutes_melody_data);
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
//.FluteMelodyWavGenerator___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
//public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
//public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
.FluteMelodyWavGenerator___GLIDING_NOTES_WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
.GenerateWavFromMelodyData___WITH_DETAILED_RANDOMIZED_WITH_PARAMETRIK_WAVES_WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
(
inputno_velocity_flutes_melody_data
,
ref this.progressBarFOR_ANIMATIONS_SAVING
);
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
//.FluteMelodyWavGenerator___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
//public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
//public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
.FluteWavGenerator___WITH___VIBRATO_BREADTHCONTROLS
.GenerateFluteMelody___WITH___VIBRATO_BREADTHCONTROLS___Main
(
inputno_velocity_flutes_melody_data
,
ref this.progressBarFOR_ANIMATIONS_SAVING
);
//to do with FluteMelodyWavGenerator_WithVelocity
System.Windows.Forms.MessageBox.Show("DONES (non velocity sensitive )TWO DISCRETE NOTES +TWO GLIDING NOTES WAV FILES SAVED");
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
}
catch (Exception _excp)
{
}// catch(Exception _excp)
}//private void button___OPEN_NO_VELOCITY_FLUTES_FILES_Click(object sender, EventArgs e)
private void button___VELOCITY_SENSITIVE_FLUTES_FILES_GENERATORS_Click(object sender, EventArgs e)
{
System.Windows.Forms.MessageBox.Show(" VELOCITY SENSITIVE .with_velocity_flutes_melody_data\r\n\r\n\r\nstart_millisecond ######durations_in milliseconds######frequency_to_play######VELOCITY_0_TO_1_RANGES");
try
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = ".with_velocity_flutes_melody_data | *.with_velocity_flutes_melody_data|.text| *.txt|All Files (*.*)|*.*";
string ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS =
//////ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
//////+ "choosefiles.INDINOTATIONS";
//////;
//+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
// openFileDialog.FileName = ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS;
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputno_velocity_flutes_melody_data = openFileDialog.FileName;
// string outputPdfPath = inputPdfPath + "_output_with_circle.pdf"; // Output file path
//TO DO AS NECESSARY
SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
//.FluteMelodyWavGenerator___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
//public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
//public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
.FluteMelodyWavGenerator_WithVelocity
.GenerateVelocityAwareFluteMelody
(inputno_velocity_flutes_melody_data);
////// SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
////////.FluteMelodyWavGenerator___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
////////public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
////////public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
//////.FluteMelodyWavGenerator___GLIDING_NOTES_WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
//////.GenerateWavFromMelodyData___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
//////(inputno_velocity_flutes_melody_data);
//to do with FluteMelodyWavGenerator_WithVelocity
System.Windows.Forms.MessageBox.Show("DONES (non velocity sensitive )TWO DISCRETE NOTES +TWO GLIDING NOTES WAV FILES SAVED");
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
}
catch (Exception _excp)
{
}// catch(Exception _excp)
}// private void button___VELOCITY_SENSITIVE_FLUTES_FILES_GENERATORS_Click(object sender, EventArgs e)
private void button___TO_DO_ONLY_YN_PITCH_DETECTIONS_ON_8000_SPS_16NITS_WAVS_Click(object sender, EventArgs e)
{
///FOR REFERENCES openFileDialogForDXFFiles.Filter = "dstv/nc1 Files (.nc1)|*.nc1|AdvanceSteels dstv/nc1 Files (.nc)|*.nc|All Files (*.*)|*.*";
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "wav Files|*.wav|All Files (*.*)|*.*";
//////string ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS =
//////ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
//////+ "choosefiles.INDINOTATIONS";
;
//+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
/// openFileDialog.FileName = ___dummyfilesnamesformids_current_INDINOTATIONS_OR_INDITALAS;
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string THE_INPUT_WAV_FILE_PATH = openFileDialog.FileName;
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.YinPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files
.ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files___Main
(
// WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
THE_INPUT_WAV_FILE_PATH
);
System.Windows.Forms.MessageBox.Show("will do dynamiks thresholds YinPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files NOW WE WILL find frequencies at time stamps");
//we have already done this //this will simply fill the data and populate the internal static arrays every times
// string _returned_notes_number_string = DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES("");
try
{
SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
.WAVS_TO_MIDS_DYNAMIK_THRESHOLDS_YinPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files
.ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files___Main
(
// WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
THE_INPUT_WAV_FILE_PATH
);
}
catch (Exception ___Excp_to_handle_the_small_samples_pitchdetctions)
{
System.Windows.Forms.MessageBox.Show("(ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files___Main) ___Excp_to_handle_the_small_samples_pitchdetctions = " + ___Excp_to_handle_the_small_samples_pitchdetctions.Message + " " + ___Excp_to_handle_the_small_samples_pitchdetctions.StackTrace.ToString());
}//catch(Exception ___Excp_to_handle_the_small_samples_pitchdetctions)
System.Windows.Forms.MessageBox.Show("ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files___Main DONES ");
//////SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
////// .CLUBBING_CONTINUOUS_SAME_NOTES_AND_DURATIONS___PitchMidiExtractor_YinLegacyCompatible
////// .ExtractNotes
////// (
////// WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
////// );
//////System.Windows.Forms.MessageBox.Show("ExtractNotes CLUBBED DONES");
//////SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
////// .SAANS_NO_3RD_PARTY_GPT_STYLES_WAV_FILES_READER_TO_GENERATE_8000_HZ_16_BIT_PCMS_GTAMPS
////// .
//////// SplitWavByLocalMinimals_Of_Amplitudes THIS IS DISCARDED SINCE IT GENERATES LARGE NUMBER OF SMALL SAMPLED FILES
//////// SplitWavByRisingAbove20dBRegions this dont split at all
//////SplitWavByAmplitudePercentilewith_dynamik_thresholds
//////(
////// WAV_FILES___GTAMPLS_8000_HZ_16_BITS_FLOATING_TEXTFILES
//////);
System.Windows.Forms.MessageBox.Show("(FLUTES FREQUENCY FILES ALSO SAVEDDones");
}//if (openFileDialog.ShowDialog() == DialogResult.OK)
}//private void button___TO_DO_ONLY_YN_PITCH_DETECTIONS_ON_8000_SPS_16NITS_WAVS_Click(object sender, EventArgs e)
private void button___TO_DECORATE_THE_SEQUENCES_WITH_DIFFERENT_STYLES_Click(object sender, EventArgs e)
{
//we assume the notepad++ so we dont save when reload current
//we assume the notepad++ so we dont save when reload current
//we assume the notepad++ so we dont save when reload current
//////TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ######
//////61 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D4 ###### 293.66 ###### ROW_NUMBER=0
//////62 ###### 1000 ###### 127 ###### 71 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### D#4/Eb4 ###### 311.13 ###### ROW_NUMBER=1
//////63 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### E4 ###### 329.63 ###### ROW_NUMBER=2
//////57 ###### 1000 ###### 127 ###### 73 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### A#3/Bb3 ###### 233.08 ###### ROW_NUMBER=3
//////53 ###### 1000 ###### 127 ###### 66 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F#3/Gb3 ###### 185 ###### ROW_NUMBER=4
//////52 ###### 1000 ###### 127 ###### 68 ###### 0,100 ###### 8192,16368 ###### 3 ###### 3 ###### F3 ###### 174.61 ###### ROW_NUMBER=5
//////LYRSYLLS ###### INDINOTES ###### TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ###### JERK_MILLIS_GAP ###### JERK_UP_PITCHBEND ###### JERK_DOWN_PITCH_BEND ######
//////- ###### n ###### 64 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### F4 ###### 349.23 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=0
//////- ###### s ###### 64 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### F4 ###### 349.23 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=1
//////- ###### s ###### 53 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### F#3/Gb3 ###### 185 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=2
//////- ###### g ###### 57 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### A#3/Bb3 ###### 233.08 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=3
//////- ###### d ###### 64 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### F4 ###### 349.23 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=4
//////- ###### r ###### 55 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### G#3/Ab3 ###### 349.23 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=5
//////- ###### r ###### 55 ###### 324 ###### 127 ###### 73 ###### 0,3,20,22,30,38,48,60,68,98,100 ###### 8192,2000,11000,6000,8000,600,9000,8000,3000,11000,8000 ###### 3 ###### 3 ###### G#3/Ab3 ###### 349.23 ###### 0 ###### 0 ###### 0 ###### ROW_NUMBER=6
///FOR REFERENCES openFileDialogForDXFFiles.Filter = "dstv/nc1 Files (.nc1)|*.nc1|AdvanceSteels dstv/nc1 Files (.nc)|*.nc|All Files (*.*)|*.*";
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "COMPOSERF Files|*.dataGridView___COMPOSER|SAANCOMPOSER FILES|*.SAANCOMPOSER|All Files (*.*)|*.*";
string ___dummyfilesnamesformids_currentdatagridsstates_timestamps =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder;
//+ System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".dataGridView___COMPOSER";
openFileDialog.FileName = ___dummyfilesnamesformids_currentdatagridsstates_timestamps;
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = "";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string inputdataGridView___COMPOSER = openFileDialog.FileName;
// string outputPdfPath = inputPdfPath + "_output_with_circle.pdf"; // Output file path
this.___selected_filesnames_for_inputdataGridView___COMPOSER_files = inputdataGridView___COMPOSER;
Console.WriteLine("inputdataGridView___COMPOSER = " + inputdataGridView___COMPOSER);
to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files(inputdataGridView___COMPOSER);
System.Windows.Forms.MessageBox.Show("We will call GenerateOddEvenRagaFile" + inputdataGridView___COMPOSER);
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.RagaPaltas_OddEvenConcatenator
.GenerateOddEvenRagaFile
(
inputdataGridView___COMPOSER
// ,
// inputdataGridView___COMPOSER.Replace(".dataGridView___COMPOSER", "_extended_durations_loops_003") + ".dataGridView___COMPOSER"
);
System.Windows.Forms.MessageBox.Show("We will call RagaPaltas_DiagonalConcatenator" + inputdataGridView___COMPOSER);
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.RagaPaltas_DiagonalConcatenator
.GenerateDiagonalDecoratedFile
(
inputdataGridView___COMPOSER
// ,
// inputdataGridView___COMPOSER.Replace(".dataGridView___COMPOSER", "_extended_durations_loops_003") + ".dataGridView___COMPOSER"
);
System.Windows.Forms.MessageBox.Show("We will call RagaPaltas_ZigZagDiagonalConcatenator" + inputdataGridView___COMPOSER);
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.RagaPaltas_ZigZagDiagonalConcatenator
.GenerateZigzagDiagonalDecoratedFile
(
inputdataGridView___COMPOSER
// ,
// inputdataGridView___COMPOSER.Replace(".dataGridView___COMPOSER", "_extended_durations_loops_003") + ".dataGridView___COMPOSER"
);
System.Windows.Forms.MessageBox.Show("We will call RagaPaltas_SpiralDiagonal_merges_0_to_360_Composer" + inputdataGridView___COMPOSER);
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.RagaPaltas_SpiralDiagonal_merges_0_to_360_Composer
.GenerateSpiralDiagonalDecoratedFile
(
inputdataGridView___COMPOSER
// ,
// inputdataGridView___COMPOSER.Replace(".dataGridView___COMPOSER", "_extended_durations_loops_003") + ".dataGridView___COMPOSER"
);
System.Windows.Forms.MessageBox.Show("We will call NecklacePatternComposer" + inputdataGridView___COMPOSER);
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.NecklacePatternComposer
.ComposeFromNecklacePattern
(
inputdataGridView___COMPOSER
// ,
// inputdataGridView___COMPOSER.Replace(".dataGridView___COMPOSER", "_extended_durations_loops_003") + ".dataGridView___COMPOSER"
);
//System.Windows.Forms.MessageBox.Show("We will call RagaPaltasGenerator___reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER on inputdataGridView___COMPOSER " + inputdataGridView___COMPOSER);
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .RagaPaltasGenerator___reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER
////// .GenerateExtendedRagaFile
////// (
////// inputdataGridView___COMPOSER
////// ,
////// inputdataGridView___COMPOSER.Replace(".dataGridView___COMPOSER","_extended_durations_loops_003")+".dataGridView___COMPOSER"
////// );
///
///
///
/// //stopping this it copies all durations to all notes and generates nxn data structures
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .RagaPaltasGenerator___reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER
////// .GenerateExtendedRagaFile___ALL_THE_NOTES_WITH_SAMES_DURATIONS_OF_OTHER_NOTES
////// //.GenerateExtendedRagaFile
////// (
////// inputdataGridView___COMPOSER
////// ,
////// inputdataGridView___COMPOSER + "_SAMES_durations_REPEATS_loops_003" + ".dataGridView___COMPOSER"
////// );
// to___load_current_composer_textfiles_data_to_preclean_then_datagrids_state_to_files
// hangs
////// //I:\R___DES\RAGA_GUIDES_TOO_IMPORTANT\alaiyasshrutikakks\only7.txt
////// System.Windows.Forms.MessageBox.Show("We will call RagaPaltasGroupwisePermuter_WithMeasureBoundaries on inputdataGridView___COMPOSER " + inputdataGridView___COMPOSER);
////// //i will generate only first 5990 rows
////// SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .RagaPaltasGroupwisePermuter_WithMeasureBoundaries
////// .GenerateRagaFiles_WithMeasurewiseDurationPermutations
////// //.GenerateExtendedRagaFile
////// (
////// inputdataGridView___COMPOSER
////// // ,
//////// inputdataGridView___COMPOSER + "_WITH_PERMUTED(UPTO_8_NOTES)__durations_loops_003" + ".dataGridView___COMPOSER"
////// );
// hangs
//////System.Windows.Forms.MessageBox.Show("We will call RagaPaltasGenerator___reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER on inputdataGridView___COMPOSER " + inputdataGridView___COMPOSER);
////////i will generate only first 5990 rows
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
//////.RagaPaltasGenerator___PERMUTED_DURATIONS_SEQUENCES_COPIERS_reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER
//////.GenerateExtendedRagaFile___ALL_THE_NOTES_WITH_PERMUTED_DURATIONS_OF_OTHER_NOTES
////////.GenerateExtendedRagaFile
//////(
//////inputdataGridView___COMPOSER
//////,
//////inputdataGridView___COMPOSER + "_WITH_PERMUTED(UPTO_8_NOTES)__durations_loops_003" + ".dataGridView___COMPOSER"
//////);
}// if (openFileDialog.ShowDialog() == DialogResult.OK)
this.dataGridView___COMPOSER.ClearSelection();
}// private void button___TO_DECORATE_THE_SEQUENCES_WITH_DIFFERENT_STYLES_Click(object sender, EventArgs e)
private void button___TOO_SLOW_BUT_CALCULATES_FREQUENCIES_MILLIS_CREST_TROUGHS_Click(object sender, EventArgs e)
{
string CURRENT_WAV_FILE_CHOSEN = "";
string SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES = "";
try
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("TOO TIME TAKING CREST TROUGHS \r\n\r\n\r\nit loads the WAV FILES | *.WAV ");
///FOR REFERENCES openFileDialogForDXFFiles.Filter = "dstv/nc1 Files (.nc1)|*.nc1|AdvanceSteels dstv/nc1 Files (.nc)|*.nc|All Files (*.*)|*.*";
// Open file dialog to select PDF file
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "wav Files|*.wav";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
//https://www.youtube.com/watch?v=CTdD0tXfuDg
try
{
SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
= openFileDialog.FileName;
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .WaveformAnalyzer
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .WavLoader
////// .LoadMono16BitPcmWav
////// ()
///
////// // int ___samplesrates;
////// public static float[]
//////___SAANS_FLOATS_ARRAY_OF_SAMPLES
//////=
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .WavLoader
////// .LoadMono16BitPcmWav
////// (
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
////// ,
////// out int ___samplesrates
////// );
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
//////.WaveformAnalyzer
////// (
////// ___SAANS_FLOATS_ARRAY_OF_SAMPLES
////// ,8000,ref this.
MessageBox.Show("(TOO SLOW TO COMPARES)Will call the crest traugh things Analysis complete! Total segments");
//////int sampleRate;//=0;
//////bool isstereo;//= false;
////// // float[][] samples
//////float[] samples
////// =
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .WavLoader___only_mono_8000sps_16bitfloats
////// // .LoadMono16BitPcmWav
////// // .LoadPcmWav
////// .LoadMono16BitPcmWav
////// // (SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES, out sampleRate,out isstereo);
////// (SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES, out sampleRate);
// int sampleRate;
// bool isStereo;
// float[] samples;
////// = WavLoader
////// .LoadPcmWav(SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES, out sampleRate, out isStereo);
//////CsvExporter.ExportPerMillisecond(wavFilePath + ".perms.csv", samples, sampleRate);
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.ThreadedWaveProcessor processor
////// = new SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.ThreadedWaveProcessor();
//////processor.Start
////// (SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
////// ,
////// // progressBar1
////// this.progressBarFOR_ANIMATIONS_SAVING
////// , segments =>
////// {
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .CsvExporter
////// .ExportSegments(SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES + "._CREST_TROUGHS_segments.csv"
////// ,
////// segments);
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .CsvExporter
////// .ExportPerMillisecond(SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES + "._CREST_TROUGHS_perms.csv"
////// ,
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .
////// WavLoader
////// .LoadPcmWav
////// (
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
////// , out int sr, out bool stereo), sr);
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .DxfVisualizer
////// .DrawDxf
////// (SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES + "._CREST_TROUGHS_segments.dxf", segments, sr);
////// });
///
// Create the threaded waveform processor
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .ThreadedWaveProcessor processor
////// = new
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .ThreadedWaveProcessor();
////// // Start processing
////// processor.Start(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES,
////// this.progressBarFOR_ANIMATIONS_SAVING, // Use ProgressBar from your Form
////// segments =>
////// {
////// // Export Crest-Trough segments
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .CsvExporter.ExportSegments(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES + "._CREST_TROUGHS_segments.csv",
////// segments);
//////// Load samples for per-millisecond export
//////int sr;
////// bool stereo;
////// float[][] wavSamples
////// =
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .WavLoader.LoadPcmWav(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES,
////// out sr, out stereo);
////// // Export Per-millisecond classification
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
//////.CsvExporter.ExportPerMillisecond
//////(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES + "._CREST_TROUGHS_perms.csv",
////// wavSamples, sr);
////// // Export DXF visualization
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .DxfVisualizer.DrawDxf(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES + "._CREST_TROUGHS_segments.dxf",
////// segments, sr);
////// }
////// );
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .ThreadedWaveProcessor___for_mono processor
////// = new
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .ThreadedWaveProcessor___for_mono();
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .ThreadedWaveProcessor___for_mono processor
////// = new
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .ThreadedWaveProcessor___for_mono();
////// // Start waveform analysis
////// processor.Start(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES,
////// ref this.progressBarFOR_ANIMATIONS_SAVING, // Use ProgressBar from your Form
////// segments =>
////// {
//////// Export Crest-Trough segments
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .CsvExporter.ExportSegments(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
////// + "._CREST_TROUGHS_segments.csv",
////// segments
////// );
//////// Load samples for per-millisecond classification
//////int sampleRate_for_millisecond_export;
////// bool isStereo_must_be_false; // Will always be false
//////float[] waveformSamples_mono =
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .WavLoader.LoadPcmWav(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES,
////// out sampleRate_for_millisecond_export,
////// out isStereo_must_be_false
////// );
//////// Export per-millisecond classification
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .CsvExporter.ExportPerMillisecond(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
////// + "._CREST_TROUGHS_perms.csv",
////// waveformSamples_mono,
////// sampleRate_for_millisecond_export
////// );
//////// Export DXF visualization
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .DxfVisualizer.DrawDxf(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
////// + "._CREST_TROUGHS_segments.dxf",
////// segments
////// );
////// }
////// );
// The input file path
// string wavPath = SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES;
//////// Initialize the processor
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveProcessor processor =
////// new SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveProcessor();
//////// Analyze the waveform and get crest-trough segments
//////List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughSegment> segments =
////// processor.Start(wavPath, ref this.progressBarFOR_ANIMATIONS_SAVING);
//////// Export CSV file with segment-wise crest/trough data
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter.ExportSegments
////// (
////// wavPath + "._CREST_TROUGHS_segments.csv",
////// segments
//////);
//////// Load mono WAV samples (no stereo flag, only float[] expected)
//////int sampleRate;
//////float[] monoSamples =
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WavLoader.LoadMonoPcmWav(
////// wavPath,
////// out sampleRate
////// );
//////// Export per-millisecond classification CSV
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter.ExportPerMillisecond(
////// wavPath + "._CREST_TROUGHS_perms.csv",
////// monoSamples,
////// sampleRate
//////);
//////// Export DXF visualization of crest/trough zones
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.DxfVisualizer.DrawDxf(
////// wavPath + "._CREST_TROUGHS_segments.dxf",
////// segments,
////// sampleRate
//////);
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
//////.WaveformAnalyzer
//////analyzer
//////=
//////new
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
//////.WaveformAnalyzer
//////(
////// samples
//////,
//////sampleRate
////// ,
////// ref this.progressBarFOR_ANIMATIONS_SAVING
////// );
MessageBox.Show("Will call the crest traugh things Analysis analyzer object created ");
//////List
////// <
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .WaveSegment
////// >
////// segments
////// =
////// analyzer.Analyze();
//////string wavPath = OpenFileDialogResult.FileName;
//////int sampleRate;
//////var samples = WavLoader.LoadMono16BitPcmWav(wavPath, out sampleRate);
//////var analyzer = new WaveformAnalyzer(samples, sampleRate, ref progressBar);
//////var segments = analyzer.Analyze();
///
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
//////.CsvExporter
//////.ExportSegments
//////(Path.ChangeExtension
//////(
////// SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES
////// ,
////// "_crest_trough_analysis.csv"
////// )
//////, segments
//////);
//////// Step 1: Initialize processor and analyze full crest/trough
//////var processor = new WaveProcessor();
//////List<CrestTroughSegment> allSegments = processor.Start(wavPath, ref this.progressBarFOR_ANIMATIONS_SAVING);
//////// Step 2: Filter only smooth (non-sharp) crests and troughs
//////List<CrestTroughSegment> smoothSegments = CrestTroughFilter.FilterSmoothSegments(allSegments);
//////// Step 3: Export original all-segment CSV
//////CsvExporter.ExportSegments(wavPath + "._CREST_TROUGHS_ALL.csv", allSegments);
//////// Step 4: Export smooth (filtered) segment CSV
//////CsvExporter.ExportFilteredSegments(wavPath + "._CREST_TROUGHS_FILTERED.csv", smoothSegments);
//////// Step 5: Export per-millisecond analysis
//////int sampleRate;
//////float[] monoSamples = WavLoader.LoadMonoPcmWav(wavPath, out sampleRate);
//////CsvExporter.ExportPerMillisecond(wavPath + "._CREST_TROUGHS_perms.csv", monoSamples, sampleRate);
//////// Step 6: Export DXF visualization
//////DxfVisualizer.DrawDxf(wavPath + "._CREST_TROUGHS_SEGMENTS.dxf", allSegments, sampleRate);
//////// Step 7: Save filtered WAV where sharp spikes are removed (samples replaced with 0)
//////WavFilterSaver.SaveFilteredWav(wavPath + "._FILTERED.wav", monoSamples, smoothSegments, sampleRate);
// STEP 1: Set the WAV input path
string wavPath = SAANS_STANDARD_OUTPUT_WAV_FILE_FIRST_RAW_MATERIAL_TO_PROCEED_8000_SPS_16BITS_PCM_RIFF_WAV_FILES;
////////////// STEP 2: Create processor object
////////////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveProcessor processor =
//////////// new SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveProcessor();
//////// Step 1: Initialize processor and analyze full crest/trough
//////var processor = new WaveProcessor();
//////List<CrestTroughSegment> allSegments = processor.Start(wavPath, ref this.progressBarFOR_ANIMATIONS_SAVING);
//////// Step 2: Filter only smooth (non-sharp) crests and troughs
//////List<CrestTroughSegment> smoothSegments = CrestTroughFilter.FilterSmoothSegments(allSegments);
//////// STEP 3: Run the analysis and get segments
//////List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughSegment> segments =
////// processor.Start(wavPath, ref this.progressBarFOR_ANIMATIONS_SAVING);
////// //////public List<CrestTroughSegment> Start(string path, ref ProgressBar progressBar)
//////// STEP 4: Export CSV for crest/trough segments
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter.ExportSegments(
////// wavPath + "._CREST_TROUGHS_segments.csv",
////// segments
//////);
//////// STEP 5: Load mono WAV samples
//////int sampleRate;
//////float[] monoSamplesforcresttroughs =
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WavLoader
////// .LoadMonoPcmWav(wavPath, out sampleRate);
//////// STEP 6: Export per-millisecond analysis
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter.ExportPerMillisecond(
////// wavPath + "._CREST_TROUGHS_perms.csv",
////// monoSamplesforcresttroughs,
////// sampleRate
//////);
//////// STEP 7: Export DXF visualization
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.DxfVisualizer.DrawDxf(
////// wavPath + "._CREST_TROUGHS_segments.dxf",
////// segments,
////// sampleRate
//////);
//////// Step 7: Save filtered WAV where sharp spikes are removed (samples replaced with 0)
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
//////.WavFilterSaver.SaveFilteredWav(wavPath + "._FILTERED.wav", monoSamples, smoothSegments, sampleRate);
///
//////// Step 1: Analyze waveform and get all crest/trough segments
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveProcessor processor =
////// new SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveProcessor();
//////List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughSegment> allSegments =
////// processor.Start(wavPath, ref this.progressBarFOR_ANIMATIONS_SAVING);
//////// Step 2: Filter only smooth segments (exclude sharp crests/troughs)
//////List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughSegment> smoothSegments =
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughFilter
////// .FilterSmoothSegments(allSegments);
//////// Step 3: Export all crest/trough CSV
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
////// .ExportSegments(wavPath + "._CREST_TROUGHS_ALL.csv", allSegments);
//////// Step 4: Export only filtered/smooth segment CSV
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
////// .ExportFilteredSegments(wavPath + "._CREST_TROUGHS_FILTERED.csv", smoothSegments);
//////// Step 5: Load mono WAV again for amplitude export
//////int sampleRate;
//////float[] monoSamples = SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WavLoader
////// .LoadMonoPcmWav(wavPath, out sampleRate);
//////// Step 6: Export per-millisecond average amplitude report
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
////// .ExportPerMillisecond(wavPath + "._CREST_TROUGHS_perms.csv", monoSamples, sampleRate);
//////// Step 7: Export DXF visualization of segments (using all segments)
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.DxfVisualizer
////// .DrawDxf(wavPath + "._CREST_TROUGHS_SEGMENTS.dxf", allSegments, sampleRate);
//////// Step 8: Save a WAV where only smooth segments are preserved (others = silence)
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WavFilterSaver
////// .SaveFilteredWav(wavPath + "._FILTERED.wav", monoSamples, smoothSegments, sampleRate);
//////// Step 1: Analyze waveform and get crest/trough segments
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveProcessor processor =
////// new SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveProcessor();
//////List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughSegment> allSegments =
////// processor.Start(wavPath, ref this.progressBarFOR_ANIMATIONS_SAVING);
//////// Step 2: Load mono WAV samples (required for filtering)
//////int sampleRate;
//////float[] monoData = SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WavLoader
////// .LoadMonoPcmWav(wavPath, out sampleRate);
//////// Step 3: Filter segments where no sharp peak/trough angles exist
//////List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughSegment> smoothSegments =
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughFilter
////// .FilterSmoothSegments(allSegments, monoData);
//////// Step 4: Export full crest-trough CSV
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
////// .ExportSegments(wavPath + "._CREST_TROUGHS_ALL.csv", allSegments);
//////// Step 5: Export only smooth crest-troughs CSV
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
////// .ExportFilteredSegments(wavPath + "._CREST_TROUGHS_FILTERED.csv", smoothSegments);
//////// Step 6: Export per-millisecond report
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
////// .ExportPerMillisecond(wavPath + "._CREST_TROUGHS_perms.csv", monoData, sampleRate);
//////// Step 7: Export DXF drawing
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.DxfVisualizer
////// .DrawDxf(wavPath + "._CREST_TROUGHS_SEGMENTS.dxf", allSegments, sampleRate);
//////// Step 8: Export filtered WAV where only smooth crests/troughs are kept
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WavFilterSaver
////// .SaveFilteredWav(wavPath + "._FILTERED.wav", monoData, smoothSegments, sampleRate);
// Step 1: Analyze waveform and get crest/trough segments
SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveProcessor processor =
new SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveProcessor();
List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughSegment> allSegments =
processor.Start(wavPath, ref this.progressBarFOR_ANIMATIONS_SAVING);
// Step 2: Load mono WAV samples (required for filtering and frequency analysis)
int sampleRate;
float[] monoData = SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WavLoader
.LoadMonoPcmWav(wavPath, out sampleRate);
// Step 3: Filter segments where no sharp peak/trough angles exist
List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughSegment> smoothSegments =
SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughFilter
.FilterSmoothSegments(allSegments, monoData);
// Step 4: Export full crest-trough CSV
SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
.ExportSegments(wavPath + "._CREST_TROUGHS_ALL.csv", allSegments);
// Step 5: Export only smooth crest-troughs CSV
SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
.ExportFilteredSegments(wavPath + "._CREST_TROUGHS_FILTERED.csv", smoothSegments);
//////// Step 6: Export per-millisecond amplitude report
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
////// .ExportPerMillisecond(wavPath + "._CREST_TROUGHS_perms.csv", monoData, sampleRate);
//////// Step 6: Export per-millisecond amplitude report
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
////// .ExportPerMillisecond(wavPath + "._CREST_TROUGHS_perms.csv", monoData);
///
//////List<CrestTroughSegment> segments =
////// CrestTroughDetector.DetectSegments(samples, sampleRate, ref progressBar);
//////var freqPoints =
////// WaveformFrequencyEstimator.EstimateFrequencies(segments, sampleRate);
//////CsvExporter.ExportPerMillisecond("output_path.csv", freqPoints);
var segments = SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CrestTroughDetector
.DetectSegments(monoData, sampleRate, ref this.progressBarFOR_ANIMATIONS_SAVING);
var freqPoints = SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveformFrequencyEstimator
.EstimateFrequencies(segments, sampleRate);
SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
.ExportPerMillisecond("path.csv", freqPoints);
// Step 7: Export DXF drawing of crest/troughs
SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.DxfVisualizer
.DrawDxf(wavPath + "._CREST_TROUGHS_SEGMENTS.dxf", allSegments, sampleRate);
// Step 8: Export filtered WAV keeping only smooth crests/troughs
SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WavFilterSaver
.SaveFilteredWav(wavPath + "._FILTERED.wav", monoData, smoothSegments, sampleRate);
////////// Step 9: Export millisecond-wise frequency and MIDI report
////////List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.FrequencyInfo> freqsinfo =
//////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveformFrequencyEstimator
//////// .EstimateFrequencies(freqsinfo, sampleRate);
///
//////List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.FrequencyInfo> freqsinfo =
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveformFrequencyEstimator
////// .EstimateFrequencies(segments, sampleRate);
List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveformFrequencyEstimator.FrequencyPoint> freqPointsestimated =
SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveformFrequencyEstimator
.EstimateFrequencies(segments, sampleRate);
// Convert to FrequencyInfo
List<SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.FrequencyInfo> freqsinfo =
freqPointsestimated.Select(fp => new SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.FrequencyInfo
{
StartMs = fp.TimeMs,
DurationMs = 1, // or estimate real duration if needed
Frequency = fp.Frequency
}).ToList();
var freqPointsnew = SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.WaveformFrequencyEstimator
.EstimateFrequencies(segments, sampleRate);
SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
.ExportFrequencies(wavPath + "._FREQUENCY_PER_MS.csv", freqsinfo);
// Step 10: Export similarity statistics for crests and troughs
//////Dictionary<string, int> patternCounts =
////// SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
////// .WaveformPatternComparer
////// .CountSimilarSegments(smoothSegments, segments);
int similarSegmentCount = SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
.WaveformPatternComparer
.CountSimilarSegments(smoothSegments, segments);
//////SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
//////.ExportSimilarSegmentCount(wavPath + "._SIMILAR_PATTERNS.csv", patternCounts.Count);
SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform.CsvExporter
.ExportSimilarSegmentCount(wavPath + "._SIMILAR_PATTERNS.csv", similarSegmentCount);
// Optional: Notify user
MessageBox.Show("Waveform analysis completed.");
// MessageBox.Show("Analysis complete! Total segments: " + segments.Count);
}
catch (Exception ___excp_to_handle_teh_cresttroughs)
{
Console.WriteLine("___excp_to_handle_teh_cresttroughs = " + ___excp_to_handle_teh_cresttroughs.Message + " " + ___excp_to_handle_teh_cresttroughs.StackTrace.ToString());
System.Windows.Forms.MessageBox.Show("___excp_to_handle_teh_cresttroughs = " + ___excp_to_handle_teh_cresttroughs.Message + " " + ___excp_to_handle_teh_cresttroughs.StackTrace.ToString());
}//catch(Exception ___excp_to_handle_teh_cresttroughs)
//////////////// MessageBox.Show("WAIT WAIT WAIT Will call the crest traugh things Analysis complete! Total segments");
}//if (openFileDialog.ShowDialog() == DialogResult.OK)
}
catch(Exception ___EXCPS)
{
}//catch(Exception ___EXCPS)
}//private void button___TOO_SLOW_BUT_CALCULATES_FREQUENCIES_MILLIS_CREST_TROUGHS_Click(object sender, EventArgs e)
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
}//public partial class SampleForm : Form
/// <summary>
/// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// </summary>
/// <summary>
/// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// </summary>
/// <summary>
/// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// </summary>
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class SAAN_LONG_LineSegment
{
public double X1, Y1, Z1;
public double X2, Y2, Z2;
public SAAN_LONG_LineSegment(double x1, double y1, double z1, double x2, double y2, double z2)
{
X1 = x1;
Y1 = y1;
Z1 = z1;
X2 = x2;
Y2 = y2;
Z2 = z2;
}//public SAAN_LONG_LineSegment (double x1, double y1, double z1, double x2, double y2, double z2)
public double Length()
{
return Math.Max
(
0.000000001
, Math.Abs
(
Math.Sqrt
(
Math.Pow(X2 - X1, 2) + Math.Pow(Y2 - Y1, 2) + Math.Pow(Z2 - Z1, 2)
)
)
);
}// public double Length()
public void UnitVector(out double ux, out double uy, out double uz)
{
double length = Length();
ux = (X2 - X1) / length;
uy = (Y2 - Y1) / length;
uz = (Z2 - Z1) / length;
}//public void UnitVector(out double ux, out double uy, out double uz)
public void MidPoint(out double mx, out double my, out double mz)
{
mx = (X1 + X2) / 2;
my = (Y1 + Y2) / 2;
mz = (Z1 + Z2) / 2;
}//public void MidPoint(out double mx, out double my, out double mz)
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY //////
public static List<SAAN_LONG_LineSegment> POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_LONG_LineSegment(double Original_long_lines_x1,double Original_long_lines_y1, double Original_long_lines_z1, double Original_long_lines_x2, double Original_long_lines_y2, double Original_long_lines_z2, double tolerance_after_which_breaking_starts , double first_line_segment_length , double common_difference_for_line_segment_length, double first_rotation_angle_degrees_theta0,double common_difference_rotation_angle_degrees_thetaDiff,double left_side_offset_multiplier , double right_side_offset_multiplier, double left_side_degrees_offsets_multiplier, double right_side_degrees_offsets_multiplier)
{
List<SAAN_LONG_LineSegment> ___list_of___SAAN_LONG_LineSegment = new List<SAAN_LONG_LineSegment>();
___list_of___SAAN_LONG_LineSegment.Clear();
double x1 = Original_long_lines_x1, y1 = Original_long_lines_y1, z1 = Original_long_lines_z1;
double x2 = Original_long_lines_x2, y2 = Original_long_lines_y2, z2 = Original_long_lines_z2;
double tolerance = tolerance_after_which_breaking_starts;// 5.0;
double t0 = first_line_segment_length;// 1.0;
double d = common_difference_for_line_segment_length;// 0.5;
double theta0 = first_rotation_angle_degrees_theta0;// 0.0;
double thetaDiff = common_difference_rotation_angle_degrees_thetaDiff;// 10.0;
double left_offset_multiplier = left_side_offset_multiplier;
double right_offset_multiplier = right_side_offset_multiplier;
double left_degrees_offset_multiplier = left_side_degrees_offsets_multiplier;
double right_degrees_offset_multiplier = right_side_degrees_offsets_multiplier;
double ___temp_cumulative_distance_for_start_point_at_i_th_iteration = 0;
double ___temp_remaining___cumulative_distance_for_start_point_at_i_th_iteration = 0;
SAAN_LONG_LineSegment line = new SAAN_LONG_LineSegment(x1, y1, z1, x2, y2, z2);
double lambda___is__initial_total_length = line.Length();
if (lambda___is__initial_total_length > tolerance)
{
// Solving the quadratic equation for n
double a = d;
double b = 2 * t0 - d;
double c = -2 * lambda___is__initial_total_length;
double discriminant = (b * b) - (4 * a * c);
if (discriminant < 0)
{
Console.WriteLine("No real solution for n discriminant <0");
return ___list_of___SAAN_LONG_LineSegment;
}// if (discriminant < 0)
discriminant = Math.Abs(discriminant);//for safer sides
double sqrtDiscriminant = Math.Sqrt(discriminant);
double n1 = (-b + sqrtDiscriminant) / (2 * a);
double n2 = (-b - sqrtDiscriminant) / (2 * a);
int n = (int)Math.Ceiling(Math.Max(n1, n2));
//////////////////////// we take 3 additional data to get the needs for the splitting cases
n = n + 3;
if (n <= 0)
{
Console.WriteLine("No valid solution for n.");
return ___list_of___SAAN_LONG_LineSegment;
}//if (n <= 0)
double[] segmentLengths = new double[n];
double[] thetas = new double[n];
for (int i = 0; i < n; i++)
{
segmentLengths[i] = t0 + i * d;
thetas[i] = theta0 + i * thetaDiff;
}//for (int i = 0; i < n; i++)
double ux, uy, uz;
line.UnitVector(out ux, out uy, out uz);
double midx, midy, midz;
line.MidPoint(out midx, out midy, out midz);
for (int i = 0; i < n; i++)
{
if(___temp_cumulative_distance_for_start_point_at_i_th_iteration <= lambda___is__initial_total_length)
{
//////double startX = x1 + i * segmentLengths[i] * ux;
//////double startY = y1 + i * segmentLengths[i] * uy;
//////double startZ = z1 + i * segmentLengths[i] * uz;
//////double endX = startX + segmentLengths[i] * ux;
//////double endY = startY + segmentLengths[i] * uy;
//////double endZ = startZ + segmentLengths[i] * uz;
//////double mx = (startX + endX) / 2;
//////double my = (startY + endY) / 2;
//////double mz = (startZ + endZ) / 2;
double startX = x1 + ___temp_cumulative_distance_for_start_point_at_i_th_iteration * ux;
double startY = y1 + ___temp_cumulative_distance_for_start_point_at_i_th_iteration * uy;
double startZ = z1 + ___temp_cumulative_distance_for_start_point_at_i_th_iteration * uz;
double endX = startX + segmentLengths[i] * ux;
double endY = startY + segmentLengths[i] * uy;
double endZ = startZ + segmentLengths[i] * uz;
double mx = (startX + endX) / 2;
double my = (startY + endY) / 2;
double mz = (startZ + endZ) / 2;
double dist_sides_offset_plus_or_minus = (i % 2 == 0) ? 1 : -1;
double rots_turndirs_offset_plus_or_minus = (i % 2 == 0) ? 1 : -1;
double angle = thetas[i] * Math.PI / 180.0;
if (i % 2 == 0)
{
///for even cases perpendicular to original line is done through reversing x component and y component and signs swapped
mx += dist_sides_offset_plus_or_minus * uy * left_offset_multiplier * i;
my -= dist_sides_offset_plus_or_minus * ux * left_offset_multiplier * i;
angle
=
angle *
left_degrees_offset_multiplier;
angle = angle * rots_turndirs_offset_plus_or_minus * i;
}
else
{
//for odd cases perpendicular to original line is done through reversing x component and y component and signs swapped
mx += dist_sides_offset_plus_or_minus * uy * right_offset_multiplier * i;
my -= dist_sides_offset_plus_or_minus * ux * right_offset_multiplier * i;
angle
=
angle *
right_degrees_offset_multiplier;
angle = angle * rots_turndirs_offset_plus_or_minus * i;
}// if(i % 2 == 0)
///rotations are altered on left sides and right sides along the start to end taken as the journeys
double cosTheta = Math.Cos(angle);
double sinTheta = Math.Sin(angle);
///first bring to center then rotate then shift translate the point again
double rotatedStartX = (cosTheta * (startX - mx) - sinTheta * (startY - my) ) + mx;
double rotatedStartY = (sinTheta * (startX - mx) + cosTheta * (startY - my) )+ my;
double rotatedStartZ = startZ;
///first bring to center then rotate then shift translate the point again
double rotatedEndX = (cosTheta * (endX - mx) - sinTheta * (endY - my) )+ mx;
double rotatedEndY = (sinTheta * (endX - mx) + cosTheta * (endY - my) ) + my;
double rotatedEndZ = endZ;
/////////////////////WE NEED TO RESET THESE NOTES COUNTER WHEN WE ENTER THE BUTTON CLICKS SINCE WE NEED TO DIVIDE THIS COUNTER TO GET THE NOTES FOR INCLUSIONS///
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_LONGLINES_SPLITTING_FOR_442
++;
/////////////////////WE NEED TO RESET THESE NOTES COUNTER WHEN WE ENTER THE BUTTON CLICKS SINCE WE NEED TO DIVIDE THIS COUNTER TO GET THE NOTES FOR INCLUSIONS///
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
++;
////////////// to check divisibility
SAAN_LONG_LineSegment ___generated_zigzag_small_piece_line_Segment_object
= new SAAN_LONG_LineSegment(rotatedStartX, rotatedStartY, rotatedStartZ, rotatedEndX, rotatedEndY, rotatedEndZ);
bool ___can_i_take_this_short_splitted_zigzag_line = false;
bool ___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions = false;
foreach (double ___divisor_in_checker_list in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
)
{
if
(
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
%
___divisor_in_checker_list
==
0
//////&&
///////// this overall case is special case
//////public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446
////// =="D"
)
//////||
////// (
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
//////%
//////___divisor_in_checker_list
//////!=
//////0
//////&&
//////public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446
////// == "N"
//////)
)
{
___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions
= true;
}
//////if (
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
//////%
//////___divisor_in_checker_list
//////==
//////0
//////)
}
////// foreach (double ___divisor_in_checker_list in
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
//////)
///////////////after complete foreach is completed
/////this case is special case ___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions
/////this case is special case ___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions
/////this case is special case ___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions
if (
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446
== "N"
)
{
___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions
=
!
___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions;
}
//////if (
////// public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446
////// == "N"
////// )
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
foreach (double ___divisor_in_zigzags_list in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_LONGLINES_SPLITES_NOTES_LIST___442
)
{
if
(
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_LONGLINES_SPLITTING_FOR_442
%
___divisor_in_zigzags_list
==
0
&&
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445
=="D"
)
////// ||
//////(
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_LONGLINES_SPLITTING_FOR_442
////// %
////// ___divisor_in_zigzags_list
////// !=
////// 0
////// &&
////// public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445
////// == "N"
////// )
)
{
___can_i_take_this_short_splitted_zigzag_line
= true;
}
//////if (
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_LONGLINES_SPLITTING_FOR_442
//////%
//////___divisor_in_zigzags_list
//////==
//////0
//////)
}
////// foreach (double ___divisor_in_checker_list in
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
//////)
//////////////// we need to toggle for the cases after the foreach are completed
///
if(
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445
== "N"
)
{
___can_i_take_this_short_splitted_zigzag_line
=
!___can_i_take_this_short_splitted_zigzag_line;
}
//////if (
////// public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_LONG_LINES_SPLITS___445
////// == "N"
////// )
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// if(___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions && ___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions)
if (___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions || ___can_i_take_this_short_splitted_zigzag_line)
{
___list_of___SAAN_LONG_LineSegment
.Add(
___generated_zigzag_small_piece_line_Segment_object
);
// public static void draw_dxf_text_WITH_BLOCK_LEVEL_COLOR(double x_data, double y_data, double z_data, double rotation, double text_height, string Layer_name_KMAP, string text_data, string xdata_text, int BLOCK_LEVEL_COLOR_0_254)
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
___generated_zigzag_small_piece_line_Segment_object.X1,
___generated_zigzag_small_piece_line_Segment_object.Y1,
0,
___generated_zigzag_small_piece_line_Segment_object.X2,
___generated_zigzag_small_piece_line_Segment_object.Y2,
0,
"Testing_split_LONGLINESEGMENTS_lines", "checking", 218
);
Console.WriteLine($"Segment {i + 1}: Start({rotatedStartX}, {rotatedStartY}, {rotatedStartZ}) End({rotatedEndX}, {rotatedEndY}, {rotatedEndZ}) Mid({mx}, {my}, {mz}) Theta: {thetas[i]}");
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
//Console.WriteLine($"Segment {i + 1}: Start({rotatedStartX}, {rotatedStartY}, {rotatedStartZ}) End({rotatedEndX}, {rotatedEndY}, {rotatedEndZ}) Mid({mx}, {my}, {mz}) Theta: {thetas[i]}");
$"Segment {i + 1}: Start({rotatedStartX}, {rotatedStartY}, {rotatedStartZ}) End({rotatedEndX}, {rotatedEndY}, {rotatedEndZ}) Mid({mx}, {my}, {mz}) Theta: {thetas[i]}"
);
}//if(___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions && ___can_i_take_this_short_splitted_zigzag_line)
//////i have to add this at the end of the for loop since first cumulations is zero
___temp_cumulative_distance_for_start_point_at_i_th_iteration
=
___temp_cumulative_distance_for_start_point_at_i_th_iteration
+
segmentLengths[i];
////////////////////////////////////////////////////////////////////////////////////////
___temp_remaining___cumulative_distance_for_start_point_at_i_th_iteration
=
lambda___is__initial_total_length
-
___temp_cumulative_distance_for_start_point_at_i_th_iteration;
////////////////////////////////////////////////////////////////////////////////////////
}// if(___temp_cumulative_distance_for_start_point_at_i_th_iteration <= lambda___is__initial_total_length)
}// for (int i = 0; i < n; i++)
}// end of if if (lambda___is__initial_total_length > tolerance)
else
{
Console.WriteLine("Lambda is within the tolerance limit.So directly adding the segment");
/// i think this is necessary
///
/////////////////////WE NEED TO RESET THESE NOTES COUNTER WHEN WE ENTER THE BUTTON CLICKS SINCE WE NEED TO DIVIDE THIS COUNTER TO GET THE NOTES FOR INCLUSIONS///
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
++;
bool _can_i_take_this_long_line_in_notes = false;
foreach(double ___divisor_in_checker_list in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
. PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
)
{
if(
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
%
___divisor_in_checker_list
==
0
)
{
_can_i_take_this_long_line_in_notes
= true;
}
//////if (
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
//////%
//////___divisor_in_checker_list
//////==
//////0
//////)
}
////// foreach (double ___divisor_in_checker_list in
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
//////)
if(_can_i_take_this_long_line_in_notes)
{
___list_of___SAAN_LONG_LineSegment
.Add
(
// ___generated_zigzag_small_piece_line_Segment_object
line
);
}//if(_can_i_take_this_long_line_in_notes)
}///end of else of if (lambda___is__initial_total_length > tolerance)
try
{
if(___list_of___SAAN_LONG_LineSegment.Count>0)
{
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\nLONGS_LINES_SPLITTING " +
___list_of___SAAN_LONG_LineSegment
.Last()
.X1
+ "," +
___list_of___SAAN_LONG_LineSegment
.Last()
.Y1
+ "," +
___list_of___SAAN_LONG_LineSegment
.Last()
.X2
+ "," +
___list_of___SAAN_LONG_LineSegment
.Last()
.Y2
+ "," +
___list_of___SAAN_LONG_LineSegment
.Last()
.Length().ToString()
+ "\r\n"
);
///////// we will append the file in other places to log the conditions of calculations
}// if(___list_of___SAAN_LONG_LineSegment.Count>0)
}
catch (Exception _excptopopulates)
{
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\nLONGS_LINES_SPLITTING " + _excptopopulates.Message + " " + _excptopopulates.StackTrace.ToString()
);
}//catch(Exception _excptopopulates)
return ___list_of___SAAN_LONG_LineSegment;
}//public static List<SAAN_LONG_LineSegment> POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_LONG_LineSegment(double Original_long_lines_x1,double Original_long_lines_y1, double Original_long_lines_z1, double Original_long_lines_x2, double Original_long_lines_y2, double Original_long_lines_z2, double tolerance_after_which_breaking_starts , double first_line_segment_length , double common_difference_for_line_segment_length, double first_rotation_angle_degrees_theta0,double common_difference_rotation_angle_degrees_thetaDiff,double left_side_offset_multiplier , double right_side_offset_multiplier, double left_side_degrees_offsets_multiplier, double right_side_degrees_offsets_multiplier)
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES COMPLETES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES COMPLETES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES COMPLETES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY COMPLETES //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY COMPLETES //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION LONG LINE SEGMENT SPLITTERS WITH PARAMETRIC RULES WAVY COMPLETES //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY //////
public static List<(double x, double y)> RotateCoordinates_about_given_xy_for_angle_theta_degrees(List<(double x, double y)> coords, double centerX, double centerY, double degrees)
{
////////////// List<(double x, double y)> coordinates = new List<(double x, double y)>
//////////////{
////////////// (1, 2),
////////////// (3, 4),
////////////// (5, 6)
//////////////};
////////////// double centerX = 2.0;
////////////// double centerY = 3.0;
////////////// double tempDegreesFound = 45.0; // Replace with your desired rotation angle
////////////// List<(double x, double y)> rotatedCoordinates = RotateCoordinates(coordinates, centerX, centerY, tempDegreesFound);
////////////// foreach (var coord in rotatedCoordinates)
////////////// {
////////////// Console.WriteLine($"({coord.x}, {coord.y})");
////////////// }// foreach (var coord in rotatedCoordinates)
double radians = degrees * Math.PI / 180.0;
List<(double x, double y)> rotatedCoords_list_of_tupules_of_doubls = new List<(double x, double y)>();
foreach (var coord in coords)
{
double translatedX = coord.x - centerX;
double translatedY = coord.y - centerY;
double rotatedX = translatedX * Math.Cos(radians) - translatedY * Math.Sin(radians);
double rotatedY = translatedX * Math.Sin(radians) + translatedY * Math.Cos(radians);
rotatedCoords_list_of_tupules_of_doubls.Add((rotatedX + centerX, rotatedY + centerY));
}
return rotatedCoords_list_of_tupules_of_doubls;
}// public static List<(double x, double y)> RotateCoordinates_about_given_xy_for_angle_theta_degrees(List<(double x, double y)> coords, double centerX, double centerY, double degrees)
public static List<SAAN_LONG_LineSegment>
POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_CIRCLES_TO_LineSegment
(
double circumference,
double center_x,
double center_y,
double center_z,
double min_center_x_offset_to_include_for_small_lines,
double min_center_y_offset_to_include_for_small_lines,
double min_center_z_offset_to_include_for_small_lines,
double radius_found,
double radius_min_to_filter_for_small_lines_generations,
double references_rotor_center_for_all_segments_x_offset_from_cx,
double references_rotor_center_for_all_segments_y_offset_from_cy,
string substring_for_layers_name_user_input_to_include_to_split,
string STRING_LAYER_NAME_FOUND_FOR_THE_ENTITY_CIRCLE,
double push_away_from_center_scale_factor,
double pull_towards_to_center_scale_factor,
double first_line_segment_length,
double common_difference_for_line_segment_length,
double first_rotation_angle_degrees_theta0,
double common_difference_rotation_angle_degrees_thetaDiff,
double left_side_offset_multiplier,
double right_side_offset_multiplier,
double left_side_degrees_offsets_multiplier,
double right_side_degrees_offsets_multiplier
)
{
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\n simply entered into POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_CIRCLES_TO_LineSegment (no list defined now yet " +
"center_x = " + center_x
+ " radius_found = " + radius_found
+ " radius_min_to_filter_for_small_lines_generations = " + radius_min_to_filter_for_small_lines_generations
+ " precalculated circumference = " + circumference
);
List<SAAN_LONG_LineSegment> ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
= new List<SAAN_LONG_LineSegment>();
try
{
___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
.Clear();
}catch(Exception ___excp___toClearTheList)
{
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\n ___excp___toClearTheList " +
___excp___toClearTheList.Message+"\r\n"+
___excp___toClearTheList.StackTrace.ToString()
);
}//catch(Exception ___excp)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\n list is cleared first ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter.Clear() dones "
);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (radius_found<radius_min_to_filter_for_small_lines_generations )
{
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\n cannot proceed radius_found<radius_min_to_filter_for_small_lines_generations entered into POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_CIRCLES_TO_LineSegment " +
"center_x = " + center_x + " " + "center_y = " + center_y
+ " radius_found = " + radius_found
+ " radius_min_to_filter_for_small_lines_generations = " + radius_min_to_filter_for_small_lines_generations
);
return ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter;
}// if(radius_found<radius_min_to_filter_for_small_lines_generations )
////// i will return this above list ////////////////////////////////////////////////////
////// i will return this above list ////////////////////////////////////////////////////
////// i will return this above list ////////////////////////////////////////////////////
// double tolerance = tolerance_after_which_breaking_starts;// 5.0;
double t0 = first_line_segment_length;// 1.0;
double d = common_difference_for_line_segment_length;// 0.5;
double theta0 = first_rotation_angle_degrees_theta0;// 0.0;
double thetaDiff = common_difference_rotation_angle_degrees_thetaDiff;// 10.0;
double left_offset_multiplier = left_side_offset_multiplier;
double right_offset_multiplier = right_side_offset_multiplier;
double left_degrees_offset_multiplier = left_side_degrees_offsets_multiplier;
double right_degrees_offset_multiplier = right_side_degrees_offsets_multiplier;
double ___temp_start_angle_calculations_cumulative_distance_for_start_point_at_i_th_iteration = 0;
double ___temp_final_angle_calculations_cumulative_distance_for_start_point_at_i_th_iteration = 0;
double ___temp_cumulative_distance_for_start_point_at_i_th_iteration = 0;
double CIRCUMFERENCE_CALCULATED
= Math.PI * 2 * radius_found;
// we have to initialize this like this otherwise the loop will not run
double ___temp_remaining___cumulative_distance_for_start_point_at_i_th_iteration = CIRCUMFERENCE_CALCULATED;
/// WE HAVE ENTERED HERE SINCE THE CHECKING OF THE PROPER LAYERS OF CIRCLES ARE DONE
/// SO WE ARE NOT CALCULATING THE LAYERS CONDITIONS HERE
int ___number_of_iterations_necessary = 0;
double ___quadratic_equations_A = Math.Max(0.0000001,d);//to avoid divisions with zeros // as per our conditions
double ___quadratic_equations_B = (2* t0 -d);// as per our conditions
double ___quadratic_equations_C =(-1)* 2* CIRCUMFERENCE_CALCULATED;// as per our conditions
double ___quadratic_equations_Discriminant = Math.Sqrt(Math.Abs( (___quadratic_equations_B * ___quadratic_equations_B) - (4 * ___quadratic_equations_A * ___quadratic_equations_C) ));
double ___n1_found = 0;
double ___n2_found = 0;
//we will not do the things for the non real solutions
if((___quadratic_equations_B * ___quadratic_equations_B) < (4 * ___quadratic_equations_A * ___quadratic_equations_C))
{
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\nCIRCUMFERENCE_CALCULATED = " + CIRCUMFERENCE_CALCULATED
+"___quadratic_equations_A = " + ___quadratic_equations_A
+ " ___quadratic_equations_B = "+ ___quadratic_equations_B
+ " ___quadratic_equations_C = " + ___quadratic_equations_C
+ " ___quadratic_equations_Discriminant = " + ___quadratic_equations_Discriminant
+ " (___quadratic_equations_B * ___quadratic_equations_B) = " + (___quadratic_equations_B * ___quadratic_equations_B)
+ " (4 * ___quadratic_equations_A * ___quadratic_equations_C) = " + (4 * ___quadratic_equations_A * ___quadratic_equations_C)
+ " if((___quadratic_equations_B * ___quadratic_equations_B) < (4 * ___quadratic_equations_A * ___quadratic_equations_C))"
+"\r\nso not proceeding"
);
return ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter;
}//if((___quadratic_equations_B * ___quadratic_equations_B) < (4 * ___quadratic_equations_A * ___quadratic_equations_C))
___n1_found = (((-1) * ___quadratic_equations_B) + ___quadratic_equations_Discriminant) /(2* ___quadratic_equations_A );
___n2_found = (((-1) * ___quadratic_equations_B) - ___quadratic_equations_Discriminant) / (2 * ___quadratic_equations_A);
if( (___n1_found<0 ) && ( ___n2_found<0 ))
{
return ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter;
}//if( (___n1_found<0 ) && ( ___n2_found<0 ))
///////////////////////// for the cases of the negative solutions for counts of iterations
// if the positive solution found (atleast one)
___number_of_iterations_necessary = (int)(Math.Max(___n1_found, ___n2_found) + 3);//i have taken 3 additional to get some data (obviously only for the cases where one of the solution is at least positives
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\nentered into POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_CIRCLES_TO_LineSegment " +
"center_x = " + center_x
+ " radius_found = " + radius_found
+ " radius_min_to_filter_for_small_lines_generations = " + radius_min_to_filter_for_small_lines_generations
+ " CIRCUMFERENCE_CALCULATED = " + +CIRCUMFERENCE_CALCULATED
);
if (
( Math.Abs(center_x- min_center_x_offset_to_include_for_small_lines) >0 )
&&
(Math.Abs(center_y - min_center_y_offset_to_include_for_small_lines) > 0)
)
{
// we first assume that the total length of the AP series of the summation is less than circumference
//we continue till the circumference data is completes
if (___number_of_iterations_necessary > 3)
{
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\nCIRCLES_SPLITTING_COORDS " +
"___number_of_iterations_necessary = " + ___number_of_iterations_necessary
+ " ___n1_found = " + ___n1_found + " ___n2_found = " + ___n2_found + " ___quadratic_equations_Discriminant = " + +___quadratic_equations_Discriminant
);
double[] ___double_types_array_of_lengths_of_each_segments_on_circumferences = new double[___number_of_iterations_necessary];
double[] ___double_types_array_of_angles_degrees_of_start_of_each_segments_on_circumferences = new double[___number_of_iterations_necessary];
double[] ___double_types_array_of_angles_degrees_of_final_of_each_segments_on_circumferences = new double[___number_of_iterations_necessary];
double[] ___double_types_array_of_angles_radians_of_start_of_each_segments_on_circumferences = new double[___number_of_iterations_necessary];
double[] ___double_types_array_of_angles_radians_of_final_of_each_segments_on_circumferences = new double[___number_of_iterations_necessary];
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
double[] ___double___coord_x_splitted_start_point___before_rotations = new double[___number_of_iterations_necessary];
double[] ___double___coord_y_splitted_start_point___before_rotations = new double[___number_of_iterations_necessary];
double[] ___double___coord_x_splitted_final_point___before_rotations = new double[___number_of_iterations_necessary];
double[] ___double___coord_y_splitted_final_point___before_rotations = new double[___number_of_iterations_necessary];
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
double[] ___double___coord_x_splitted_start_point___after_rotations = new double[___number_of_iterations_necessary];
double[] ___double___coord_y_splitted_start_point___after_rotations = new double[___number_of_iterations_necessary];
double[] ___double___coord_x_splitted_final_point___after_rotations = new double[___number_of_iterations_necessary];
double[] ___double___coord_y_splitted_final_point___after_rotations = new double[___number_of_iterations_necessary];
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///since dxf testing done
double[] ___double_array___after_push_coord_x_splitted_start_point___after_rotations = new double[___number_of_iterations_necessary];
double[] ___double_array___after_push_coord_y_splitted_start_point___after_rotations = new double[___number_of_iterations_necessary];
///since dxf testing done
double[] ___double_array___after_push_coord_x_splitted_final_point___after_rotations = new double[___number_of_iterations_necessary];
double[] ___double_array___after_push_coord_y_splitted_final_point___after_rotations = new double[___number_of_iterations_necessary];
double[] ___double_array___after_push_coord_x_splitted_mid_point___after_rotations = new double[___number_of_iterations_necessary];
double[] ___double_array___after_push_coord_y_splitted_mid_point___after_rotations = new double[___number_of_iterations_necessary];
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////since dxf testing done
double[] ___double_array___after_pull_coord_x_splitted_start_point___after_rotations = new double[___number_of_iterations_necessary];
double[] ___double_array___after_pull_coord_y_splitted_start_point___after_rotations = new double[___number_of_iterations_necessary];
/////////since dxf testing done
double[] ___double_array___after_pull_coord_x_splitted_final_point___after_rotations = new double[___number_of_iterations_necessary];
double[] ___double_array___after_pull_coord_y_splitted_final_point___after_rotations = new double[___number_of_iterations_necessary];
double[] ___double_array___after_pull_coord_x_splitted_mid_point___after_rotations = new double[___number_of_iterations_necessary];
double[] ___double_array___after_pull_coord_y_splitted_mid_point___after_rotations = new double[___number_of_iterations_necessary];
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////double first_rotation_angle_degrees_theta0,
//////////////////////double common_difference_rotation_angle_degrees_thetaDiff,
double[] ___double_array___rotor_degrees__of_segments___on_midpoints_after_pushpulls = new double[___number_of_iterations_necessary];
double[] ___double_array___rotor_radians__of_segments___on_midpoints_after_pushpulls = new double[___number_of_iterations_necessary];
for (int r=1;r< ___double_types_array_of_lengths_of_each_segments_on_circumferences.Length;r++)
{
// we have to initialize this like this otherwise the loop will not run
/// note that we have assigned this like the systems double ___temp_remaining___cumulative_distance_for_start_point_at_i_th_iteration = CIRCUMFERENCE_CALCULATED;
if (___temp_remaining___cumulative_distance_for_start_point_at_i_th_iteration>=0)
{
///r starts from 1
___double_types_array_of_lengths_of_each_segments_on_circumferences[r-1]
=
t0 + (r - 1) * d;
//////////////////////////////////////////////////////////////////////////////////////////////
//////r starts from 1
___temp_cumulative_distance_for_start_point_at_i_th_iteration
=
___temp_cumulative_distance_for_start_point_at_i_th_iteration
+
___double_types_array_of_lengths_of_each_segments_on_circumferences[r-1]
-
d /// this is tested and found that the next start points are now ok to overlap on the previous final points
// after observing the cad checking i have seen that we need to subtract the common difference for every next start point
//cumulations shifts the next start point one common diff away from the final points
;
//////////////////////////////////////////////////////////////////////////////////////////////
///
/// this is starting from the 0 on the right side of the local x axis from the (center_x,center_y)
/// we will rotate the whole sets after all the coordinates are found properly and then we will rotate as per the angle of the (center_x,center_y) from the (0,0)
///r starts from 1
___double_types_array_of_angles_degrees_of_start_of_each_segments_on_circumferences[r - 1]
=
0 +
(
360 *
(
(
___temp_cumulative_distance_for_start_point_at_i_th_iteration
+
0
)
/
CIRCUMFERENCE_CALCULATED
)
);////////* (r - 1);'
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_types_array_of_angles_radians_of_start_of_each_segments_on_circumferences[r - 1]
=
___double_types_array_of_angles_degrees_of_start_of_each_segments_on_circumferences[r - 1]
*(Math.PI/180);
//////////////////////////////////////////////////////////////////////////////////////////////////////////
///r starts from 1
___double_types_array_of_angles_degrees_of_final_of_each_segments_on_circumferences[r - 1]
=
0 +
(360 *
(
(
___temp_cumulative_distance_for_start_point_at_i_th_iteration
+
___double_types_array_of_lengths_of_each_segments_on_circumferences[r - 1]
)
/
CIRCUMFERENCE_CALCULATED
)
);
// * (r - 1);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_types_array_of_angles_radians_of_final_of_each_segments_on_circumferences[r - 1]
=
___double_types_array_of_angles_degrees_of_final_of_each_segments_on_circumferences[r - 1]
*( Math.PI / 180);
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\n (r-1) = " + (r-1)
+" start angle (degrees) = " +___double_types_array_of_angles_degrees_of_start_of_each_segments_on_circumferences[r - 1]
+ " final angle (degrees) = " + ___double_types_array_of_angles_degrees_of_final_of_each_segments_on_circumferences[r - 1]
+ " start angle (radians ) = " + ___double_types_array_of_angles_radians_of_start_of_each_segments_on_circumferences[r - 1]
+ " final angle (radians) = " + ___double_types_array_of_angles_radians_of_final_of_each_segments_on_circumferences[r - 1]
);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////double first_rotation_angle_degrees_theta0,
//////////////////////double common_difference_rotation_angle_degrees_thetaDiff,
___double_array___rotor_degrees__of_segments___on_midpoints_after_pushpulls[r - 1]
= first_rotation_angle_degrees_theta0 + (r - 1) * common_difference_rotation_angle_degrees_thetaDiff;
/////////////////////////////////////////// we need the odd and the even toggles ///////////////////////////////////////////////////////
if( (r - 1) %2 ==0)
{
___double_array___rotor_degrees__of_segments___on_midpoints_after_pushpulls[r - 1]
=
___double_array___rotor_degrees__of_segments___on_midpoints_after_pushpulls[r - 1];
}
else
{
___double_array___rotor_degrees__of_segments___on_midpoints_after_pushpulls[r - 1]
=
(-1) * ___double_array___rotor_degrees__of_segments___on_midpoints_after_pushpulls[r - 1];
}//end of else of if( (r - 1) %2 ==0)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___rotor_radians__of_segments___on_midpoints_after_pushpulls[r - 1]
=
___double_array___rotor_degrees__of_segments___on_midpoints_after_pushpulls[r - 1]
* (Math.PI / 180);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
double ___theta_degrees_of_center_x_center_y___from_the_global_00 = 0;
double ___temp_radians_found___in_the_selected_circle = Math.Abs(Math.Atan(Math.Abs(center_y) / Math.Abs(center_x)));
double ______temp_degrees_found_in_the_selected_circles = ___temp_radians_found___in_the_selected_circle * (180 / Math.PI);
/// CAUTION these angles are used to rotate the whole set of coordinates from the local (x axis through center_x,center_y))
if (center_x>=0 && center_y>=0)
{
______temp_degrees_found_in_the_selected_circles = ______temp_degrees_found_in_the_selected_circles;//note that the angle is measured with abs y and the abs x so reference is x axis
}
else if(center_x <= 0 && center_y >= 0)
{
______temp_degrees_found_in_the_selected_circles = 180- ______temp_degrees_found_in_the_selected_circles;//note that the angle is measured with abs y and the abs x so reference is x axis
}
else if (center_x <= 0 && center_y < 0)
{
______temp_degrees_found_in_the_selected_circles = 180 + ______temp_degrees_found_in_the_selected_circles;//note that the angle is measured with abs y and the abs x so reference is x axis
}
else if (center_x > 0 && center_y < 0)
{
______temp_degrees_found_in_the_selected_circles = 360- ______temp_degrees_found_in_the_selected_circles;//note that the angle is measured with abs y and the abs x so reference is x axis
}
else
{
______temp_degrees_found_in_the_selected_circles = 0;
}///end of the calculations of the degrees of the (center_x,center_y) from the global(0,0)
/// this angle is used to rotate whole set of coordinates in the circles spltting about the center of the selected circles
/// and after all these coordinates are found we can generate the dummy points on the circumferences of the selected circles
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\n (r-1) = " + (r - 1)
+ "______temp_degrees_found_in_the_selected_circles = " + ______temp_degrees_found_in_the_selected_circles
);
/// this is to rotate the points
double ___retransformed___radians___for_selected_circles = ______temp_degrees_found_in_the_selected_circles * (Math.PI/ 180);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\n (r-1) = " + (r - 1)
+ "___retransformed___radians___for_selected_circles = " + ___retransformed___radians___for_selected_circles
);
///////////////////////////////////////////////////////////////////////////////////////////////
___double___coord_x_splitted_start_point___before_rotations[r - 1]
=
center_x + radius_found * (Math.Cos(___double_types_array_of_angles_radians_of_start_of_each_segments_on_circumferences[r - 1]));
///////////////////////////////////////////////////////////////////////////////////////////////
___double___coord_y_splitted_start_point___before_rotations[r - 1]
=
center_y + radius_found * (Math.Sin(___double_types_array_of_angles_radians_of_start_of_each_segments_on_circumferences[r - 1]));
///////////////////////////////////////////////////////////////////////////////////////////////
___double___coord_x_splitted_final_point___before_rotations[r - 1]
=
center_x + radius_found * (Math.Cos(___double_types_array_of_angles_radians_of_final_of_each_segments_on_circumferences[r - 1]));
///////////////////////////////////////////////////////////////////////////////////////////////
___double___coord_y_splitted_final_point___before_rotations[r - 1]
=
center_y + radius_found * (Math.Sin(___double_types_array_of_angles_radians_of_final_of_each_segments_on_circumferences[r - 1]));
///////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\n (r-1) = " + (r - 1)
+ "\r\n ___double___coord_x_splitted_start_point___before_rotations[r - 1] = " + ___double___coord_x_splitted_start_point___before_rotations[r - 1]
+ "\r\n ___double___coord_y_splitted_start_point___before_rotations[r - 1] = " + ___double___coord_y_splitted_start_point___before_rotations[r - 1]
+ "\r\n ___double___coord_x_splitted_final_point___before_rotations[r - 1] = " + ___double___coord_x_splitted_final_point___before_rotations[r - 1]
+ "\r\n ___double___coord_y_splitted_final_point___before_rotations[r - 1] = " + ___double___coord_y_splitted_final_point___before_rotations[r - 1]
);
///////////////////////////////////////////////////////////////////////////////////////////////
double coord_x_start___before_rotations = ___double___coord_x_splitted_start_point___before_rotations[r - 1];
double coord_y_start___before_rotations = ___double___coord_y_splitted_start_point___before_rotations[r - 1];
double translatedX_start_point____before_rotations = coord_x_start___before_rotations - center_x;
double translatedY_start_point____before_rotations = coord_y_start___before_rotations - center_y;
double rotatedX_start_point____after_rotations = center_x + translatedX_start_point____before_rotations * Math.Cos(___retransformed___radians___for_selected_circles) - translatedY_start_point____before_rotations * Math.Sin(___retransformed___radians___for_selected_circles);
double rotatedY_start_point____after_rotations = center_y + translatedX_start_point____before_rotations * Math.Sin(___retransformed___radians___for_selected_circles) + translatedY_start_point____before_rotations * Math.Cos(___retransformed___radians___for_selected_circles);
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
double coord_x_final___before_rotations = ___double___coord_x_splitted_final_point___before_rotations[r - 1];
double coord_y_final___before_rotations = ___double___coord_y_splitted_final_point___before_rotations[r - 1];
double translatedX_final_point____before_rotations = coord_x_final___before_rotations - center_x;
double translatedY_final_point____before_rotations = coord_y_final___before_rotations - center_y;
double rotatedX_final_point____after_rotations = center_x + translatedX_final_point____before_rotations * Math.Cos(___retransformed___radians___for_selected_circles) - translatedY_final_point____before_rotations * Math.Sin(___retransformed___radians___for_selected_circles);
double rotatedY_final_point____after_rotations = center_y + translatedX_final_point____before_rotations * Math.Sin(___retransformed___radians___for_selected_circles) + translatedY_final_point____before_rotations * Math.Cos(___retransformed___radians___for_selected_circles);
///////////////////////////////////////////////////////////////////////////////////////////////////////
double ___temp_length_of_line_segment_from_start_to_final
=
Math.Sqrt
(
((rotatedX_final_point____after_rotations- rotatedX_start_point____after_rotations) * (rotatedX_final_point____after_rotations - rotatedX_start_point____after_rotations))
+
((rotatedY_final_point____after_rotations - rotatedY_start_point____after_rotations) * (rotatedY_final_point____after_rotations - rotatedY_start_point____after_rotations))
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(
___temp_length_of_line_segment_from_start_to_final<=
___double_types_array_of_lengths_of_each_segments_on_circumferences[r - 1]
)
{
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\nCIRCLES_SPLITTING_COORDS " +
(r-1).ToString()+" (" + rotatedX_start_point____after_rotations+"," + rotatedY_start_point____after_rotations + ")"
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// public static void draw_dxf_text_WITH_BLOCK_LEVEL_COLOR(double x_data, double y_data, double z_data, double rotation, double text_height, string Layer_name_KMAP, string text_data, string xdata_text, int BLOCK_LEVEL_COLOR_0_254)
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
rotatedX_start_point____after_rotations
,
rotatedY_start_point____after_rotations
,
0,0,0.03,"checking_start_coords_circles_splittings",(r-1).ToString(),"checking_coords",3
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// public static void draw_dxf_text_WITH_BLOCK_LEVEL_COLOR(double x_data, double y_data, double z_data, double rotation, double text_height, string Layer_name_KMAP, string text_data, string xdata_text, int BLOCK_LEVEL_COLOR_0_254)
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_text_WITH_BLOCK_LEVEL_COLOR
(
rotatedX_final_point____after_rotations
,
rotatedY_final_point____after_rotations
,
0, 0, 0.03, "checking_final_coords_circles_splittings", (r - 1).ToString(), "checking_coords", 6
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// public static void draw_dxf_text_WITH_BLOCK_LEVEL_COLOR(double x_data, double y_data, double z_data, double rotation, double text_height, string Layer_name_KMAP, string text_data, string xdata_text, int BLOCK_LEVEL_COLOR_0_254)
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
rotatedX_start_point____after_rotations, rotatedY_start_point____after_rotations, 0,
rotatedX_final_point____after_rotations, rotatedY_final_point____after_rotations, 0,
"Testing_split_circles_lines", "checking", 66
);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///since dxf testing done
___double___coord_x_splitted_start_point___after_rotations[r - 1] = rotatedX_start_point____after_rotations;
___double___coord_y_splitted_start_point___after_rotations[r - 1] = rotatedY_start_point____after_rotations;
///since dxf testing done
___double___coord_x_splitted_final_point___after_rotations[r - 1] = rotatedX_final_point____after_rotations;
___double___coord_y_splitted_final_point___after_rotations[r - 1] = rotatedY_final_point____after_rotations;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
//////r starts from 1
___temp_remaining___cumulative_distance_for_start_point_at_i_th_iteration
=
(
CIRCUMFERENCE_CALCULATED
-
___temp_cumulative_distance_for_start_point_at_i_th_iteration
);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
double ___temp_push_unitvector_x_for_start_point_for_r_1_segment = 0;//flush first
double ___temp_push_unitvector_y_for_start_point_for_r_1_segment = 0;//flush first
double ___temp_pull_unitvector_x_for_start_point_for_r_1_segment = 0;//flush first
double ___temp_pull_unitvector_y_for_start_point_for_r_1_segment = 0;//flush first
double ___temp_push_unitvector_x_for_final_point_for_r_1_segment = 0;//flush first
double ___temp_push_unitvector_y_for_final_point_for_r_1_segment = 0;//flush first
double ___temp_pull_unitvector_x_for_final_point_for_r_1_segment = 0;//flush first
double ___temp_pull_unitvector_y_for_final_point_for_r_1_segment = 0;//flush first
///////////////////////////////////////////////////////////////////////////////////////////////////
double ___distance_of_start_point_from_center_x___center_y =
Math.Max(0.0000001,
Math.Sqrt
(
(rotatedX_start_point____after_rotations-center_x)* (rotatedX_start_point____after_rotations - center_x)
+
(rotatedY_start_point____after_rotations - center_y) * (rotatedY_start_point____after_rotations - center_y)
)
);
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
double ___distance_of_final_point_from_center_x___center_y =
Math.Max(0.0000001,
Math.Sqrt
(
(rotatedX_final_point____after_rotations - center_x) * (rotatedX_final_point____after_rotations - center_x)
+
(rotatedY_final_point____after_rotations - center_y) * (rotatedY_final_point____after_rotations - center_y)
)
);
///////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
//radius is distance
___temp_push_unitvector_x_for_start_point_for_r_1_segment
= (rotatedX_start_point____after_rotations - center_x) / ___distance_of_start_point_from_center_x___center_y;
___temp_push_unitvector_y_for_start_point_for_r_1_segment
= (rotatedY_start_point____after_rotations - center_y) / ___distance_of_start_point_from_center_x___center_y;
//////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_pull_unitvector_x_for_start_point_for_r_1_segment
=
(-1) * ___temp_push_unitvector_x_for_start_point_for_r_1_segment;
___temp_pull_unitvector_y_for_start_point_for_r_1_segment
=
(-1) * ___temp_push_unitvector_y_for_start_point_for_r_1_segment;
//////////////////////////////////////////////////////////////////////////////////////////////////////
//radius is distance
___temp_push_unitvector_x_for_final_point_for_r_1_segment
= (rotatedX_final_point____after_rotations - center_x) / ___distance_of_final_point_from_center_x___center_y;
___temp_push_unitvector_y_for_final_point_for_r_1_segment
= (rotatedY_final_point____after_rotations - center_y) / ___distance_of_final_point_from_center_x___center_y;
//////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_pull_unitvector_x_for_final_point_for_r_1_segment
=
(-1) * ___temp_push_unitvector_x_for_final_point_for_r_1_segment;
___temp_pull_unitvector_y_for_final_point_for_r_1_segment
=
(-1) * ___temp_push_unitvector_y_for_final_point_for_r_1_segment;
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////since dxf testing done
//////double[] ___double_array___after_push_coord_x_splitted_start_point___after_rotations = new double[___number_of_iterations_necessary];
//////double[] ___double_array___after_push_coord_y_splitted_start_point___after_rotations = new double[___number_of_iterations_necessary];
/////////since dxf testing done
//////double[] ___double_array___after_push_coord_x_splitted_final_point___after_rotations = new double[___number_of_iterations_necessary];
//////double[] ___double_array___after_push_coord_y_splitted_final_point___after_rotations = new double[___number_of_iterations_necessary];
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////PUSHING STARTS HERE///////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___after_push_coord_x_splitted_start_point___after_rotations[r - 1]
=
rotatedX_start_point____after_rotations
+
___temp_push_unitvector_x_for_start_point_for_r_1_segment
* radius_found *
push_away_from_center_scale_factor;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___after_push_coord_y_splitted_start_point___after_rotations[r - 1]
=
rotatedY_start_point____after_rotations
+
___temp_push_unitvector_y_for_start_point_for_r_1_segment
* radius_found *
push_away_from_center_scale_factor;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___after_push_coord_x_splitted_final_point___after_rotations[r - 1]
=
rotatedX_final_point____after_rotations
+
___temp_push_unitvector_x_for_final_point_for_r_1_segment
* radius_found *
push_away_from_center_scale_factor;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___after_push_coord_y_splitted_final_point___after_rotations[r - 1]
=
rotatedY_final_point____after_rotations
+
___temp_push_unitvector_y_for_final_point_for_r_1_segment
* radius_found *
push_away_from_center_scale_factor;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// public static void draw_dxf_text_WITH_BLOCK_LEVEL_COLOR(double x_data, double y_data, double z_data, double rotation, double text_height, string Layer_name_KMAP, string text_data, string xdata_text, int BLOCK_LEVEL_COLOR_0_254)
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
___double_array___after_push_coord_x_splitted_start_point___after_rotations[r - 1]
,
___double_array___after_push_coord_y_splitted_start_point___after_rotations[r - 1]
, 0,
___double_array___after_push_coord_x_splitted_final_point___after_rotations[r - 1]
,
___double_array___after_push_coord_y_splitted_final_point___after_rotations[r - 1]
, 0,
"Testing_split_after_push_circles_lines", "checking", 138
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// PULING STARTS HERE ///////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___after_pull_coord_x_splitted_start_point___after_rotations[r - 1]
=
rotatedX_start_point____after_rotations
+
___temp_pull_unitvector_x_for_start_point_for_r_1_segment
* radius_found *
pull_towards_to_center_scale_factor;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___after_pull_coord_y_splitted_start_point___after_rotations[r - 1]
=
rotatedY_start_point____after_rotations
+
___temp_pull_unitvector_y_for_start_point_for_r_1_segment
* radius_found *
pull_towards_to_center_scale_factor;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///we need to test the after push coordinates and line segments
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___after_pull_coord_x_splitted_final_point___after_rotations[r - 1]
=
rotatedX_final_point____after_rotations
+
___temp_pull_unitvector_x_for_final_point_for_r_1_segment
* radius_found *
pull_towards_to_center_scale_factor;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___after_pull_coord_y_splitted_final_point___after_rotations[r - 1]
=
rotatedY_final_point____after_rotations
+
___temp_pull_unitvector_y_for_final_point_for_r_1_segment
* radius_found *
pull_towards_to_center_scale_factor;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//tested ok upto this
// public static void draw_dxf_text_WITH_BLOCK_LEVEL_COLOR(double x_data, double y_data, double z_data, double rotation, double text_height, string Layer_name_KMAP, string text_data, string xdata_text, int BLOCK_LEVEL_COLOR_0_254)
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
___double_array___after_pull_coord_x_splitted_start_point___after_rotations[r - 1]
,
___double_array___after_pull_coord_y_splitted_start_point___after_rotations[r - 1]
, 0,
___double_array___after_pull_coord_x_splitted_final_point___after_rotations[r - 1]
,
___double_array___after_pull_coord_y_splitted_final_point___after_rotations[r - 1]
, 0,
"Testing_split_after_pull_circles_lines", "checking", 133
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// tested ok upto this push and the pulls
///now we will find the mid points of the pushed segments and the mid points of the pulled coordinates
___double_array___after_push_coord_x_splitted_mid_point___after_rotations[r - 1]
=
(
___double_array___after_push_coord_x_splitted_start_point___after_rotations[r - 1]
+
___double_array___after_push_coord_x_splitted_final_point___after_rotations[r - 1]
)
/ 2
;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___after_push_coord_y_splitted_mid_point___after_rotations[r - 1]
=
(
___double_array___after_push_coord_y_splitted_start_point___after_rotations[r - 1]
+
___double_array___after_push_coord_y_splitted_final_point___after_rotations[r - 1]
)
/ 2
;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___after_pull_coord_x_splitted_mid_point___after_rotations[r - 1]
=
(
___double_array___after_pull_coord_x_splitted_start_point___after_rotations[r - 1]
+
___double_array___after_pull_coord_x_splitted_final_point___after_rotations[r - 1]
)
/ 2
;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
___double_array___after_pull_coord_y_splitted_mid_point___after_rotations[r - 1]
=
(
___double_array___after_pull_coord_y_splitted_start_point___after_rotations[r - 1]
+
___double_array___after_pull_coord_y_splitted_final_point___after_rotations[r - 1]
)
/ 2
;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///we will check with the dummy ine segments
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//tested ok upto this
// public static void draw_dxf_text_WITH_BLOCK_LEVEL_COLOR(double x_data, double y_data, double z_data, double rotation, double text_height, string Layer_name_KMAP, string text_data, string xdata_text, int BLOCK_LEVEL_COLOR_0_254)
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
___double_array___after_push_coord_x_splitted_mid_point___after_rotations[r - 1]
,
___double_array___after_push_coord_y_splitted_mid_point___after_rotations[r - 1]
, 0,
___double_array___after_pull_coord_x_splitted_mid_point___after_rotations[r - 1]
,
___double_array___after_pull_coord_y_splitted_mid_point___after_rotations[r - 1]
, 0,
"Testing_connectingpushmidsto_pullsmids", "checking", 222
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//we have already taken the rotor adjustments
//we will take push side for (r-1) %2 ==0 whereas we will take pull side otherwise
// ___double_array___rotor_radians__of_segments___on_midpoints_after_pushpulls[r - 1]
double ___temp___rotor_angle_radian_as_per_odd_even = 0; //flushing first
___temp___rotor_angle_radian_as_per_odd_even
=
___double_array___rotor_radians__of_segments___on_midpoints_after_pushpulls[r - 1];
double ___temp___rotor_center_x_as_per_odd_even = 0; //flushing first
double ___temp___rotor_center_y_as_per_odd_even = 0; //flushing first
double ___temp_start_x_to_take_as_odd_even___before_rotation = 0; //flushing first
double ___temp_start_y_to_take_as_odd_even___before_rotation = 0; //flushing first
double ___temp_final_x_to_take_as_odd_even___before_rotation = 0; //flushing first
double ___temp_final_y_to_take_as_odd_even___before_rotation = 0; //flushing first
double ___temp_start_x_to_take_as_odd_even___after_rotation = 0; //flushing first
double ___temp_start_y_to_take_as_odd_even___after_rotation = 0; //flushing first
double ___temp_final_x_to_take_as_odd_even___after_rotation = 0; //flushing first
double ___temp_final_y_to_take_as_odd_even___after_rotation = 0; //flushing first
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if ((r - 1) % 2 == 0)
{
___temp___rotor_center_x_as_per_odd_even = ___double_array___after_push_coord_x_splitted_mid_point___after_rotations[r - 1];
___temp___rotor_center_y_as_per_odd_even = ___double_array___after_push_coord_y_splitted_mid_point___after_rotations[r - 1];
___temp_start_x_to_take_as_odd_even___before_rotation = ___double_array___after_push_coord_x_splitted_start_point___after_rotations[r - 1];
___temp_start_y_to_take_as_odd_even___before_rotation = ___double_array___after_push_coord_y_splitted_start_point___after_rotations[r - 1];
___temp_final_x_to_take_as_odd_even___before_rotation = ___double_array___after_push_coord_x_splitted_final_point___after_rotations[r - 1];
___temp_final_y_to_take_as_odd_even___before_rotation = ___double_array___after_push_coord_y_splitted_final_point___after_rotations[r - 1];
////////////___temp_start_x_to_take_as_odd_even___after_rotation
////////////___temp_start_y_to_take_as_odd_even___after_rotation
////////////___temp_final_x_to_take_as_odd_even___after_rotation
////////////___temp_final_y_to_take_as_odd_even___after_rotation
////end of if cases if ((r - 1) % 2 == 0)
}
else
{
//start of else cases if ((r - 1) % 2 == 0)
___temp___rotor_center_x_as_per_odd_even = ___double_array___after_pull_coord_x_splitted_mid_point___after_rotations[r - 1];
___temp___rotor_center_y_as_per_odd_even = ___double_array___after_pull_coord_y_splitted_mid_point___after_rotations[r - 1];
___temp_start_x_to_take_as_odd_even___before_rotation = ___double_array___after_pull_coord_x_splitted_start_point___after_rotations[r - 1];
___temp_start_y_to_take_as_odd_even___before_rotation = ___double_array___after_pull_coord_y_splitted_start_point___after_rotations[r - 1];
___temp_final_x_to_take_as_odd_even___before_rotation = ___double_array___after_pull_coord_x_splitted_final_point___after_rotations[r - 1];
___temp_final_y_to_take_as_odd_even___before_rotation = ___double_array___after_pull_coord_y_splitted_final_point___after_rotations[r - 1];
//////___temp_start_x_to_take_as_odd_even___after_rotation
//////___temp_start_y_to_take_as_odd_even___after_rotation
//////___temp_final_x_to_take_as_odd_even___after_rotation
//////___temp_final_y_to_take_as_odd_even___after_rotation
}//end of else cases if ((r - 1) % 2 == 0)
/////////////////////////////////////////////////////////////////////////////////////////
///for references to rotate double translatedX_start_point____before_rotations = coord_x_start___before_rotations - center_x;
///for references to rotate double translatedY_start_point____before_rotations = coord_y_start___before_rotations - center_y;
///for references to rotate double rotatedX_start_point____after_rotations = center_x + translatedX_start_point____before_rotations * Math.Cos(___retransformed___radians___for_selected_circles) - translatedY_start_point____before_rotations * Math.Sin(___retransformed___radians___for_selected_circles);
///for references to rotate double rotatedY_start_point____after_rotations = center_y + translatedX_start_point____before_rotations * Math.Sin(___retransformed___radians___for_selected_circles) + translatedY_start_point____before_rotations * Math.Cos(___retransformed___radians___for_selected_circles);
double ___temp___translated_to_mids_before_rotating_start_x = ___temp_start_x_to_take_as_odd_even___before_rotation - ___temp___rotor_center_x_as_per_odd_even;
double ___temp___translated_to_mids_before_rotating_start_y = ___temp_start_y_to_take_as_odd_even___before_rotation - ___temp___rotor_center_y_as_per_odd_even;
___temp_start_x_to_take_as_odd_even___after_rotation = ___temp___rotor_center_x_as_per_odd_even + ___temp___translated_to_mids_before_rotating_start_x * Math.Cos(___temp___rotor_angle_radian_as_per_odd_even) - ___temp___translated_to_mids_before_rotating_start_y * Math.Sin(___temp___rotor_angle_radian_as_per_odd_even);
___temp_start_y_to_take_as_odd_even___after_rotation = ___temp___rotor_center_y_as_per_odd_even + ___temp___translated_to_mids_before_rotating_start_x * Math.Sin(___temp___rotor_angle_radian_as_per_odd_even) + ___temp___translated_to_mids_before_rotating_start_y * Math.Cos(___temp___rotor_angle_radian_as_per_odd_even);
double ___temp___translated_to_mids_before_rotating_final_x = ___temp_final_x_to_take_as_odd_even___before_rotation - ___temp___rotor_center_x_as_per_odd_even;
double ___temp___translated_to_mids_before_rotating_final_y = ___temp_final_y_to_take_as_odd_even___before_rotation - ___temp___rotor_center_y_as_per_odd_even;
___temp_final_x_to_take_as_odd_even___after_rotation = ___temp___rotor_center_x_as_per_odd_even + ___temp___translated_to_mids_before_rotating_final_x * Math.Cos(___temp___rotor_angle_radian_as_per_odd_even) - ___temp___translated_to_mids_before_rotating_final_y * Math.Sin(___temp___rotor_angle_radian_as_per_odd_even);
___temp_final_y_to_take_as_odd_even___after_rotation = ___temp___rotor_center_y_as_per_odd_even + ___temp___translated_to_mids_before_rotating_final_x * Math.Sin(___temp___rotor_angle_radian_as_per_odd_even) + ___temp___translated_to_mids_before_rotating_final_y * Math.Cos(___temp___rotor_angle_radian_as_per_odd_even);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//tested ok upto this
// public static void draw_dxf_text_WITH_BLOCK_LEVEL_COLOR(double x_data, double y_data, double z_data, double rotation, double text_height, string Layer_name_KMAP, string text_data, string xdata_text, int BLOCK_LEVEL_COLOR_0_254)
ExcelFormulaParser_GT_PARSER.SAANAUDS
.ClassToGenerateSAANSAAGIRID_DXF_SAANAUDS_SPECIALIZED
.draw_dxf_line_WITH_BLOCK_LEVEL_COLOR
(
___temp_start_x_to_take_as_odd_even___after_rotation
,
___temp_start_y_to_take_as_odd_even___after_rotation
, 0,
___temp_final_x_to_take_as_odd_even___after_rotation
,
___temp_final_y_to_take_as_odd_even___after_rotation
, 0,
"Testing_circlessplitters_lines_beforepopulating", "checking", 198
);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////since dxf testing done
//////double[] ___double_array___after_pull_coord_x_splitted_start_point___after_rotations = new double[___number_of_iterations_necessary];
//////double[] ___double_array___after_pull_ccoord_y_splitted_start_point___after_rotations = new double[___number_of_iterations_necessary];
/////////since dxf testing done
//////double[] ___double_array___after_pull_ccoord_x_splitted_final_point___after_rotations = new double[___number_of_iterations_necessary];
//////double[] ___double_array___after_pull_ccoord_y_splitted_final_point___after_rotations = new double[___number_of_iterations_necessary];
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
double rotatedStartX_circles_split = 0;//flushing first
double rotatedStartY_circles_split = 0;//flushing first
double rotatedStartZ_circles_split = 0;//flushing first
double rotatedEndX_circles_split = 0;//flushing first
double rotatedEndY_circles_split = 0;//flushing first
double rotatedEndZ_circles_split = 0;//flushing first
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
rotatedStartX_circles_split = ___temp_start_x_to_take_as_odd_even___after_rotation;//flushing first
rotatedStartY_circles_split = ___temp_start_y_to_take_as_odd_even___after_rotation;//flushing first
rotatedStartZ_circles_split = 0;//flushing first
rotatedEndX_circles_split = ___temp_final_x_to_take_as_odd_even___after_rotation;//flushing first
rotatedEndY_circles_split = ___temp_final_y_to_take_as_odd_even___after_rotation;//flushing first
rotatedEndZ_circles_split = 0;//flushing first
/////////////////////WE NEED TO RESET THESE NOTES COUNTER WHEN WE ENTER THE BUTTON CLICKS SINCE WE NEED TO DIVIDE THIS COUNTER TO GET THE NOTES FOR INCLUSIONS///
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_CIRCLES_SPLITTING_FOR_441
++;
/////////////////////WE NEED TO RESET THESE NOTES COUNTER WHEN WE ENTER THE BUTTON CLICKS SINCE WE NEED TO DIVIDE THIS COUNTER TO GET THE NOTES FOR INCLUSIONS///
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
++;
////////////// to check divisibility
SAAN_LONG_LineSegment ___generated_zigzag_small_piece_line_Segment_object___For_CirclesSplits
=
new
SAAN_LONG_LineSegment
(rotatedStartX_circles_split, rotatedStartY_circles_split, rotatedStartZ_circles_split, rotatedEndX_circles_split, rotatedEndY_circles_split, rotatedEndZ_circles_split);
bool ___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS = false;
bool ___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions = false;
foreach (double ___divisor_in_checker_list in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
)
{
if
(
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
%
___divisor_in_checker_list
==
0
////// &&
////// public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446
//////=="D"
)
)
{
___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions
= true;
}
//////if (
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_OVERALL_SPLITTING_FOR_443
//////%
//////___divisor_in_checker_list
//////==
//////0
//////)
}
////// foreach (double ___divisor_in_checker_list in
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
//////)
if
(
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446
== "N"
)
{
___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions
= !___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions;
}
//////if
////// (
//////public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_OVERALL_NOTES_COUNTERS___446
//////== "N"
////// )
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
foreach (double ___divisor_in_zigzags_list_circles_splits in
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
)
{
if
(
(
ExcelFormulaParser_GT_PARSER.GT_PARSERS
.public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_CIRCLES_SPLITTING_FOR_441
%
___divisor_in_zigzags_list_circles_splits
==
0
////// &&
//////public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444
////// =="D"
)
////// ||
////// (
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
////// .public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_DOUBLE___COUNTER_FOR_NOTES_GENERATED_FROM_CIRCLES_SPLITTING_FOR_441
////// %
////// ___divisor_in_zigzags_list_circles_splits
////// !=
////// 0
////// &&
//////public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444
////// == "N"
////// )
)
{
___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS
= true;
}
//////if (
//////ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_CIRC_SPLITES_NOTES_LIST___441
//////%
//////___divisor_in_zigzags_list
//////==
//////0
//////)
}
////// foreach (double ___divisor_in_checker_list in
////// ExcelFormulaParser_GT_PARSER.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.PUBLIC_STATIC_LIST_OF_DOUBLES_OF_DIVISIBLE_FACTORS_COMMA_SEPERATED_TO_INCLUDE_INTO_OVERALL_NOTES_COUNTER_NOTES_LIST___443
//////)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if
(
public_static_class_simulations_CONTROLLER_for_gt_Class
.PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444
== "N"
)
{
___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS
=
!___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS;
}
//////if
////// (
////// public_static_class_simulations_CONTROLLER_for_gt_Class
////// .PUBLIC_STATIC_STRING_D_OR_N_IF_DIVISIBLE_OR_NON_DIVISIBLES_WITH_FACTORS_FOR_CIRCS_SPLITS___444
////// == "N"
////// )
// if(___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions && ___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions)
if (___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions || ___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS)
{
___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
.Add(
___generated_zigzag_small_piece_line_Segment_object___For_CirclesSplits
);
//////Console.WriteLine($"CIRCLES_SPLITS_Segment {r-1 + 1}: Start({rotatedStartX_circles_split}, {rotatedStartY_circles_split}, {rotatedStartZ_circles_split}) End({rotatedEndX_circles_split}, {rotatedEndY_circles_split}, {rotatedEndZ_circles_split}) Mid({mx}, {my}, {mz}) Theta: {thetas[i]}");
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
//Console.WriteLine($"Segment {i + 1}: Start({rotatedStartX}, {rotatedStartY}, {rotatedStartZ}) End({rotatedEndX}, {rotatedEndY}, {rotatedEndZ}) Mid({mx}, {my}, {mz}) Theta: {thetas[i]}");
// $"CIRCLES SPLITTING Segment {i + 1}: Start({rotatedStartX}, {rotatedStartY}, {rotatedStartZ}) End({rotatedEndX}, {rotatedEndY}, {rotatedEndZ}) Mid({mx}, {my}, {mz}) Theta: {thetas[i]}"
"circle splits loggs " +(r-1)
);
}// if (___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions || ___can_i_take_this_short_splitted_zigzag_line_FROM_CIRCLES_SPLITS)
//if(___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions && ___can_i_take_this_short_line_as_the_note_as_per_overall_notes_conditions)
/////////////////////////////////// we will do all accumulations of line segments for notes within this part //////
/////////////////////////////////// we will do all accumulations of line segments for notes within this part //////
/////////////////////////////////// we will do all accumulations of line segments for notes within this part //////
/////////////////////////////////// we will do all accumulations of line segments for notes within this part //////
/////////////////////////////////// we will do all accumulations of line segments for notes within this part //////
/////////////////////////////////// we will do all accumulations of line segments for notes within this part //////
/////////////////////////////////// we will do all accumulations of line segments for notes within this part //////
/////////////////////////////////// we will do all accumulations of line segments for notes within this part //////
/////////////////////////////////// we will do all accumulations of line segments for notes within this part //////
}
//////if (
////// ___temp_length_of_line_segment_from_start_to_final <=
//////___double_types_array_of_lengths_of_each_segments_on_circumferences[r - 1]
////// )
else
{
//we will not accumulate these things into the notes
//we will not accumulate these things into the notes
//we will not accumulate these things into the notes
//we will not accumulate these things into the notes
//we will not accumulate these things into the notes
//we will not accumulate these things into the notes
//we will not accumulate these things into the notes
//we will not accumulate these things into the notes
//we will not accumulate these things into the notes
}//end of else of
//////if (
////// ___temp_length_of_line_segment_from_start_to_final <=
//////___double_types_array_of_lengths_of_each_segments_on_circumferences[r - 1]
////// )
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}// if(___temp_remaining___cumulative_distance_for_start_point_at_i_th_iteration>0)
else
{
//the circumference is covered
return ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter;
}//end of else of // if(___temp_remaining___cumulative_distance_for_start_point_at_i_th_iteration>0)
}//for(int r=1;r< ___double_types_array_of_lengths_of_each_segments_on_circumferences.Length;r++)
}// if(___number_of_iterations_necessary>3)
else
{
return ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter;
}//endof else of if(___number_of_iterations_necessary>3)
}
////// if (
////// (Math.Abs(center_x - min_center_x_offset_to_include_for_small_lines) > 0)
//////&&
////// (Math.Abs(center_y - min_center_y_offset_to_include_for_small_lines) > 0)
////// )
else
{
return ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter;
}
//end of else of
////// if (
////// (Math.Abs(center_x - min_center_x_offset_to_include_for_small_lines) > 0)
//////&&
////// (Math.Abs(center_y - min_center_y_offset_to_include_for_small_lines) > 0)
////// )
try
{
if (___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter.Count > 0)
{
//////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
//we are wrting the file with the date time when we enter into the buttons clicks
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\nCIRCLES_SPLITTING " +
___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
.Last()
.X1
+ "," +
___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
.Last()
.Y1
+ "," +
___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
.Last()
.X2
+ "," +
___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
.Last()
.Y2
+ "," +
___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
.Last()
.Length().ToString()
+ "\r\n"
);
}// if(___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter.Count>0)
}
catch (Exception _excptopopulates)
{
System.IO.File.AppendAllText
(
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
,
"\r\nCIRCLES_SPLITTING " + _excptopopulates.Message + " " + _excptopopulates.StackTrace.ToString()
);
}//catch(Exception _excptopopulates)
///////// we will append the file in other places to log the conditions of calculations
///
return ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter;
}// public static List<SAAN_LONG_LineSegment>
// POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_CIRCLES_TO_LineSegment(double Original_long_lines_x1,double Original_long_lines_y1, double Original_long_lines_z1, double Original_long_lines_x2, double Original_long_lines_y2, double Original_long_lines_z2, double tolerance_after_which_breaking_starts , double first_line_segment_length , double common_difference_for_line_segment_length, double first_rotation_angle_degrees_theta0,double common_difference_rotation_angle_degrees_thetaDiff,double left_side_offset_multiplier , double right_side_offset_multiplier, double left_side_degrees_offsets_multiplier, double right_side_degrees_offsets_multiplier)
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES COMPLETES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES COMPLETES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES COMPLETES WAVY //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY COMPLETES //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY COMPLETES //////
////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY COMPLETES //////
//////public static List<SAAN_LONG_LineSegment>
////// POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_CIRCLES_TO_LineSegment
////// (
////// double circumference,
////// double center_x,
////// double center_y,
////// double center_z,
////// double min_center_x_offset_to_include_for_small_lines,
////// double min_center_y_offset_to_include_for_small_lines,
////// double min_center_z_offset_to_include_for_small_lines,
////// double radius_found,
////// double radius_min_to_filter_for_small_lines_generations,
////// double references_rotor_center_for_all_segments_x_offset_from_cx,
////// double references_rotor_center_for_all_segments_y_offset_from_cy,
////// string substring_for_layers_name_user_input_to_include_to_split,
////// string STRING_LAYER_NAME_FOUND_FOR_THE_ENTITY_CIRCLE,
////// double push_away_from_center_scale_factor,
////// double pull_towards_to_center_scale_factor,
////// double first_line_segment_length,
////// double common_difference_for_line_segment_length,
////// double first_rotation_angle_degrees_theta0,
////// double common_difference_rotation_angle_degrees_thetaDiff,
////// double left_side_offset_multiplier,
////// double right_side_offset_multiplier,
////// double left_side_degrees_offsets_multiplier,
////// double right_side_degrees_offsets_multiplier
////// )
//////{
////// List<SAAN_LONG_LineSegment> ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
////// = new List<SAAN_LONG_LineSegment>();
////// ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter.Clear();
////// try
////// {
////// ////// i will return this above list ////////////////////////////////////////////////////
////// ////// i will return this above list ////////////////////////////////////////////////////
////// ////// i will return this above list ////////////////////////////////////////////////////
////// // double tolerance = tolerance_after_which_breaking_starts;// 5.0;
////// double t0 = first_line_segment_length;// 1.0;
////// double d = common_difference_for_line_segment_length;// 0.5;
////// double theta0 = first_rotation_angle_degrees_theta0;// 0.0;
////// double thetaDiff = common_difference_rotation_angle_degrees_thetaDiff;// 10.0;
////// double left_offset_multiplier = left_side_offset_multiplier;
////// double right_offset_multiplier = right_side_offset_multiplier;
////// double left_degrees_offset_multiplier = left_side_degrees_offsets_multiplier;
////// double right_degrees_offset_multiplier = right_side_degrees_offsets_multiplier;
////// double ___temp_start_angle_calculations_cumulative_distance_for_start_point_at_i_th_iteration = 0;
////// double ___temp_final_angle_calculations_cumulative_distance_for_start_point_at_i_th_iteration = 0;
////// double ___temp_cumulative_distance_for_start_point_at_i_th_iteration = 0;
////// double ___temp_remaining___cumulative_distance_for_start_point_at_i_th_iteration = 0;
////// double CIRCUMFERENCE_CALCULATED
////// = Math.PI * 2 * radius_found;
////// //////if(substring_for_layers_name_user_input_to_include_to_split=="")
////// //////{
////// ////// substring_for_layers_name_user_input_to_include_to_split = "3";
////// //////}// if(substring_for_layers_name_user_input_to_include_to_split=="")
////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ///ALREADY ENTERED HERE WITH THE FILTERS
////// //STRING_LAYER_NAME_FOUND_FOR_THE_ENTITY_CIRCLE.ToString().TrimEnd().TrimStart() == "3" &&
////// if (
////// //////STRING_LAYER_NAME_FOUND_FOR_THE_ENTITY_CIRCLE.Contains(substring_for_layers_name_user_input_to_include_to_split)
////// //////||
////// (Math.Abs(center_x - min_center_x_offset_to_include_for_small_lines) > 0 )|| (Math.Abs(center_y - min_center_y_offset_to_include_for_small_lines) >= 0)
////// )
////// {
////// // Solving the quadratic equation for n
////// double a = d;
////// double b = 2 * t0 - d;
////// double c = -2 * CIRCUMFERENCE_CALCULATED;
////// double discriminant = b * b - 4 * a * c;
////// if (discriminant < 0)
////// {
////// Console.WriteLine("No real solution for n.");
////// return ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter;
////// }// if (discriminant < 0)
////// double sqrtDiscriminant = Math.Sqrt(discriminant);
////// double n1 = (-b + sqrtDiscriminant) / (2 * a);
////// double n2 = (-b - sqrtDiscriminant) / (2 * a);
////// int n = (int)Math.Ceiling(Math.Max(n1, n2));
////// n = n + 3;// this is important
////// if (n <= 0)
////// {
////// Console.WriteLine("No valid solution for n.");
////// return ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter;
////// }//if (n <= 0)
////// double[] segmentLengths = new double[n];
////// double[] thetas = new double[n];
////// double[] array_of_start_theta_radians_for_small_pieces_along_circumference = new double[n];
////// double[] array_of_final_theta_radians_for_small_pieces_along_circumference = new double[n];
////// double[] array_of_i_th_pieces_start_x_on_circumference = new double[n];
////// double[] array_of_i_th_pieces_start_y_on_circumference = new double[n];
////// double[] array_of_i_th_pieces_final_x_on_circumference = new double[n];
////// double[] array_of_i_th_pieces_final_y_on_circumference = new double[n];
////// double _x_1_on_circumference___i = 0;
////// double _y_1_on_circumference___i = 0;
////// double _x_2_on_circumference___i = 0;
////// double _y_2_on_circumference___i = 0;
////// double ___length_of_i_th_piece_of_segment_along_circumference = 0;
////// double ___i_th_unitvector_along_circumferences___x_component = 0;
////// double ___i_th_unitvector_along_circumferences___y_component = 0;
////// double ___i_th_anticlock_perpendicular_unitvector_along_circumferences___x_component = 0;
////// double ___i_th_anticlock_perpendicular_unitvector_along_circumferences___y_component = 0;
////// double ___i_th_towards_center_unitvector___x_component = 0;
////// double ___i_th_towards_center_unitvector___y_component = 0;
////// double ___i_th_away_from_center_unitvector___x_component = 0;
////// double ___i_th_away_from_center_unitvector___y_component = 0;
////// double startX = 0;//x1 + ___temp_cumulative_distance_for_start_point_at_i_th_iteration * ux;
////// double startY = 0;//y1 + ___temp_cumulative_distance_for_start_point_at_i_th_iteration * uy;
////// double startZ = 0;//z1 + ___temp_cumulative_distance_for_start_point_at_i_th_iteration * uz;
////// double endX = 0;//startX + segmentLengths[i] * ux;
////// double endY = 0;//startY + segmentLengths[i] * uy;
////// double endZ = 0;//startZ + segmentLengths[i] * uz;
////// double mx = 0;//(startX + endX) / 2;
////// double my = 0;//(startY + endY) / 2;
////// double mz = 0;//(startZ + endZ) / 2;
////// double dist_sides_offset_plus_or_minus = 0;//(i % 2 == 0) ? 1 : -1;
////// double rots_turndirs_offset_plus_or_minus = 0;//(i % 2 == 0) ? 1 : -1;
////// double angle = 0;//thetas[i] * Math.PI / 180.0;
////// double ux = 0, uy = 0, uz = 0;
////// ////// not to do here line.UnitVector(out ux, out uy, out uz);
////// double midx___translated = 0, midy___translated = 0, midz___translated = 0;
////// ////// not to do here line.MidPoint(out midx, out midy, out midz);
////// double cosTheta = 0;// Math.Cos(angle);
////// double sinTheta = 0;//Math.Sin(angle);
////// double rotatedStartX = 0;// cosTheta * (startX - mx) - sinTheta * (startY - my) + mx;
////// double rotatedStartY = 0;// sinTheta * (startX - mx) + cosTheta * (startY - my) + my;
////// double rotatedStartZ = 0;//startZ;
////// double rotatedEndX = 0;//cosTheta * (endX - mx) - sinTheta * (endY - my) + mx;
////// double rotatedEndY = 0;//sinTheta * (endX - mx) + cosTheta * (endY - my) + my;
////// double rotatedEndZ = 0;//endZ;
////// ///populating the pieces data for coordinates
////// ///
////// double ___translated_x1 = 0;///flushing first
////// double ___translated_y1 = 0;///flushing first
////// double ___translated_x2 = 0;///flushing first
////// double ___translated_y2 = 0;///flushing first
////// for (int i = 0; i < n; i++)
////// {
////// if (___temp_final_angle_calculations_cumulative_distance_for_start_point_at_i_th_iteration <= CIRCUMFERENCE_CALCULATED)
////// {
////// segmentLengths[i] = t0 + i * d;
////// thetas[i] = theta0 + i * thetaDiff;
////// array_of_start_theta_radians_for_small_pieces_along_circumference[i]
////// =
////// (
////// (
////// ___temp_start_angle_calculations_cumulative_distance_for_start_point_at_i_th_iteration
////// /
////// CIRCUMFERENCE_CALCULATED
////// )
////// * 2 * (Math.PI)
////// )
////// ;
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ___temp_final_angle_calculations_cumulative_distance_for_start_point_at_i_th_iteration
////// =
////// (___temp_start_angle_calculations_cumulative_distance_for_start_point_at_i_th_iteration + segmentLengths[i]);
////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// array_of_final_theta_radians_for_small_pieces_along_circumference[i]
////// =
////// (
////// (
////// ___temp_final_angle_calculations_cumulative_distance_for_start_point_at_i_th_iteration
////// /
////// CIRCUMFERENCE_CALCULATED
////// )
////// * 2 * (Math.PI)
////// )
////// ;
////// /// from the experiences of chollishe challishe importer we know that direct Cos and direct sin works for the radians cases
////// //where 0 to 360 are converted to radians and the systems work straight forward so we dont need to do seperate quadrant cases
////// array_of_i_th_pieces_start_x_on_circumference
////// [i]
////// =
////// center_x
////// +
////// radius_found * (Math.Cos(array_of_start_theta_radians_for_small_pieces_along_circumference[i]));
////// /// from the experiences of chollishe challishe importer we know that direct Cos and direct sin works for the radians cases
////// //where 0 to 360 are converted to radians and the systems work straight forward so we dont need to do seperate quadrant cases
////// array_of_i_th_pieces_start_y_on_circumference
////// [i]
////// =
////// center_y
////// +
////// radius_found * (Math.Sin(array_of_start_theta_radians_for_small_pieces_along_circumference[i]));
////// /// from the experiences of chollishe challishe importer we know that direct Cos and direct sin works for the radians cases
////// //where 0 to 360 are converted to radians and the systems work straight forward so we dont need to do seperate quadrant cases
////// array_of_i_th_pieces_final_x_on_circumference
////// [i]
////// =
////// center_x
////// +
////// radius_found * (Math.Cos(array_of_final_theta_radians_for_small_pieces_along_circumference[i]));
////// /// from the experiences of chollishe challishe importer we know that direct Cos and direct sin works for the radians cases
////// //where 0 to 360 are converted to radians and the systems work straight forward so we dont need to do seperate quadrant cases
////// array_of_i_th_pieces_final_y_on_circumference
////// [i]
////// =
////// center_y
////// +
////// radius_found * (Math.Sin(array_of_final_theta_radians_for_small_pieces_along_circumference[i]));
////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// /// now we are sure that the segments are generated for all the segments along the circumference are generated
////// //data are found and the coordinate points are found for all the pieces
////// _x_1_on_circumference___i = 0;///flushing first every times
////// _y_1_on_circumference___i = 0;///flushing first every times
////// _x_2_on_circumference___i = 0;///flushing first every times
////// _y_2_on_circumference___i = 0;///flushing first every times
////// _x_1_on_circumference___i =
////// array_of_i_th_pieces_start_x_on_circumference
////// [i]
////// ;
////// _y_1_on_circumference___i =
////// array_of_i_th_pieces_start_y_on_circumference
////// [i]
////// ;
////// _x_2_on_circumference___i =
////// array_of_i_th_pieces_final_x_on_circumference
////// [i]
////// ;
////// _y_2_on_circumference___i =
////// array_of_i_th_pieces_final_y_on_circumference
////// [i]
////// ;
////// startX = 0;///flushing first //x1 + ___temp_cumulative_distance_for_start_point_at_i_th_iteration * ux;
////// startY = 0;///flushing first//y1 + ___temp_cumulative_distance_for_start_point_at_i_th_iteration * uy;
////// startZ = 0;///flushing first//z1 + ___temp_cumulative_distance_for_start_point_at_i_th_iteration * uz;
////// endX = 0;///flushing first//startX + segmentLengths[i] * ux;
////// endY = 0;///flushing first//startY + segmentLengths[i] * uy;
////// endZ = 0;///flushing first//startZ + segmentLengths[i] * uz;
////// mx = 0;///flushing first//(startX + endX) / 2;
////// my = 0;///flushing first//(startY + endY) / 2;
////// mz = 0;///flushing first//(startZ + endZ) / 2;
////// ___length_of_i_th_piece_of_segment_along_circumference = 0;///flushing first
////// ___i_th_unitvector_along_circumferences___x_component = 0;///flushing first
////// ___i_th_unitvector_along_circumferences___y_component = 0;///flushing first
////// ___i_th_anticlock_perpendicular_unitvector_along_circumferences___x_component = 0;///flushing first
////// ___i_th_anticlock_perpendicular_unitvector_along_circumferences___y_component = 0;///flushing first
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ___length_of_i_th_piece_of_segment_along_circumference
////// =
////// Math.Max(0.0000001, segmentLengths[i]);
////// ___i_th_unitvector_along_circumferences___x_component
////// =
////// (_x_2_on_circumference___i - _x_1_on_circumference___i)
////// /
////// ___length_of_i_th_piece_of_segment_along_circumference
////// ;
////// ___i_th_unitvector_along_circumferences___y_component
////// =
////// (_y_2_on_circumference___i - _y_1_on_circumference___i)
////// /
////// ___length_of_i_th_piece_of_segment_along_circumference
////// ;
////// ///////////////////////////////////////////////////////////////////////////////////////////////
////// ///////////////////////////////////////////////////////////////////////////////////////////////
////// ///////////////////////////////////////////////////////////////////////////////////////////////
////// ___i_th_anticlock_perpendicular_unitvector_along_circumferences___x_component
////// =
////// (-1) * ___i_th_unitvector_along_circumferences___y_component;
////// ___i_th_anticlock_perpendicular_unitvector_along_circumferences___y_component
////// =
////// ___i_th_unitvector_along_circumferences___x_component;
////// ///////////////////////////////////////////////////////////////////////////////////////////////
////// ///////////////////////////////////////////////////////////////////////////////////////////////
////// ///////////////////////////////////////////////////////////////////////////////////////////////
////// //since we are rotating the journey anticlock along the circumferences so the anticlock perpendicular is towards the center_x
////// ___i_th_towards_center_unitvector___x_component = 0;////// flushing first
////// ___i_th_towards_center_unitvector___y_component = 0;////// flushing first
////// ___i_th_away_from_center_unitvector___x_component = 0;////// flushing first
////// ___i_th_away_from_center_unitvector___x_component = 0;////// flushing first
////// ///////////////////////////////////////////////////////////////////////////////////////////////
////// ///////////////////////////////////////////////////////////////////////////////////////////////
////// ///////////////////////////////////////////////////////////////////////////////////////////////
////// ___i_th_towards_center_unitvector___x_component
////// =
////// ___i_th_anticlock_perpendicular_unitvector_along_circumferences___x_component;
////// ___i_th_towards_center_unitvector___y_component
////// =
////// ___i_th_anticlock_perpendicular_unitvector_along_circumferences___y_component;
////// ___i_th_away_from_center_unitvector___x_component
////// =
////// (-1) * ___i_th_towards_center_unitvector___x_component;
////// ___i_th_away_from_center_unitvector___y_component
////// =
////// (-1) * ___i_th_towards_center_unitvector___y_component;
////// ///
////// ux = 0;///flushing first
////// uy = 0;///flushing first
////// uz = 0;///flushing first
////// midx___translated = 0;///flushing first
////// midy___translated = 0;///flushing first
////// midz___translated = 0;///flushing first
////// cosTheta = 0;///flushing first// Math.Cos(angle);
////// sinTheta = 0;///flushing first//Math.Sin(angle);
////// ___translated_x1 = 0;///flushing first
////// ___translated_y1 = 0;///flushing first
////// ___translated_x2 = 0;///flushing first
////// ___translated_y2 = 0;///flushing first
////// rotatedStartX = 0;///flushing first// cosTheta * (startX - mx) - sinTheta * (startY - my) + mx;
////// rotatedStartY = 0;///flushing first// sinTheta * (startX - mx) + cosTheta * (startY - my) + my;
////// rotatedStartZ = 0;///flushing first//startZ;
////// rotatedEndX = 0;///flushing first//cosTheta * (endX - mx) - sinTheta * (endY - my) + mx;
////// rotatedEndY = 0;///flushing first//sinTheta * (endX - mx) + cosTheta * (endY - my) + my;
////// rotatedEndZ = 0;///flushing first//endZ;
////// ////////////////////////////////////////////////////////////////////////////////////////////////////
////// ////////////////////////////////////////////////////////////////////////////////////////////////////
////// ////////////////////////////////////////////////////////////////////////////////////////////////////
////// startX = _x_1_on_circumference___i;
////// startY = _y_1_on_circumference___i;
////// startZ = 0;///flushing first//z1 + ___temp_cumulative_distance_for_start_point_at_i_th_iteration * uz;
////// endX = _x_2_on_circumference___i;
////// endY = _y_2_on_circumference___i;
////// endZ = 0;///flushing first//startZ + segmentLengths[i] * uz;
////// mx = (startX + endX) / 2;
////// my = (startY + endY) / 2;
////// mz = 0;///flushing first//(startZ + endZ) / 2;
////// ux = ___i_th_unitvector_along_circumferences___x_component;///flushing first
////// uy = ___i_th_unitvector_along_circumferences___y_component;///flushing first
////// uz = 0;///flushing first
////// midz___translated = 0;///flushing first
////// //////left sides or right sides deciders
////// dist_sides_offset_plus_or_minus = (i % 2 == 0) ? 1 : -1;
////// rots_turndirs_offset_plus_or_minus = (i % 2 == 0) ? 1 : -1; /// rotations directions
////// ////////////////////////////////////////////
////// angle = thetas[i] *( Math.PI / 180.0) ;
////// ////////////////////////////////////////////
////// ///for odd i towards center
////// /////for even i away from the center
////// if (i % 2 == 0)
////// {
////// //this is even i so away from the center
////// ///
////// ___translated_x1 = startX + ___i_th_away_from_center_unitvector___x_component * right_offset_multiplier * i;
////// ___translated_y1 = startY + ___i_th_away_from_center_unitvector___y_component * right_offset_multiplier * i;
////// ___translated_x2 = endX + ___i_th_away_from_center_unitvector___x_component * right_offset_multiplier * i;
////// ___translated_y2 = endX + ___i_th_away_from_center_unitvector___y_component * right_offset_multiplier * i;
////// midx___translated = (___translated_x1 + ___translated_x2)/2 ;///flushing first
////// midy___translated = (___translated_y1 + ___translated_y2)/ 2;///flushing first
////// ///for even cases perpendicular to original line is done through reversing x component and y component and signs swapped
////// // mx += dist_sides_offset_plus_or_minus * uy * left_offset_multiplier * i;///perpendiculars are automated here due to sign changes ???
////// // my -= dist_sides_offset_plus_or_minus * ux * left_offset_multiplier * i;///perpendiculars are automated here due to sign changes ???
////// angle
////// =
////// angle *
////// left_degrees_offset_multiplier;
////// angle = angle * rots_turndirs_offset_plus_or_minus * i;
////// }
////// else
////// {
////// //this is odd i so towards center
////// ///for odd i towards center
////// /////for even i away from the center
////// ///
////// ___translated_x1 = startX + ___i_th_towards_center_unitvector___x_component * left_offset_multiplier * i;
////// ___translated_y1 = startY + ___i_th_towards_center_unitvector___y_component * left_offset_multiplier * i;
////// ___translated_x2 = endX + ___i_th_towards_center_unitvector___x_component * left_offset_multiplier * i;
////// ___translated_y2 = endX + ___i_th_towards_center_unitvector___y_component * left_offset_multiplier * i;
////// midx___translated = (___translated_x1 + ___translated_x2) / 2;///flushing first
////// midy___translated = (___translated_y1 + ___translated_y2) / 2;///flushing first
////// //for odd cases perpendicular to original line is done through reversing x component and y component and signs swapped
////// // mx += dist_sides_offset_plus_or_minus * uy * right_offset_multiplier * i;///perpendiculars are automated here due to sign changes ???
////// // my -= dist_sides_offset_plus_or_minus * ux * right_offset_multiplier * i;///perpendiculars are automated here due to sign changes ???
////// angle
////// =
////// angle *
////// right_degrees_offset_multiplier;
////// angle = angle * rots_turndirs_offset_plus_or_minus * i;
////// }// if(i % 2 == 0)
////// ///rotations are altered on left sides and right sides along the start to end taken as the journeys
////// cosTheta = Math.Cos(angle);
////// sinTheta = Math.Sin(angle);
////// //////rotatedStartX = cosTheta * (startX - mx) - sinTheta * (startY - my) + mx;
////// //////rotatedStartY = sinTheta * (startX - mx) + cosTheta * (startY - my) + my;
////// //////rotatedStartZ = 0;///flushing first//startZ;
////// //////rotatedEndX = cosTheta * (endX - mx) - sinTheta * (endY - my) + mx;
////// //////rotatedEndY = sinTheta * (endX - mx) + cosTheta * (endY - my) + my;
////// ///
////// rotatedStartX = (cosTheta * (___translated_x1 - midx___translated) - sinTheta * (___translated_y1 - midy___translated)) + midx___translated;
////// rotatedStartY = (sinTheta * (___translated_x1 - midx___translated) + cosTheta * (___translated_y1 - midy___translated)) + midy___translated;
////// rotatedStartZ = 0;///flushing first//startZ;
////// rotatedEndX = ( cosTheta * (___translated_x2 - midx___translated) - sinTheta * (___translated_y2 - midy___translated) )+ midx___translated;
////// rotatedEndY = (sinTheta * (___translated_x2 - midx___translated) + cosTheta * (___translated_y2 - midy___translated)) + midy___translated;
////// rotatedEndZ = 0;///flushing first//endZ;
////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// SAAN_LONG_LineSegment ___generated_zigzag_small_piece_line_Segment_object
////// = new SAAN_LONG_LineSegment(rotatedStartX, rotatedStartY, rotatedStartZ, rotatedEndX, rotatedEndY, rotatedEndZ);
////// ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
////// .Add
////// (
////// ___generated_zigzag_small_piece_line_Segment_object
////// );
////// Console.WriteLine($"Circles Segment {i + 1}: Start({rotatedStartX}, {rotatedStartY}, {rotatedStartZ}) End({rotatedEndX}, {rotatedEndY}, {rotatedEndZ}) Mid({mx}, {my}, {mz}) Theta: {thetas[i]}");
////// //////i have to add this at the end of the for loop since first cumulations is zero
////// ___temp_cumulative_distance_for_start_point_at_i_th_iteration
////// =
////// ___temp_cumulative_distance_for_start_point_at_i_th_iteration
////// +
////// segmentLengths[i];
////// ////////////////////////////////////////////////////////////////////////////////////////
////// ___temp_remaining___cumulative_distance_for_start_point_at_i_th_iteration
////// =
////// CIRCUMFERENCE_CALCULATED
////// -
////// ___temp_cumulative_distance_for_start_point_at_i_th_iteration;
////// }//if(___temp_final_angle_calculations_cumulative_distance_for_start_point_at_i_th_iteration<=CIRCUMFERENCE_CALCULATED)
////// }//for (int i = 0; i < n; i++)
////// ////// below code is for references ///////////////////////////////
////// ////// below code is for references ///////////////////////////////
////// ////// below code is for references ///////////////////////////////
////// ////// below code is for references ///////////////////////////////
////// ////// below code is for references ///////////////////////////////
////// ////// below code is for references ///////////////////////////////
////// ////// below code is for references ///////////////////////////////
////// ////// below code is for references ///////////////////////////////
////// ////// below code is for references ///////////////////////////////
////// ////// below code is for references ///////////////////////////////
////// ////// below code is for references ///////////////////////////////
////// // // // // // // // for (int i = 0; i < n; i++)
////// // // // // // // // {
////// // // // // // // // if (___temp_cumulative_distance_for_start_point_at_i_th_iteration <= lambda___is__initial_total_length)
////// // // // // // // // {
////// // // // // // // // //////double startX = x1 + i * segmentLengths[i] * ux;
////// // // // // // // // //////double startY = y1 + i * segmentLengths[i] * uy;
////// // // // // // // // //////double startZ = z1 + i * segmentLengths[i] * uz;
////// // // // // // // // //////double endX = startX + segmentLengths[i] * ux;
////// // // // // // // // //////double endY = startY + segmentLengths[i] * uy;
////// // // // // // // // //////double endZ = startZ + segmentLengths[i] * uz;
////// // // // // // // // //////double mx = (startX + endX) / 2;
////// // // // // // // // //////double my = (startY + endY) / 2;
////// // // // // // // // //////double mz = (startZ + endZ) / 2;
////// // // // // // // // ////////////////////////////////////////////////////////////////////////////////////////
////// // // // // // // // }// if(___temp_cumulative_distance_for_start_point_at_i_th_iteration <= lambda___is__initial_total_length)
////// // // // // // // // }// for (int i = 0; i < n; i++)
////// }// end of if if (STRING_LAYER_NAME_FOUND_FOR_THE_ENTITY_CIRCLE.Contains(substring_for_layers_name_user_input_to_include_to_split))
////// else
////// {
////// Console.WriteLine("circle not in right layers");
////// }///end of else of if (lambda___is__initial_total_length > tolerance)
////// }
////// catch (Exception ___excptosplitcircstolines_insidethepopulator)
////// {
////// System.Windows.Forms.MessageBox.Show("___excptosplitcircstolines_insidethepopulator = " + ___excptosplitcircstolines_insidethepopulator.Message + " " + ___excptosplitcircstolines_insidethepopulator.StackTrace.ToString());
////// }//catch(Exception ___excptosplitcircstolines)
////// try
////// {
////// if(___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter.Count>0)
////// {
////// //////////////////////// it is very odd to undertand the coordinates forming when the circles are splitted and the long lines are splitted
////// //we are wrting the file with the date time when we enter into the buttons clicks
////// System.IO.File.AppendAllText
////// (
////// ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// + "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
////// ,
////// "\r\nCIRCLES_SPLITTING "+
////// ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
////// .Last()
////// .X1
////// +","+
////// ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
////// .Last()
////// .Y1
////// + "," +
////// ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
////// .Last()
////// .X2
////// + "," +
////// ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
////// .Last()
////// .Y2
////// + "," +
////// ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter
////// .Last()
////// .Length().ToString()
////// + "\r\n"
////// );
////// }// if(___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter.Count>0)
////// }
////// catch (Exception _excptopopulates)
////// {
////// System.IO.File.AppendAllText
////// (
////// ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// + "TRYINGTOUNDERSTANDCIRCLESSPLITSANDLONGLINESSPLITS.TXT"
////// ,
////// "\r\nCIRCLES_SPLITTING " + _excptopopulates.Message + " " + _excptopopulates.StackTrace.ToString()
////// );
////// }//catch(Exception _excptopopulates)
////// ///////// we will append the file in other places to log the conditions of calculations
////// ///
////// return ___list_of___CIRCLE_TO___SAAN_LONG_LineSegment___inside_populator_splitter;
//////}// public static List<SAAN_LONG_LineSegment>
////// // POPULATE_LIST_OF_LINE_OBJECTS___from___SAAN_CIRCLES_TO_LineSegment(double Original_long_lines_x1,double Original_long_lines_y1, double Original_long_lines_z1, double Original_long_lines_x2, double Original_long_lines_y2, double Original_long_lines_z2, double tolerance_after_which_breaking_starts , double first_line_segment_length , double common_difference_for_line_segment_length, double first_rotation_angle_degrees_theta0,double common_difference_rotation_angle_degrees_thetaDiff,double left_side_offset_multiplier , double right_side_offset_multiplier, double left_side_degrees_offsets_multiplier, double right_side_degrees_offsets_multiplier)
////// ////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES COMPLETES WAVY //////
////// ////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES COMPLETES WAVY //////
////// ////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES COMPLETES WAVY //////
////// ////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY COMPLETES //////
////// ////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY COMPLETES //////
////// ////////////////////////////////////////////////////////////////////// TOOO IMPORTANT FUNCTION CIRCLE WITH LAYER SPLITTERS WITH PARAMETRIC RULES WAVY COMPLETES //////
}//public class SAAN_LONG_LineSegment
/// <summary>
/// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// </summary>
public class SAAN_LINES_FOR_NOTES
{
public double x1 = 0;
public double y1 = 0;
public double z1 = 0;
public double x2 = 0;
public double y2 = 0;
public double z2 = 0;
public double length = 0;
public double slope = 0;
public string layer = "";
public double leftmost_x__of_this_line = 0;
public double rightmost_x__of_this_line = 0;
public double bottommost_y__of_this_line = 0;
public double topmost_y__of_this_line = 0;
public string string_lyr_data_found = "";
public double lyr_long_double__pos_found = 0;
public SAAN_LINES_FOR_NOTES()
{
this.x1 = 0;
this.y1 = 0;
this.z1 = 0;
this.x2 = 0;
this.y2 = 0;
this.z2 = 0;
this.length = 0;
this.length =
Math.Sqrt
(Math.Abs
(
(this.x2-this.x1) * (this.x2 - this.x1)
+
(this.y2 - this.y1) * (this.y2 - this.y1)
+
(this.z2 - this.z1) * (this.z2 - this.z1)
)
);
this.slope
=
Math.Atan2
(
((this.y2 - this.y1) * (this.y2 - this.y1))
,
Math.Min(0.0001, Math.Abs((this.x2 - this.x1) * (this.x2 - this.x1)))
)
;
;
this.layer = "";
this.string_lyr_data_found = "";
this.lyr_long_double__pos_found = 0;
}//public SAAN_LINES_FOR_NOTES()
public void recalculate()
{
this.length =
Math.Sqrt
(Math.Abs
(
(this.x2 - this.x1) * (this.x2 - this.x1)
+
(this.y2 - this.y1) * (this.y2 - this.y1)
+
(this.z2 - this.z1) * (this.z2 - this.z1)
)
);
this.slope
=
Math.Atan2
(
((this.y2 - this.y1) * (this.y2 - this.y1))
,
Math.Min(0.0001, Math.Abs((this.x2 - this.x1) * (this.x2 - this.x1)))
)
;
;
this.leftmost_x__of_this_line
=
Math.Min(this.x1, this.x2);
this.rightmost_x__of_this_line
=
Math.Max(this.x1, this.x2);
this.bottommost_y__of_this_line
=
Math.Min(this.y1, this.y2);
this.topmost_y__of_this_line
=
Math.Max(this.y1, this.y2);
}//public void recalculate()
}// public class SAAN_LINES_FOR_NOTES
public class SAAN___AmplitudeFilePlayer : IDisposable
{
private WaveOutEvent waveOut;
private BufferedWaveProvider bufferedWaveProvider;
WaveFormat waveFormat;
/// , int totalSamples, double totalDuration
public SAAN___AmplitudeFilePlayer(string filePath,int sample_rate_calculated,double max_amplitudes_abs_value_found_in_file, int totalSamples, double totalDuration)
{
// Calculate sample rate based on total samples and total duration
/// int sampleRate = (int)(totalSamples / totalDuration);
// Adjust these values based on your requirements
int sample_rate_calculated_readjusted=(int)(totalSamples / totalDuration);
int sampleRate = sample_rate_calculated;// sample_rate_calculated_readjusted;// 16000;// //sample_rate_calculated_readjusted;// sample_rate_calculated;// 44100;
int channels = 1;
// WaveFormat
waveFormat = WaveFormat.CreateIeeeFloatWaveFormat(sampleRate, channels);
//readonly waveFormat.SampleRate = sample_rate_calculated;
waveOut = new WaveOutEvent();
/// bufferedWaveProvider = new BufferedWaveProvider(new WaveFormatConversionStream(waveFormat, new WaveChannel32(new Mp3FileReader(filePath))));
bufferedWaveProvider
= new BufferedWaveProvider(waveFormat);
bufferedWaveProvider.DiscardOnBufferOverflow = true;///saan does this
int ___calculated_duration___after_saving_files = 0;
___calculated_duration___after_saving_files
=
////// (int)
////// (
//////ExcelFormulaParser_GT_PARSER
//////.GT_PARSERS
//////.public_static_class_simulations_CONTROLLER_for_gt_Class
//////.
//////PUBLIC_STATIC_DOUBLE___TOTAL_SAMPLES_FOUND_IN_FILES_LOADED_FOR_AMPLITUDES_DATA
///////
//////waveFormat.SampleRate
//////)
////// ;
(int) totalDuration;
//filePath + "_" + System.DateTime.Now.ToString("MMddyyyyhhmmss") +"_"+ ___calculated_duration___after_saving_files+"_secs.wav"
string ___wavs_files_names = "";
___wavs_files_names
=
////// ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// +
////// public_static_class_simulations_CONTROLLER_for_gt_Class
////// .
////// command_string
////// +
////// ////// "_" + System.DateTime.Now.ToString("MMddyyyyhhmmss")
//////// +
////// "_"
////// + ___calculated_duration___after_saving_files + "_secs.wav";
////// System.Windows.Forms.MessageBox.Show
////// (
////// ___wavs_files_names
////// )
////// ;
filePath
+
"_"
+ ___calculated_duration___after_saving_files + "_secs.wav";
//////SAAN_LoadAmplitudeFile(filePath, max_amplitudes_abs_value_found_in_file);///which populates data to buffered wave providers
try
{
System.IO.File.WriteAllText(___wavs_files_names + ".txt", "totalDuration = " + totalDuration + "\r\n"+ "SAAN_LoadAmplitudeFile(filePath, max_amplitudes_abs_value_found_in_file, totalDuration)");
/// SAAN_LoadAmplitudeFile(___wavs_files_names, max_amplitudes_abs_value_found_in_file);///which populates data to buffered wave providers
SAAN_LoadAmplitudeFile(filePath, max_amplitudes_abs_value_found_in_file, totalDuration);///which populates data to buffered wave providers
}
catch (Exception _EXCP_TO_GENERATE_WAV_FILES)
{
System.Windows.Forms.MessageBox.Show
(
"_EXCP_TO_GENERATE_WAV_FILES = "
+ _EXCP_TO_GENERATE_WAV_FILES.Message
+"\r\n"+
_EXCP_TO_GENERATE_WAV_FILES.StackTrace.ToString()
+
"\r\n"+
"SAAN_LoadAmplitudeFile(___wavs_files_names, max_amplitudes_abs_value_found_in_file);///which populates data to buffered wave providers"
+ "\r\n\r\n\r\n ___wavs_files_names = "
+
___wavs_files_names
);
}//catch(Exception _EXCP_TO_GENERATE_WAV_FILES)
/// waveOut.Init(bufferedWaveProvider);
try
{
// Initialize and use the WaveOutEvent here
// ...
waveOut.Init(bufferedWaveProvider);
waveOut.Volume = 1;
waveOut.Play();
}
finally
{
waveOut.Dispose();
}
}//public SAAN___AmplitudeFilePlayer(string filePath)
/// <summary>
///
///
/// </summary>
///
/// this is overly using the memory
public BufferedWaveProvider SAAN___LoadAmplitudeFile(string filePath,WaveFormat waveFormat)
{
BufferedWaveProvider _temp_bufferedwaveprovider = new BufferedWaveProvider(waveFormat);
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
if (double.TryParse(line, out double amplitude))
{
// Map amplitude values (0 to 60000) to the range (-1 to 1)
float normalizedAmplitude = (float)(amplitude / 30000.0 - 1.0);
// Assuming a single channel audio (mono)
byte[] buffer = BitConverter.GetBytes(normalizedAmplitude);
bufferedWaveProvider.AddSamples(buffer, 0, buffer.Length);
}//if (double.TryParse(line, out double amplitude))
}//while ((line = reader.ReadLine()) != null)
}//using (StreamReader reader = new StreamReader(filePath))
// WdlResamplingSampleProvider
/// AudioFileReader
return _temp_bufferedwaveprovider;
}// public BufferedWaveProvider SAAN___LoadAmplitudeFile(string filePath)
public void Play()
{
waveOut.Play();
}//public void Play()
public void Stop()
{
waveOut.Stop();
}//public void Stop()
public void SAAN_LoadAmplitudeFile(string filePath_to_read_amplitude_file_again,double max_amplitude_abs_found_in_files,double DOUBLE_TYPE_DATA_TOTAL_DURATION_IN_MILLISECOND_IN_TEXTBOX )
{
double ___recalculated_total_samples_found = 0;
if(max_amplitude_abs_found_in_files>0)
{
// System.IO.File.WriteAllText(___wavs_files_names + "._will read the stream for buffer writing.txt", "filePath= "+ filePath + " using (StreamReader reader = new StreamReader(filePath))");
System.Windows.Forms.MessageBox.Show
(
" filePath_to_read_amplitude_file_again to read and to enter buffer data = " + filePath_to_read_amplitude_file_again
+ "\r\n will do using (StreamReader reader = new StreamReader(filePath))"
)
;
using (StreamReader reader = new StreamReader(filePath_to_read_amplitude_file_again))
{
string line;
while ((line = reader.ReadLine()) != null)
{
if (double.TryParse(line, out double amplitude))
{
// Map amplitude values (0 to 60000) to the range (-1 to 1)
/// float normalizedAmplitude = (float)(amplitude / 30000.0 - 1.0);
/// to get this we had to run the whole loop before this
/// if we could know this in first go then we could start here start directly
float normalizedAmplitude = (float)(amplitude / (max_amplitude_abs_found_in_files/2) - 1.0);
// Assuming a single channel audio (mono)
byte[] buffer = BitConverter.GetBytes(normalizedAmplitude);
bufferedWaveProvider.AddSamples(buffer, 0, buffer.Length);
___recalculated_total_samples_found++;
}// if (double.TryParse(line, out double amplitude))
}// while ((line = reader.ReadLine()) != null)
}//using (StreamReader reader = new StreamReader(filePath_to_read_amplitude_file_again))
}// if(max_amplitude_abs_found_in_files>0)
int WE_NEED_TO_SEND_SAMPLES_PER_SECOND_RECALCULATED_INSTEAD_OF_WAVEFORMATS_DATA
=
(int) (___recalculated_total_samples_found
/
( DOUBLE_TYPE_DATA_TOTAL_DURATION_IN_MILLISECOND_IN_TEXTBOX/1000) );
int ___calculated_duration___after_saving_files = 0;
___calculated_duration___after_saving_files
=
//(int)(bufferedWaveProvider.BufferLength / waveFormat.AverageBytesPerSecond);
(int)(DOUBLE_TYPE_DATA_TOTAL_DURATION_IN_MILLISECOND_IN_TEXTBOX / 1000);
/// string revised_output_path = outputPath + "_" + ___calculated_duration___after_saving_files + "_secs.wav";
/// string revised_output_path = outputPath + "_" + ___calculated_duration___after_saving_files + "_secs.wav";
/// int ___outputdurations_calculated = bufferedWaveProvider
//filePath + "_" + System.DateTime.Now.ToString("MMddyyyyhhmmss") +"_"+ ___calculated_duration___after_saving_files+"_secs.wav"
string ___wavs_files_names = "";
___wavs_files_names
=
////// ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
////// +
////// public_static_class_simulations_CONTROLLER_for_gt_Class
////// .
////// command_string
////// +
//////// "_" + System.DateTime.Now.ToString("MMddyyyyhhmmss")
//////// +
///
filePath_to_read_amplitude_file_again
+
"_"
+ ___calculated_duration___after_saving_files + "_secs.wav";
System.Windows.Forms.MessageBox.Show
(
___wavs_files_names
)
;
System.IO.File.WriteAllText(___wavs_files_names + "._another.txt", "___wavs_files_names = " + ___wavs_files_names + "\r\nfilepath = " + filePath_to_read_amplitude_file_again + "\r\n" + " SAAN_SaveBufferedWaveProviderToFile(bufferedWaveProvider, ___wavs_files_names, waveFormat);");
//filePath + "_" + System.DateTime.Now.ToString("MMddyyyyhhmmss") +"_"+ ___calculated_duration___after_saving_files+"_secs.wav"
try
{
___wavs_files_names = filePath_to_read_amplitude_file_again;
// SAAN_SaveBufferedWaveProviderToFile(bufferedWaveProvider, ___wavs_files_names, waveFormat);
// we have inserted the sample rate caLCULATED INTO THE waveFormat.SampleRate THEN WE CAME HERE
/// SAAN_SaveBufferedWaveProviderToFile(bufferedWaveProvider, ___wavs_files_names, waveFormat, ___recalculated_total_samples_found, waveFormat.SampleRate);
SAAN_SaveBufferedWaveProviderToFile(bufferedWaveProvider, ___wavs_files_names, waveFormat, ___recalculated_total_samples_found, WE_NEED_TO_SEND_SAMPLES_PER_SECOND_RECALCULATED_INSTEAD_OF_WAVEFORMATS_DATA);
}
catch (Exception _excp_to_save_files___SAAN_SaveBufferedWaveProviderToFile)
{
System.Windows.Forms.MessageBox.Show
(
"_excp_to_save_files___SAAN_SaveBufferedWaveProviderToFile "
+ _excp_to_save_files___SAAN_SaveBufferedWaveProviderToFile.Message
+ _excp_to_save_files___SAAN_SaveBufferedWaveProviderToFile.StackTrace.ToString()
+"\r\n"+
" SAAN_SaveBufferedWaveProviderToFile(bufferedWaveProvider, ___wavs_files_names, waveFormat);"
);
}//catch(Exception _excp_to_save_files___SAAN_SaveBufferedWaveProviderToFile)
}// public void SAAN_LoadAmplitudeFile(string filePath)
public void SAAN_LoadAmplitudeFile___30000(string filePath)
{
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
if (double.TryParse(line, out double amplitude))
{
// Map amplitude values (0 to 60000) to the range (-1 to 1)
float normalizedAmplitude = (float)(amplitude / 30000.0 - 1.0);
// Assuming a single channel audio (mono)
byte[] buffer = BitConverter.GetBytes(normalizedAmplitude);
bufferedWaveProvider.AddSamples(buffer, 0, buffer.Length);
}// if (double.TryParse(line, out double amplitude))
}// while ((line = reader.ReadLine()) != null)
}//using (StreamReader reader = new StreamReader(filePath))
}// public void SAAN_LoadAmplitudeFile(string filePath)
public static void SAAN_SaveBufferedWaveProviderToFile( BufferedWaveProvider bufferedWaveProvider, string outputPath, WaveFormat waveFormat,double total_samples_count_found , double samples_per_second_calculated)
{
// Assuming 16-bit PCM, 1 channel (mono)
// var waveFormat = new WaveFormat(44100, 16, 1);
System.Windows.Forms.MessageBox.Show("This is the real file for the wav files writer public static void SAAN_SaveBufferedWaveProviderToFile( BufferedWaveProvider bufferedWaveProvider, string outputPath, WaveFormat waveFormat,double total_samples_count_found , double samples_per_second_calculated)");
// int ___calculated_duration___after_saving_files = (bufferedWaveProvider.BufferLength / waveFormat.AverageBytesPerSecond) ;
int ___calculated_duration___after_saving_files = 0;
___calculated_duration___after_saving_files
=
(int)(total_samples_count_found / samples_per_second_calculated);
// = (bufferedWaveProvider.BufferLength / waveFormat.AverageBytesPerSecond);
string revised_output_path = outputPath + "_sps_"+ samples_per_second_calculated + "_"+___calculated_duration___after_saving_files + "_secs.wav";
// Create a WaveFileWriter
/// using (var waveWriter = new WaveFileWriter(revised_output_path, waveFormat))
/// using (var waveWriter = new WaveFileWriter(outputPath, waveFormat))
using (var waveWriter = new WaveFileWriter(revised_output_path, waveFormat))
{
////////////////// why is it making the final file with 5 seconds durations only ???
///
byte[] buffer = new byte[bufferedWaveProvider.BufferLength];
// Read from BufferedWaveProvider and write to WaveFileWriter
while (bufferedWaveProvider.BufferedBytes > 0)
{
int bytesRead = bufferedWaveProvider.Read(buffer, 0, buffer.Length);
waveWriter.Write(buffer, 0, bytesRead);
}//while (bufferedWaveProvider.BufferedBytes > 0)
}//using (var waveWriter = new WaveFileWriter(outputPath, waveFormat))
}// public static void SAAN_SaveBufferedWaveProviderToFile(string OUTPUTWAVSFILESNAMES , BufferedWaveProvider bufferedWaveProvider, string outputPath, WaveFormat waveFormat)
public void Dispose()
{
waveOut.Dispose();
bufferedWaveProvider.ClearBuffer();
}//public void Dispose()
}//public class SAAN___AmplitudeFilePlayer : IDisposable
public class SAAN_CustomAudioPlayer : IDisposable
{
private WaveOutEvent waveOut;
private AudioFileReader audioFileReader;
private ISampleProvider resampler;
public SAAN_CustomAudioPlayer(string filePath, TrackBar volumeTrackBar, TrackBar sampleRateTrackBar)
{
waveOut = new WaveOutEvent();
audioFileReader = new AudioFileReader(filePath);
// Set up the initial volume
audioFileReader.Volume = volumeTrackBar.Value;
// Set up the initial sample rate
var sampleRate = sampleRateTrackBar.Value;
resampler = new WdlResamplingSampleProvider(audioFileReader, sampleRate);
waveOut.Init(new SampleToWaveProvider(resampler));
}//public CustomAudioPlayer(string filePath, TrackBar volumeTrackBar, TrackBar sampleRateTrackBar)
public event EventHandler VolumeChanged;
public event EventHandler SampleRateChanged;
public void Start()
{
waveOut.Play();
}// public void Start()
public void Stop()
{
waveOut.Stop();
}// public void Stop()
public void SetVolume(int volume)
{
audioFileReader.Volume = volume;
OnVolumeChanged();
}// public void SetVolume(int volume)
public void SetSampleRate(int sampleRate)
{
// Update sample rate during playback
resampler = new WdlResamplingSampleProvider(audioFileReader, sampleRate);
waveOut.Init(new SampleToWaveProvider(resampler));
OnSampleRateChanged();
}//public void SetSampleRate(int sampleRate)
protected virtual void OnVolumeChanged()
{
VolumeChanged?.Invoke(this, EventArgs.Empty);
}// protected virtual void OnVolumeChanged()
protected virtual void OnSampleRateChanged()
{
SampleRateChanged?.Invoke(this, EventArgs.Empty);
}// protected virtual void OnSampleRateChanged()
public void Dispose()
{
waveOut.Dispose();
audioFileReader.Dispose();
}// public void Dispose()
}//public class SAAN_CustomAudioPlayer : IDisposable
public class PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
{
public double TIME_IN_MILLISECONDS = 0;
public double FREQUENCY_IN_HERTZ = 0;
public double TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN = 0;
public double FREQUENCY_DIFFERENCE_FROM_PREVIOUS_IN_HERTZ = 0;
public int NEAREST_LOWER_NOTE_NUMBER_FOUND = 0;
public int NEAREST_UPPER_NOTE_NUMBER_FOUND = 0;
public string THE_BEST_FIT_PITCH_BEND_CALCULATED_WITH_CURRENT_VALID_NOTE_FREQUENCY_AND_NEXT_VALID_NOTE_FREQUENCY = "";
public string NEAREST_LOWER_NOTE_NAME_FOUND = "";
public string NEAREST_UPPER_NOTE_NAME_FOUND = "";
public double ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN = 0;
public int FIRST_RUN_RAW_NOTE_COUNTER = 0;
public int SECOND_RUN_RAW_NOTE_COUNTER = 0;
public bool TO_TAKE_THIS_NOTE_IN_SECOND_RUN___FALSE_OR_TRUE = false;
public double FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN = 0;
public string ALL_INTERMEDIATE_FREQUENCIES_FOR_PITCHBENDS_ACCUMULATED_AT_SECOND_RUN___WITH_MILLISECS_PITCH = "";
public double FINAL_FREQUENCY_FOUND_WHILE_NOTES_CLUBBED_INsECOND_RUN = 0;
public PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES()
{
this.TIME_IN_MILLISECONDS = 0;
this.FREQUENCY_IN_HERTZ = 0;
this.TIME_DURATION_FROM_LAST_VALID_START_TIMES_MILLISECONDS_UPDATED_IN_SECOND_RUN = 0;
this.FREQUENCY_DIFFERENCE_FROM_PREVIOUS_IN_HERTZ = 0;
this.NEAREST_LOWER_NOTE_NUMBER_FOUND = 0;
this.NEAREST_UPPER_NOTE_NUMBER_FOUND = 0;
this.THE_BEST_FIT_PITCH_BEND_CALCULATED_WITH_CURRENT_VALID_NOTE_FREQUENCY_AND_NEXT_VALID_NOTE_FREQUENCY = "";
this.NEAREST_LOWER_NOTE_NAME_FOUND = "";
this.NEAREST_UPPER_NOTE_NAME_FOUND = "";
this.ROUGH_DURATION_PUSHED_TO_PREVIOUS_NOTE_IN_FIRST_RUN = 0;
this.FIRST_RUN_RAW_NOTE_COUNTER = 0;
this.SECOND_RUN_RAW_NOTE_COUNTER = 0;
this.TO_TAKE_THIS_NOTE_IN_SECOND_RUN___FALSE_OR_TRUE = false;
this.FINAL_TIME_IN_MILLISECONDS___ACCUMULATED_IN_SECOND_RUN = 0;
this.ALL_INTERMEDIATE_FREQUENCIES_FOR_PITCHBENDS_ACCUMULATED_AT_SECOND_RUN___WITH_MILLISECS_PITCH = "";
this.FINAL_FREQUENCY_FOUND_WHILE_NOTES_CLUBBED_INsECOND_RUN = 0;
}// public PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES()
// Function to convert frequency to MIDI note number
public static int FrequencyToMidiNoteNumber(double frequency)
{
return (int)(12 * Log2(frequency / 440.0) + 69);
}//public static int FrequencyToMidiNoteNumber(double frequency)
public static double Log2(double x)
{
return Math.Log(x) / Math.Log(2);
}// public static double Log2(double x)
public static double GET_NOTE_FREQUENCY_HERTZ_FROM_GIVEN_NOTE_NUMBER___SAAN(int note_number)
{
double ret_double = -600;
for (
int rrr = 0;
rrr <
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
.GetLength(0);
rrr++
)
{
if (
note_number.ToString().TrimEnd().TrimStart().Trim()
==
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
[rrr, 0]
)
{
try
{
ret_double
= Convert.ToDouble
(
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
[rrr, 2]
);
}
catch (Exception ___excp_to_get_Hertz)
{
ret_double = 0.0003;/// cannot take negative since that will disturb the radius constructions
}//catch(Exception ___excp_to_get_Hertz)
}
//////if (
////// note_number.ToString().TrimEnd().TrimStart().Trim()
////// ==
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// .PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// [rrr, 0]
////// )
}
//////for (
////// int rrr = 0;
////// rrr <
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
//////.PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
//////.GetLength(0);
//////rrr++
////// )
return ret_double;
}// public static double GET_NOTE_FREQUENCY_HERTZ_FROM_GIVEN_NOTE_NUMBER___SAAN(int note_number)
public static string GET_STRING_NOTE_NAME_FROM_GIVEN_NOTE_NUMBER___SAAN(int note_number)
{
string ret_STRING = "";
ret_STRING
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
[note_number + 1 , 1];
if(ret_STRING.TrimEnd().TrimStart().Trim().Length==0)
{
for (
int rrr = 0;
rrr <
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
.GetLength(0);
rrr++
)
{
try
{
if (
note_number.ToString().TrimEnd().TrimStart().Trim()
==
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
[rrr, 0].ToString().TrimEnd().TrimStart().Trim()
)
{
try
{
ret_STRING
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
[rrr, 1];
}
catch (Exception ___excp_to_get_Hertz)
{
ret_STRING = "NOT_FOUND";/// cannot take negative since that will disturb the radius constructions
}//catch(Exception ___excp_to_get_Hertz)
}
//////if (
////// note_number.ToString().TrimEnd().TrimStart().Trim()
////// ==
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
////// .PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
////// [rrr, 0].ToString().TrimEnd().TrimStart().Trim()
////// )
}
catch (Exception _excp_array_related_issues)
{
ret_STRING = rrr.ToString() + "_could_not_check_note_names_for_notes_number_"+ note_number.ToString();
}//catch(Exception _excp_array_related_issues)
}
//////for (
////// int rrr = 0;
////// rrr <
////// SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
//////.PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
//////.GetLength(0);
//////rrr++
////// )
///
}// if(ret_STRING.TrimEnd().TrimStart().Trim().Length==0)
return ret_STRING;
}// public static double GET_NOTE_FREQUENCY_HERTZ_FROM_GIVEN_NOTE_NUMBER___SAAN(int note_number)
}// public class PUBLIC_CLASS_TO_STORE_PRAAT_TIMEWISE_FREQUENCIES
}//namespace ExcelFormulaParser_GT_PARSERSample
//philosophy of space and time
//https://www.princeton.edu/~fraassen/BvF%20-%20IPTS.pdf
//////////////https://zetcode.com/csharp/decimal/
//////////////C# Decimal
//////////////last modified July 13, 2022
//////////////C# Decimal tutorial shows how to perform high-precision calculation in C# with Decimal. C# tutorial is a comprehensive tutorial on C# language.
//////////////Decimal
//////////////The decimal is a floating decimal point type.Because the decimal type has more precision and a smaller range than both float and double, it is appropriate for financial and monetary calculations.The default value of a Decimal is 0. The Decimal literal uses m or M suffix. Humans are used to representing non-integers in a decimal form, and expect exact results in decimal representations.
//////////////Some values cannot be exactly represented in double/float data types.For instance, storing the 0.1 value in double/float (which are binary floating point values) variable we get only an approximation of the value.Similarly, the 1/3 value cannot be represented exactly in decimal floating point type.
//////////////Decimals are much slower than a double/float. Decimals also allow the encoding or trailing zeros.
//////////////Neither of the types is perfect; generally, decimal types are better suited for financial and monetary calculations, while the double/float types for scientific calculations.
//////////////C# floating point numbers
//////////////Floating point numbers represent real numbers in computing.Real numbers measure continuous quantities, like weight, height, or speed. In C# we have three floating point types: float, double, and decimal.
//////////////C# Alias .NET Type Size Precision Range
//////////////float System.Single 4 bytes 7 digits +-1.5 x 10-45 to +-3.4 x 1038
//////////////double System.Double 8 bytes 15-16 digits +-5.0 x 10-324 to +-1.7 x 10308
//////////////decimal System.Decimal 16 bytes 28-29 decimal places +-1.0 x 10-28 to +-7.9 x 1028
//////////////The above table gives the characteristics of the floating point types.
//////////////Note: As a rule of thumb, decimal is used for counted values while float/double for measured values.
//////////////C# decimal precision
//////////////The decimal type is a 128-bit floating point data type; it can have up to 28-29 significant digits.
//////////////The following example compares the precision of the float, double, and the decimal types.
//////////////Program.cs
//////////////float x = 1f / 3f;
//////////////double y = 1d / 3d;
//////////////decimal z = 1m / 3m;
//////////////Console.WriteLine(x);
//////////////Console.WriteLine(y);
//////////////Console.WriteLine(z);
//////////////Value 1/3 is an irrational number; it can be represented only as an approximation.
//////////////$ dotnet run
//////////////0.33333334
//////////////0.3333333333333333
//////////////0.3333333333333333333333333333
//////////////From the example we can see that decimal has more decimal places after the floating point.
//////////////C# decimal literal
//////////////The D/d suffix is used for double values, the F/f for float values and the M/m decimal values. Floating point values without a suffix are double.
//////////////Program.cs
//////////////float n1 = 1.234f;
//////////////double n2 = 1.234;
//////////////decimal n3 = 1.234m;
//////////////Console.WriteLine(n1);
//////////////Console.WriteLine(n2);
//////////////Console.WriteLine(n3);
//////////////Console.WriteLine(n1.GetType());
//////////////Console.WriteLine(n2.GetType());
//////////////Console.WriteLine(n3.GetType());
//////////////In the example, we use three different literal notations for floating point numbers.
//////////////$ dotnet run
//////////////1.234
//////////////1.234
//////////////1.234
//////////////System.Single
//////////////System.Double
//////////////System.Decimal
//////////////C# decimal for exact financial or monetary calculations
//////////////Finalcial and monetary calculations must be exact.
//////////////Program.cs
//////////////double x = 0.1 + 0.1 + 0.1;
//////////////double y = 0.3;
//////////////Console.WriteLine(x);
//////////////Console.WriteLine(y);
//////////////Console.WriteLine(x == y);
//////////////decimal u = 0.1m + 0.1m + 0.1m;
//////////////decimal v = 0.3m;
//////////////Console.WriteLine(u);
//////////////Console.WriteLine(v);
//////////////Console.WriteLine(u == v);
//////////////This example shows that values 0.1 can be represented exactly in decimal type.
//////////////$ dotnet run
//////////////0.30000000000000004
//////////////0.3
//////////////False
//////////////0.3
//////////////0.3
//////////////True
//////////////The double value has some small error. It can be ignored in many calculations. For instance, if we are measuring weight or height of people, this kind of error is irrelevant.However, in finalcial calculations it causes problems.
//////////////C# decimal System.OverflowException
//////////////Unlike in double/float types, trying to increse a decimal value beyond its limit causes System.OverflowException.
//////////////Program.cs
//////////////float maxValue = float.MaxValue;
//////////////float nextValue = maxValue + 1f;
//////////////Console.WriteLine(maxValue.ToString("f"));
//////////////Console.WriteLine(nextValue.ToString("f"));
//////////////decimal maxValue2 = decimal.MaxValue;
//////////////decimal nextValue2 = maxValue2 + 1m;
//////////////Console.WriteLine(maxValue.ToString("m"));
//////////////Console.WriteLine(nextValue.ToString("m"));
//////////////In the exammple, we add one to the maximal value of a float and a decimal.
//////////////$ dotnet run
//////////////340282346638528859811704183484516925440.000
//////////////340282346638528859811704183484516925440.000
//////////////Unhandled exception.System.OverflowException: Value was either too large or too
//////////////small for a Decimal.
//////////////...
//////////////The example throws the System.OverflowException.
//////////////C# decimal Parse
//////////////The Parse method converts the string representation of a number to its decimal equivalent.
//////////////numbers.txt
//////////////123.23
//////////////213.44
//////////////713.54
//////////////319.11
//////////////199.09
//////////////We have this numbers.txt file.
//////////////Program.cs
//////////////var values = File.ReadAllLines("numbers.txt");
//////////////decimal sum = 0m;
//////////////foreach (var value in values)
//////////////{
////////////// sum += decimal.Parse(value);
//////////////}
//////////////Console.WriteLine($"The sum is: {sum}");
//////////////In the example, we read all values from the numbers.txt file.
//////////////var values = File.ReadAllLines("numbers.txt");
//////////////The ReadAllLines returns a string array.We need to trasform the strings into decimal values.
//////////////foreach (var value in values)
////////////// {
////////////// sum += decimal.Parse(value);
////////////// }
//////////////We go throug the array and parse the strings into decimals with Parse.
//////////////$ dotnet run
//////////////The sum is: 1568.41
//////////////C# decimal built-in methods
//////////////The decimal type has some built-in methocs such as Add or Subtract.
//////////////Program.cs
//////////////decimal x = 12m;
//////////////decimal y = 5m;
//////////////decimal z = 12.89m;
//////////////Console.WriteLine(decimal.Remainder(x, y));
//////////////Console.WriteLine(decimal.Add(x, y));
//////////////Console.WriteLine(decimal.Subtract(x, y));
//////////////Console.WriteLine(decimal.Round(z, 1));
//////////////The example demonstrates the Remainder, Add, Subtract, and Round methods.
//////////////$ dotnet run
//////////////2
//////////////17
//////////////7
//////////////12.9
//////////////In this article we have worked with Decimal data type in C#.
///
//////////////#region Assembly System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
//////////////// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Windows.Forms.dll
//////////////#endregion
//////////////using System.Collections;
//////////////using System.ComponentModel;
//////////////using System.ComponentModel.Design.Serialization;
//////////////using System.Drawing;
//////////////using System.Reflection;
//////////////using System.Runtime.InteropServices;
//////////////using System.Windows.Forms.Layout;
//////////////namespace System.Windows.Forms
////////////// {
////////////// //
////////////// // Summary:
////////////// // Defines the base class for controls, which are components with visual representation.
////////////// [ClassInterface(ClassInterfaceType.AutoDispatch)]
////////////// [ComVisible(true)]
////////////// [DefaultEvent("Click")]
////////////// [DefaultProperty("Text")]
////////////// [Designer("System.Windows.Forms.Design.ControlDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
////////////// [DesignerSerializer("System.Windows.Forms.Design.ControlCodeDomSerializer, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.ComponentModel.Design.Serialization.CodeDomSerializer, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
////////////// [ToolboxItemFilter("System.Windows.Forms")]
////////////// public class Control : Component, IDropTarget, ISynchronizeInvoke, IWin32Window, IArrangedElement, IComponent, IDisposable, IBindableComponent
////////////// {
////////////// //
////////////// // Summary:
////////////// // Initializes a new instance of the System.Windows.Forms.Control class with default
////////////// // settings.
////////////// public Control();
////////////// //
////////////// // Summary:
////////////// // Initializes a new instance of the System.Windows.Forms.Control class with specific
////////////// // text.
////////////// //
////////////// // Parameters:
////////////// // text:
////////////// // The text displayed by the control.
////////////// public Control(string text);
////////////// //
////////////// // Summary:
////////////// // Initializes a new instance of the System.Windows.Forms.Control class as a child
////////////// // control, with specific text.
////////////// //
////////////// // Parameters:
////////////// // parent:
////////////// // The System.Windows.Forms.Control to be the parent of the control.
////////////// //
////////////// // text:
////////////// // The text displayed by the control.
////////////// public Control(Control parent, string text);
////////////// //
////////////// // Summary:
////////////// // Initializes a new instance of the System.Windows.Forms.Control class with specific
////////////// // text, size, and location.
////////////// //
////////////// // Parameters:
////////////// // text:
////////////// // The text displayed by the control.
////////////// //
////////////// // left:
////////////// // The System.Drawing.Point.X position of the control, in pixels, from the left
////////////// // edge of the control's container. The value is assigned to the System.Windows.Forms.Control.Left
////////////// // property.
////////////// //
////////////// // top:
////////////// // The System.Drawing.Point.Y position of the control, in pixels, from the top edge
////////////// // of the control's container. The value is assigned to the System.Windows.Forms.Control.Top
////////////// // property.
////////////// //
////////////// // width:
////////////// // The width of the control, in pixels. The value is assigned to the System.Windows.Forms.Control.Width
////////////// // property.
////////////// //
////////////// // height:
////////////// // The height of the control, in pixels. The value is assigned to the System.Windows.Forms.Control.Height
////////////// // property.
////////////// public Control(string text, int left, int top, int width, int height);
////////////// //
////////////// // Summary:
////////////// // Initializes a new instance of the System.Windows.Forms.Control class as a child
////////////// // control, with specific text, size, and location.
////////////// //
////////////// // Parameters:
////////////// // parent:
////////////// // The System.Windows.Forms.Control to be the parent of the control.
////////////// //
////////////// // text:
////////////// // The text displayed by the control.
////////////// //
////////////// // left:
////////////// // The System.Drawing.Point.X position of the control, in pixels, from the left
////////////// // edge of the control's container. The value is assigned to the System.Windows.Forms.Control.Left
////////////// // property.
////////////// //
////////////// // top:
////////////// // The System.Drawing.Point.Y position of the control, in pixels, from the top edge
////////////// // of the control's container. The value is assigned to the System.Windows.Forms.Control.Top
////////////// // property.
////////////// //
////////////// // width:
////////////// // The width of the control, in pixels. The value is assigned to the System.Windows.Forms.Control.Width
////////////// // property.
////////////// //
////////////// // height:
////////////// // The height of the control, in pixels. The value is assigned to the System.Windows.Forms.Control.Height
////////////// // property.
////////////// public Control(Control parent, string text, int left, int top, int width, int height);
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating which of the mouse buttons is in a pressed state.
////////////// //
////////////// // Returns:
////////////// // A bitwise combination of the System.Windows.Forms.MouseButtons enumeration values.
////////////// // The default is System.Windows.Forms.MouseButtons.None.
////////////// public static MouseButtons MouseButtons { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the position of the mouse cursor in screen coordinates.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Point that contains the coordinates of the mouse cursor relative
////////////// // to the upper-left corner of the screen.
////////////// public static Drawing.Point MousePosition { get; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating which of the modifier keys (SHIFT, CTRL, and ALT) is
////////////// // in a pressed state.
////////////// //
////////////// // Returns:
////////////// // A bitwise combination of the System.Windows.Forms.Keys values. The default is
////////////// // System.Windows.Forms.Keys.None.
////////////// public static Keys ModifierKeys { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the default background color of the control.
////////////// //
////////////// // Returns:
////////////// // The default background System.Drawing.Color of the control. The default is System.Drawing.SystemColors.Control.
////////////// public static Color DefaultBackColor { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the default font of the control.
////////////// //
////////////// // Returns:
////////////// // The default System.Drawing.Font of the control. The value returned will vary
////////////// // depending on the user's operating system the local culture setting of their system.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ArgumentException:
////////////// // The default font or the regional alternative fonts are not installed on the client
////////////// // computer.
////////////// public static Font DefaultFont { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the default foreground color of the control.
////////////// //
////////////// // Returns:
////////////// // The default foreground System.Drawing.Color of the control. The default is System.Drawing.SystemColors.ControlText.
////////////// public static Color DefaultForeColor { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether to catch calls on the wrong thread that
////////////// // access a control's System.Windows.Forms.Control.Handle property when an application
////////////// // is being debugged.
////////////// //
////////////// // Returns:
////////////// // true if calls on the wrong thread are caught; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlCheckForIllegalCrossThreadCalls")]
////////////// public static bool CheckForIllegalCrossThreadCalls { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets an object that represents a propagating IME mode.
////////////// //
////////////// // Returns:
////////////// // An object that represents a propagating IME mode.
////////////// protected static ImeMode PropagatingImeMode { get; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the control contains one or more child controls.
////////////// //
////////////// // Returns:
////////////// // true if the control contains one or more child controls; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlHasChildrenDescr")]
////////////// public bool HasChildren { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the window handle that the control is bound to.
////////////// //
////////////// // Returns:
////////////// // An System.IntPtr that contains the window handle (HWND) of the control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [DispId(-515)]
////////////// [SRDescriptionAttribute("ControlHandleDescr")]
////////////// public IntPtr Handle { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the foreground color of the control.
////////////// //
////////////// // Returns:
////////////// // The foreground System.Drawing.Color of the control. The default is the value
////////////// // of the System.Windows.Forms.Control.DefaultForeColor property.
////////////// [DispId(-513)]
////////////// [SRCategoryAttribute("CatAppearance")]
////////////// [SRDescriptionAttribute("ControlForeColorDescr")]
////////////// public virtual Color ForeColor { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the control has a handle associated with it.
////////////// //
////////////// // Returns:
////////////// // true if a handle has been assigned to the control; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlHandleCreatedDescr")]
////////////// public bool IsHandleCreated { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the font of the text displayed by the control.
////////////// //
////////////// // Returns:
////////////// // The System.Drawing.Font to apply to the text displayed by the control. The default
////////////// // is the value of the System.Windows.Forms.Control.DefaultFont property.
////////////// [AmbientValue(null)]
////////////// [DispId(-512)]
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatAppearance")]
////////////// [SRDescriptionAttribute("ControlFontDescr")]
////////////// public virtual Font Font { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the Input Method Editor (IME) mode of the control.
////////////// //
////////////// // Returns:
////////////// // One of the System.Windows.Forms.ImeMode values. The default is System.Windows.Forms.ImeMode.Inherit.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ComponentModel.InvalidEnumArgumentException:
////////////// // The assigned value is not one of the System.Windows.Forms.ImeMode enumeration
////////////// // values.
////////////// [AmbientValue(ImeMode.Inherit)]
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlIMEModeDescr")]
////////////// public ImeMode ImeMode { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the caller must call an invoke method when making
////////////// // method calls to the control because the caller is on a different thread than
////////////// // the one the control was created on.
////////////// //
////////////// // Returns:
////////////// // true if the control's System.Windows.Forms.Control.Handle was created on a different
////////////// // thread than the calling thread (indicating that you must make calls to the control
////////////// // through an invoke method); otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlInvokeRequiredDescr")]
////////////// public bool InvokeRequired { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether the control is visible to accessibility
////////////// // applications.
////////////// //
////////////// // Returns:
////////////// // true if the control is visible to accessibility applications; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlIsAccessibleDescr")]
////////////// public bool IsAccessible { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets padding within the control.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.Padding representing the control's internal spacing characteristics.
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlPaddingDescr")]
////////////// public Padding Padding { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the size of a rectangular area into which the control can fit.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Size containing the height and width, in pixels.
////////////// [Browsable(false)]
////////////// public Drawing.Size PreferredSize { get; }
////////////// //
////////////// // Summary:
////////////// // This property is not relevant for this class.
////////////// //
////////////// // Returns:
////////////// // The NativeWindow contained within the control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlWindowTargetDescr")]
////////////// public IWindowTarget WindowTarget { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the width of the control.
////////////// //
////////////// // Returns:
////////////// // The width of the control in pixels.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Always)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlWidthDescr")]
////////////// public int Width { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether the control and all its child controls
////////////// // are displayed.
////////////// //
////////////// // Returns:
////////////// // true if the control and all its child controls are displayed; otherwise, false.
////////////// // The default is true.
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlVisibleDescr")]
////////////// public bool Visible { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the height of the control.
////////////// //
////////////// // Returns:
////////////// // The height of the control in pixels.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Always)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlHeightDescr")]
////////////// public int Height { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether to use the wait cursor for the current
////////////// // control and all child controls.
////////////// //
////////////// // Returns:
////////////// // true to use the wait cursor for the current control and all child controls; otherwise,
////////////// // false. The default is false.
////////////// [Browsable(true)]
////////////// [DefaultValue(false)]
////////////// [EditorBrowsable(EditorBrowsableState.Always)]
////////////// [SRCategoryAttribute("CatAppearance")]
////////////// [SRDescriptionAttribute("ControlUseWaitCursorDescr")]
////////////// public bool UseWaitCursor { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the parent control that is not parented by another Windows Forms control.
////////////// // Typically, this is the outermost System.Windows.Forms.Form that the control is
////////////// // contained in.
////////////// //
////////////// // Returns:
////////////// // The System.Windows.Forms.Control that represents the top-level control that contains
////////////// // the current control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlTopLevelControlDescr")]
////////////// public Control TopLevelControl { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the distance, in pixels, between the left edge of the control and
////////////// // the left edge of its container's client area.
////////////// //
////////////// // Returns:
////////////// // An System.Int32 representing the distance, in pixels, between the left edge of
////////////// // the control and the left edge of its container's client area.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Always)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlLeftDescr")]
////////////// public int Left { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the name of the control.
////////////// //
////////////// // Returns:
////////////// // The name of the control. The default is an empty string ("").
////////////// [Browsable(false)]
////////////// public string Name { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the parent container of the control.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.Control that represents the parent or container control
////////////// // of the control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlParentDescr")]
////////////// public Control Parent { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the product name of the assembly containing the control.
////////////// //
////////////// // Returns:
////////////// // The product name of the assembly containing the control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlProductNameDescr")]
////////////// public string ProductName { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the version of the assembly containing the control.
////////////// //
////////////// // Returns:
////////////// // The file version of the assembly containing the control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlProductVersionDescr")]
////////////// public string ProductVersion { get; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the control is currently re-creating its handle.
////////////// //
////////////// // Returns:
////////////// // true if the control is currently re-creating its handle; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlRecreatingHandleDescr")]
////////////// public bool RecreatingHandle { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the window region associated with the control.
////////////// //
////////////// // Returns:
////////////// // The window System.Drawing.Region associated with the control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlRegionDescr")]
////////////// public Region Region { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the size that is the upper limit that System.Windows.Forms.Control.GetPreferredSize(System.Drawing.Size)
////////////// // can specify.
////////////// //
////////////// // Returns:
////////////// // An ordered pair of type System.Drawing.Size representing the width and height
////////////// // of a rectangle.
////////////// [AmbientValue(typeof(Drawing.Size), "0, 0")]
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlMaximumSizeDescr")]
////////////// public virtual Drawing.Size MaximumSize { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the space between controls.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.Padding representing the space between controls.
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlMarginDescr")]
////////////// public Padding Margin { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the distance, in pixels, between the right edge of the control and the left
////////////// // edge of its container's client area.
////////////// //
////////////// // Returns:
////////////// // An System.Int32 representing the distance, in pixels, between the right edge
////////////// // of the control and the left edge of its container's client area.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlRightDescr")]
////////////// public int Right { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether control's elements are aligned to support
////////////// // locales using right-to-left fonts.
////////////// //
////////////// // Returns:
////////////// // One of the System.Windows.Forms.RightToLeft values. The default is System.Windows.Forms.RightToLeft.Inherit.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ComponentModel.InvalidEnumArgumentException:
////////////// // The assigned value is not one of the System.Windows.Forms.RightToLeft values.
////////////// [AmbientValue(RightToLeft.Inherit)]
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatAppearance")]
////////////// [SRDescriptionAttribute("ControlRightToLeftDescr")]
////////////// public virtual RightToLeft RightToLeft { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the coordinates of the upper-left corner of the control relative
////////////// // to the upper-left corner of its container.
////////////// //
////////////// // Returns:
////////////// // The System.Drawing.Point that represents the upper-left corner of the control
////////////// // relative to the upper-left corner of its container.
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlLocationDescr")]
////////////// public Drawing.Point Location { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the site of the control.
////////////// //
////////////// // Returns:
////////////// // The System.ComponentModel.ISite associated with the System.Windows.Forms.Control,
////////////// // if any.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public override ISite Site { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the height and width of the control.
////////////// //
////////////// // Returns:
////////////// // The System.Drawing.Size that represents the height and width of the control in
////////////// // pixels.
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlSizeDescr")]
////////////// public Drawing.Size Size { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the tab order of the control within its container.
////////////// //
////////////// // Returns:
////////////// // The index value of the control within the set of controls within its container.
////////////// // The controls in the container are included in the tab order.
////////////// [Localizable(true)]
////////////// [MergableProperty(false)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlTabIndexDescr")]
////////////// public int TabIndex { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether the user can give the focus to this control
////////////// // using the TAB key.
////////////// //
////////////// // Returns:
////////////// // true if the user can give the focus to the control using the TAB key; otherwise,
////////////// // false. The default is true.This property will always return true for an instance
////////////// // of the System.Windows.Forms.Form class.
////////////// [DefaultValue(true)]
////////////// [DispId(-516)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlTabStopDescr")]
////////////// public bool TabStop { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the object that contains data about the control.
////////////// //
////////////// // Returns:
////////////// // An System.Object that contains data about the control. The default is null.
////////////// [Bindable(true)]
////////////// [DefaultValue(null)]
////////////// [Localizable(false)]
////////////// [SRCategoryAttribute("CatData")]
////////////// [SRDescriptionAttribute("ControlTagDescr")]
////////////// [TypeConverter(typeof(StringConverter))]
////////////// public object Tag { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the text associated with this control.
////////////// //
////////////// // Returns:
////////////// // The text associated with this control.
////////////// [Bindable(true)]
////////////// [DispId(-517)]
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatAppearance")]
////////////// [SRDescriptionAttribute("ControlTextDescr")]
////////////// public virtual string Text { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the distance, in pixels, between the top edge of the control and
////////////// // the top edge of its container's client area.
////////////// //
////////////// // Returns:
////////////// // An System.Int32 representing the distance, in pixels, between the bottom edge
////////////// // of the control and the top edge of its container's client area.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Always)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlTopDescr")]
////////////// public int Top { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the control has input focus.
////////////// //
////////////// // Returns:
////////////// // true if the control has focus; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlFocusedDescr")]
////////////// public virtual bool Focused { get; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the control is mirrored.
////////////// //
////////////// // Returns:
////////////// // true if the control is mirrored; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("IsMirroredDescr")]
////////////// public bool IsMirrored { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether the control can respond to user interaction.
////////////// //
////////////// // Returns:
////////////// // true if the control can respond to user interaction; otherwise, false. The default
////////////// // is true.
////////////// [DispId(-514)]
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlEnabledDescr")]
////////////// public bool Enabled { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the rectangle that represents the display area of the control.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Rectangle that represents the display area of the control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlDisplayRectangleDescr")]
////////////// public virtual Rectangle DisplayRectangle { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether the control causes validation to be performed
////////////// // on any controls that require validation when it receives focus.
////////////// //
////////////// // Returns:
////////////// // true if the control causes validation to be performed on any controls requiring
////////////// // validation when it receives focus; otherwise, false. The default is true.
////////////// [DefaultValue(true)]
////////////// [SRCategoryAttribute("CatFocus")]
////////////// [SRDescriptionAttribute("ControlCausesValidationDescr")]
////////////// public bool CausesValidation { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the control can be selected.
////////////// //
////////////// // Returns:
////////////// // true if the control can be selected; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatFocus")]
////////////// [SRDescriptionAttribute("ControlCanSelectDescr")]
////////////// public bool CanSelect { get; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the control can receive focus.
////////////// //
////////////// // Returns:
////////////// // true if the control can receive focus; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatFocus")]
////////////// [SRDescriptionAttribute("ControlCanFocusDescr")]
////////////// public bool CanFocus { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the size and location of the control including its nonclient elements,
////////////// // in pixels, relative to the parent control.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Rectangle in pixels relative to the parent control that represents
////////////// // the size and location of the control including its nonclient elements.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlBoundsDescr")]
////////////// public Rectangle Bounds { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the distance, in pixels, between the bottom edge of the control and the
////////////// // top edge of its container's client area.
////////////// //
////////////// // Returns:
////////////// // An System.Int32 representing the distance, in pixels, between the bottom edge
////////////// // of the control and the top edge of its container's client area.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlBottomDescr")]
////////////// public int Bottom { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the System.Windows.Forms.BindingContext for the control.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.BindingContext for the control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlBindingContextDescr")]
////////////// public virtual BindingContext BindingContext { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the background image layout as defined in the System.Windows.Forms.ImageLayout
////////////// // enumeration.
////////////// //
////////////// // Returns:
////////////// // One of the values of System.Windows.Forms.ImageLayout (System.Windows.Forms.ImageLayout.Center
////////////// // , System.Windows.Forms.ImageLayout.None, System.Windows.Forms.ImageLayout.Stretch,
////////////// // System.Windows.Forms.ImageLayout.Tile, or System.Windows.Forms.ImageLayout.Zoom).
////////////// // System.Windows.Forms.ImageLayout.Tile is the default value.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ComponentModel.InvalidEnumArgumentException:
////////////// // The specified enumeration value does not exist.
////////////// [DefaultValue(ImageLayout.Tile)]
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatAppearance")]
////////////// [SRDescriptionAttribute("ControlBackgroundImageLayoutDescr")]
////////////// public virtual ImageLayout BackgroundImageLayout { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the background image displayed in the control.
////////////// //
////////////// // Returns:
////////////// // An System.Drawing.Image that represents the image to display in the background
////////////// // of the control.
////////////// [DefaultValue(null)]
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatAppearance")]
////////////// [SRDescriptionAttribute("ControlBackgroundImageDescr")]
////////////// public virtual Image BackgroundImage { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the background color for the control.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Color that represents the background color of the control. The
////////////// // default is the value of the System.Windows.Forms.Control.DefaultBackColor property.
////////////// [DispId(-501)]
////////////// [SRCategoryAttribute("CatAppearance")]
////////////// [SRDescriptionAttribute("ControlBackColorDescr")]
////////////// public virtual Color BackColor { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether the control has captured the mouse.
////////////// //
////////////// // Returns:
////////////// // true if the control has captured the mouse; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatFocus")]
////////////// [SRDescriptionAttribute("ControlCaptureDescr")]
////////////// public bool Capture { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets a cached instance of the control's layout engine.
////////////// //
////////////// // Returns:
////////////// // The System.Windows.Forms.Layout.LayoutEngine for the control's contents.
////////////// [Browsable(false)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public virtual LayoutEngine LayoutEngine { get; }
////////////// //
////////////// // Summary:
////////////// // This property is not relevant for this class.
////////////// //
////////////// // Returns:
////////////// // true if enabled; otherwise, false.
////////////// [Browsable(false)]
////////////// [DefaultValue(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// [Localizable(true)]
////////////// [RefreshProperties(RefreshProperties.All)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlAutoSizeDescr")]
////////////// public virtual bool AutoSize { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the edges of the container to which a control is bound and determines
////////////// // how a control is resized with its parent.
////////////// //
////////////// // Returns:
////////////// // A bitwise combination of the System.Windows.Forms.AnchorStyles values. The default
////////////// // is Top and Left.
////////////// [DefaultValue(AnchorStyles.Top | AnchorStyles.Left)]
////////////// [Localizable(true)]
////////////// [RefreshProperties(RefreshProperties.Repaint)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlAnchorDescr")]
////////////// public virtual AnchorStyles Anchor { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether the control can accept data that the
////////////// // user drags onto it.
////////////// //
////////////// // Returns:
////////////// // true if drag-and-drop operations are allowed in the control; otherwise, false.
////////////// // The default is false.
////////////// [DefaultValue(false)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlAllowDropDescr")]
////////////// public virtual bool AllowDrop { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the accessible role of the control
////////////// //
////////////// // Returns:
////////////// // One of the values of System.Windows.Forms.AccessibleRole. The default is Default.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ComponentModel.InvalidEnumArgumentException:
////////////// // The value assigned is not one of the System.Windows.Forms.AccessibleRole values.
////////////// [DefaultValue(AccessibleRole.Default)]
////////////// [SRCategoryAttribute("CatAccessibility")]
////////////// [SRDescriptionAttribute("ControlAccessibleRoleDescr")]
////////////// public AccessibleRole AccessibleRole { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the name of the control used by accessibility client applications.
////////////// //
////////////// // Returns:
////////////// // The name of the control used by accessibility client applications. The default
////////////// // is null.
////////////// [DefaultValue(null)]
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatAccessibility")]
////////////// [SRDescriptionAttribute("ControlAccessibleNameDescr")]
////////////// public string AccessibleName { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the description of the control used by accessibility client applications.
////////////// //
////////////// // Returns:
////////////// // The description of the control used by accessibility client applications. The
////////////// // default is null.
////////////// [DefaultValue(null)]
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatAccessibility")]
////////////// [SRDescriptionAttribute("ControlAccessibleDescriptionDescr")]
////////////// public string AccessibleDescription { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the default action description of the control for use by accessibility
////////////// // client applications.
////////////// //
////////////// // Returns:
////////////// // The default action description of the control for use by accessibility client
////////////// // applications.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatAccessibility")]
////////////// [SRDescriptionAttribute("ControlAccessibleDefaultActionDescr")]
////////////// public string AccessibleDefaultActionDescription { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the System.Windows.Forms.AccessibleObject assigned to the control.
////////////// //
////////////// // Returns:
////////////// // The System.Windows.Forms.AccessibleObject assigned to the control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlAccessibilityObjectDescr")]
////////////// public AccessibleObject AccessibilityObject { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets where this control is scrolled to in System.Windows.Forms.ScrollableControl.ScrollControlIntoView(System.Windows.Forms.Control).
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Point specifying the scroll location. The default is the upper-left
////////////// // corner of the control.
////////////// [Browsable(false)]
////////////// [DefaultValue(typeof(Drawing.Point), "0, 0")]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public virtual Drawing.Point AutoScrollOffset { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets which control borders are docked to its parent control and determines
////////////// // how a control is resized with its parent.
////////////// //
////////////// // Returns:
////////////// // One of the System.Windows.Forms.DockStyle values. The default is System.Windows.Forms.DockStyle.None.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ComponentModel.InvalidEnumArgumentException:
////////////// // The value assigned is not one of the System.Windows.Forms.DockStyle values.
////////////// [DefaultValue(DockStyle.None)]
////////////// [Localizable(true)]
////////////// [RefreshProperties(RefreshProperties.Repaint)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlDockDescr")]
////////////// public virtual DockStyle Dock { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the size that is the lower limit that System.Windows.Forms.Control.GetPreferredSize(System.Drawing.Size)
////////////// // can specify.
////////////// //
////////////// // Returns:
////////////// // An ordered pair of type System.Drawing.Size representing the width and height
////////////// // of a rectangle.
////////////// [Localizable(true)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlMinimumSizeDescr")]
////////////// public virtual Drawing.Size MinimumSize { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the height and width of the client area of the control.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Size that represents the dimensions of the client area of the
////////////// // control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlClientSizeDescr")]
////////////// public Drawing.Size ClientSize { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the name of the company or creator of the application containing the control.
////////////// //
////////////// // Returns:
////////////// // The company name or creator of the application containing the control.
////////////// [Browsable(false)]
////////////// [Description("ControlCompanyNameDescr")]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public string CompanyName { get; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the control, or one of its child controls, currently
////////////// // has the input focus.
////////////// //
////////////// // Returns:
////////////// // true if the control or one of its child controls currently has the input focus;
////////////// // otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlContainsFocusDescr")]
////////////// public bool ContainsFocus { get; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the base System.Windows.Forms.Control class is
////////////// // in the process of disposing.
////////////// //
////////////// // Returns:
////////////// // true if the base System.Windows.Forms.Control class is in the process of disposing;
////////////// // otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlDisposingDescr")]
////////////// public bool Disposing { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the shortcut menu associated with the control.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.ContextMenu that represents the shortcut menu associated
////////////// // with the control.
////////////// [Browsable(false)]
////////////// [DefaultValue(null)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlContextMenuDescr")]
////////////// public virtual ContextMenu ContextMenu { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the System.Windows.Forms.ContextMenuStrip associated with this control.
////////////// //
////////////// // Returns:
////////////// // The System.Windows.Forms.ContextMenuStrip for this control, or null if there
////////////// // is no System.Windows.Forms.ContextMenuStrip. The default is null.
////////////// [DefaultValue(null)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlContextMenuDescr")]
////////////// public virtual ContextMenuStrip ContextMenuStrip { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the collection of controls contained within the control.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.Control.ControlCollection representing the collection
////////////// // of controls contained within the control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
////////////// [SRDescriptionAttribute("ControlControlsDescr")]
////////////// public ControlCollection Controls { get; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the control has been created.
////////////// //
////////////// // Returns:
////////////// // true if the control has been created; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlCreatedDescr")]
////////////// public bool Created { get; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the control has been disposed of.
////////////// //
////////////// // Returns:
////////////// // true if the control has been disposed of; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRDescriptionAttribute("ControlDisposedDescr")]
////////////// public bool IsDisposed { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the cursor that is displayed when the mouse pointer is over the
////////////// // control.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.Cursor that represents the cursor to display when the
////////////// // mouse pointer is over the control.
////////////// [AmbientValue(null)]
////////////// [SRCategoryAttribute("CatAppearance")]
////////////// [SRDescriptionAttribute("ControlCursorDescr")]
////////////// public virtual Cursor Cursor { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the data bindings for the control.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.ControlBindingsCollection that contains the System.Windows.Forms.Binding
////////////// // objects for the control.
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
////////////// [ParenthesizePropertyName(true)]
////////////// [RefreshProperties(RefreshProperties.All)]
////////////// [SRCategoryAttribute("CatData")]
////////////// [SRDescriptionAttribute("ControlBindingsDescr")]
////////////// public ControlBindingsCollection DataBindings { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the rectangle that represents the client area of the control.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Rectangle that represents the client area of the control.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlClientRectangleDescr")]
////////////// public Rectangle ClientRectangle { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the DPI value for the display device where the control is currently being
////////////// // displayed.
////////////// //
////////////// // Returns:
////////////// // The DPI value of the display device.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Always)]
////////////// public int DeviceDpi { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the height of the font of the control.
////////////// //
////////////// // Returns:
////////////// // The height of the System.Drawing.Font of the control in pixels.
////////////// protected int FontHeight { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the default size of the control.
////////////// //
////////////// // Returns:
////////////// // The default System.Drawing.Size of the control.
////////////// protected virtual Drawing.Size DefaultSize { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the default cursor for the control.
////////////// //
////////////// // Returns:
////////////// // An object of type System.Windows.Forms.Cursor representing the current default
////////////// // cursor.
////////////// protected virtual Cursor DefaultCursor { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the length and height, in pixels, that is specified as the default minimum
////////////// // size of a control.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Size representing the size of the control.
////////////// protected virtual Drawing.Size DefaultMinimumSize { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the length and height, in pixels, that is specified as the default maximum
////////////// // size of a control.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Point.#ctor(System.Drawing.Size) representing the size of the
////////////// // control.
////////////// protected virtual Drawing.Size DefaultMaximumSize { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the space, in pixels, that is specified by default between controls.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.Padding that represents the default space between controls.
////////////// protected virtual Padding DefaultMargin { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the required creation parameters when the control handle is created.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.CreateParams that contains the required creation parameters
////////////// // when the handle to the control is created.
////////////// protected virtual CreateParams CreateParams { get; }
////////////// //
////////////// // Summary:
////////////// // Determines if events can be raised on the control.
////////////// //
////////////// // Returns:
////////////// // true if the control is hosted as an ActiveX control whose events are not frozen;
////////////// // otherwise, false.
////////////// protected override bool CanRaiseEvents { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the internal spacing, in pixels, of the contents of a control.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.Padding that represents the internal spacing of the contents
////////////// // of a control.
////////////// protected virtual Padding DefaultPadding { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether this control should redraw its surface
////////////// // using a secondary buffer to reduce or prevent flicker.
////////////// //
////////////// // Returns:
////////////// // true if the surface of the control should be drawn using double buffering; otherwise,
////////////// // false.
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlDoubleBufferedDescr")]
////////////// protected virtual bool DoubleBuffered { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets a value indicating whether the control redraws itself when resized.
////////////// //
////////////// // Returns:
////////////// // true if the control redraws itself when resized; otherwise, false.
////////////// [SRDescriptionAttribute("ControlResizeRedrawDescr")]
////////////// protected bool ResizeRedraw { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets a value that determines the scaling of child controls.
////////////// //
////////////// // Returns:
////////////// // true if child controls will be scaled when the System.Windows.Forms.Control.Scale(System.Single)
////////////// // method on this control is called; otherwise, false. The default is true.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual bool ScaleChildren { get; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the System.Windows.Forms.Control.ImeMode property
////////////// // can be set to an active value, to enable IME support.
////////////// //
////////////// // Returns:
////////////// // true in all cases.
////////////// protected virtual bool CanEnableIme { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the default Input Method Editor (IME) mode supported by the control.
////////////// //
////////////// // Returns:
////////////// // One of the System.Windows.Forms.ImeMode values.
////////////// protected virtual ImeMode DefaultImeMode { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the IME mode of a control.
////////////// //
////////////// // Returns:
////////////// // The IME mode of the control.
////////////// protected virtual ImeMode ImeModeBase { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the user interface is in the appropriate state
////////////// // to show or hide keyboard accelerators.
////////////// //
////////////// // Returns:
////////////// // true if the keyboard accelerators are visible; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected internal virtual bool ShowKeyboardCues { get; }
////////////// //
////////////// // Summary:
////////////// // Gets a value indicating whether the control should display focus rectangles.
////////////// //
////////////// // Returns:
////////////// // true if the control should display focus rectangles; otherwise, false.
////////////// [Browsable(false)]
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected internal virtual bool ShowFocusCues { get; }
////////////// //
////////////// // Summary:
////////////// // This property is now obsolete.
////////////// //
////////////// // Returns:
////////////// // true if the control is rendered from right to left; otherwise, false. The default
////////////// // is false.
////////////// [Obsolete("This property has been deprecated. Please use RightToLeft instead. http://go.microsoft.com/fwlink/?linkid=14202")]
////////////// protected internal bool RenderRightToLeft { get; }
////////////// //
////////////// // Summary:
////////////// // Occurs when the control is validating.
////////////// [SRCategoryAttribute("CatFocus")]
////////////// [SRDescriptionAttribute("ControlOnValidatingDescr")]
////////////// public event CancelEventHandler Validating;
////////////// //
////////////// // Summary:
////////////// // Occurs when the input focus leaves the control.
////////////// [SRCategoryAttribute("CatFocus")]
////////////// [SRDescriptionAttribute("ControlOnLeaveDescr")]
////////////// public event EventHandler Leave;
////////////// //
////////////// // Summary:
////////////// // Occurs when a control should reposition its child controls.
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlOnLayoutDescr")]
////////////// public event LayoutEventHandler Layout;
////////////// //
////////////// // Summary:
////////////// // Occurs when a key is released while the control has focus.
////////////// [SRCategoryAttribute("CatKey")]
////////////// [SRDescriptionAttribute("ControlOnKeyUpDescr")]
////////////// public event KeyEventHandler KeyUp;
////////////// //
////////////// // Summary:
////////////// // Occurs when a character. space or backspace key is pressed while the control
////////////// // has focus.
////////////// [SRCategoryAttribute("CatKey")]
////////////// [SRDescriptionAttribute("ControlOnKeyPressDescr")]
////////////// public event KeyPressEventHandler KeyPress;
////////////// //
////////////// // Summary:
////////////// // Occurs when a key is pressed while the control has focus.
////////////// [SRCategoryAttribute("CatKey")]
////////////// [SRDescriptionAttribute("ControlOnKeyDownDescr")]
////////////// public event KeyEventHandler KeyDown;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control receives focus.
////////////// [Browsable(false)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatFocus")]
////////////// [SRDescriptionAttribute("ControlOnGotFocusDescr")]
////////////// public event EventHandler GotFocus;
////////////// //
////////////// // Summary:
////////////// // Occurs during a drag-and-drop operation and enables the drag source to determine
////////////// // whether the drag-and-drop operation should be canceled.
////////////// [SRCategoryAttribute("CatDragDrop")]
////////////// [SRDescriptionAttribute("ControlOnQueryContinueDragDescr")]
////////////// public event QueryContinueDragEventHandler QueryContinueDrag;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control is double-clicked.
////////////// [SRCategoryAttribute("CatAction")]
////////////// [SRDescriptionAttribute("ControlOnDoubleClickDescr")]
////////////// public event EventHandler DoubleClick;
////////////// //
////////////// // Summary:
////////////// // Occurs when System.Windows.Forms.AccessibleObject is providing help to accessibility
////////////// // applications.
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlOnQueryAccessibilityHelpDescr")]
////////////// public event QueryAccessibilityHelpEventHandler QueryAccessibilityHelp;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control loses focus.
////////////// [Browsable(false)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatFocus")]
////////////// [SRDescriptionAttribute("ControlOnLostFocusDescr")]
////////////// public event EventHandler LostFocus;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control is redrawn.
////////////// [SRCategoryAttribute("CatAppearance")]
////////////// [SRDescriptionAttribute("ControlOnPaintDescr")]
////////////// public event PaintEventHandler Paint;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control's padding changes.
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlOnPaddingChangedDescr")]
////////////// public event EventHandler PaddingChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control is entered.
////////////// [SRCategoryAttribute("CatFocus")]
////////////// [SRDescriptionAttribute("ControlOnEnterDescr")]
////////////// public event EventHandler Enter;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control is clicked by the mouse.
////////////// [SRCategoryAttribute("CatAction")]
////////////// [SRDescriptionAttribute("ControlOnMouseClickDescr")]
////////////// public event MouseEventHandler MouseClick;
////////////// //
////////////// // Summary:
////////////// // Occurs when the mouse pointer is over the control and a mouse button is pressed.
////////////// [SRCategoryAttribute("CatMouse")]
////////////// [SRDescriptionAttribute("ControlOnMouseDownDescr")]
////////////// public event MouseEventHandler MouseDown;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control loses mouse capture.
////////////// [SRCategoryAttribute("CatAction")]
////////////// [SRDescriptionAttribute("ControlOnMouseCaptureChangedDescr")]
////////////// public event EventHandler MouseCaptureChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when a control's display requires redrawing.
////////////// [Browsable(false)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatAppearance")]
////////////// [SRDescriptionAttribute("ControlOnInvalidateDescr")]
////////////// public event InvalidateEventHandler Invalidated;
////////////// //
////////////// // Summary:
////////////// // Occurs when the mouse pointer enters the control.
////////////// [SRCategoryAttribute("CatMouse")]
////////////// [SRDescriptionAttribute("ControlOnMouseEnterDescr")]
////////////// public event EventHandler MouseEnter;
////////////// //
////////////// // Summary:
////////////// // Occurs when the mouse pointer leaves the control.
////////////// [SRCategoryAttribute("CatMouse")]
////////////// [SRDescriptionAttribute("ControlOnMouseLeaveDescr")]
////////////// public event EventHandler MouseLeave;
////////////// //
////////////// // Summary:
////////////// // Occurs when the DPI setting for a control is changed programmatically before
////////////// // a DPI change event for its parent control or form has occurred.
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlOnDpiChangedBeforeParentDescr")]
////////////// public event EventHandler DpiChangedBeforeParent;
////////////// //
////////////// // Summary:
////////////// // Occurs when the DPI setting for a control is changed programmatically after the
////////////// // DPI of its parent control or form has changed.
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlOnDpiChangedAfterParentDescr")]
////////////// public event EventHandler DpiChangedAfterParent;
////////////// //
////////////// // Summary:
////////////// // Occurs when the mouse pointer is over the control and a mouse button is released.
////////////// [SRCategoryAttribute("CatMouse")]
////////////// [SRDescriptionAttribute("ControlOnMouseUpDescr")]
////////////// public event MouseEventHandler MouseUp;
////////////// //
////////////// // Summary:
////////////// // Occurs when the mouse wheel moves while the control has focus.
////////////// [Browsable(false)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatMouse")]
////////////// [SRDescriptionAttribute("ControlOnMouseWheelDescr")]
////////////// public event MouseEventHandler MouseWheel;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control is moved.
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlOnMoveDescr")]
////////////// public event EventHandler Move;
////////////// //
////////////// // Summary:
////////////// // Occurs before the System.Windows.Forms.Control.KeyDown event when a key is pressed
////////////// // while focus is on this control.
////////////// [SRCategoryAttribute("CatKey")]
////////////// [SRDescriptionAttribute("PreviewKeyDownDescr")]
////////////// public event PreviewKeyDownEventHandler PreviewKeyDown;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control is resized.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlOnResizeDescr")]
////////////// public event EventHandler Resize;
////////////// //
////////////// // Summary:
////////////// // Occurs when the focus or keyboard user interface (UI) cues change.
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlOnChangeUICuesDescr")]
////////////// public event UICuesEventHandler ChangeUICues;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control style changes.
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlOnStyleChangedDescr")]
////////////// public event EventHandler StyleChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the system colors change.
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlOnSystemColorsChangedDescr")]
////////////// public event EventHandler SystemColorsChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control is double clicked by the mouse.
////////////// [SRCategoryAttribute("CatAction")]
////////////// [SRDescriptionAttribute("ControlOnMouseDoubleClickDescr")]
////////////// public event MouseEventHandler MouseDoubleClick;
////////////// //
////////////// // Summary:
////////////// // Occurs when the user requests help for a control.
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlOnHelpDescr")]
////////////// public event HelpEventHandler HelpRequested;
////////////// //
////////////// // Summary:
////////////// // Occurs when an object is dragged out of the control's bounds.
////////////// [SRCategoryAttribute("CatDragDrop")]
////////////// [SRDescriptionAttribute("ControlOnDragLeaveDescr")]
////////////// public event EventHandler DragLeave;
////////////// //
////////////// // Summary:
////////////// // Occurs when a handle is created for the control.
////////////// [Browsable(false)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatPrivate")]
////////////// [SRDescriptionAttribute("ControlOnCreateHandleDescr")]
////////////// public event EventHandler HandleCreated;
////////////// //
////////////// // Summary:
////////////// // This event is not relevant for this class.
////////////// [Browsable(false)]
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnAutoSizeChangedDescr")]
////////////// public event EventHandler AutoSizeChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the value of the System.Windows.Forms.Control.BackColor property
////////////// // changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnBackColorChangedDescr")]
////////////// public event EventHandler BackColorChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the value of the System.Windows.Forms.Control.BackgroundImage property
////////////// // changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnBackgroundImageChangedDescr")]
////////////// public event EventHandler BackgroundImageChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.BackgroundImageLayout property changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnBackgroundImageLayoutChangedDescr")]
////////////// public event EventHandler BackgroundImageLayoutChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the value of the System.Windows.Forms.BindingContext property changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnBindingContextChangedDescr")]
////////////// public event EventHandler BindingContextChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the value of the System.Windows.Forms.Control.CausesValidation property
////////////// // changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnCausesValidationChangedDescr")]
////////////// public event EventHandler CausesValidationChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the value of the System.Windows.Forms.Control.ClientSize property
////////////// // changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnClientSizeChangedDescr")]
////////////// public event EventHandler ClientSizeChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the value of the System.Windows.Forms.Control.ContextMenu property
////////////// // changes.
////////////// [Browsable(false)]
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnContextMenuChangedDescr")]
////////////// public event EventHandler ContextMenuChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the value of the System.Windows.Forms.Control.ContextMenuStrip property
////////////// // changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlContextMenuStripChangedDescr")]
////////////// public event EventHandler ContextMenuStripChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the value of the System.Windows.Forms.Control.Cursor property changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnCursorChangedDescr")]
////////////// public event EventHandler CursorChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the value of the System.Windows.Forms.Control.Dock property changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnDockChangedDescr")]
////////////// public event EventHandler DockChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.Enabled property value has changed.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnEnabledChangedDescr")]
////////////// public event EventHandler EnabledChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.Font property value changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnFontChangedDescr")]
////////////// public event EventHandler FontChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.ForeColor property value changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnForeColorChangedDescr")]
////////////// public event EventHandler ForeColorChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control's handle is in the process of being destroyed.
////////////// [Browsable(false)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatPrivate")]
////////////// [SRDescriptionAttribute("ControlOnDestroyHandleDescr")]
////////////// public event EventHandler HandleDestroyed;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.Location property value has changed.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnLocationChangedDescr")]
////////////// public event EventHandler LocationChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the value of the System.Windows.Forms.Control.Region property changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlRegionChangedDescr")]
////////////// public event EventHandler RegionChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.RightToLeft property value changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnRightToLeftChangedDescr")]
////////////// public event EventHandler RightToLeftChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.Size property value changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnSizeChangedDescr")]
////////////// public event EventHandler SizeChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.TabIndex property value changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnTabIndexChangedDescr")]
////////////// public event EventHandler TabIndexChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.TabStop property value changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnTabStopChangedDescr")]
////////////// public event EventHandler TabStopChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.Text property value changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnTextChangedDescr")]
////////////// public event EventHandler TextChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.Visible property value changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnVisibleChangedDescr")]
////////////// public event EventHandler VisibleChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control is clicked.
////////////// [SRCategoryAttribute("CatAction")]
////////////// [SRDescriptionAttribute("ControlOnClickDescr")]
////////////// public event EventHandler Click;
////////////// //
////////////// // Summary:
////////////// // Occurs when a new control is added to the System.Windows.Forms.Control.ControlCollection.
////////////// [Browsable(true)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlOnControlAddedDescr")]
////////////// public event ControlEventHandler ControlAdded;
////////////// //
////////////// // Summary:
////////////// // Occurs when a control is removed from the System.Windows.Forms.Control.ControlCollection.
////////////// [Browsable(true)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// [SRCategoryAttribute("CatBehavior")]
////////////// [SRDescriptionAttribute("ControlOnControlRemovedDescr")]
////////////// public event ControlEventHandler ControlRemoved;
////////////// //
////////////// // Summary:
////////////// // Occurs when a drag-and-drop operation is completed.
////////////// [SRCategoryAttribute("CatDragDrop")]
////////////// [SRDescriptionAttribute("ControlOnDragDropDescr")]
////////////// public event DragEventHandler DragDrop;
////////////// //
////////////// // Summary:
////////////// // Occurs when an object is dragged into the control's bounds.
////////////// [SRCategoryAttribute("CatDragDrop")]
////////////// [SRDescriptionAttribute("ControlOnDragEnterDescr")]
////////////// public event DragEventHandler DragEnter;
////////////// //
////////////// // Summary:
////////////// // Occurs when an object is dragged over the control's bounds.
////////////// [SRCategoryAttribute("CatDragDrop")]
////////////// [SRDescriptionAttribute("ControlOnDragOverDescr")]
////////////// public event DragEventHandler DragOver;
////////////// //
////////////// // Summary:
////////////// // Occurs during a drag operation.
////////////// [SRCategoryAttribute("CatDragDrop")]
////////////// [SRDescriptionAttribute("ControlOnGiveFeedbackDescr")]
////////////// public event GiveFeedbackEventHandler GiveFeedback;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control's margin changes.
////////////// [SRCategoryAttribute("CatLayout")]
////////////// [SRDescriptionAttribute("ControlOnMarginChangedDescr")]
////////////// public event EventHandler MarginChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the mouse pointer rests on the control.
////////////// [SRCategoryAttribute("CatMouse")]
////////////// [SRDescriptionAttribute("ControlOnMouseHoverDescr")]
////////////// public event EventHandler MouseHover;
////////////// //
////////////// // Summary:
////////////// // Occurs when the mouse pointer is moved over the control.
////////////// [SRCategoryAttribute("CatMouse")]
////////////// [SRDescriptionAttribute("ControlOnMouseMoveDescr")]
////////////// public event MouseEventHandler MouseMove;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.Parent property value changes.
////////////// [SRCategoryAttribute("CatPropertyChanged")]
////////////// [SRDescriptionAttribute("ControlOnParentChangedDescr")]
////////////// public event EventHandler ParentChanged;
////////////// //
////////////// // Summary:
////////////// // Occurs when the control is finished validating.
////////////// [SRCategoryAttribute("CatFocus")]
////////////// [SRDescriptionAttribute("ControlOnValidatedDescr")]
////////////// public event EventHandler Validated;
////////////// //
////////////// // Summary:
////////////// // Occurs when the System.Windows.Forms.Control.ImeMode property has changed.
////////////// [SRDescriptionAttribute("ControlOnImeModeChangedDescr")]
////////////// [WinCategoryAttribute("Behavior")]
////////////// public event EventHandler ImeModeChanged;
////////////// //
////////////// // Summary:
////////////// // Retrieves the control that contains the specified handle.
////////////// //
////////////// // Parameters:
////////////// // handle:
////////////// // The window handle (HWND) to search for.
////////////// //
////////////// // Returns:
////////////// // The System.Windows.Forms.Control that represents the control associated with
////////////// // the specified handle; returns null if no control with the specified handle is
////////////// // found.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public static Control FromChildHandle(IntPtr handle);
////////////// //
////////////// // Summary:
////////////// // Returns the control that is currently associated with the specified handle.
////////////// //
////////////// // Parameters:
////////////// // handle:
////////////// // The window handle (HWND) to search for.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.Control that represents the control associated with the
////////////// // specified handle; returns null if no control with the specified handle is found.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public static Control FromHandle(IntPtr handle);
////////////// //
////////////// // Summary:
////////////// // Determines whether the CAPS LOCK, NUM LOCK, or SCROLL LOCK key is in effect.
////////////// //
////////////// // Parameters:
////////////// // keyVal:
////////////// // The CAPS LOCK, NUM LOCK, or SCROLL LOCK member of the System.Windows.Forms.Keys
////////////// // enumeration.
////////////// //
////////////// // Returns:
////////////// // true if the specified key or keys are in effect; otherwise, false.
////////////// //
////////////// // Exceptions:
////////////// // T:System.NotSupportedException:
////////////// // The keyVal parameter refers to a key other than the CAPS LOCK, NUM LOCK, or SCROLL
////////////// // LOCK key.
////////////// public static bool IsKeyLocked(Keys keyVal);
////////////// //
////////////// // Summary:
////////////// // Determines if the specified character is the mnemonic character assigned to the
////////////// // control in the specified string.
////////////// //
////////////// // Parameters:
////////////// // charCode:
////////////// // The character to test.
////////////// //
////////////// // text:
////////////// // The string to search.
////////////// //
////////////// // Returns:
////////////// // true if the charCode character is the mnemonic character assigned to the control;
////////////// // otherwise, false.
////////////// public static bool IsMnemonic(char charCode, string text);
////////////// //
////////////// // Summary:
////////////// // Reflects the specified message to the control that is bound to the specified
////////////// // handle.
////////////// //
////////////// // Parameters:
////////////// // hWnd:
////////////// // An System.IntPtr representing the handle of the control to reflect the message
////////////// // to.
////////////// //
////////////// // m:
////////////// // A System.Windows.Forms.Message representing the Windows message to reflect.
////////////// //
////////////// // Returns:
////////////// // true if the message was reflected; otherwise, false.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected static bool ReflectMessage(IntPtr hWnd, ref Message m);
////////////// //
////////////// // Summary:
////////////// // Executes the specified delegate asynchronously on the thread that the control's
////////////// // underlying handle was created on.
////////////// //
////////////// // Parameters:
////////////// // method:
////////////// // A delegate to a method that takes no parameters.
////////////// //
////////////// // Returns:
////////////// // An System.IAsyncResult that represents the result of the System.Windows.Forms.Control.BeginInvoke(System.Delegate)
////////////// // operation.
////////////// //
////////////// // Exceptions:
////////////// // T:System.InvalidOperationException:
////////////// // No appropriate window handle can be found.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public IAsyncResult BeginInvoke(Delegate method);
////////////// //
////////////// // Summary:
////////////// // Executes the specified delegate asynchronously with the specified arguments,
////////////// // on the thread that the control's underlying handle was created on.
////////////// //
////////////// // Parameters:
////////////// // method:
////////////// // A delegate to a method that takes parameters of the same number and type that
////////////// // are contained in the args parameter.
////////////// //
////////////// // args:
////////////// // An array of objects to pass as arguments to the given method. This can be null
////////////// // if no arguments are needed.
////////////// //
////////////// // Returns:
////////////// // An System.IAsyncResult that represents the result of the System.Windows.Forms.Control.BeginInvoke(System.Delegate)
////////////// // operation.
////////////// //
////////////// // Exceptions:
////////////// // T:System.InvalidOperationException:
////////////// // No appropriate window handle can be found.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public IAsyncResult BeginInvoke(Delegate method, params object[] args);
////////////// //
////////////// // Summary:
////////////// // Brings the control to the front of the z-order.
////////////// public void BringToFront();
////////////// //
////////////// // Summary:
////////////// // Retrieves a value indicating whether the specified control is a child of the
////////////// // control.
////////////// //
////////////// // Parameters:
////////////// // ctl:
////////////// // The System.Windows.Forms.Control to evaluate.
////////////// //
////////////// // Returns:
////////////// // true if the specified control is a child of the control; otherwise, false.
////////////// public bool Contains(Control ctl);
////////////// //
////////////// // Summary:
////////////// // Forces the creation of the visible control, including the creation of the handle
////////////// // and any visible child controls.
////////////// public void CreateControl();
////////////// //
////////////// // Summary:
////////////// // Creates the System.Drawing.Graphics for the control.
////////////// //
////////////// // Returns:
////////////// // The System.Drawing.Graphics for the control.
////////////// public Graphics CreateGraphics();
////////////// //
////////////// // Summary:
////////////// // Begins a drag-and-drop operation.
////////////// //
////////////// // Parameters:
////////////// // data:
////////////// // The data to drag.
////////////// //
////////////// // allowedEffects:
////////////// // One of the System.Windows.Forms.DragDropEffects values.
////////////// //
////////////// // Returns:
////////////// // A value from the System.Windows.Forms.DragDropEffects enumeration that represents
////////////// // the final effect that was performed during the drag-and-drop operation.
////////////// public DragDropEffects DoDragDrop(object data, DragDropEffects allowedEffects);
////////////// //
////////////// // Summary:
////////////// // Supports rendering to the specified bitmap.
////////////// //
////////////// // Parameters:
////////////// // bitmap:
////////////// // The bitmap to be drawn to.
////////////// //
////////////// // targetBounds:
////////////// // The bounds within which the control is rendered.
////////////// public void DrawToBitmap(Bitmap bitmap, Rectangle targetBounds);
////////////// //
////////////// // Summary:
////////////// // Retrieves the return value of the asynchronous operation represented by the System.IAsyncResult
////////////// // passed.
////////////// //
////////////// // Parameters:
////////////// // asyncResult:
////////////// // The System.IAsyncResult that represents a specific invoke asynchronous operation,
////////////// // returned when calling System.Windows.Forms.Control.BeginInvoke(System.Delegate).
////////////// //
////////////// // Returns:
////////////// // The System.Object generated by the asynchronous operation.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ArgumentNullException:
////////////// // The asyncResult parameter value is null.
////////////// //
////////////// // T:System.ArgumentException:
////////////// // The asyncResult object was not created by a preceding call of the System.Windows.Forms.Control.BeginInvoke(System.Delegate)
////////////// // method from the same control.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public object EndInvoke(IAsyncResult asyncResult);
////////////// //
////////////// // Summary:
////////////// // Retrieves the form that the control is on.
////////////// //
////////////// // Returns:
////////////// // The System.Windows.Forms.Form that the control is on.
////////////// public Form FindForm();
////////////// //
////////////// // Summary:
////////////// // Sets input focus to the control.
////////////// //
////////////// // Returns:
////////////// // true if the input focus request was successful; otherwise, false.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public bool Focus();
////////////// //
////////////// // Summary:
////////////// // Retrieves the child control that is located at the specified coordinates, specifying
////////////// // whether to ignore child controls of a certain type.
////////////// //
////////////// // Parameters:
////////////// // pt:
////////////// // A System.Drawing.Point that contains the coordinates where you want to look for
////////////// // a control. Coordinates are expressed relative to the upper-left corner of the
////////////// // control's client area.
////////////// //
////////////// // skipValue:
////////////// // One of the values of System.Windows.Forms.GetChildAtPointSkip, determining whether
////////////// // to ignore child controls of a certain type.
////////////// //
////////////// // Returns:
////////////// // The child System.Windows.Forms.Control at the specified coordinates.
////////////// public Control GetChildAtPoint(Drawing.Point pt, GetChildAtPointSkip skipValue);
////////////// //
////////////// // Summary:
////////////// // Retrieves the child control that is located at the specified coordinates.
////////////// //
////////////// // Parameters:
////////////// // pt:
////////////// // A System.Drawing.Point that contains the coordinates where you want to look for
////////////// // a control. Coordinates are expressed relative to the upper-left corner of the
////////////// // control's client area.
////////////// //
////////////// // Returns:
////////////// // A System.Windows.Forms.Control that represents the control that is located at
////////////// // the specified point.
////////////// public Control GetChildAtPoint(Drawing.Point pt);
////////////// //
////////////// // Summary:
////////////// // Returns the next System.Windows.Forms.ContainerControl up the control's chain
////////////// // of parent controls.
////////////// //
////////////// // Returns:
////////////// // An System.Windows.Forms.IContainerControl, that represents the parent of the
////////////// // System.Windows.Forms.Control.
////////////// public IContainerControl GetContainerControl();
////////////// //
////////////// // Summary:
////////////// // Retrieves the next control forward or back in the tab order of child controls.
////////////// //
////////////// // Parameters:
////////////// // ctl:
////////////// // The System.Windows.Forms.Control to start the search with.
////////////// //
////////////// // forward:
////////////// // true to search forward in the tab order; false to search backward.
////////////// //
////////////// // Returns:
////////////// // The next System.Windows.Forms.Control in the tab order.
////////////// public Control GetNextControl(Control ctl, bool forward);
////////////// //
////////////// // Summary:
////////////// // Retrieves the size of a rectangular area into which a control can be fitted.
////////////// //
////////////// // Parameters:
////////////// // proposedSize:
////////////// // The custom-sized area for a control.
////////////// //
////////////// // Returns:
////////////// // An ordered pair of type System.Drawing.Size representing the width and height
////////////// // of a rectangle.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public virtual Drawing.Size GetPreferredSize(Drawing.Size proposedSize);
////////////// //
////////////// // Summary:
////////////// // Conceals the control from the user.
////////////// public void Hide();
////////////// //
////////////// // Summary:
////////////// // Invalidates a specific region of the control and causes a paint message to be
////////////// // sent to the control. Optionally, invalidates the child controls assigned to the
////////////// // control.
////////////// //
////////////// // Parameters:
////////////// // invalidateChildren:
////////////// // true to invalidate the control's child controls; otherwise, false.
////////////// public void Invalidate(bool invalidateChildren);
////////////// //
////////////// // Summary:
////////////// // Invalidates the specified region of the control (adds it to the control's update
////////////// // region, which is the area that will be repainted at the next paint operation),
////////////// // and causes a paint message to be sent to the control. Optionally, invalidates
////////////// // the child controls assigned to the control.
////////////// //
////////////// // Parameters:
////////////// // rc:
////////////// // A System.Drawing.Rectangle that represents the region to invalidate.
////////////// //
////////////// // invalidateChildren:
////////////// // true to invalidate the control's child controls; otherwise, false.
////////////// public void Invalidate(Rectangle rc, bool invalidateChildren);
////////////// //
////////////// // Summary:
////////////// // Invalidates the specified region of the control (adds it to the control's update
////////////// // region, which is the area that will be repainted at the next paint operation),
////////////// // and causes a paint message to be sent to the control. Optionally, invalidates
////////////// // the child controls assigned to the control.
////////////// //
////////////// // Parameters:
////////////// // region:
////////////// // The System.Drawing.Region to invalidate.
////////////// //
////////////// // invalidateChildren:
////////////// // true to invalidate the control's child controls; otherwise, false.
////////////// public void Invalidate(Region region, bool invalidateChildren);
////////////// //
////////////// // Summary:
////////////// // Invalidates the specified region of the control (adds it to the control's update
////////////// // region, which is the area that will be repainted at the next paint operation),
////////////// // and causes a paint message to be sent to the control.
////////////// //
////////////// // Parameters:
////////////// // region:
////////////// // The System.Drawing.Region to invalidate.
////////////// public void Invalidate(Region region);
////////////// //
////////////// // Summary:
////////////// // Invalidates the specified region of the control (adds it to the control's update
////////////// // region, which is the area that will be repainted at the next paint operation),
////////////// // and causes a paint message to be sent to the control.
////////////// //
////////////// // Parameters:
////////////// // rc:
////////////// // A System.Drawing.Rectangle that represents the region to invalidate.
////////////// public void Invalidate(Rectangle rc);
////////////// //
////////////// // Summary:
////////////// // Invalidates the entire surface of the control and causes the control to be redrawn.
////////////// public void Invalidate();
////////////// //
////////////// // Summary:
////////////// // Executes the specified delegate on the thread that owns the control's underlying
////////////// // window handle.
////////////// //
////////////// // Parameters:
////////////// // method:
////////////// // A delegate that contains a method to be called in the control's thread context.
////////////// //
////////////// // Returns:
////////////// // The return value from the delegate being invoked, or null if the delegate has
////////////// // no return value.
////////////// public object Invoke(Delegate method);
////////////// //
////////////// // Summary:
////////////// // Executes the specified delegate, on the thread that owns the control's underlying
////////////// // window handle, with the specified list of arguments.
////////////// //
////////////// // Parameters:
////////////// // method:
////////////// // A delegate to a method that takes parameters of the same number and type that
////////////// // are contained in the args parameter.
////////////// //
////////////// // args:
////////////// // An array of objects to pass as arguments to the specified method. This parameter
////////////// // can be null if the method takes no arguments.
////////////// //
////////////// // Returns:
////////////// // An System.Object that contains the return value from the delegate being invoked,
////////////// // or null if the delegate has no return value.
////////////// public object Invoke(Delegate method, params object[] args);
////////////// //
////////////// // Summary:
////////////// // Converts a Logical DPI value to it's equivalent DeviceUnit DPI value.
////////////// //
////////////// // Parameters:
////////////// // value:
////////////// // The Logical value to convert.
////////////// //
////////////// // Returns:
////////////// // The resulting DeviceUnit value.
////////////// public int LogicalToDeviceUnits(int value);
////////////// //
////////////// // Summary:
////////////// // Forces the control to apply layout logic to all its child controls.
////////////// //
////////////// // Parameters:
////////////// // affectedControl:
////////////// // A System.Windows.Forms.Control that represents the most recently changed control.
////////////// //
////////////// // affectedProperty:
////////////// // The name of the most recently changed property on the control.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public void PerformLayout(Control affectedControl, string affectedProperty);
////////////// //
////////////// // Summary:
////////////// // Forces the control to apply layout logic to all its child controls.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public void PerformLayout();
////////////// //
////////////// // Summary:
////////////// // Computes the location of the specified screen point into client coordinates.
////////////// //
////////////// // Parameters:
////////////// // p:
////////////// // The screen coordinate System.Drawing.Point to convert.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Point that represents the converted System.Drawing.Point, p,
////////////// // in client coordinates.
////////////// public Drawing.Point PointToClient(Drawing.Point p);
////////////// //
////////////// // Summary:
////////////// // Computes the location of the specified client point into screen coordinates.
////////////// //
////////////// // Parameters:
////////////// // p:
////////////// // The client coordinate System.Drawing.Point to convert.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Point that represents the converted System.Drawing.Point, p,
////////////// // in screen coordinates.
////////////// public Drawing.Point PointToScreen(Drawing.Point p);
////////////// //
////////////// // Summary:
////////////// // Preprocesses keyboard or input messages within the message loop before they are
////////////// // dispatched.
////////////// //
////////////// // Parameters:
////////////// // msg:
////////////// // A System.Windows.Forms.Message that represents the message to process.
////////////// //
////////////// // Returns:
////////////// // One of the System.Windows.Forms.PreProcessControlState values, depending on whether
////////////// // System.Windows.Forms.Control.PreProcessMessage(System.Windows.Forms.Message@)
////////////// // is true or false and whether System.Windows.Forms.Control.IsInputKey(System.Windows.Forms.Keys)
////////////// // or System.Windows.Forms.Control.IsInputChar(System.Char) are true or false.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public PreProcessControlState PreProcessControlMessage(ref Message msg);
////////////// //
////////////// // Summary:
////////////// // Preprocesses keyboard or input messages within the message loop before they are
////////////// // dispatched.
////////////// //
////////////// // Parameters:
////////////// // msg:
////////////// // A System.Windows.Forms.Message, passed by reference, that represents the message
////////////// // to process. The possible values are WM_KEYDOWN, WM_SYSKEYDOWN, WM_CHAR, and WM_SYSCHAR.
////////////// //
////////////// // Returns:
////////////// // true if the message was processed by the control; otherwise, false.
////////////// public virtual bool PreProcessMessage(ref Message msg);
////////////// //
////////////// // Summary:
////////////// // Computes the size and location of the specified screen rectangle in client coordinates.
////////////// //
////////////// // Parameters:
////////////// // r:
////////////// // The screen coordinate System.Drawing.Rectangle to convert.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Rectangle that represents the converted System.Drawing.Rectangle,
////////////// // r, in client coordinates.
////////////// public Rectangle RectangleToClient(Rectangle r);
////////////// //
////////////// // Summary:
////////////// // Computes the size and location of the specified client rectangle in screen coordinates.
////////////// //
////////////// // Parameters:
////////////// // r:
////////////// // The client coordinate System.Drawing.Rectangle to convert.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Rectangle that represents the converted System.Drawing.Rectangle,
////////////// // p, in screen coordinates.
////////////// public Rectangle RectangleToScreen(Rectangle r);
////////////// //
////////////// // Summary:
////////////// // Forces the control to invalidate its client area and immediately redraw itself
////////////// // and any child controls.
////////////// public virtual void Refresh();
////////////// //
////////////// // Summary:
////////////// // Resets the System.Windows.Forms.Control.BackColor property to its default value.
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// public virtual void ResetBackColor();
////////////// //
////////////// // Summary:
////////////// // Causes a control bound to the System.Windows.Forms.BindingSource to reread all
////////////// // the items in the list and refresh their displayed values.
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// public void ResetBindings();
////////////// //
////////////// // Summary:
////////////// // Resets the System.Windows.Forms.Control.Cursor property to its default value.
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// public virtual void ResetCursor();
////////////// //
////////////// // Summary:
////////////// // Resets the System.Windows.Forms.Control.Font property to its default value.
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// public virtual void ResetFont();
////////////// //
////////////// // Summary:
////////////// // Resets the System.Windows.Forms.Control.ForeColor property to its default value.
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// public virtual void ResetForeColor();
////////////// //
////////////// // Summary:
////////////// // Resets the System.Windows.Forms.Control.ImeMode property to its default value.
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// public void ResetImeMode();
////////////// //
////////////// // Summary:
////////////// // Resets the System.Windows.Forms.Control.RightToLeft property to its default value.
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// public virtual void ResetRightToLeft();
////////////// //
////////////// // Summary:
////////////// // Resets the System.Windows.Forms.Control.Text property to its default value.
////////////// public virtual void ResetText();
////////////// //
////////////// // Summary:
////////////// // Resumes usual layout logic, optionally forcing an immediate layout of pending
////////////// // layout requests.
////////////// //
////////////// // Parameters:
////////////// // performLayout:
////////////// // true to execute pending layout requests; otherwise, false.
////////////// public void ResumeLayout(bool performLayout);
////////////// //
////////////// // Summary:
////////////// // Resumes usual layout logic.
////////////// public void ResumeLayout();
////////////// //
////////////// // Summary:
////////////// // Scales the control and all child controls by the specified scaling factor.
////////////// //
////////////// // Parameters:
////////////// // factor:
////////////// // A System.Drawing.SizeF containing the horizontal and vertical scaling factors.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// public void Scale(SizeF factor);
////////////// //
////////////// // Summary:
////////////// // Scales the entire control and any child controls.
////////////// //
////////////// // Parameters:
////////////// // dx:
////////////// // The horizontal scaling factor.
////////////// //
////////////// // dy:
////////////// // The vertical scaling factor.
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// [Obsolete("This method has been deprecated. Use the Scale(SizeF ratio) method instead. http://go.microsoft.com/fwlink/?linkid=14202")]
////////////// public void Scale(float dx, float dy);
////////////// //
////////////// // Summary:
////////////// // Scales the control and any child controls.
////////////// //
////////////// // Parameters:
////////////// // ratio:
////////////// // The ratio to use for scaling.
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// [Obsolete("This method has been deprecated. Use the Scale(SizeF ratio) method instead. http://go.microsoft.com/fwlink/?linkid=14202")]
////////////// public void Scale(float ratio);
////////////// //
////////////// // Summary:
////////////// // Scales a logical bitmap value to it's equivalent device unit value when a DPI
////////////// // change occurs.
////////////// //
////////////// // Parameters:
////////////// // logicalBitmap:
////////////// // The bitmap to scale.
////////////// public void ScaleBitmapLogicalToDevice(ref Bitmap logicalBitmap);
////////////// //
////////////// // Summary:
////////////// // Activates the control.
////////////// public void Select();
////////////// //
////////////// // Summary:
////////////// // Activates the next control.
////////////// //
////////////// // Parameters:
////////////// // ctl:
////////////// // The System.Windows.Forms.Control at which to start the search.
////////////// //
////////////// // forward:
////////////// // true to move forward in the tab order; false to move backward in the tab order.
////////////// //
////////////// // tabStopOnly:
////////////// // true to ignore the controls with the System.Windows.Forms.Control.TabStop property
////////////// // set to false; otherwise, false.
////////////// //
////////////// // nested:
////////////// // true to include nested (children of child controls) child controls; otherwise,
////////////// // false.
////////////// //
////////////// // wrap:
////////////// // true to continue searching from the first control in the tab order after the
////////////// // last control has been reached; otherwise, false.
////////////// //
////////////// // Returns:
////////////// // true if a control was activated; otherwise, false.
////////////// public bool SelectNextControl(Control ctl, bool forward, bool tabStopOnly, bool nested, bool wrap);
////////////// //
////////////// // Summary:
////////////// // Sends the control to the back of the z-order.
////////////// public void SendToBack();
////////////// //
////////////// // Summary:
////////////// // Sets the bounds of the control to the specified location and size.
////////////// //
////////////// // Parameters:
////////////// // x:
////////////// // The new System.Windows.Forms.Control.Left property value of the control.
////////////// //
////////////// // y:
////////////// // The new System.Windows.Forms.Control.Top property value of the control.
////////////// //
////////////// // width:
////////////// // The new System.Windows.Forms.Control.Width property value of the control.
////////////// //
////////////// // height:
////////////// // The new System.Windows.Forms.Control.Height property value of the control.
////////////// public void SetBounds(int x, int y, int width, int height);
////////////// //
////////////// // Summary:
////////////// // Sets the specified bounds of the control to the specified location and size.
////////////// //
////////////// // Parameters:
////////////// // x:
////////////// // The new System.Windows.Forms.Control.Left property value of the control.
////////////// //
////////////// // y:
////////////// // The new System.Windows.Forms.Control.Top property value of the control.
////////////// //
////////////// // width:
////////////// // The new System.Windows.Forms.Control.Width property value of the control.
////////////// //
////////////// // height:
////////////// // The new System.Windows.Forms.Control.Height property value of the control.
////////////// //
////////////// // specified:
////////////// // A bitwise combination of the System.Windows.Forms.BoundsSpecified values. For
////////////// // any parameter not specified, the current value will be used.
////////////// public void SetBounds(int x, int y, int width, int height, BoundsSpecified specified);
////////////// //
////////////// // Summary:
////////////// // Displays the control to the user.
////////////// public void Show();
////////////// //
////////////// // Summary:
////////////// // Temporarily suspends the layout logic for the control.
////////////// public void SuspendLayout();
////////////// //
////////////// // Summary:
////////////// // Causes the control to redraw the invalidated regions within its client area.
////////////// public void Update();
////////////// //
////////////// // Summary:
////////////// // Notifies the accessibility client applications of the specified System.Windows.Forms.AccessibleEvents
////////////// // for the specified child control .
////////////// //
////////////// // Parameters:
////////////// // accEvent:
////////////// // The System.Windows.Forms.AccessibleEvents to notify the accessibility client
////////////// // applications of.
////////////// //
////////////// // objectID:
////////////// // The identifier of the System.Windows.Forms.AccessibleObject.
////////////// //
////////////// // childID:
////////////// // The child System.Windows.Forms.Control to notify of the accessible event.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void AccessibilityNotifyClients(AccessibleEvents accEvent, int objectID, int childID);
////////////// //
////////////// // Summary:
////////////// // Creates a new accessibility object for the control.
////////////// //
////////////// // Returns:
////////////// // A new System.Windows.Forms.AccessibleObject for the control.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual AccessibleObject CreateAccessibilityInstance();
////////////// //
////////////// // Summary:
////////////// // Creates a new instance of the control collection for the control.
////////////// //
////////////// // Returns:
////////////// // A new instance of System.Windows.Forms.Control.ControlCollection assigned to
////////////// // the control.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual ControlCollection CreateControlsInstance();
////////////// //
////////////// // Summary:
////////////// // Creates a handle for the control.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ObjectDisposedException:
////////////// // The object is in a disposed state.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void CreateHandle();
////////////// //
////////////// // Summary:
////////////// // Sends the specified message to the default window procedure.
////////////// //
////////////// // Parameters:
////////////// // m:
////////////// // The Windows System.Windows.Forms.Message to process.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void DefWndProc(ref Message m);
////////////// //
////////////// // Summary:
////////////// // Destroys the handle associated with the control.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void DestroyHandle();
////////////// //
////////////// // Summary:
////////////// // Releases the unmanaged resources used by the System.Windows.Forms.Control and
////////////// // its child controls and optionally releases the managed resources.
////////////// //
////////////// // Parameters:
////////////// // disposing:
////////////// // true to release both managed and unmanaged resources; false to release only unmanaged
////////////// // resources.
////////////// protected override void Dispose(bool disposing);
////////////// //
////////////// // Summary:
////////////// // Retrieves the specified System.Windows.Forms.AccessibleObject.
////////////// //
////////////// // Parameters:
////////////// // objectId:
////////////// // An Int32 that identifies the System.Windows.Forms.AccessibleObject to retrieve.
////////////// //
////////////// // Returns:
////////////// // The specified System.Windows.Forms.AccessibleObject.
////////////// protected virtual AccessibleObject GetAccessibilityObjectById(int objectId);
////////////// //
////////////// // Summary:
////////////// // Retrieves a value indicating how a control will behave when its System.Windows.Forms.Control.AutoSize
////////////// // property is enabled.
////////////// //
////////////// // Returns:
////////////// // One of the System.Windows.Forms.AutoSizeMode values.
////////////// protected AutoSizeMode GetAutoSizeMode();
////////////// //
////////////// // Summary:
////////////// // Retrieves the bounds within which the control is scaled.
////////////// //
////////////// // Parameters:
////////////// // bounds:
////////////// // A System.Drawing.Rectangle that specifies the area for which to retrieve the
////////////// // display bounds.
////////////// //
////////////// // factor:
////////////// // The height and width of the control's bounds.
////////////// //
////////////// // specified:
////////////// // One of the values of System.Windows.Forms.BoundsSpecified that specifies the
////////////// // bounds of the control to use when defining its size and position.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Rectangle representing the bounds within which the control is
////////////// // scaled.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual Rectangle GetScaledBounds(Rectangle bounds, SizeF factor, BoundsSpecified specified);
////////////// //
////////////// // Summary:
////////////// // Retrieves the value of the specified control style bit for the control.
////////////// //
////////////// // Parameters:
////////////// // flag:
////////////// // The System.Windows.Forms.ControlStyles bit to return the value from.
////////////// //
////////////// // Returns:
////////////// // true if the specified control style bit is set to true; otherwise, false.
////////////// protected bool GetStyle(ControlStyles flag);
////////////// //
////////////// // Summary:
////////////// // Determines if the control is a top-level control.
////////////// //
////////////// // Returns:
////////////// // true if the control is a top-level control; otherwise, false.
////////////// protected bool GetTopLevel();
////////////// //
////////////// // Summary:
////////////// // Called after the control has been added to another container.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void InitLayout();
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.GotFocus event for the specified control.
////////////// //
////////////// // Parameters:
////////////// // toInvoke:
////////////// // The System.Windows.Forms.Control to assign the event to.
////////////// //
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void InvokeGotFocus(Control toInvoke, EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.LostFocus event for the specified control.
////////////// //
////////////// // Parameters:
////////////// // toInvoke:
////////////// // The System.Windows.Forms.Control to assign the event to.
////////////// //
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void InvokeLostFocus(Control toInvoke, EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Click event for the specified control.
////////////// //
////////////// // Parameters:
////////////// // toInvoke:
////////////// // The System.Windows.Forms.Control to assign the System.Windows.Forms.Control.Click
////////////// // event to.
////////////// //
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void InvokeOnClick(Control toInvoke, EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Paint event for the specified control.
////////////// //
////////////// // Parameters:
////////////// // c:
////////////// // The System.Windows.Forms.Control to assign the System.Windows.Forms.Control.Paint
////////////// // event to.
////////////// //
////////////// // e:
////////////// // An System.Windows.Forms.PaintEventArgs that contains the event data.
////////////// protected void InvokePaint(Control c, PaintEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the PaintBackground event for the specified control.
////////////// //
////////////// // Parameters:
////////////// // c:
////////////// // The System.Windows.Forms.Control to assign the System.Windows.Forms.Control.Paint
////////////// // event to.
////////////// //
////////////// // e:
////////////// // An System.Windows.Forms.PaintEventArgs that contains the event data.
////////////// protected void InvokePaintBackground(Control c, PaintEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Determines if a character is an input character that the control recognizes.
////////////// //
////////////// // Parameters:
////////////// // charCode:
////////////// // The character to test.
////////////// //
////////////// // Returns:
////////////// // true if the character should be sent directly to the control and not preprocessed;
////////////// // otherwise, false.
////////////// protected virtual bool IsInputChar(char charCode);
////////////// //
////////////// // Summary:
////////////// // Determines whether the specified key is a regular input key or a special key
////////////// // that requires preprocessing.
////////////// //
////////////// // Parameters:
////////////// // keyData:
////////////// // One of the System.Windows.Forms.Keys values.
////////////// //
////////////// // Returns:
////////////// // true if the specified key is a regular input key; otherwise, false.
////////////// protected virtual bool IsInputKey(Keys keyData);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Invalidated event with a specified region
////////////// // of the control to invalidate.
////////////// //
////////////// // Parameters:
////////////// // invalidatedArea:
////////////// // A System.Drawing.Rectangle representing the area to invalidate.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void NotifyInvalidate(Rectangle invalidatedArea);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.AutoSizeChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// protected virtual void OnAutoSizeChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.BackColorChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnBackColorChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.BackgroundImageChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnBackgroundImageChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.BackgroundImageLayoutChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnBackgroundImageLayoutChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.BindingContextChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnBindingContextChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.CausesValidationChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnCausesValidationChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.ChangeUICues event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.UICuesEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnChangeUICues(UICuesEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Click event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnClick(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.ClientSizeChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnClientSizeChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.ContextMenuChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnContextMenuChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.ContextMenuStripChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnContextMenuStripChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.ControlAdded event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.ControlEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnControlAdded(ControlEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.ControlRemoved event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.ControlEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnControlRemoved(ControlEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.CreateControl method.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnCreateControl();
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.CursorChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnCursorChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.DockChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnDockChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.DoubleClick event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnDoubleClick(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.DpiChangedAfterParent event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.Windows.Forms.DpiChangedEventArgs that contains the event data.
////////////// [Browsable(true)]
////////////// [EditorBrowsable(EditorBrowsableState.Always)]
////////////// protected virtual void OnDpiChangedAfterParent(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.DpiChangedBeforeParent event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.Windows.Forms.DpiChangedEventArgs that contains the event data.
////////////// [Browsable(true)]
////////////// [EditorBrowsable(EditorBrowsableState.Always)]
////////////// protected virtual void OnDpiChangedBeforeParent(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.DragDrop event.
////////////// //
////////////// // Parameters:
////////////// // drgevent:
////////////// // A System.Windows.Forms.DragEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnDragDrop(DragEventArgs drgevent);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.DragEnter event.
////////////// //
////////////// // Parameters:
////////////// // drgevent:
////////////// // A System.Windows.Forms.DragEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnDragEnter(DragEventArgs drgevent);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.DragLeave event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnDragLeave(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.DragOver event.
////////////// //
////////////// // Parameters:
////////////// // drgevent:
////////////// // A System.Windows.Forms.DragEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnDragOver(DragEventArgs drgevent);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.EnabledChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnEnabledChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Enter event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnEnter(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.FontChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnFontChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.ForeColorChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnForeColorChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.GiveFeedback event.
////////////// //
////////////// // Parameters:
////////////// // gfbevent:
////////////// // A System.Windows.Forms.GiveFeedbackEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnGiveFeedback(GiveFeedbackEventArgs gfbevent);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.GotFocus event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnGotFocus(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.HandleCreated event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnHandleCreated(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.HandleDestroyed event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnHandleDestroyed(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.HelpRequested event.
////////////// //
////////////// // Parameters:
////////////// // hevent:
////////////// // A System.Windows.Forms.HelpEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnHelpRequested(HelpEventArgs hevent);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.ImeModeChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// protected virtual void OnImeModeChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Invalidated event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.Windows.Forms.InvalidateEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnInvalidated(InvalidateEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.KeyDown event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.KeyEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnKeyDown(KeyEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.KeyPress event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.KeyPressEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnKeyPress(KeyPressEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.KeyUp event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.KeyEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnKeyUp(KeyEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Layout event.
////////////// //
////////////// // Parameters:
////////////// // levent:
////////////// // A System.Windows.Forms.LayoutEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnLayout(LayoutEventArgs levent);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Leave event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnLeave(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.LocationChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnLocationChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.LostFocus event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnLostFocus(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.MarginChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.EventArgs that contains the event data.
////////////// protected virtual void OnMarginChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.MouseCaptureChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnMouseCaptureChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.MouseClick event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.Windows.Forms.MouseEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnMouseClick(MouseEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.MouseDoubleClick event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.Windows.Forms.MouseEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnMouseDoubleClick(MouseEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.MouseDown event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.MouseEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnMouseDown(MouseEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.MouseEnter event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnMouseEnter(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.MouseHover event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnMouseHover(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.MouseLeave event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnMouseLeave(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.MouseMove event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.MouseEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnMouseMove(MouseEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.MouseUp event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.MouseEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnMouseUp(MouseEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.MouseWheel event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.MouseEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnMouseWheel(MouseEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Move event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnMove(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Notifies the control of Windows messages.
////////////// //
////////////// // Parameters:
////////////// // m:
////////////// // A System.Windows.Forms.Message that represents the Windows message.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnNotifyMessage(Message m);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.PaddingChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.EventArgs that contains the event data.
////////////// protected virtual void OnPaddingChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Paint event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.PaintEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnPaint(PaintEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Paints the background of the control.
////////////// //
////////////// // Parameters:
////////////// // pevent:
////////////// // A System.Windows.Forms.PaintEventArgs that contains information about the control
////////////// // to paint.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnPaintBackground(PaintEventArgs pevent);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.BackColorChanged event when the System.Windows.Forms.Control.BackColor
////////////// // property value of the control's container changes.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnParentBackColorChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.BackgroundImageChanged event when the
////////////// // System.Windows.Forms.Control.BackgroundImage property value of the control's
////////////// // container changes.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnParentBackgroundImageChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.BindingContextChanged event when the
////////////// // System.Windows.Forms.Control.BindingContext property value of the control's container
////////////// // changes.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnParentBindingContextChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.ParentChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnParentChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.CursorChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnParentCursorChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.EnabledChanged event when the System.Windows.Forms.Control.Enabled
////////////// // property value of the control's container changes.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnParentEnabledChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.FontChanged event when the System.Windows.Forms.Control.Font
////////////// // property value of the control's container changes.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnParentFontChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.ForeColorChanged event when the System.Windows.Forms.Control.ForeColor
////////////// // property value of the control's container changes.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnParentForeColorChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.RightToLeftChanged event when the System.Windows.Forms.Control.RightToLeft
////////////// // property value of the control's container changes.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnParentRightToLeftChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.VisibleChanged event when the System.Windows.Forms.Control.Visible
////////////// // property value of the control's container changes.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnParentVisibleChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.PreviewKeyDown event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.PreviewKeyDownEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnPreviewKeyDown(PreviewKeyDownEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Paint event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.Windows.Forms.PaintEventArgs that contains the event data.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ArgumentNullException:
////////////// // The e parameter is null.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnPrint(PaintEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.QueryContinueDrag event.
////////////// //
////////////// // Parameters:
////////////// // qcdevent:
////////////// // A System.Windows.Forms.QueryContinueDragEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnQueryContinueDrag(QueryContinueDragEventArgs qcdevent);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.RegionChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnRegionChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Resize event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnResize(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.RightToLeftChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnRightToLeftChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.SizeChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnSizeChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.StyleChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnStyleChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.SystemColorsChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnSystemColorsChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.TabIndexChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnTabIndexChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.TabStopChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnTabStopChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.TextChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnTextChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Validated event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnValidated(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.Validating event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // A System.ComponentModel.CancelEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnValidating(CancelEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the System.Windows.Forms.Control.VisibleChanged event.
////////////// //
////////////// // Parameters:
////////////// // e:
////////////// // An System.EventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void OnVisibleChanged(EventArgs e);
////////////// //
////////////// // Summary:
////////////// // Processes a command key.
////////////// //
////////////// // Parameters:
////////////// // msg:
////////////// // A System.Windows.Forms.Message, passed by reference, that represents the window
////////////// // message to process.
////////////// //
////////////// // keyData:
////////////// // One of the System.Windows.Forms.Keys values that represents the key to process.
////////////// //
////////////// // Returns:
////////////// // true if the character was processed by the control; otherwise, false.
////////////// protected virtual bool ProcessCmdKey(ref Message msg, Keys keyData);
////////////// //
////////////// // Summary:
////////////// // Processes a dialog character.
////////////// //
////////////// // Parameters:
////////////// // charCode:
////////////// // The character to process.
////////////// //
////////////// // Returns:
////////////// // true if the character was processed by the control; otherwise, false.
////////////// protected virtual bool ProcessDialogChar(char charCode);
////////////// //
////////////// // Summary:
////////////// // Processes a dialog key.
////////////// //
////////////// // Parameters:
////////////// // keyData:
////////////// // One of the System.Windows.Forms.Keys values that represents the key to process.
////////////// //
////////////// // Returns:
////////////// // true if the key was processed by the control; otherwise, false.
////////////// protected virtual bool ProcessDialogKey(Keys keyData);
////////////// //
////////////// // Summary:
////////////// // Processes a key message and generates the appropriate control events.
////////////// //
////////////// // Parameters:
////////////// // m:
////////////// // A System.Windows.Forms.Message, passed by reference, that represents the window
////////////// // message to process.
////////////// //
////////////// // Returns:
////////////// // true if the message was processed by the control; otherwise, false.
////////////// protected virtual bool ProcessKeyEventArgs(ref Message m);
////////////// //
////////////// // Summary:
////////////// // Previews a keyboard message.
////////////// //
////////////// // Parameters:
////////////// // m:
////////////// // A System.Windows.Forms.Message, passed by reference, that represents the window
////////////// // message to process.
////////////// //
////////////// // Returns:
////////////// // true if the message was processed by the control; otherwise, false.
////////////// protected virtual bool ProcessKeyPreview(ref Message m);
////////////// //
////////////// // Summary:
////////////// // Raises the appropriate drag event.
////////////// //
////////////// // Parameters:
////////////// // key:
////////////// // The event to raise.
////////////// //
////////////// // e:
////////////// // A System.Windows.Forms.DragEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void RaiseDragEvent(object key, DragEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the appropriate key event.
////////////// //
////////////// // Parameters:
////////////// // key:
////////////// // The event to raise.
////////////// //
////////////// // e:
////////////// // A System.Windows.Forms.KeyEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void RaiseKeyEvent(object key, KeyEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the appropriate mouse event.
////////////// //
////////////// // Parameters:
////////////// // key:
////////////// // The event to raise.
////////////// //
////////////// // e:
////////////// // A System.Windows.Forms.MouseEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void RaiseMouseEvent(object key, MouseEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Raises the appropriate paint event.
////////////// //
////////////// // Parameters:
////////////// // key:
////////////// // The event to raise.
////////////// //
////////////// // e:
////////////// // A System.Windows.Forms.PaintEventArgs that contains the event data.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void RaisePaintEvent(object key, PaintEventArgs e);
////////////// //
////////////// // Summary:
////////////// // Forces the re-creation of the handle for the control.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void RecreateHandle();
////////////// //
////////////// // Summary:
////////////// // Provides constants for rescaling the control when a DPI change occurs.
////////////// //
////////////// // Parameters:
////////////// // deviceDpiOld:
////////////// // The DPI value prior to the change.
////////////// //
////////////// // deviceDpiNew:
////////////// // The DPI value after the change.
////////////// [Browsable(true)]
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void RescaleConstantsForDpi(int deviceDpiOld, int deviceDpiNew);
////////////// //
////////////// // Summary:
////////////// // Resets the control to handle the System.Windows.Forms.Control.MouseLeave event.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void ResetMouseEventArgs();
////////////// //
////////////// // Summary:
////////////// // Converts the specified System.Windows.Forms.HorizontalAlignment to the appropriate
////////////// // System.Windows.Forms.HorizontalAlignment to support right-to-left text.
////////////// //
////////////// // Parameters:
////////////// // align:
////////////// // One of the System.Windows.Forms.HorizontalAlignment values.
////////////// //
////////////// // Returns:
////////////// // One of the System.Windows.Forms.HorizontalAlignment values.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected HorizontalAlignment RtlTranslateAlignment(HorizontalAlignment align);
////////////// //
////////////// // Summary:
////////////// // Converts the specified System.Windows.Forms.LeftRightAlignment to the appropriate
////////////// // System.Windows.Forms.LeftRightAlignment to support right-to-left text.
////////////// //
////////////// // Parameters:
////////////// // align:
////////////// // One of the System.Windows.Forms.LeftRightAlignment values.
////////////// //
////////////// // Returns:
////////////// // One of the System.Windows.Forms.LeftRightAlignment values.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected LeftRightAlignment RtlTranslateAlignment(LeftRightAlignment align);
////////////// //
////////////// // Summary:
////////////// // Converts the specified System.Drawing.ContentAlignment to the appropriate System.Drawing.ContentAlignment
////////////// // to support right-to-left text.
////////////// //
////////////// // Parameters:
////////////// // align:
////////////// // One of the System.Drawing.ContentAlignment values.
////////////// //
////////////// // Returns:
////////////// // One of the System.Drawing.ContentAlignment values.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected ContentAlignment RtlTranslateAlignment(ContentAlignment align);
////////////// //
////////////// // Summary:
////////////// // Converts the specified System.Windows.Forms.HorizontalAlignment to the appropriate
////////////// // System.Windows.Forms.HorizontalAlignment to support right-to-left text.
////////////// //
////////////// // Parameters:
////////////// // align:
////////////// // One of the System.Windows.Forms.HorizontalAlignment values.
////////////// //
////////////// // Returns:
////////////// // One of the System.Windows.Forms.HorizontalAlignment values.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected HorizontalAlignment RtlTranslateHorizontal(HorizontalAlignment align);
////////////// //
////////////// // Summary:
////////////// // Converts the specified System.Windows.Forms.LeftRightAlignment to the appropriate
////////////// // System.Windows.Forms.LeftRightAlignment to support right-to-left text.
////////////// //
////////////// // Parameters:
////////////// // align:
////////////// // One of the System.Windows.Forms.LeftRightAlignment values.
////////////// //
////////////// // Returns:
////////////// // One of the System.Windows.Forms.LeftRightAlignment values.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected LeftRightAlignment RtlTranslateLeftRight(LeftRightAlignment align);
////////////// //
////////////// // Summary:
////////////// // Scales a control's location, size, padding and margin.
////////////// //
////////////// // Parameters:
////////////// // factor:
////////////// // The factor by which the height and width of the control will be scaled.
////////////// //
////////////// // specified:
////////////// // A System.Windows.Forms.BoundsSpecified value that specifies the bounds of the
////////////// // control to use when defining its size and position.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void ScaleControl(SizeF factor, BoundsSpecified specified);
////////////// //
////////////// // Summary:
////////////// // This method is not relevant for this class.
////////////// //
////////////// // Parameters:
////////////// // dx:
////////////// // The horizontal scaling factor.
////////////// //
////////////// // dy:
////////////// // The vertical scaling factor.
////////////// [EditorBrowsable(EditorBrowsableState.Never)]
////////////// protected virtual void ScaleCore(float dx, float dy);
////////////// //
////////////// // Summary:
////////////// // Activates a child control. Optionally specifies the direction in the tab order
////////////// // to select the control from.
////////////// //
////////////// // Parameters:
////////////// // directed:
////////////// // true to specify the direction of the control to select; otherwise, false.
////////////// //
////////////// // forward:
////////////// // true to move forward in the tab order; false to move backward in the tab order.
////////////// protected virtual void Select(bool directed, bool forward);
////////////// //
////////////// // Summary:
////////////// // Sets a value indicating how a control will behave when its System.Windows.Forms.Control.AutoSize
////////////// // property is enabled.
////////////// //
////////////// // Parameters:
////////////// // mode:
////////////// // One of the System.Windows.Forms.AutoSizeMode values.
////////////// protected void SetAutoSizeMode(AutoSizeMode mode);
////////////// //
////////////// // Summary:
////////////// // Performs the work of setting the specified bounds of this control.
////////////// //
////////////// // Parameters:
////////////// // x:
////////////// // The new System.Windows.Forms.Control.Left property value of the control.
////////////// //
////////////// // y:
////////////// // The new System.Windows.Forms.Control.Top property value of the control.
////////////// //
////////////// // width:
////////////// // The new System.Windows.Forms.Control.Width property value of the control.
////////////// //
////////////// // height:
////////////// // The new System.Windows.Forms.Control.Height property value of the control.
////////////// //
////////////// // specified:
////////////// // A bitwise combination of the System.Windows.Forms.BoundsSpecified values.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified);
////////////// //
////////////// // Summary:
////////////// // Sets the size of the client area of the control.
////////////// //
////////////// // Parameters:
////////////// // x:
////////////// // The client area width, in pixels.
////////////// //
////////////// // y:
////////////// // The client area height, in pixels.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual void SetClientSizeCore(int x, int y);
////////////// //
////////////// // Summary:
////////////// // Sets a specified System.Windows.Forms.ControlStyles flag to either true or false.
////////////// //
////////////// // Parameters:
////////////// // flag:
////////////// // The System.Windows.Forms.ControlStyles bit to set.
////////////// //
////////////// // value:
////////////// // true to apply the specified style to the control; otherwise, false.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void SetStyle(ControlStyles flag, bool value);
////////////// //
////////////// // Summary:
////////////// // Sets the control as the top-level control.
////////////// //
////////////// // Parameters:
////////////// // value:
////////////// // true to set the control as the top-level control; otherwise, false.
////////////// //
////////////// // Exceptions:
////////////// // T:System.InvalidOperationException:
////////////// // The value parameter is set to true and the control is an ActiveX control.
////////////// //
////////////// // T:System.Exception:
////////////// // The System.Windows.Forms.Control.GetTopLevel return value is not equal to the
////////////// // value parameter and the System.Windows.Forms.Control.Parent property is not null.
////////////// protected void SetTopLevel(bool value);
////////////// //
////////////// // Summary:
////////////// // Sets the control to the specified visible state.
////////////// //
////////////// // Parameters:
////////////// // value:
////////////// // true to make the control visible; otherwise, false.
////////////// protected virtual void SetVisibleCore(bool value);
////////////// //
////////////// // Summary:
////////////// // Determines the size of the entire control from the height and width of its client
////////////// // area.
////////////// //
////////////// // Parameters:
////////////// // clientSize:
////////////// // A System.Drawing.Size value representing the height and width of the control's
////////////// // client area.
////////////// //
////////////// // Returns:
////////////// // A System.Drawing.Size value representing the height and width of the entire control.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected virtual Drawing.Size SizeFromClientSize(Drawing.Size clientSize);
////////////// //
////////////// // Summary:
////////////// // Updates the bounds of the control with the specified size, location, and client
////////////// // size.
////////////// //
////////////// // Parameters:
////////////// // x:
////////////// // The System.Drawing.Point.X coordinate of the control.
////////////// //
////////////// // y:
////////////// // The System.Drawing.Point.Y coordinate of the control.
////////////// //
////////////// // width:
////////////// // The System.Drawing.Size.Width of the control.
////////////// //
////////////// // height:
////////////// // The System.Drawing.Size.Height of the control.
////////////// //
////////////// // clientWidth:
////////////// // The client System.Drawing.Size.Width of the control.
////////////// //
////////////// // clientHeight:
////////////// // The client System.Drawing.Size.Height of the control.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void UpdateBounds(int x, int y, int width, int height, int clientWidth, int clientHeight);
////////////// //
////////////// // Summary:
////////////// // Updates the bounds of the control with the specified size and location.
////////////// //
////////////// // Parameters:
////////////// // x:
////////////// // The System.Drawing.Point.X coordinate of the control.
////////////// //
////////////// // y:
////////////// // The System.Drawing.Point.Y coordinate of the control.
////////////// //
////////////// // width:
////////////// // The System.Drawing.Size.Width of the control.
////////////// //
////////////// // height:
////////////// // The System.Drawing.Size.Height of the control.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void UpdateBounds(int x, int y, int width, int height);
////////////// //
////////////// // Summary:
////////////// // Forces the assigned styles to be reapplied to the control.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void UpdateStyles();
////////////// //
////////////// // Summary:
////////////// // Updates the control in its parent's z-order.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected void UpdateZOrder();
////////////// //
////////////// // Summary:
////////////// // Processes Windows messages.
////////////// //
////////////// // Parameters:
////////////// // m:
////////////// // The Windows System.Windows.Forms.Message to process.
////////////// protected virtual void WndProc(ref Message m);
////////////// //
////////////// // Summary:
////////////// // Notifies the accessibility client applications of the specified System.Windows.Forms.AccessibleEvents
////////////// // for the specified child control.
////////////// //
////////////// // Parameters:
////////////// // accEvent:
////////////// // The System.Windows.Forms.AccessibleEvents to notify the accessibility client
////////////// // applications of.
////////////// //
////////////// // childID:
////////////// // The child System.Windows.Forms.Control to notify of the accessible event.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected internal void AccessibilityNotifyClients(AccessibleEvents accEvent, int childID);
////////////// //
////////////// // Summary:
////////////// // Processes a keyboard message.
////////////// //
////////////// // Parameters:
////////////// // m:
////////////// // A System.Windows.Forms.Message, passed by reference, that represents the window
////////////// // message to process.
////////////// //
////////////// // Returns:
////////////// // true if the message was processed by the control; otherwise, false.
////////////// protected internal virtual bool ProcessKeyMessage(ref Message m);
////////////// //
////////////// // Summary:
////////////// // Processes a mnemonic character.
////////////// //
////////////// // Parameters:
////////////// // charCode:
////////////// // The character to process.
////////////// //
////////////// // Returns:
////////////// // true if the character was processed as a mnemonic by the control; otherwise,
////////////// // false.
////////////// protected internal virtual bool ProcessMnemonic(char charCode);
////////////// //
////////////// // Summary:
////////////// // Converts the specified System.Drawing.ContentAlignment to the appropriate System.Drawing.ContentAlignment
////////////// // to support right-to-left text.
////////////// //
////////////// // Parameters:
////////////// // align:
////////////// // One of the System.Drawing.ContentAlignment values.
////////////// //
////////////// // Returns:
////////////// // One of the System.Drawing.ContentAlignment values.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected internal ContentAlignment RtlTranslateContent(ContentAlignment align);
////////////// //
////////////// // Summary:
////////////// // Updates the bounds of the control with the current size and location.
////////////// [EditorBrowsable(EditorBrowsableState.Advanced)]
////////////// protected internal void UpdateBounds();
////////////// //
////////////// // Summary:
////////////// // Represents a collection of System.Windows.Forms.Control objects.
////////////// [ComVisible(false)]
////////////// [DefaultMember("Item")]
////////////// [ListBindable(false)]
////////////// public class ControlCollection : ArrangedElementCollection, IList, ICollection, IEnumerable, ICloneable
////////////// {
////////////// //
////////////// // Summary:
////////////// // Initializes a new instance of the System.Windows.Forms.Control.ControlCollection
////////////// // class.
////////////// //
////////////// // Parameters:
////////////// // owner:
////////////// // A System.Windows.Forms.Control representing the control that owns the control
////////////// // collection.
////////////// public ControlCollection(Control owner);
////////////// //
////////////// // Summary:
////////////// // Indicates the System.Windows.Forms.Control at the specified indexed location
////////////// // in the collection.
////////////// //
////////////// // Parameters:
////////////// // index:
////////////// // The index of the control to retrieve from the control collection.
////////////// //
////////////// // Returns:
////////////// // The System.Windows.Forms.Control located at the specified index location within
////////////// // the control collection.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ArgumentOutOfRangeException:
////////////// // The index value is less than zero or is greater than or equal to the number of
////////////// // controls in the collection.
////////////// public virtual Control this[int index] { get; }
////////////// //
////////////// // Summary:
////////////// // Indicates a System.Windows.Forms.Control with the specified key in the collection.
////////////// //
////////////// // Parameters:
////////////// // key:
////////////// // The name of the control to retrieve from the control collection.
////////////// //
////////////// // Returns:
////////////// // The System.Windows.Forms.Control with the specified key within the System.Windows.Forms.Control.ControlCollection.
////////////// public virtual Control this[string key] { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the control that owns this System.Windows.Forms.Control.ControlCollection.
////////////// //
////////////// // Returns:
////////////// // The System.Windows.Forms.Control that owns this System.Windows.Forms.Control.ControlCollection.
////////////// public Control Owner { get; }
////////////// //
////////////// // Summary:
////////////// // Adds the specified control to the control collection.
////////////// //
////////////// // Parameters:
////////////// // value:
////////////// // The System.Windows.Forms.Control to add to the control collection.
////////////// //
////////////// // Exceptions:
////////////// // T:System.Exception:
////////////// // The specified control is a top-level control, or a circular control reference
////////////// // would result if this control were added to the control collection.
////////////// //
////////////// // T:System.ArgumentException:
////////////// // The object assigned to the value parameter is not a System.Windows.Forms.Control.
////////////// public virtual void Add(Control value);
////////////// //
////////////// // Summary:
////////////// // Adds an array of control objects to the collection.
////////////// //
////////////// // Parameters:
////////////// // controls:
////////////// // An array of System.Windows.Forms.Control objects to add to the collection.
////////////// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
////////////// public virtual void AddRange(Control[] controls);
////////////// //
////////////// // Summary:
////////////// // Removes all controls from the collection.
////////////// public virtual void Clear();
////////////// //
////////////// // Summary:
////////////// // Determines whether the specified control is a member of the collection.
////////////// //
////////////// // Parameters:
////////////// // control:
////////////// // The System.Windows.Forms.Control to locate in the collection.
////////////// //
////////////// // Returns:
////////////// // true if the System.Windows.Forms.Control is a member of the collection; otherwise,
////////////// // false.
////////////// public bool Contains(Control control);
////////////// //
////////////// // Summary:
////////////// // Determines whether the System.Windows.Forms.Control.ControlCollection contains
////////////// // an item with the specified key.
////////////// //
////////////// // Parameters:
////////////// // key:
////////////// // The key to locate in the System.Windows.Forms.Control.ControlCollection.
////////////// //
////////////// // Returns:
////////////// // true if the System.Windows.Forms.Control.ControlCollection contains an item with
////////////// // the specified key; otherwise, false.
////////////// public virtual bool ContainsKey(string key);
////////////// //
////////////// // Summary:
////////////// // Searches for controls by their System.Windows.Forms.Control.Name property and
////////////// // builds an array of all the controls that match.
////////////// //
////////////// // Parameters:
////////////// // key:
////////////// // The key to locate in the System.Windows.Forms.Control.ControlCollection.
////////////// //
////////////// // searchAllChildren:
////////////// // true to search all child controls; otherwise, false.
////////////// //
////////////// // Returns:
////////////// // An array of type System.Windows.Forms.Control containing the matching controls.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ArgumentException:
////////////// // The key parameter is null or the empty string ("").
////////////// public Control[] Find(string key, bool searchAllChildren);
////////////// //
////////////// // Summary:
////////////// // Retrieves the index of the specified child control within the control collection.
////////////// //
////////////// // Parameters:
////////////// // child:
////////////// // The System.Windows.Forms.Control to search for in the control collection.
////////////// //
////////////// // Returns:
////////////// // A zero-based index value that represents the location of the specified child
////////////// // control within the control collection.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ArgumentException:
////////////// // The childSystem.Windows.Forms.Control is not in the System.Windows.Forms.Control.ControlCollection.
////////////// public int GetChildIndex(Control child);
////////////// //
////////////// // Summary:
////////////// // Retrieves the index of the specified child control within the control collection,
////////////// // and optionally raises an exception if the specified control is not within the
////////////// // control collection.
////////////// //
////////////// // Parameters:
////////////// // child:
////////////// // The System.Windows.Forms.Control to search for in the control collection.
////////////// //
////////////// // throwException:
////////////// // true to throw an exception if the System.Windows.Forms.Control specified in the
////////////// // child parameter is not a control in the System.Windows.Forms.Control.ControlCollection;
////////////// // otherwise, false.
////////////// //
////////////// // Returns:
////////////// // A zero-based index value that represents the location of the specified child
////////////// // control within the control collection; otherwise -1 if the specified System.Windows.Forms.Control
////////////// // is not found in the System.Windows.Forms.Control.ControlCollection.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ArgumentException:
////////////// // The childSystem.Windows.Forms.Control is not in the System.Windows.Forms.Control.ControlCollection,
////////////// // and the throwException parameter value is true.
////////////// public virtual int GetChildIndex(Control child, bool throwException);
////////////// //
////////////// // Summary:
////////////// // Retrieves a reference to an enumerator object that is used to iterate over a
////////////// // System.Windows.Forms.Control.ControlCollection.
////////////// //
////////////// // Returns:
////////////// // An System.Collections.IEnumerator.
////////////// public override IEnumerator GetEnumerator();
////////////// //
////////////// // Summary:
////////////// // Retrieves the index of the specified control in the control collection.
////////////// //
////////////// // Parameters:
////////////// // control:
////////////// // The System.Windows.Forms.Control to locate in the collection.
////////////// //
////////////// // Returns:
////////////// // A zero-based index value that represents the position of the specified System.Windows.Forms.Control
////////////// // in the System.Windows.Forms.Control.ControlCollection.
////////////// public int IndexOf(Control control);
////////////// //
////////////// // Summary:
////////////// // Retrieves the index of the first occurrence of the specified item within the
////////////// // collection.
////////////// //
////////////// // Parameters:
////////////// // key:
////////////// // The name of the control to search for.
////////////// //
////////////// // Returns:
////////////// // The zero-based index of the first occurrence of the control with the specified
////////////// // name in the collection.
////////////// public virtual int IndexOfKey(string key);
////////////// //
////////////// // Summary:
////////////// // Removes the specified control from the control collection.
////////////// //
////////////// // Parameters:
////////////// // value:
////////////// // The System.Windows.Forms.Control to remove from the System.Windows.Forms.Control.ControlCollection.
////////////// public virtual void Remove(Control value);
////////////// //
////////////// // Summary:
////////////// // Removes a control from the control collection at the specified indexed location.
////////////// //
////////////// // Parameters:
////////////// // index:
////////////// // The index value of the System.Windows.Forms.Control to remove.
////////////// public void RemoveAt(int index);
////////////// //
////////////// // Summary:
////////////// // Removes the child control with the specified key.
////////////// //
////////////// // Parameters:
////////////// // key:
////////////// // The name of the child control to remove.
////////////// public virtual void RemoveByKey(string key);
////////////// //
////////////// // Summary:
////////////// // Sets the index of the specified child control in the collection to the specified
////////////// // index value.
////////////// //
////////////// // Parameters:
////////////// // child:
////////////// // The childSystem.Windows.Forms.Control to search for.
////////////// //
////////////// // newIndex:
////////////// // The new index value of the control.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ArgumentException:
////////////// // The child control is not in the System.Windows.Forms.Control.ControlCollection.
////////////// public virtual void SetChildIndex(Control child, int newIndex);
////////////// }
////////////// //
////////////// // Summary:
////////////// // Provides information about a control that can be used by an accessibility application.
////////////// [ComVisible(true)]
////////////// public class ControlAccessibleObject : AccessibleObject
////////////// {
////////////// //
////////////// // Summary:
////////////// // Initializes a new instance of the System.Windows.Forms.Control.ControlAccessibleObject
////////////// // class.
////////////// //
////////////// // Parameters:
////////////// // ownerControl:
////////////// // The System.Windows.Forms.Control that owns the System.Windows.Forms.Control.ControlAccessibleObject.
////////////// //
////////////// // Exceptions:
////////////// // T:System.ArgumentNullException:
////////////// // The ownerControl parameter value is null.
////////////// public ControlAccessibleObject(Control ownerControl);
////////////// //
////////////// // Summary:
////////////// // Gets a string that describes the default action of the object. Not all objects
////////////// // have a default action.
////////////// //
////////////// // Returns:
////////////// // A description of the default action for an object, or null if this object has
////////////// // no default action.
////////////// public override string DefaultAction { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the description of the System.Windows.Forms.Control.ControlAccessibleObject.
////////////// //
////////////// // Returns:
////////////// // A string describing the System.Windows.Forms.Control.ControlAccessibleObject.
////////////// public override string Description { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the handle of the accessible object.
////////////// //
////////////// // Returns:
////////////// // An System.IntPtr that represents the handle of the control.
////////////// public IntPtr Handle { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the description of what the object does or how the object is used.
////////////// //
////////////// // Returns:
////////////// // The description of what the object does or how the object is used.
////////////// public override string Help { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the object shortcut key or access key for an accessible object.
////////////// //
////////////// // Returns:
////////////// // The object shortcut key or access key for an accessible object, or null if there
////////////// // is no shortcut key associated with the object.
////////////// public override string KeyboardShortcut { get; }
////////////// //
////////////// // Summary:
////////////// // Gets or sets the accessible object name.
////////////// //
////////////// // Returns:
////////////// // The accessible object name.
////////////// public override string Name { get; set; }
////////////// //
////////////// // Summary:
////////////// // Gets the parent of an accessible object.
////////////// //
////////////// // Returns:
////////////// // An System.Windows.Forms.AccessibleObject that represents the parent of an accessible
////////////// // object, or null if there is no parent object.
////////////// public override AccessibleObject Parent { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the owner of the accessible object.
////////////// //
////////////// // Returns:
////////////// // The System.Windows.Forms.Control that owns the System.Windows.Forms.Control.ControlAccessibleObject.
////////////// public Control Owner { get; }
////////////// //
////////////// // Summary:
////////////// // Gets the role of this accessible object.
////////////// //
////////////// // Returns:
////////////// // One of the System.Windows.Forms.AccessibleRole values.
////////////// public override AccessibleRole Role { get; }
////////////// //
////////////// // Summary:
////////////// // Gets an identifier for a Help topic and the path to the Help file associated
////////////// // with this accessible object.
////////////// //
////////////// // Parameters:
////////////// // fileName:
////////////// // When this method returns, contains a string that represents the path to the Help
////////////// // file associated with this accessible object. This parameter is passed uninitialized.
////////////// //
////////////// // Returns:
////////////// // An identifier for a Help topic, or -1 if there is no Help topic. On return, the
////////////// // fileName parameter will contain the path to the Help file associated with this
////////////// // accessible object, or null if there is no IAccessible interface specified.
////////////// public override int GetHelpTopic(out string fileName);
////////////// //
////////////// // Summary:
////////////// // Notifies accessibility client applications of the specified System.Windows.Forms.AccessibleEvents.
////////////// //
////////////// // Parameters:
////////////// // accEvent:
////////////// // The System.Windows.Forms.AccessibleEvents to notify the accessibility client
////////////// // applications of.
////////////// public void NotifyClients(AccessibleEvents accEvent);
////////////// //
////////////// // Summary:
////////////// // Notifies the accessibility client applications of the specified System.Windows.Forms.AccessibleEvents
////////////// // for the specified child control.
////////////// //
////////////// // Parameters:
////////////// // accEvent:
////////////// // The System.Windows.Forms.AccessibleEvents to notify the accessibility client
////////////// // applications of.
////////////// //
////////////// // childID:
////////////// // The child System.Windows.Forms.Control to notify of the accessible event.
////////////// public void NotifyClients(AccessibleEvents accEvent, int childID);
////////////// //
////////////// // Summary:
////////////// // Notifies the accessibility client applications of the specified System.Windows.Forms.AccessibleEvents
////////////// // for the specified child control, giving the identification of the System.Windows.Forms.AccessibleObject.
////////////// //
////////////// // Parameters:
////////////// // accEvent:
////////////// // The System.Windows.Forms.AccessibleEvents to notify the accessibility client
////////////// // applications of.
////////////// //
////////////// // objectID:
////////////// // The identifier of the System.Windows.Forms.AccessibleObject.
////////////// //
////////////// // childID:
////////////// // The child System.Windows.Forms.Control to notify of the accessible event.
////////////// public void NotifyClients(AccessibleEvents accEvent, int objectID, int childID);
////////////// //
////////////// // Summary:
////////////// // Returns a string that represents the current object.
////////////// //
////////////// // Returns:
////////////// // A string that represents the current object.
////////////// public override string ToString();
////////////// }
////////////// }
////////////// }
////////////using System;
////////////using System.Collections.Generic;
////////////using System.ComponentModel;
////////////using System.Data;
////////////using System.Drawing;
////////////using System.Linq;
////////////using System.Text;
////////////using System.Windows.Forms;
////////////using NAudio.Midi;
////////////using System.Threading;
////////////namespace SoundVision10
//////////// {
//////////// public partial class Form1 : Form
//////////// {
//////////// public Form1()
//////////// {
//////////// InitializeComponent();
//////////// }
//////////// private void Form1_Load(object sender, EventArgs e)
//////////// {
//////////// }
//////////// private void button1_Click(object sender, EventArgs e)
//////////// {
//////////// //Thread.Sleep inside GUI is just for example
//////////// using (MidiOut midiOut = new MidiOut(0))
//////////// {
//////////// midiOut.Volume = 65535;
//////////// midiOut.Send(MidiMessage.StartNote(60, 127, 0).RawData);
//////////// MessageBox.Show("Sent");
//////////// Thread.Sleep(1000);
//////////// midiOut.Send(MidiMessage.StopNote(60, 0, 0).RawData);
//////////// Thread.Sleep(1000);
//////////// }
//////////// }
//////////// }
//////////// }
////// using System;
//////namespace SAANAUDSFRESH.MidiUtils
//////{
////// /// <summary>
////// /// Progress Event Arguments
////// /// </summary>
////// public class ProgressEventArgs : EventArgs
////// {
////// private string message;
////// private ProgressMessageType messageType;
////// /// <summary>
////// /// New progress event arguments
////// /// </summary>
////// /// <param name="messageType">The message type</param>
////// /// <param name="message">The message</param>
////// public ProgressEventArgs(ProgressMessageType messageType, string message)
////// {
////// this.message = message;
////// this.messageType = messageType;
////// }
////// /// <summary>
////// /// New progress event arguments
////// /// </summary>
////// /// <param name="messageType">The message type</param>
////// /// <param name="message">the message format string</param>
////// /// <param name="args">format arguments</param>
////// public ProgressEventArgs(ProgressMessageType messageType, string message, params object[] args)
////// {
////// this.messageType = messageType;
////// this.message = String.Format(message, args);
////// }
////// /// <summary>
////// /// The message
////// /// </summary>
////// public string Message
////// {
////// get
////// {
////// return message;
////// }
////// }
////// /// <summary>
////// /// The message type
////// /// </summary>
////// public ProgressMessageType MessageType
////// {
////// get
////// {
////// return messageType;
////// }
////// }
////// }
////// /// <summary>
////// /// Progress Message Type
////// /// </summary>
////// public enum ProgressMessageType
////// {
////// /// <summary>
////// /// Trace
////// /// </summary>
////// Trace,
////// /// <summary>
////// /// Information
////// /// </summary>
////// Information,
////// /// <summary>
////// /// Warning
////// /// </summary>
////// Warning,
////// /// <summary>
////// /// Error
////// /// </summary>
////// Error,
////// }
//////}
//////Status Code File Line Column Project Path
////// public class BlockEntityChangeEventArgs : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Blocks_BlockEntityChangeEventArgs.cs 34 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class ErrorEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia_ErrorEventArgs.cs 7 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class AsioAudioAvailableEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_AsioAudioAvailableEventArgs.CS 12 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
////// public class AttributeDefinitionDictionaryEventArgs : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Collections_AttributeDefinitionDictionaryEventArgs.cs 34 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class ObservableCollectionEventArgs<T> : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Collections_ObservableCollectionEventArgs.cs 34 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class NoOpEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Device Classes_OutputDevice Classes_NoOpEventArgs.cs 42 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class BlockAttributeDefinitionChangeEventArgs : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Blocks_BlockAttributeDefinitionChangeEventArgs.cs 34 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class SysRealtimeEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS\readable_relpath__Messages_SysRealtimeMessage.cs 214 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS
////// public class LinetypeSegmentChangeEventArgs : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Tables_LinetypeSegmentChangeEventArgs.cs 30 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class ObservableDictionaryEventArgs<TKey, TValue> : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Collections_ObservableDictionaryEventArgs.cs 36 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class InvalidShortMsgEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS\readable_relpath__Devices_InputDevice.cs 978 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS
////// public class DimensionStyleOverrideChangeEventArgs : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Tables_DimensionStyleOverrideChangeEventArgs.cs 30 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class ProgressEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\MidiFileConverter_ProgressEventArgs.CS 8 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
////// public class MidiInMessageEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Midi_MidiInMessageEventArgs.CS 8 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
////// public class PianoKeyEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_UI_PianoKeyEventArgs.cs 39 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class DimensionStyleOverrideDictionaryEventArgs : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Collections_DimensionStyleOverrideDictionaryEventArgs.cs 34 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class MLineStyleElementChangeEventArgs : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Objects_MLineStyleElementChangeEventArgs.cs 30 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class ChannelMessageEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS\readable_relpath__Messages_ChannelMessage.cs 376 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS
////// public class TableObjectChangedEventArgs<T> : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Tables_TableObjectChangedEventArgs.cs 34 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class WaveInEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_MmeInterop_WaveInEventArgs.CS 10 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
////// public class SysCommonEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS\readable_relpath__Messages_SysCommonMessage.cs 261 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS
////// public abstract class SAANSHARPPDFEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANSHARPPDF_2012_3_3\SAANSHARPPDF_2012_3_3_Events_DocumentEvents.cs 39 27 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANSHARPPDF_2012_3_3
////// public class SysExEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS\readable_relpath__Messages_SysExMessage.cs 298 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS
////// public class FftEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPIWpfDemo_AudioPlaybackDemo_SampleAggregator.CS 112 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
////// public class MidiEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS\readable_relpath__Sequencing_MidiEvent.cs 126 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS
////// public class SampleEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveStreams_ISampleNotifier.CS 21 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
////// public class GroupEntityChangeEventArgs : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Objects_GroupEntityChangeEventArgs.cs 31 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class EntityCollectionEventArgs : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Collections_EntityCollectionEventArgs.cs 34 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class EntityChangeEventArgs : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Entities_EntityChangeEventArgs.cs 33 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class ChasedEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Processing_ChasedEventArgs.cs 7 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class TickEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS\readable_relpath__TickGenerators_TickGenerator.cs 435 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDSMIDS
////// public class MidiEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Messages_EventArgs_MidiEventArgs.cs 7 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class SysRealtimeMessageEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Messages_EventArgs_SysRealtimeMessageEventArgs.cs 7 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class MaxSampleEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPIWpfDemo_AudioPlaybackDemo_SampleAggregator.CS 100 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
////// public class AttributeChangeEventArgs : F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472\SAANSDXF_Entities_AttributeChangeEventArgs.cs 30 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\saansdxf_472
////// public class StoppedEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_WaveOutputs_StoppedEventArgs.CS 10 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
////// public class StreamVolumeEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS\SAANSAUDSAPI_Wave_SampleProviders_MeteringSampleProvider.CS 98 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANAUDS
////// public class StoppedEventArgs : EventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Processing_StoppedEventArgs.cs 7 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class InvokeCompletedEventArgs : AsyncCompletedEventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Threading_InvokeCompletedEventArgs.cs 44 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class PostCompletedEventArgs : AsyncCompletedEventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Threading_DelegateQueue_PostCompletedEventArgs.cs 41 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class PageEventArgs : SAANSHARPPDFEventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANSHARPPDF_2012_3_3\SAANSHARPPDF_2012_3_3_Events_DocumentEvents.cs 73 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANSHARPPDF_2012_3_3
////// public class PageGraphicsEventArgs : SAANSHARPPDFEventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANSHARPPDF_2012_3_3\SAANSHARPPDF_2012_3_3_Events_DocumentEvents.cs 120 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAANSHARPPDF_2012_3_3
////// public class ShortMessageEventArgs : MidiEventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Messages_EventArgs_ShortMessageEventArgs.cs 10 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class MetaMessageEventArgs : MidiEventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Messages_EventArgs_MetaMessageEventArgs.cs 7 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class InvalidSysExMessageEventArgs : MidiEventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Messages_EventArgs_InvalidSysExMessageEventArgs.cs 7 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class ChannelMessageEventArgs : MidiEventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Messages_EventArgs_ChannelMessageEventArgs.cs 7 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class SysExMessageEventArgs : MidiEventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Messages_EventArgs_SysExMessageEventArgs.cs 7 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class InvalidShortMessageEventArgs : MidiEventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Messages_EventArgs_InvalidShortMessageEventArgs.cs 7 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// public class SysCommonMessageEventArgs : MidiEventArgs F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS\Source_Sanford.Multimedia.Midi_Messages_EventArgs_SysCommonMessageEventArgs.cs 7 18 ExcelFormulaParserSample F:\sanjoy_workouts\C_SHARPS_DEVELOPMENT_SOL\excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\SAAN_SANFORDS_LIBS
////// namespace TRYING_GUITARS_BEHAGS
//////{
////// public class BehagGuitarStrumming
////// {
////// static List<int> scaleNotes = new List<int>
////// {
////// 60, 62, 64, 65, 67, 69, 71, 72, // Ascending
////// 71, 69, 67, 65, 64, 62, 60 // Descending
////// };
////// public static Dictionary<int, int> noteDurations = new Dictionary<int, int>
////// {
////// { 60, 500 }, { 62, 450 }, { 64, 400 },
////// { 65, 500 }, { 67, 420 }, { 69, 400 },
////// { 71, 430 }, { 72, 550 }
////// };
////// public static int Clamp(int value, int min, int max)
////// {
////// if (value < min) return min;
////// if (value > max) return max;
////// return value;
////// }//public static int Clamp(int value, int min, int max)
////// public static int GetVelocity(int note)
////// {
////// Random rand = new Random();
////// // return Math.Clamp(105 - ((note - 60) * 2) + rand.Next(-8, 8), 70, 127);
////// return Clamp(105 - ((note - 60) * 2) + rand.Next(-8, 8), 70, 127);
////// }//public static int GetVelocity(int note)
////// public static void BehagGuitarStrumming___Main()
////// {
////// var midiEvents = new MidiEventCollection(1, 480);
////// var rand = new Random();
////// int[] guitarPrograms = { 24, 25, 26, 27, 25, 26 }; // Nylon, Steel, Jazz, Clean
////// for (int ch = 1; ch < (6+1); ch++)
////// {
////// var track = new List<MidiEvent>();
////// midiEvents.AddTrack(track);
////// int tick = 0;
////// track.Add(new PatchChangeEvent(0, ch, guitarPrograms[ch]));
////// if (ch < 2)
////// {
////// // Strumming channel
////// for (int i = 0; i < 60; i++)
////// {
////// int baseNote = scaleNotes[rand.Next(scaleNotes.Count)];
////// int[] chord = { baseNote, baseNote + 4, baseNote + 7 }; // Major chord
////// int vel = GetVelocity(baseNote);
////// foreach (int n in chord)
////// {
////// track.Add(new NoteOnEvent(tick, ch, n, vel, 120));
////// track.Add(new NoteEvent(tick + 120, ch, MidiCommandCode.NoteOff, n, 0));
////// }//foreach (int n in chord)
////// tick += 240; // 1 beat strum
////// }
////// }
////// else if (ch < 5)
////// {
////// // Lead melody channel
////// for (int i = 0; i < scaleNotes.Count; i++)
////// {
////// int note = scaleNotes[i];
////// int vel = GetVelocity(note);
////// int duration = noteDurations[note] + rand.Next(-20, 50);
////// int ticks = (int)(duration / 2.5);
////// track.Add(new ControlChangeEvent(tick, ch, MidiController.Modulation, rand.Next(40, 90)));
////// track.Add(new PitchWheelChangeEvent(tick, ch, rand.Next(3000, 9000)));
////// track.Add(new NoteOnEvent(tick, ch, note, vel, ticks));
////// track.Add(new NoteEvent(tick + ticks, ch, MidiCommandCode.NoteOff, note, 0));
////// tick += ticks + rand.Next(20, 80);
////// }
////// }
////// else
////// {
////// // Bass channel or rhythm filler
////// for (int i = 0; i < 40; i++)
////// {
////// int note = scaleNotes[rand.Next(3)]; // lower notes only
////// int vel = GetVelocity(note) - 10;
////// int ticks = 160;
////// track.Add(new NoteOnEvent(tick, ch, note - 12, vel, ticks));
////// track.Add(new NoteEvent(tick + ticks, ch, MidiCommandCode.NoteOff, note - 12, 0));
////// tick += 320;
////// }//for (int i = 0; i < 40; i++)
////// }
////// track.Add(new MetaEvent(MetaEventType.EndTrack, 0, tick + 200));
////// }
////// // string fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Behag_Guitar_Strumming.mid");
////// string fileName = Path.Combine("d:\\Behag_Guitar_Strumming.mid");
////// midiEvents.PrepareForExport();//this is necessary
////// MidiFile.Export(fileName, midiEvents);
////// Console.WriteLine("Behag Guitar MIDI with Strumming saved to: " + fileName);
////// System.Windows.Forms.MessageBox.Show("Behag Guitar MIDI with Strumming saved to: " + fileName);
////// }//public static void BehagGuitarStrumming___Main()
////// }
//////}//namespace TRYING_GUITARS_BEHAGS
namespace TRYING_GUITARS_BEHAGS___ONLY_SINGLE_CYCLE
{
public class BehagGuitarStrumming
{
static List<int> scaleNotes = new List<int>
{
60, 62, 64, 65, 67, 69, 71, 72, // Ascending
71, 69, 67, 65, 64, 62, 60 // Descending
};
public static Dictionary<int, int> noteDurations = new Dictionary<int, int>
{
{ 60, 500 }, { 62, 450 }, { 64, 400 },
{ 65, 500 }, { 67, 420 }, { 69, 400 },
{ 71, 430 }, { 72, 550 }
};
public static int Clamp(int value, int min, int max)
{
if (value < min) return min;
if (value > max) return max;
return value;
}
public static int GetVelocity(int note)
{
Random rand = new Random();
return Clamp(105 - ((note - 60) * 2) + rand.Next(-8, 8), 70, 127);
}
public static void BehagGuitarStrumming___Main()
{
var midiEvents = new MidiEventCollection(1, 480);
var rand = new Random();
// int[] guitarPrograms = { 24, 25, 26, 27, 25, 26 }; // Nylon, Steel, Jazz, Clean
int[] guitarPrograms = { 24, 25, 26, 27, 25, 26, 24, 23 }; // Nylon, Steel, Jazz, Clean
for (int ch = 1; ch < (6 + 1); ch++)
{
try
{
// var track = new List<MidiEvent>();
// midiEvents.AddTrack(track);
int tick = 0;
// track.Add(new PatchChangeEvent(0, ch, guitarPrograms[ch]));
midiEvents.AddEvent(new PatchChangeEvent(0, ch, guitarPrograms[ch]),ch);
if (ch < 2)
{
// Strumming channel
for (int i = 0; i < 60; i++)
{
int baseNote = scaleNotes[rand.Next(scaleNotes.Count)];
int[] chord = { baseNote, baseNote + 4, baseNote + 7 }; // Major chord
int vel = GetVelocity(baseNote);
foreach (int n in chord)
{
// track.Add(new NoteOnEvent(tick, ch, n, vel, 120));
// track.Add(new NoteEvent(tick + 120, ch, MidiCommandCode.NoteOff, n, 0));
midiEvents.AddEvent(new NoteOnEvent(tick, ch, n, vel, 120),ch);
}//foreach (int n in chord)
tick += 240; // 1 beat strum
}//for (int i = 0; i < 60; i++)
}
// else if (ch < 5)
else if (ch < 6)
{
// Lead melody channel
for (int i = 0; i < scaleNotes.Count; i++)
{
int note = scaleNotes[i];
int vel = GetVelocity(note);
int duration = noteDurations[note] + rand.Next(-20, 50);
int ticks = (int)(duration / 2.5);
//////track.Add(new ControlChangeEvent(tick, ch, MidiController.Modulation, rand.Next(40, 90)));
//////track.Add(new PitchWheelChangeEvent(tick, ch, rand.Next(3000, 9000)));
//////track.Add(new NoteOnEvent(tick, ch, note, vel, ticks));
//////track.Add(new NoteEvent(tick + ticks, ch, MidiCommandCode.NoteOff, note, 0));
midiEvents.AddEvent(new ControlChangeEvent(tick, ch, MidiController.Modulation, rand.Next(40, 90)),ch);
midiEvents.AddEvent(new PitchWheelChangeEvent(tick, ch, rand.Next(3000, 9000)), ch);
midiEvents.AddEvent(new NoteOnEvent(tick, ch, note, vel, ticks), ch);
midiEvents.AddEvent(new NoteEvent(tick + ticks, ch, MidiCommandCode.NoteOff, note, 0), ch);
//for ref midiEvents.AddEvent(new NoteOnEvent(tick, ch, n, vel, 120), ch);
tick += ticks + rand.Next(20, 80);
}
}
else
{
// Bass channel or rhythm filler
for (int i = 1; i < (40+1); i++)
{
int note = scaleNotes[rand.Next(3)]; // lower notes only
int vel = GetVelocity(note) - 10;
int ticks = 160;
// track.Add(new NoteOnEvent(tick, ch, note - 12, vel, ticks));
// track.Add(new NoteEvent(tick + ticks, ch, MidiCommandCode.NoteOff, note - 12, 0));
midiEvents.AddEvent(new NoteOnEvent(tick, ch, note - 12, vel, ticks),ch);
//for refs midiEvents.AddEvent(new NoteOnEvent(tick, ch, n, vel, 120), ch);
tick += 320;
}//for (int i = 1; i < (40+1); i++)
}//end of else
//track.Add(new MetaEvent(MetaEventType.EndTrack, 0, tick + 200));
}
catch (Exception _excp)
{
System.Windows.Forms.MessageBox.Show("_excp = " + _excp.Message + " " + _excp.StackTrace.ToString() + " ch = " + ch);
}//catch(Exception _excp)
}
string fileName = Path.Combine("d:\\Behag_Guitar_Strumming.mid");
midiEvents.PrepareForExport(); // this is necessary
MidiFile.Export(fileName, midiEvents);
Console.WriteLine("Behag Guitar MIDI with Strumming saved to: " + fileName);
System.Windows.Forms.MessageBox.Show("Behag Guitar MIDI with Strumming saved to: " + fileName);
}
}//public class BehagGuitarStrumming
}//namespace TRYING_GUITARS_BEHAGS___ONLY_SINGLE_CYCLE
namespace TRYING_GUITARS_BEHAGS
{
public class BehagGuitarStrumming
{
static List<int> scaleNotes = new List<int>
{
60, 62, 64, 65, 67, 69, 71, 72, // Ascending
71, 69, 67, 65, 64, 62, 60 // Descending
};
public static Dictionary<int, int> noteDurations = new Dictionary<int, int>
{
{ 60, 500 }, { 62, 450 }, { 64, 400 },
{ 65, 500 }, { 67, 420 }, { 69, 400 },
{ 71, 430 }, { 72, 550 }
};
public static int Clamp(int value, int min, int max)
{
if (value < min) return min;
if (value > max) return max;
return value;
}
public static int GetVelocity(int note)
{
Random rand = new Random();
return Clamp(105 - ((note - 60) * 2) + rand.Next(-8, 8), 70, 127);
}
public static void BehagGuitarStrumming___Main()
{
var midiEvents = new MidiEventCollection(1, 480);
var rand = new Random();
// int[] guitarPrograms = { 24, 25, 26, 27, 25, 26 }; // Nylon, Steel, Jazz, Clean
int[] guitarPrograms = { 24, 25, 26, 27, 25, 26, 24, 23 }; // Nylon, Steel, Jazz, Clean
for (int ch = 1; ch < (6 + 1); ch++)
{
try
{
// var track = new List<MidiEvent>();
// midiEvents.AddTrack(track);
int tick = 0;
// track.Add(new PatchChangeEvent(0, ch, guitarPrograms[ch]));
midiEvents.AddEvent(new PatchChangeEvent(0, ch, guitarPrograms[ch]), ch);
if (ch < 2)
{
// Strumming channel
for (int i = 0; i < 60; i++)
{
int baseNote = scaleNotes[rand.Next(scaleNotes.Count)];
int[] chord = { baseNote, baseNote + 4, baseNote + 7 }; // Major chord
int vel = GetVelocity(baseNote);
foreach (int n in chord)
{
// track.Add(new NoteOnEvent(tick, ch, n, vel, 120));
// track.Add(new NoteEvent(tick + 120, ch, MidiCommandCode.NoteOff, n, 0));
midiEvents.AddEvent(new NoteOnEvent(tick, ch, n, vel, 120), ch);
}//foreach (int n in chord)
tick += 240; // 1 beat strum
}//for (int i = 0; i < 60; i++)
}
// else if (ch < 5)
else if (ch < 6)
{
// Lead melody channel
for (int i = 0; i < scaleNotes.Count; i++)
{
int note = scaleNotes[i];
int vel = GetVelocity(note);
int duration = noteDurations[note] + rand.Next(-20, 50);
int ticks = (int)(duration / 2.5);
//////track.Add(new ControlChangeEvent(tick, ch, MidiController.Modulation, rand.Next(40, 90)));
//////track.Add(new PitchWheelChangeEvent(tick, ch, rand.Next(3000, 9000)));
//////track.Add(new NoteOnEvent(tick, ch, note, vel, ticks));
//////track.Add(new NoteEvent(tick + ticks, ch, MidiCommandCode.NoteOff, note, 0));
midiEvents.AddEvent(new ControlChangeEvent(tick, ch, MidiController.Modulation, rand.Next(40, 90)), ch);
midiEvents.AddEvent(new PitchWheelChangeEvent(tick, ch, rand.Next(3000, 9000)), ch);
midiEvents.AddEvent(new NoteOnEvent(tick, ch, note, vel, ticks), ch);
midiEvents.AddEvent(new NoteEvent(tick + ticks, ch, MidiCommandCode.NoteOff, note, 0), ch);
//for ref midiEvents.AddEvent(new NoteOnEvent(tick, ch, n, vel, 120), ch);
tick += ticks + rand.Next(20, 80);
}//for (int i = 0; i < scaleNotes.Count; i++)
}
else
{
// Bass channel or rhythm filler
for (int i = 1; i < (40 + 1); i++)
{
int note = scaleNotes[rand.Next(3)]; // lower notes only
int vel = GetVelocity(note) - 10;
int ticks = 160;
// track.Add(new NoteOnEvent(tick, ch, note - 12, vel, ticks));
// track.Add(new NoteEvent(tick + ticks, ch, MidiCommandCode.NoteOff, note - 12, 0));
midiEvents.AddEvent(new NoteOnEvent(tick, ch, note - 12, vel, ticks), ch);
//for refs midiEvents.AddEvent(new NoteOnEvent(tick, ch, n, vel, 120), ch);
tick += 320;
}//for (int i = 1; i < (40+1); i++)
}//end of else
//track.Add(new MetaEvent(MetaEventType.EndTrack, 0, tick + 200));
}
catch (Exception _excp)
{
System.Windows.Forms.MessageBox.Show("_excp = " + _excp.Message + " " + _excp.StackTrace.ToString() + " ch = " + ch);
}//catch(Exception _excp)
}//for (int ch = 1; ch < (6 + 1); ch++)
string fileName = ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder + "Behag_Guitar_Strumming.mid";// "BehagWithTablaAndFlute.mid" //Path.Combine("d:\\Behag_Guitar_Strumming.mid");
midiEvents.PrepareForExport(); // this is necessary
MidiFile.Export(fileName, midiEvents);
Console.WriteLine("Behag Guitar MIDI with Strumming saved to: " + fileName);
System.Windows.Forms.MessageBox.Show("Behag Guitar MIDI with Strumming saved to: " + fileName);
}
}//public class BehagGuitarStrumming
}//namespace TRYING_GUITARS_BEHAGS
namespace SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
{
//////n! <6000 ??? n???
//////ChatGPT said:
//////Great question!
//////You're referring to generating N! permutations of durations for N notes — and you're checking what value of N gives:
//////N! < 6000
////// Step-by-step:
//////We need to find the largest N such that:
//////𝑁
//////!
//////<
//////6000
//////N!<6000
//////Let’s compute factorials:
//////N N!
//////1 1
//////2 2
//////3 6
//////4 24
//////5 120
//////6 720
//////7 5040
//////8 40320 ❌ too big
//////✅ Final Answer:
//////𝑁
//////=
//////7
//////because
//////7
//////!
//////=
//////5040
//////<
//////6000
////// and
//////8
//////!
//////=
//////40320
//////>
//////6000
//////N=7
//////
//////because 7!=5040<6000 and 8!=40320>6000
//////So if your sequence has 7 notes or fewer, you can safely generate all N! = 5040 permutations without exceeding 6000.
//////If you need to handle larger N, I can help you:
//////Limit to a subset(e.g., random 10000 permutations),
//////Use combinatorial sampling instead of full enumeration.
public class NecklacePatternComposer
{
public static void ComposeFromNecklacePattern(string inputFile)
{
var fundamentalSequence = RagaPaltas_OddEvenConcatenator.LoadCleanNotesFromFile(inputFile);
if (fundamentalSequence.Count == 0)
{
Console.WriteLine("No valid notes found in input.");
return;
}//if (fundamentalSequence.Count == 0)
var reversedSequence = RagaPaltas_OddEvenConcatenator.CloneList(fundamentalSequence);
reversedSequence.Reverse();
var necklace = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
necklace.AddRange(fundamentalSequence);
necklace.AddRange(reversedSequence);
int length = necklace.Count;
string input = Microsoft.VisualBasic.Interaction.InputBox("Enter comma/space/semicolon separated offset indices (e.g. 3,5,7):", "Offset Index Pattern", "3, 5, 7");
var tokens = input.Split(new[] { ',', ';', ' ' }, StringSplitOptions.RemoveEmptyEntries);
var offsets = tokens.Select(t => int.TryParse(t.Trim(), out int num) ? num : -1).Where(i => i >= 0).ToList();
if (offsets.Count == 0)
{
Console.WriteLine("No valid offsets provided.");
return;
}//if (offsets.Count == 0)
var result = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
for (int i = 0; i < length; i++)
{
foreach (var offset in offsets)
{
int index = (i + offset) % length;
result.Add(necklace[index]);
}//foreach (var offset in offsets)
for (int j = offsets.Count - 1; j >= 0; j--)
{
int index = (i + offsets[j]) % length;
result.Add(necklace[index]);
}//for (int j = offsets.Count - 1; j >= 0; j--)
}//for (int i = 0; i < length; i++)
string outputPath = inputFile + "__NecklaceOffsetDecorated.dataGridView___COMPOSER";
RagaPaltas_OddEvenConcatenator.SaveNotesToFile(outputPath, result);
Console.WriteLine("Saved decorated necklace sequence to: " + outputPath);
}//public static void ComposeFromNecklacePattern(string inputFile)
}//public class NecklacePatternComposer
//////using System;
//////using System.Collections.Generic;
//////using System.Linq;
//////using System.Windows.Forms;
//////using Microsoft.VisualBasic;
//////public class NecklacePatternComposer
//////{
////// public static void GenerateNecklaceDecoratedSequence(List<string> fundamentalSequence)
////// {
////// // Step 1: Create necklace (fundamental + reverse)
////// var reversed = new List<string>(fundamentalSequence);
////// reversed.Reverse();
////// var necklace = new List<string>(fundamentalSequence);
////// necklace.AddRange(reversed); // Length = 2n
////// int n = fundamentalSequence.Count;
////// int fullLength = 2 * n;
////// // Step 2: Get offset input
////// string input = Microsoft.VisualBasic.Interaction.InputBox(
////// "Enter offset sequence (comma/semicolon/space separated):",
////// "Offset Pattern", "3, 5, 7");
////// if (string.IsNullOrWhiteSpace(input)) return;
////// var offsetTokens = input.Split(new[] { ',', ';', ' ' }, StringSplitOptions.RemoveEmptyEntries);
////// var offsets = offsetTokens.Select(token => int.TryParse(token.Trim(), out var num) ? num : -1)
////// .Where(num => num >= 0).ToList();
////// if (offsets.Count == 0)
////// {
////// MessageBox.Show("No valid offsets entered.", "Error");
////// return;
////// }//if (offsets.Count == 0)
////// var reversedOffsets = new List<int>(offsets);
////// reversedOffsets.Reverse();
////// var finalSequence = new List<string>();
////// // Step 3: Apply all i + r and i + reversed(r) for i in 0 to 2n - 1
////// for (int i = 0; i < fullLength; i++)
////// {
////// foreach (var offset in offsets)
////// {
////// int idx = (i + offset) % fullLength;
////// finalSequence.Add(necklace[idx]);
////// }//foreach (var offset in offsets)
////// foreach (var offset in reversedOffsets)
////// {
////// int idx = (i + offset) % fullLength;
////// finalSequence.Add(necklace[idx]);
////// }//foreach (var offset in reversedOffsets)
////// }//for (int i = 0; i < fullLength; i++)
////// // Step 4: Save or preview result
////// string preview = string.Join(" ", finalSequence.Take(50)) + (finalSequence.Count > 50 ? " ..." : "");
////// MessageBox.Show("Preview of generated sequence:\n" + preview, "Preview");
////// // Optional: Save to file or export to data grid
////// // SaveSequenceToFile("decorated_sequence.txt", finalSequence);
////// }//public class NecklacePatternComposer
////// // Example loader
////// public static List<string> LoadNotesFromFile(string path)
////// {
////// var lines = System.IO.File.ReadAllLines(path);
////// return lines.Where(line => !string.IsNullOrWhiteSpace(line)).ToList();
////// }//public static List<string> LoadNotesFromFile(string path)
////// // Optional file saver
////// public static void SaveSequenceToFile(string path, List<string> sequence)
////// {
////// System.IO.File.WriteAllLines(path, sequence);
////// MessageBox.Show("Saved to " + path);
////// }//public static void SaveSequenceToFile(string path, List<string> sequence)
//////}//public class NecklacePatternComposer
public class RagaPaltas_ZigZagDiagonalConcatenator
{
const string Separator = "######";
const int MaxNotesPerFile = 5990;
public static void GenerateZigzagDiagonalDecoratedFile(string inputFile)
{
var rawNotes = RagaPaltas_OddEvenConcatenator.LoadCleanNotesFromFile(inputFile);
Console.WriteLine("Loaded valid notes: " + rawNotes.Count);
int n = rawNotes.Count;
if (n == 0) return;
// Form n x n matrix
var grid = new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS[n, n];
for (int col = 0; col < n; col++)
{
for (int row = 0; row < n; row++)
{
grid[row, col] = RagaPaltas_OddEvenConcatenator.CloneList(rawNotes)[row];
}
}
var finalList = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
// Traverse diagonals
for (int d = 0; d <= 2 * (n - 1); d++)
{
var diagList = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
for (int row = 0; row < n; row++)
{
int col = d - row;
if (col >= 0 && col < n)
{
diagList.Add(grid[row, col]);
}
}
if (d % 2 == 0)
{
finalList.AddRange(diagList); // forward
}
else
{
diagList.Reverse(); // reverse
finalList.AddRange(diagList);
}
}
string outputPath = inputFile + "__ZigzagDiagonalDecorated.dataGridView___COMPOSER";
RagaPaltas_OddEvenConcatenator.SaveNotesToFile(outputPath, finalList);
Console.WriteLine("Saved zigzag diagonal-decorated notes to: " + outputPath);
}//public static void GenerateZigzagDiagonalDecoratedFile(string inputFile)
public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> LoadCleanNotesFromFile(string path)
{
var notes = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
int lineIndex = 0;
foreach (var line in File.ReadLines(path))
{
if (lineIndex++ == 0) continue; // skip header
var parts = line.Split(new[] { Separator }, StringSplitOptions.None).Select(p => p.Trim()).ToArray();
if (parts.Length < 22) continue;
string indinote = parts[1];
if (string.IsNullOrWhiteSpace(indinote) || indinote == "|" || indinote == "&" || indinote == "@" || indinote == "{" || indinote == "}" || indinote == "[" || indinote == "]" || indinote == "(" || indinote == ")")
continue;
var note = new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
try { note.PUBLIC_STRING_THE_LYR_FOUND = parts[0]; } catch { note.PUBLIC_STRING_THE_LYR_FOUND = "LYR"; }
try { note.PUBLIC_STRING_THE_INDINOTE_FOUND = parts[1]; } catch { note.PUBLIC_STRING_THE_INDINOTE_FOUND = "S"; }
try { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = int.Parse(parts[2]); } catch { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = 60; }
try { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = double.Parse(parts[3], CultureInfo.InvariantCulture); } catch { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 500; }
try { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = int.Parse(parts[4]); } catch { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = 100; }
try { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = int.Parse(parts[5]); } catch { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = 73; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = parts[6]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = "0,100"; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = parts[7]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = "8192,8192"; }
try { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = int.Parse(parts[8]); } catch { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = 1; }
try { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = int.Parse(parts[9]); } catch { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = 1; }
try { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = double.Parse(parts[13], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 0; }
try { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = int.Parse(parts[14]); } catch { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 0; }
try { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = int.Parse(parts[15]); } catch { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 0; }
try { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = double.Parse(parts[16], CultureInfo.InvariantCulture); } catch { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = 0; }
try { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = double.Parse(parts[17], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = 0; }
try { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = double.Parse(parts[18], CultureInfo.InvariantCulture); } catch { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = 0; }
try { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = double.Parse(parts[19], CultureInfo.InvariantCulture); } catch { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = 0; }
try { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = int.Parse(parts[20]); } catch { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = 6; }
try { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = int.Parse(parts[21]); } catch { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = 64; }
notes.Add(note);
}
return notes;
}
private static PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS CloneNote(PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS note)
{
return new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
{
PUBLIC_STRING_THE_LYR_FOUND = note.PUBLIC_STRING_THE_LYR_FOUND,
PUBLIC_STRING_THE_INDINOTE_FOUND = note.PUBLIC_STRING_THE_INDINOTE_FOUND,
INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127,
DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY,
INT_CURRENT_NOTES_VELOCITY_0_TO_127 = note.INT_CURRENT_NOTES_VELOCITY_0_TO_127,
INT_CURRENT_NOTES_PATCH_0_TO_127 = note.INT_CURRENT_NOTES_PATCH_0_TO_127,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES,
PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15,
PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER,
PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP,
PUBLIC_INT___Column_JUERK_UP_PITCHBEND = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND,
PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND,
PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS,
PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES,
Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES,
Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES,
PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20,
PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
};
} //private static PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS CloneNote(PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS note)
//////public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> CloneList(List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> list)
//////{
////// return list.Select(CloneNote).ToList();
//////}//private static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> CloneList(List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> list)
//////public static void SaveNotesToFile(string path, List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> notes)
//////{
////// using (var writer = new StreamWriter(path))
////// {
////// foreach (var note in notes.Take(MaxNotesPerFile))
////// {
////// var fields = new string[22];
////// fields[0] = note.PUBLIC_STRING_THE_LYR_FOUND;
////// fields[1] = note.PUBLIC_STRING_THE_INDINOTE_FOUND;
////// fields[2] = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127.ToString();
////// fields[3] = note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY.ToString(CultureInfo.InvariantCulture);
////// fields[4] = note.INT_CURRENT_NOTES_VELOCITY_0_TO_127.ToString();
////// fields[5] = note.INT_CURRENT_NOTES_PATCH_0_TO_127.ToString();
////// fields[6] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS;
////// fields[7] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES;
////// fields[8] = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15.ToString();
////// fields[9] = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER.ToString();
////// fields[10] = "to_fill";
////// fields[11] = "51.97";
////// fields[12] = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP.ToString(CultureInfo.InvariantCulture);
////// fields[13] = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND.ToString();
////// fields[14] = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND.ToString();
////// fields[15] = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS.ToString(CultureInfo.InvariantCulture);
////// fields[16] = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES.ToString(CultureInfo.InvariantCulture);
////// fields[17] = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES.ToString(CultureInfo.InvariantCulture);
////// fields[18] = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES.ToString(CultureInfo.InvariantCulture);
////// fields[19] = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20.ToString();
////// fields[20] = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT.ToString();
////// writer.WriteLine(string.Join(" " + Separator + " ", fields));
////// }//foreach (var note in notes.Take(MaxNotesPerFile))
////// }//using (var writer = new StreamWriter(path))
//////}//public static void SaveNotesToFile(string path, List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> notes)
}//public class RagaPaltas_ZigZagDiagonalConcatenator
public class RagaPaltas_SpiralDiagonal_merges_0_to_360_Composer
{
const string Separator = "######";
public static void GenerateSpiralDiagonalDecoratedFile(string inputFile)
{
var fundamentalSequence = RagaPaltas_OddEvenConcatenator.LoadCleanNotesFromFile(inputFile);
var reversedSequence = RagaPaltas_OddEvenConcatenator.CloneList(fundamentalSequence);
reversedSequence.Reverse();
var groupedSequence = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
groupedSequence.AddRange(fundamentalSequence);
groupedSequence.AddRange(reversedSequence);
int copies = 1;
try
{
string response = Microsoft.VisualBasic.Interaction.InputBox("Enter number of copies for spiral:", "Spiral Copies", "1");
copies = int.TryParse(response, out int result) ? Math.Max(1, result) : 1;
}
catch { copies = 1; }
var spiralList = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
for (int i = 0; i < copies; i++)
spiralList.AddRange(RagaPaltas_OddEvenConcatenator.CloneList(groupedSequence));
int size = (int)Math.Ceiling(Math.Sqrt(spiralList.Count));
var spiralGrid = new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS[size, size];
int top = 0, bottom = size - 1, left = 0, right = size - 1, index = 0;
while (top <= bottom && left <= right && index < spiralList.Count)
{
for (int i = left; i <= right && index < spiralList.Count; i++) spiralGrid[top, i] = spiralList[index++];
top++;
for (int i = top; i <= bottom && index < spiralList.Count; i++) spiralGrid[i, right] = spiralList[index++];
right--;
for (int i = right; i >= left && index < spiralList.Count; i--) spiralGrid[bottom, i] = spiralList[index++];
bottom--;
for (int i = bottom; i >= top && index < spiralList.Count; i--) spiralGrid[i, left] = spiralList[index++];
left++;
}
var mergedDiagonals = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
for (int angle = 0; angle < 360; angle++)
{
double radians = angle * Math.PI / 180;
double sin = Math.Sin(radians);
double cos = Math.Cos(radians);
for (int d = -size + 1; d < size; d++)
{
var diagList = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
for (int x = 0; x < size; x++)
{
for (int y = 0; y < size; y++)
{
double proj = x * cos + y * sin;
if (Math.Round(proj) == d && spiralGrid[y, x] != null)
{
diagList.Add(spiralGrid[y, x]);
}
}
}
mergedDiagonals.AddRange(diagList);
}
}
string outputPath = inputFile + "__SpiralSection_0_to_360_Diagonals.dataGridView___COMPOSER";
RagaPaltas_OddEvenConcatenator.SaveNotesToFile(outputPath, mergedDiagonals);
Console.WriteLine("Saved spiral diagonals to: " + outputPath);
}
}//public class RagaPaltas_SpiralDiagonal_merges_0_to_360_Composer
public class RagaPaltas_DiagonalConcatenator
{
const string Separator = "######";
const int MaxNotesPerFile = 5990;
public static void GenerateDiagonalDecoratedFile(string inputFile)
{
var allNotes = LoadCleanNotesFromFile(inputFile);
int n = allNotes.Count;
Console.WriteLine("Loaded " + n + " clean notes.");
// Create n x n matrix
var grid = new List<List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>>();
for (int i = 0; i < n; i++)
grid.Add(CloneList(allNotes)); // Copy for each column
var finalList = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
// Traverse diagonals: for sum d = 0 to 2n-2
for (int d = 0; d <= 2 * (n - 1); d++)
{
var sublist = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
for (int i = 0; i < n; i++)
{
int j = d - i;
if (j >= 0 && j < n)
{
sublist.Add(CloneNote(grid[i][j]));
}// if (j >= 0 && j < n)
}//for (int i = 0; i < n; i++)
// Add direct diagonal
finalList.AddRange(sublist);
// Add reverse of diagonal
sublist.Reverse();
finalList.AddRange(sublist);
}//for (int d = 0; d <= 2 * (n - 1); d++)
SaveNotesToFile(inputFile + "__DiagonalDecorated_1_1___to___n_n_everystages_straights_and_reversed.dataGridView___COMPOSER", finalList);
}
public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> LoadCleanNotesFromFile(string path)
{
var notes = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
int lineIndex = 0;
foreach (var line in File.ReadLines(path))
{
if (lineIndex++ == 0) continue; // skip header
var parts = line.Split(new[] { Separator }, StringSplitOptions.None).Select(p => p.Trim()).ToArray();
if (parts.Length < 22) continue;
string indinote = parts[1];
if (string.IsNullOrWhiteSpace(indinote) || indinote == "|" || indinote == "&" || indinote == "@" || indinote == "{" || indinote == "}" || indinote == "[" || indinote == "]" || indinote == "(" || indinote == ")")
continue;
var note = new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
try { note.PUBLIC_STRING_THE_LYR_FOUND = parts[0]; } catch { note.PUBLIC_STRING_THE_LYR_FOUND = "LYR"; }
try { note.PUBLIC_STRING_THE_INDINOTE_FOUND = parts[1]; } catch { note.PUBLIC_STRING_THE_INDINOTE_FOUND = "S"; }
try { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = int.Parse(parts[2]); } catch { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = 60; }
try { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = double.Parse(parts[3], CultureInfo.InvariantCulture); } catch { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 500; }
try { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = int.Parse(parts[4]); } catch { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = 100; }
try { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = int.Parse(parts[5]); } catch { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = 73; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = parts[6]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = "0,100"; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = parts[7]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = "8192,8192"; }
try { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = int.Parse(parts[8]); } catch { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = 1; }
try { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = int.Parse(parts[9]); } catch { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = 1; }
try { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = double.Parse(parts[13], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 0; }
try { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = int.Parse(parts[14]); } catch { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 0; }
try { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = int.Parse(parts[15]); } catch { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 0; }
try { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = double.Parse(parts[16], CultureInfo.InvariantCulture); } catch { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = 0; }
try { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = double.Parse(parts[17], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = 0; }
try { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = double.Parse(parts[18], CultureInfo.InvariantCulture); } catch { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = 0; }
try { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = double.Parse(parts[19], CultureInfo.InvariantCulture); } catch { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = 0; }
try { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = int.Parse(parts[20]); } catch { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = 6; }
try { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = int.Parse(parts[21]); } catch { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = 64; }
notes.Add(note);
}
return notes;
}
private static PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS CloneNote(PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS note)
{
return new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
{
PUBLIC_STRING_THE_LYR_FOUND = note.PUBLIC_STRING_THE_LYR_FOUND,
PUBLIC_STRING_THE_INDINOTE_FOUND = note.PUBLIC_STRING_THE_INDINOTE_FOUND,
INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127,
DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY,
INT_CURRENT_NOTES_VELOCITY_0_TO_127 = note.INT_CURRENT_NOTES_VELOCITY_0_TO_127,
INT_CURRENT_NOTES_PATCH_0_TO_127 = note.INT_CURRENT_NOTES_PATCH_0_TO_127,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES,
PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15,
PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER,
PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP,
PUBLIC_INT___Column_JUERK_UP_PITCHBEND = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND,
PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND,
PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS,
PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES,
Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES,
Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES,
PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20,
PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
};
}
private static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> CloneList(List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> list)
{
return list.Select(CloneNote).ToList();
}
public static void SaveNotesToFile(string path, List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> notes)
{
using (var writer = new StreamWriter(path))
{
foreach (var note in notes.Take(MaxNotesPerFile))
{
var fields = new string[22];
fields[0] = note.PUBLIC_STRING_THE_LYR_FOUND;
fields[1] = note.PUBLIC_STRING_THE_INDINOTE_FOUND;
fields[2] = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127.ToString();
fields[3] = note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY.ToString(CultureInfo.InvariantCulture);
fields[4] = note.INT_CURRENT_NOTES_VELOCITY_0_TO_127.ToString();
fields[5] = note.INT_CURRENT_NOTES_PATCH_0_TO_127.ToString();
fields[6] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS;
fields[7] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES;
fields[8] = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15.ToString();
fields[9] = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER.ToString();
fields[10] = "to_fill";
fields[11] = "51.97";
fields[12] = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP.ToString(CultureInfo.InvariantCulture);
fields[13] = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND.ToString();
fields[14] = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND.ToString();
fields[15] = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS.ToString(CultureInfo.InvariantCulture);
fields[16] = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES.ToString(CultureInfo.InvariantCulture);
fields[17] = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES.ToString(CultureInfo.InvariantCulture);
fields[18] = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES.ToString(CultureInfo.InvariantCulture);
fields[19] = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20.ToString();
fields[20] = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT.ToString();
writer.WriteLine(string.Join(" " + Separator + " ", fields));
}
}
}
}// public class RagaPaltas_DiagonalConcatenator
public class RagaPaltas_OddEvenConcatenator
{
const string Separator = "######";
const int MaxNotesPerFile = 5990;
public static void GenerateOddEvenRagaFile(string inputFile)
{
var allNotes = LoadCleanNotesFromFile(inputFile);
Console.WriteLine("Loaded clean notes: " + allNotes.Count);
int copies = 1;
try
{
string response = Microsoft.VisualBasic.Interaction.InputBox("Enter number of copies to concatenate:", "Repeat Count", "1");
copies = int.TryParse(response, out int result) ? Math.Max(1, result) : 1;
}
catch { copies = 1; }
// Concatenate sequence n times
var concatenated = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
for (int i = 0; i < copies; i++)
concatenated.AddRange(CloneList(allNotes));
// Separate odds and evens
var oddNotes = concatenated.Where((n, idx) => idx % 2 == 1).ToList();
var evenNotes = concatenated.Where((n, idx) => idx % 2 == 0).ToList();
var finalList = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
finalList.AddRange(oddNotes);
finalList.AddRange(evenNotes);
SaveNotesToFile(inputFile + "__OddEvenDecorated.dataGridView___COMPOSER", finalList);
}//public static void GenerateOddEvenRagaFile(string inputFile)
public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> LoadCleanNotesFromFile(string path)
{
var notes = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
int lineIndex = 0;
foreach (var line in File.ReadLines(path))
{
if (lineIndex++ == 0) continue; // skip header
var parts = line.Split(new[] { Separator }, StringSplitOptions.None).Select(p => p.Trim()).ToArray();
if (parts.Length < 22) continue;
string indinote = parts[1];
if (string.IsNullOrWhiteSpace(indinote) || indinote == "|" || indinote == "&" || indinote == "@" || indinote == "{" || indinote == "}" || indinote == "[" || indinote == "]" || indinote == "(" || indinote == ")")
continue;
var note = new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
try { note.PUBLIC_STRING_THE_LYR_FOUND = parts[0]; } catch { note.PUBLIC_STRING_THE_LYR_FOUND = "LYR"; }
try { note.PUBLIC_STRING_THE_INDINOTE_FOUND = parts[1]; } catch { note.PUBLIC_STRING_THE_INDINOTE_FOUND = "S"; }
try { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = int.Parse(parts[2]); } catch { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = 60; }
try { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = double.Parse(parts[3], CultureInfo.InvariantCulture); } catch { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 500; }
try { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = int.Parse(parts[4]); } catch { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = 100; }
try { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = int.Parse(parts[5]); } catch { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = 73; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = parts[6]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = "0,100"; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = parts[7]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = "8192,8192"; }
try { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = int.Parse(parts[8]); } catch { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = 1; }
try { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = int.Parse(parts[9]); } catch { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = 1; }
try { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = double.Parse(parts[13], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 0; }
try { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = int.Parse(parts[14]); } catch { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 0; }
try { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = int.Parse(parts[15]); } catch { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 0; }
try { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = double.Parse(parts[16], CultureInfo.InvariantCulture); } catch { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = 0; }
try { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = double.Parse(parts[17], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = 0; }
try { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = double.Parse(parts[18], CultureInfo.InvariantCulture); } catch { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = 0; }
try { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = double.Parse(parts[19], CultureInfo.InvariantCulture); } catch { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = 0; }
try { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = int.Parse(parts[20]); } catch { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = 6; }
try { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = int.Parse(parts[21]); } catch { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = 64; }
notes.Add(note);
}//foreach (var line in File.ReadLines(path))
return notes;
}// public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> LoadCleanNotesFromFile(string path)
public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> CloneList(List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> list)
{
return list.Select(note => new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
{
PUBLIC_STRING_THE_LYR_FOUND = note.PUBLIC_STRING_THE_LYR_FOUND,
PUBLIC_STRING_THE_INDINOTE_FOUND = note.PUBLIC_STRING_THE_INDINOTE_FOUND,
INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127,
DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY,
INT_CURRENT_NOTES_VELOCITY_0_TO_127 = note.INT_CURRENT_NOTES_VELOCITY_0_TO_127,
INT_CURRENT_NOTES_PATCH_0_TO_127 = note.INT_CURRENT_NOTES_PATCH_0_TO_127,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES,
PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15,
PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER,
PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP,
PUBLIC_INT___Column_JUERK_UP_PITCHBEND = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND,
PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND,
PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS,
PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES,
Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES,
Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES,
PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20,
PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
}).ToList();
}// private static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> CloneList(List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> list)
public static void SaveNotesToFile(string path, List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> notes)
{
using (var writer = new StreamWriter(path))
{
foreach (var note in notes.Take(MaxNotesPerFile))
{
if(note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY<=0)
{
note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 3;
}//if(note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY<=0)
var fields = new string[22];
fields[0] = note.PUBLIC_STRING_THE_LYR_FOUND;
fields[1] = note.PUBLIC_STRING_THE_INDINOTE_FOUND;
fields[2] = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127.ToString();
fields[3] = note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY.ToString(CultureInfo.InvariantCulture);
fields[4] = note.INT_CURRENT_NOTES_VELOCITY_0_TO_127.ToString();
fields[5] = note.INT_CURRENT_NOTES_PATCH_0_TO_127.ToString();
fields[6] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS;
fields[7] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES;
fields[8] = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15.ToString();
fields[9] = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER.ToString();
fields[10] = "to_fill";
fields[11] = "51.97";
fields[12] = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP.ToString(CultureInfo.InvariantCulture);
fields[13] = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND.ToString();
fields[14] = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND.ToString();
fields[15] = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS.ToString(CultureInfo.InvariantCulture);
fields[16] = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES.ToString(CultureInfo.InvariantCulture);
fields[17] = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES.ToString(CultureInfo.InvariantCulture);
fields[18] = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES.ToString(CultureInfo.InvariantCulture);
fields[19] = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20.ToString();
fields[20] = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT.ToString();
writer.WriteLine(string.Join(" " + Separator + " ", fields));
}//foreach (var note in notes.Take(MaxNotesPerFile))
}//using (var writer = new StreamWriter(path))
}// public static void SaveNotesToFile(string path, List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> notes)
}// public class RagaPaltas_OddEvenConcatenator
// NEW CLASS: Handles grouping notes between | or @@, permutes durations, and writes chunks of 5990
//////using System;
//////using System.Collections.Generic;
//////using System.Globalization;
//////using System.IO;
//////using System.Linq;
public class RagaPaltasGroupwisePermuter_WithMeasureBoundaries
{
const string Separator = "######";
const int MaxNotesPerFile = 5990;
public static void GenerateRagaFiles_WithMeasurewiseDurationPermutations(string inputFile)
{
var allNotes = LoadNotesFromFile(inputFile);
Console.WriteLine("Loaded base notes: " + allNotes.Count);
var outputNotes = new List<List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>>();
var currentChunk = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
outputNotes.Add(new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>(allNotes)); // Add original
currentChunk.AddRange(allNotes);
var groupedMeasures = new List<List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>>();
var currentMeasure = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
for (int i = 0; i < allNotes.Count; i++)
{
var current = allNotes[i];
currentMeasure.Add(current);
bool isLast = i == allNotes.Count - 1;
bool isPipe = current.PUBLIC_STRING_THE_LYR_FOUND == "|";
bool isDoubleAt = i > 0 && allNotes[i - 1].PUBLIC_STRING_THE_LYR_FOUND == "@" && current.PUBLIC_STRING_THE_LYR_FOUND == "@";
if (isPipe || isDoubleAt || isLast)
{
groupedMeasures.Add(new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>(currentMeasure));
currentMeasure.Clear();
}//if (isPipe || isDoubleAt || isLast)
}//for (int i = 0; i < allNotes.Count; i++)
int fileCounter = 1;
int accumulatedNotes = allNotes.Count;
foreach (var measure in groupedMeasures)
{
if (measure.Count <= 1) continue; // skip solo | or @
var durations = measure.Select(n => n.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY).ToList();
var permutations = GetPermutations(durations);
foreach (var perm in permutations)
{
var permuted = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
for (int i = 0; i < measure.Count; i++)
{
var copy = CloneNote(measure[i]);
copy.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = perm[i];
permuted.Add(copy);
}//for (int i = 0; i < measure.Count; i++)
if (accumulatedNotes + permuted.Count > MaxNotesPerFile)
{
SaveNotesToFile(inputFile + $"_measuresboundaried_PERMUTED_part{fileCounter}.dataGridView___COMPOSER", currentChunk);
fileCounter++;
currentChunk = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
accumulatedNotes = 0;
}//if (accumulatedNotes + permuted.Count > MaxNotesPerFile)
currentChunk.AddRange(permuted);
accumulatedNotes += permuted.Count;
}//foreach (var perm in permutations)
}//foreach (var measure in groupedMeasures)
SaveNotesToFile(inputFile + $"_PERMUTED_part{fileCounter}.dataGridView___COMPOSER", currentChunk);
}//public static void GenerateRagaFiles_WithMeasurewiseDurationPermutations(string inputFile)
private static PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS CloneNote(PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS note)
{
return new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
{
PUBLIC_STRING_THE_LYR_FOUND = note.PUBLIC_STRING_THE_LYR_FOUND,
PUBLIC_STRING_THE_INDINOTE_FOUND = note.PUBLIC_STRING_THE_INDINOTE_FOUND,
INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127,
DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY,
INT_CURRENT_NOTES_VELOCITY_0_TO_127 = note.INT_CURRENT_NOTES_VELOCITY_0_TO_127,
INT_CURRENT_NOTES_PATCH_0_TO_127 = note.INT_CURRENT_NOTES_PATCH_0_TO_127,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES,
PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15,
PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER,
PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP,
PUBLIC_INT___Column_JUERK_UP_PITCHBEND = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND,
PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND,
PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS,
PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES,
Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES,
Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES,
PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20,
PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
};
}//private static PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS CloneNote(PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS note)
private static List<List<double>> GetPermutations(List<double> list)
{
var result = new List<List<double>>();
Permute(list, 0, result);
return result;
}
private static void Permute(List<double> list, int start, List<List<double>> result)
{
if (start >= list.Count)
{
result.Add(new List<double>(list));
return;
}//if (start >= list.Count)
for (int i = start; i < list.Count; i++)
{
(list[start], list[i]) = (list[i], list[start]);
Permute(list, start + 1, result);
(list[start], list[i]) = (list[i], list[start]);
}//for (int i = start; i < list.Count; i++)
}//private static void Permute(List<double> list, int start, List<List<double>> result)
public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> LoadNotesFromFile(string path)
{
var notes = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
int lineIndex = 0;
foreach (var line in File.ReadLines(path))
{
if (lineIndex++ == 0) continue; // skip header
var parts = line.Split(new[] { Separator }, StringSplitOptions.None).Select(p => p.Trim()).ToArray();
if (parts.Length < 22) continue;
var note = new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
try { note.PUBLIC_STRING_THE_LYR_FOUND = parts[0]; } catch { note.PUBLIC_STRING_THE_LYR_FOUND = "LYR"; }
try { note.PUBLIC_STRING_THE_INDINOTE_FOUND = parts[1]; } catch { note.PUBLIC_STRING_THE_INDINOTE_FOUND = "S"; }
try { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = int.Parse(parts[2]); } catch { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = 60; }
try { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = double.Parse(parts[3], CultureInfo.InvariantCulture); } catch { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 500; }
try { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = int.Parse(parts[4]); } catch { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = 100; }
try { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = int.Parse(parts[5]); } catch { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = 73; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = parts[6]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = "0,100"; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = parts[7]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = "8192,8192"; }
try { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = int.Parse(parts[8]); } catch { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = 1; }
try { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = int.Parse(parts[9]); } catch { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = 1; }
try { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = double.Parse(parts[13], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 0; }
try { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = int.Parse(parts[14]); } catch { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 0; }
try { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = int.Parse(parts[15]); } catch { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 0; }
try { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = double.Parse(parts[16], CultureInfo.InvariantCulture); } catch { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = 0; }
try { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = double.Parse(parts[17], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = 0; }
try { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = double.Parse(parts[18], CultureInfo.InvariantCulture); } catch { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = 0; }
try { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = double.Parse(parts[19], CultureInfo.InvariantCulture); } catch { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = 0; }
try { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = int.Parse(parts[20]); } catch { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = 6; }
try { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = int.Parse(parts[21]); } catch { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = 64; }
notes.Add(note);
}// foreach (var line in File.ReadLines(path))
return notes;
}//public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> LoadNotesFromFile(string path)
public static void SaveNotesToFile(string path, List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> notes)
{
using (var writer = new StreamWriter(path))
{
foreach (var note in notes.Take(MaxNotesPerFile))
{
if (note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY <= 0)
{
note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 3;
}//if(note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY<=0)
var fields = new string[22];
fields[0] = note.PUBLIC_STRING_THE_LYR_FOUND;
fields[1] = note.PUBLIC_STRING_THE_INDINOTE_FOUND;
fields[2] = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127.ToString();
fields[3] = note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY.ToString(CultureInfo.InvariantCulture);
fields[4] = note.INT_CURRENT_NOTES_VELOCITY_0_TO_127.ToString();
fields[5] = note.INT_CURRENT_NOTES_PATCH_0_TO_127.ToString();
fields[6] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS;
fields[7] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES;
fields[8] = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15.ToString();
fields[9] = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER.ToString();
fields[10] = "to_fill";
fields[11] = "51.97";
fields[12] = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP.ToString(CultureInfo.InvariantCulture);
fields[13] = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND.ToString();
fields[14] = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND.ToString();
fields[15] = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS.ToString(CultureInfo.InvariantCulture);
fields[16] = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES.ToString(CultureInfo.InvariantCulture);
fields[17] = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES.ToString(CultureInfo.InvariantCulture);
fields[18] = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES.ToString(CultureInfo.InvariantCulture);
fields[19] = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20.ToString();
fields[20] = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT.ToString();
writer.WriteLine(string.Join(" " + Separator + " ", fields));
}//foreach (var note in notes.Take(MaxNotesPerFile))
}//using (var writer = new StreamWriter(path))
}//public static void SaveNotesToFile(string path, List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> notes)
}//public class RagaPaltasGroupwisePermuter_WithMeasureBoundaries
//////using System;
//////using System.Collections.Generic;
//////using System.Globalization;
//////using System.IO;
//////using System.Linq;
public class RagaPaltasGenerator___PERMUTED_DURATIONS_SEQUENCES_COPIERS_reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER
{
const string Separator = "######";
public static void GenerateExtendedRagaFile___ALL_THE_NOTES_WITH_PERMUTED_DURATIONS_OF_OTHER_NOTES(string inputFile, string outputFile)
{
var baseNotes = LoadNotesFromFile(inputFile);
if (baseNotes.Count == 0)
{
Console.WriteLine("No valid notes found in input file.");
System.Windows.Forms.MessageBox.Show("No valid notes found in input file.");
return;
}//if (baseNotes.Count == 0)
if (baseNotes.Count >= 9)
{
System.Windows.Forms.MessageBox.Show("Will note do permutations if the basenotes count >=9 ");
return;
}//if(baseNotes.Count>=9)
var outputNotes = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
var allDurPermutations = GetPermutations(baseNotes.Select(n => n.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY).ToList());
int logging_counter = 0;
foreach (var durationSet in allDurPermutations)
{
for (int i = 0; i < baseNotes.Count; i++)
{
var note = baseNotes[i];
var newNote = new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
{
PUBLIC_STRING_THE_LYR_FOUND = note.PUBLIC_STRING_THE_LYR_FOUND,
PUBLIC_STRING_THE_INDINOTE_FOUND = note.PUBLIC_STRING_THE_INDINOTE_FOUND,
INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127,
DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = durationSet[i],
INT_CURRENT_NOTES_VELOCITY_0_TO_127 = note.INT_CURRENT_NOTES_VELOCITY_0_TO_127,
INT_CURRENT_NOTES_PATCH_0_TO_127 = note.INT_CURRENT_NOTES_PATCH_0_TO_127,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES,
PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15,
PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER,
PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP,
PUBLIC_INT___Column_JUERK_UP_PITCHBEND = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND,
PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND,
PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS,
PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES,
Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES,
Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES,
PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20,
PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
};
logging_counter++;
if(logging_counter<5990)
{
outputNotes.Add(newNote);
}// if(logging_counter<5990)
}//for (int i = 0; i < baseNotes.Count; i++)
}//foreach (var durationSet in allDurPermutations)
SaveNotesToFile(outputFile, outputNotes);
}
public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> LoadNotesFromFile(string path)
{
var notes = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
int lines_number_in_files = 0;
foreach (var line in File.ReadLines(path))
{
if(lines_number_in_files>0)
{
//not to load the header lines
var parts = line.Split(new[] { Separator }, StringSplitOptions.None).Select(p => p.Trim()).ToArray();
if (parts.Length < 22) continue;
var note = new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
try { note.PUBLIC_STRING_THE_LYR_FOUND = parts[0]; } catch { note.PUBLIC_STRING_THE_LYR_FOUND = "LYR"; }
try { note.PUBLIC_STRING_THE_INDINOTE_FOUND = parts[1]; } catch { note.PUBLIC_STRING_THE_INDINOTE_FOUND = "S"; }
try { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = int.Parse(parts[2]); } catch { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = 60; }
try { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = double.Parse(parts[3], CultureInfo.InvariantCulture); } catch { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 500; }
try { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = int.Parse(parts[4]); } catch { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = 100; }
try { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = int.Parse(parts[5]); } catch { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = 73; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = parts[6]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = "0,100"; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = parts[7]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = "8192,8192"; }
try { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = int.Parse(parts[8]); } catch { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = 1; }
try { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = int.Parse(parts[9]); } catch { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = 1; }
try { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = double.Parse(parts[13], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 0; }
try { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = int.Parse(parts[14]); } catch { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 0; }
try { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = int.Parse(parts[15]); } catch { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 0; }
try { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = double.Parse(parts[16], CultureInfo.InvariantCulture); } catch { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = 0; }
try { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = double.Parse(parts[17], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = 0; }
try { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = double.Parse(parts[18], CultureInfo.InvariantCulture); } catch { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = 0; }
try { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = double.Parse(parts[19], CultureInfo.InvariantCulture); } catch { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = 0; }
try { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = int.Parse(parts[20]); } catch { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = 6; }
try { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = int.Parse(parts[21]); } catch { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = 64; }
notes.Add(note);
}//if(lines_number_in_files>0)
lines_number_in_files++;
}
return notes;
}
public static void SaveNotesToFile(string path, List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> notes)
{
int permuted_notes_counter = 0;
System.Windows.Forms.MessageBox.Show("Total permuted durations notes count = " + notes.Count + " we will save only 5990 notes");
using (var writer = new StreamWriter(path))
{
foreach (var note in notes)
{
permuted_notes_counter++;
if(permuted_notes_counter<5990)
{
if (note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY <= 0)
{
note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 3;
}//if(note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY<=0)
var fields = new string[22];
try { fields[0] = note.PUBLIC_STRING_THE_LYR_FOUND ?? "LYR"; } catch { fields[0] = "LYR"; }
try { fields[1] = note.PUBLIC_STRING_THE_INDINOTE_FOUND ?? "S"; } catch { fields[1] = "S"; }
try { fields[2] = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127.ToString(); } catch { fields[2] = "60"; }
try { fields[3] = note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY.ToString(CultureInfo.InvariantCulture); } catch { fields[3] = "500"; }
try { fields[4] = note.INT_CURRENT_NOTES_VELOCITY_0_TO_127.ToString(); } catch { fields[4] = "100"; }
try { fields[5] = note.INT_CURRENT_NOTES_PATCH_0_TO_127.ToString(); } catch { fields[5] = "73"; }
try { fields[6] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS ?? "0,100"; } catch { fields[6] = "0,100"; }
try { fields[7] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES ?? "8192,8192"; } catch { fields[7] = "8192,8192"; }
try { fields[8] = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15.ToString(); } catch { fields[8] = "1"; }
try { fields[9] = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER.ToString(); } catch { fields[9] = "1"; }
fields[10] = "to_fill";
fields[11] = "51.97";
try { fields[12] = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP.ToString(CultureInfo.InvariantCulture); } catch { fields[12] = "0"; }
try { fields[13] = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND.ToString(); } catch { fields[13] = "0"; }
try { fields[14] = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND.ToString(); } catch { fields[14] = "0"; }
try { fields[15] = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS.ToString(CultureInfo.InvariantCulture); } catch { fields[15] = "0"; }
try { fields[16] = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES.ToString(CultureInfo.InvariantCulture); } catch { fields[16] = "0"; }
try { fields[17] = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES.ToString(CultureInfo.InvariantCulture); } catch { fields[17] = "0"; }
try { fields[18] = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES.ToString(CultureInfo.InvariantCulture); } catch { fields[18] = "0"; }
try { fields[19] = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20.ToString(); } catch { fields[19] = "6"; }
try { fields[20] = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT.ToString(); } catch { fields[20] = "64"; }
writer.WriteLine(string.Join(" " + Separator + " ", fields));
}//if(permuted_notes_counter<5990)
}//foreach (var note in notes)
}
}
private static List<List<double>> GetPermutations(List<double> list)
{
var result = new List<List<double>>();
Permute(list, 0, result);
return result;
}// private static List<List<double>> GetPermutations(List<double> list)
private static void Permute(List<double> list, int start, List<List<double>> result)
{
if (start >= list.Count)
{
result.Add(new List<double>(list));
return;
}
for (int i = start; i < list.Count; i++)
{
(list[start], list[i]) = (list[i], list[start]);
Permute(list, start + 1, result);
(list[start], list[i]) = (list[i], list[start]);
}
}
// LoadNotesFromFile and SaveNotesToFile remain unchanged (already includes try-catch)
} // class end
//////using System;
//////using System.Collections.Generic;
//////using System.Globalization;
//////using System.IO;
//////using System.Linq;
public class RagaPaltasGenerator___reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER
{
const string Separator = "######";
public static void GenerateExtendedRagaFile___ALL_THE_NOTES_WITH_SAMES_DURATIONS_OF_OTHER_NOTES(string inputFile, string outputFile)
{
var baseNotes = LoadNotesFromFile(inputFile);
if (baseNotes.Count == 0)
{
Console.WriteLine("No valid notes found in input file.");
return;
}
var outputNotes = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
foreach (var donorNote in baseNotes)
{
foreach (var recipientNote in baseNotes)
{
var cloneList = baseNotes.Select(note => new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
{
PUBLIC_STRING_THE_LYR_FOUND = note.PUBLIC_STRING_THE_LYR_FOUND,
PUBLIC_STRING_THE_INDINOTE_FOUND = note.PUBLIC_STRING_THE_INDINOTE_FOUND,
INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127,
DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = donorNote.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY,
INT_CURRENT_NOTES_VELOCITY_0_TO_127 = recipientNote.INT_CURRENT_NOTES_VELOCITY_0_TO_127,
INT_CURRENT_NOTES_PATCH_0_TO_127 = note.INT_CURRENT_NOTES_PATCH_0_TO_127,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES,
PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15,
PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER,
PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP,
PUBLIC_INT___Column_JUERK_UP_PITCHBEND = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND,
PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND,
PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS,
PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES,
Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES,
Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES,
PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20,
PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
}).ToList();
outputNotes.AddRange(cloneList);
}
}
SaveNotesToFile(outputFile, outputNotes);
}
public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> LoadNotesFromFile(string path)
{
var notes = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
foreach (var line in File.ReadLines(path))
{
var parts = line.Split(new[] { Separator }, StringSplitOptions.None).Select(p => p.Trim()).ToArray();
if (parts.Length < 22) continue;
var note = new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS();
try { note.PUBLIC_STRING_THE_LYR_FOUND = parts[0]; } catch { note.PUBLIC_STRING_THE_LYR_FOUND = "LYR"; }
try { note.PUBLIC_STRING_THE_INDINOTE_FOUND = parts[1]; } catch { note.PUBLIC_STRING_THE_INDINOTE_FOUND = "S"; }
try { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = int.Parse(parts[2]); } catch { note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = 60; }
try { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = double.Parse(parts[3], CultureInfo.InvariantCulture); } catch { note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 500; }
try { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = int.Parse(parts[4]); } catch { note.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = 100; }
try { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = int.Parse(parts[5]); } catch { note.INT_CURRENT_NOTES_PATCH_0_TO_127 = 73; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = parts[6]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = "0,100"; }
try { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = parts[7]; } catch { note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = "8192,8192"; }
try { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = int.Parse(parts[8]); } catch { note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = 0; }
try { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = int.Parse(parts[9]); } catch { note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = 0; }
try { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = double.Parse(parts[13], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 0; }
try { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = int.Parse(parts[14]); } catch { note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 0; }
try { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = int.Parse(parts[15]); } catch { note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 0; }
try { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = double.Parse(parts[16], CultureInfo.InvariantCulture); } catch { note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = 0; }
try { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = double.Parse(parts[17], CultureInfo.InvariantCulture); } catch { note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = 0; }
try { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = double.Parse(parts[18], CultureInfo.InvariantCulture); } catch { note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = 0; }
try { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = double.Parse(parts[19], CultureInfo.InvariantCulture); } catch { note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = 0; }
try { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = int.Parse(parts[20]); } catch { note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = 6; }
try { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = int.Parse(parts[21]); } catch { note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = 64; }
notes.Add(note);
}
return notes;
}
public static void SaveNotesToFile(string path, List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> notes)
{
using (var writer = new StreamWriter(path))
{
foreach (var note in notes)
{
if (note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY <= 0)
{
note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 3;
}//if(note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY<=0)
var fields = new string[22];
try { fields[0] = note.PUBLIC_STRING_THE_LYR_FOUND ?? "LYR"; } catch { fields[0] = "LYR"; }
try { fields[1] = note.PUBLIC_STRING_THE_INDINOTE_FOUND ?? "S"; } catch { fields[1] = "S"; }
try { fields[2] = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127.ToString(); } catch { fields[2] = "60"; }
try { fields[3] = note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY.ToString(CultureInfo.InvariantCulture); } catch { fields[3] = "500"; }
try { fields[4] = note.INT_CURRENT_NOTES_VELOCITY_0_TO_127.ToString(); } catch { fields[4] = "100"; }
try { fields[5] = note.INT_CURRENT_NOTES_PATCH_0_TO_127.ToString(); } catch { fields[5] = "73"; }
try { fields[6] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS ?? "0,100"; } catch { fields[6] = "0,100"; }
try { fields[7] = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES ?? "8192,8192"; } catch { fields[7] = "8192,8192"; }
try { fields[8] = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15.ToString(); } catch { fields[8] = "0"; }
try { fields[9] = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER.ToString(); } catch { fields[9] = "0"; }
fields[10] = "to_fill";
fields[11] = "51.97";
try { fields[12] = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP.ToString(CultureInfo.InvariantCulture); } catch { fields[12] = "0"; }
try { fields[13] = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND.ToString(); } catch { fields[13] = "0"; }
try { fields[14] = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND.ToString(); } catch { fields[14] = "0"; }
try { fields[15] = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS.ToString(CultureInfo.InvariantCulture); } catch { fields[15] = "0"; }
try { fields[16] = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES.ToString(CultureInfo.InvariantCulture); } catch { fields[16] = "0"; }
try { fields[17] = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES.ToString(CultureInfo.InvariantCulture); } catch { fields[17] = "0"; }
try { fields[18] = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES.ToString(CultureInfo.InvariantCulture); } catch { fields[18] = "0"; }
try { fields[19] = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20.ToString(); } catch { fields[19] = "6"; }
try { fields[20] = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT.ToString(); } catch { fields[20] = "64"; }
writer.WriteLine(string.Join(" " + Separator + " ", fields));
}
}
}
} // class end
//////using System;
//////using System.Collections.Generic;
//////using System.Globalization;
//////using System.IO;
//////using System.Linq;
public class DISCARDING___NO_TRYCATCH_WAS_THERE___RagaPaltasGenerator___reading_the___dataGridView___COMPOSER___generates_another___dataGridView___COMPOSER
{
const string Separator = "######";
public static void GenerateExtendedRagaFile(string inputFile, string outputFile)
{
var baseNotes = LoadNotesFromFile(inputFile);
if (baseNotes.Count == 0)
{
Console.WriteLine("No valid notes found in input file.");
System.Windows.Forms.MessageBox.Show("No valid notes found in input file.");
return;
}// if (baseNotes.Count == 0)
var outputNotes = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
foreach (var donorNote in baseNotes)
{
foreach (var recipientNote in baseNotes)
{
var cloneList = baseNotes.Select(note => new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
{
PUBLIC_STRING_THE_LYR_FOUND = note.PUBLIC_STRING_THE_LYR_FOUND,
PUBLIC_STRING_THE_INDINOTE_FOUND = note.PUBLIC_STRING_THE_INDINOTE_FOUND,
INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127,
DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = donorNote.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY,
INT_CURRENT_NOTES_VELOCITY_0_TO_127 = recipientNote.INT_CURRENT_NOTES_VELOCITY_0_TO_127,
INT_CURRENT_NOTES_PATCH_0_TO_127 = note.INT_CURRENT_NOTES_PATCH_0_TO_127,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS,
STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES,
PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15,
PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER,
PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP,
PUBLIC_INT___Column_JUERK_UP_PITCHBEND = note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND,
PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND,
PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS,
PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES,
Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES,
Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES,
PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20,
PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT
}).ToList();
outputNotes.AddRange(cloneList);
}//foreach (var recipientNote in baseNotes)
}//foreach (var donorNote in baseNotes)
SaveEXTENDED_RAGAPALTAS_NotesToFile(outputFile, outputNotes);
}//public static void GenerateExtendedRagaFile(string inputFile, string outputFile)
public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> LoadNotesFromFile(string path)
{
var notes = new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
foreach (var line in File.ReadLines(path))
{
var parts = line.Split(new[] { Separator }, StringSplitOptions.None).Select(p => p.Trim()).ToArray();
if (parts.Length < 22) continue;
try
{
var note = new PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
{
PUBLIC_STRING_THE_LYR_FOUND = parts[0],
PUBLIC_STRING_THE_INDINOTE_FOUND = parts[1],
INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = int.Parse(parts[2]),
DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = double.Parse(parts[3], CultureInfo.InvariantCulture),
INT_CURRENT_NOTES_VELOCITY_0_TO_127 = int.Parse(parts[4]),
INT_CURRENT_NOTES_PATCH_0_TO_127 = int.Parse(parts[5]),
// STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = parts[6],
// STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = parts[7],
PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = int.Parse(parts[8]),
PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = int.Parse(parts[9]),
// PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = double.Parse(parts[13], CultureInfo.InvariantCulture),
// PUBLIC_INT___Column_JUERK_UP_PITCHBEND = int.Parse(parts[14]),
// PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = int.Parse(parts[15]),
// PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = double.Parse(parts[16], CultureInfo.InvariantCulture),
// PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = double.Parse(parts[17], CultureInfo.InvariantCulture),
// Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = double.Parse(parts[18], CultureInfo.InvariantCulture),
// Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = double.Parse(parts[19], CultureInfo.InvariantCulture),
// PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = int.Parse(parts[20]),
// PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = int.Parse(parts[21])
};
notes.Add(note);
Console.WriteLine("populated " + line);
}
catch
{
// Handle malformed row
continue;
}
}
return notes;
}
public static void SaveEXTENDED_RAGAPALTAS_NotesToFile(string path, List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> notes)
{
using (var writer = new StreamWriter(path))
{
foreach (var note in notes)
{
if (note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY <= 0)
{
note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 3;
}//if(note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY<=0)
writer.WriteLine(string.Join(" " + Separator + " ", new[]
{
note.PUBLIC_STRING_THE_LYR_FOUND,
note.PUBLIC_STRING_THE_INDINOTE_FOUND,
note.INT_NOTE_NUMBER_TO_PLAY_0_TO_127.ToString(),
note.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY.ToString(CultureInfo.InvariantCulture),
note.INT_CURRENT_NOTES_VELOCITY_0_TO_127.ToString(),
note.INT_CURRENT_NOTES_PATCH_0_TO_127.ToString(),
note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS,
note.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES,
note.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15.ToString(),
note.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER.ToString(),
"to_fill", // NOTES_NUMBERS placeholder
"51.97", // NOTES_FREQUENCYS placeholder
note.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP.ToString(CultureInfo.InvariantCulture),
note.PUBLIC_INT___Column_JUERK_UP_PITCHBEND.ToString(),
note.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND.ToString(),
note.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS.ToString(CultureInfo.InvariantCulture),
note.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES.ToString(CultureInfo.InvariantCulture),
note.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES.ToString(CultureInfo.InvariantCulture),
note.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES.ToString(CultureInfo.InvariantCulture),
note.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20.ToString(),
note.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT.ToString()
}));
}//foreach (var note in notes)
}//using (var writer = new StreamWriter(path))
}//public static void SaveNotesToFile(string path, List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS> notes)
} // class end public class RagaPaltasGenerator
/// <summary>
/// /////////////////////////////////////////////////////////////////////////////////////////////////////
/// </summary>
//////using System;
//////using System.Collections.Generic;
//////using System.Text;
public class WaterDistributor___OR_MILLIS_DISTRIBUTIONS
{
public static StringBuilder PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_DISTRIBUTIONS_MILLIS_DISTRIBUTIONS_REPORTS = new StringBuilder();
public static StringBuilder PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_OR_MILLIS_ALLOCATED_TOKENS = new StringBuilder();
class Node
{
public string Symbol;
public List<Node> Children = new List<Node>();
public double Water_OR_MILLIS = 0;
public bool IsFixedToken = false; // to mark special characters for fixed allocation
}
public static void WaterDistributor___MILLIS_DISTRIBUTIONS_Main(string input_string_for_whole_forest, double total_water_or_total_millis_W_for_each_tree_pipes_delimeted)
{
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_DISTRIBUTIONS_MILLIS_DISTRIBUTIONS_REPORTS.Clear();
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_OR_MILLIS_ALLOCATED_TOKENS.Clear();
string input = input_string_for_whole_forest;
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_DISTRIBUTIONS_MILLIS_DISTRIBUTIONS_REPORTS
.AppendLine("Input string:\n" + input + "\nTotal millis per tree: " + total_water_or_total_millis_W_for_each_tree_pipes_delimeted);
var trees = ParseForest(input);
double waterPerTree = total_water_or_total_millis_W_for_each_tree_pipes_delimeted;
foreach (var tree in trees)
DistributeWater(tree, waterPerTree);
foreach (var tree in trees)
PrintWaterDistribution(tree, "ROOT");
}
static List<Node> ParseForest(string input)
{
var trees = new List<Node>();
var treeStrings = input.Split('|');
foreach (var treeStr in treeStrings)
{
string trimmed = treeStr.Trim();
if (!string.IsNullOrEmpty(trimmed))
{
var tokens = Tokenize(trimmed);
int index = 0;
var root = new Node { Symbol = "ROOT" };
while (index < tokens.Count)
{
root.Children.Add(ParseNode(tokens, ref index));
}
trees.Add(root);
}
}
return trees;
}
static List<string> Tokenize(string input)
{
var tokens = new List<string>();
string current = "";
foreach (char c in input)
{
if (c == '(' || c == ')')
{
if (!string.IsNullOrWhiteSpace(current))
{
tokens.AddRange(current.Trim().Split(' '));
current = "";
}
tokens.Add(c.ToString());
}
else
{
current += c;
}
}
if (!string.IsNullOrWhiteSpace(current))
{
tokens.AddRange(current.Trim().Split(' '));
}
return tokens;
}
static Node ParseNode(List<string> tokens, ref int index)
{
if (tokens[index] == "(")
{
index++;
var parent = new Node { Symbol = "BRANCH" };
while (index < tokens.Count && tokens[index] != ")")
{
parent.Children.Add(ParseNode(tokens, ref index));
}
index++;
return parent;
}
else
{
string sym = tokens[index++];
return new Node
{
Symbol = sym,
IsFixedToken = sym == "|" || sym == "@" || sym == "[" || sym == "]" || sym == "{" || sym == "}" || sym == ";" || sym == "," || sym == "~" || sym == "!" || sym == "" || sym == "^" || sym == "&"
};
}
}
static void DistributeWater(Node node, double water)
{
if (node.Children.Count == 0)
{
node.Water_OR_MILLIS = node.IsFixedToken ? 30.0 : water;
return;
}
int fixedCount = 0;
double remainingWater = water;
foreach (var child in node.Children)
{
if (child.IsFixedToken)
fixedCount++;
}
double fixedAllocation = 30.0 * fixedCount;
double distributable = Math.Max(0, water - fixedAllocation);
int nonFixedCount = node.Children.Count - fixedCount;
double perNode = nonFixedCount > 0 ? distributable / nonFixedCount : 0;
foreach (var child in node.Children)
{
if (child.IsFixedToken)
DistributeWater(child, 30.0);
else
DistributeWater(child, perNode);
}
node.Water_OR_MILLIS = water;
}
static void PrintWaterDistribution(Node node, string path)
{
if (node.Symbol != "ROOT" && node.Symbol != "BRANCH")
{
Console.WriteLine($"{path}/{node.Symbol} -> {node.Water_OR_MILLIS:F2} milliseconds");
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_DISTRIBUTIONS_MILLIS_DISTRIBUTIONS_REPORTS
.AppendLine($"{path}/{node.Symbol} -> {node.Water_OR_MILLIS:F2} milliseconds");
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_OR_MILLIS_ALLOCATED_TOKENS
.AppendLine(node.Symbol + "_DISTRIBUTED_" + node.Water_OR_MILLIS.ToString("F2"));
}
foreach (var child in node.Children)
{
PrintWaterDistribution(child, path + "/" + (node.Symbol == "ROOT" ? "" : node.Symbol));
}
}
} // class end
////// Suppose an ant is distributing W litres of water to whole forest… First it sees n number of trees so it allocates W/n amount of water to all trees equally irrespective of sizes of the trees.Then enters into a tree t_0 with W/n litres of water and sees there are n_t0_k0 number of level 0 branches so it allocates (W/n_t0_/n_k0) amount of water to each level 0 branch of that tree … then enter next one branch of level0 and until it enters there it cannot understand how many level 1 branches are there for that particular level0 branch of that tree and when it finds for that particular branch there are n_t0_k0_k1 number of level 1 sub branches for that particular branch n_t0_k0 so it distributes(W/n_t0_/n_t0_k0/n_t0_k0_k1) amount of water to all the sub branches for that branch … recursively in this way it can count number of subbranches only after entering there inside … it is like recursively file searching inside folders then sub folders … etc… until the crawler enters into a branch it cannot know how many sub entries are present there inside… the counts are not always same at every level so distributions are not same for all same level entries… The forest is written as string input = "| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h"; | delimits the trees and (…) denotes the branches and nested (…) denotes the sub branches… write a c sharp program to allocate water distributions mechanisms recursively for every leafs level (conditionally changes as per the order of (…) present in the string
public class WaterDistributor___OR_MILLIS_DISTRIBUTIONS___DISCARDING_SINCE_IT_WAS_NOT_TAKING_CARE_ON_SPECIAL_CHARACTERS_WITH_30_MILLIS
{
public static StringBuilder PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_DISTRIBUTIONS_MILLIS_DISTRIBUTIONS_REPORTS
= new StringBuilder();
public static StringBuilder PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_OR_MILLIS_ALLOCATED_TOKENS
= new StringBuilder();
////// Suppose an ant is distributing W litres of water to whole forest… First it sees n number of trees so it allocates W/n amount of water to all trees equally irrespective of sizes of the trees.Then enters into a tree t_0 with W/n litres of water and sees there are n_t0_k0 number of level 0 branches so it allocates (W/n_t0_/n_k0) amount of water to each level 0 branch of that tree … then enter next one branch of level0 and until it enters there it cannot understand how many level 1 branches are there for that particular level0 branch of that tree and when it finds for that particular branch there are n_t0_k0_k1 number of level 1 sub branches for that particular branch n_t0_k0 so it distributes(W/n_t0_/n_t0_k0/n_t0_k0_k1) amount of water to all the sub branches for that branch … recursively in this way it can count number of subbranches only after entering there inside … it is like recursively file searching inside folders then sub folders … etc… until the crawler enters into a branch it cannot know how many sub entries are present there inside… the counts are not always same at every level so distributions are not same for all same level entries… The forest is written as string input = "| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h"; | delimits the trees and (…) denotes the branches and nested (…) denotes the sub branches… write a c sharp program to allocate water distributions mechanisms recursively for every leafs level (conditionally changes as per the order of (…) present in the string
class Node
{
public string Symbol;
public List<Node> Children = new List<Node>();
public double Water_OR_MILLIS = 0;
}//class Node
public static void DISCARDING___IT_WAS_OK___NOT_TAKING_CARE_ON_SPECIAL_CHARACTERS___WaterDistributor___MILLIS_DISTRIBUTIONS_Main(string input_string_for_whole_forest, double total_water_or_total_millis_W_for_each_tree_pipes_delimeted)
{
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_DISTRIBUTIONS_MILLIS_DISTRIBUTIONS_REPORTS
= new StringBuilder();
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_DISTRIBUTIONS_MILLIS_DISTRIBUTIONS_REPORTS
.Clear();
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_OR_MILLIS_ALLOCATED_TOKENS
= new StringBuilder();
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_OR_MILLIS_ALLOCATED_TOKENS
.Clear();
////// Suppose an ant is distributing W litres of water to whole forest… First it sees n number of trees so it allocates W/n amount of water to all trees equally irrespective of sizes of the trees.Then enters into a tree t_0 with W/n litres of water and sees there are n_t0_k0 number of level 0 branches so it allocates (W/n_t0_/n_k0) amount of water to each level 0 branch of that tree … then enter next one branch of level0 and until it enters there it cannot understand how many level 1 branches are there for that particular level0 branch of that tree and when it finds for that particular branch there are n_t0_k0_k1 number of level 1 sub branches for that particular branch n_t0_k0 so it distributes(W/n_t0_/n_t0_k0/n_t0_k0_k1) amount of water to all the sub branches for that branch … recursively in this way it can count number of subbranches only after entering there inside … it is like recursively file searching inside folders then sub folders … etc… until the crawler enters into a branch it cannot know how many sub entries are present there inside… the counts are not always same at every level so distributions are not same for all same level entries… The forest is written as string input = "| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h"; | delimits the trees and (…) denotes the branches and nested (…) denotes the sub branches… write a c sharp program to allocate water distributions mechanisms recursively for every leafs level (conditionally changes as per the order of (…) present in the string
string input = input_string_for_whole_forest;//"| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h";
//WE WILL NOT DO WITH THIS double totalWater = 100.0;
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_DISTRIBUTIONS_MILLIS_DISTRIBUTIONS_REPORTS
.AppendLine
(
"input(no @ no { no } no [ no ] these are replaced and not replaced - , not replaced ~ not replaced !\r\n"
+"\r\n\r\n\r\n"+ input+"\r\n\r\n\r\n"
+"to distribute per measure = " + total_water_or_total_millis_W_for_each_tree_pipes_delimeted
+"\r\n"
);
var trees = ParseForest(input);
double waterPerTree___millis_per_tree = total_water_or_total_millis_W_for_each_tree_pipes_delimeted;// totalWater / trees.Count;
foreach (var tree in trees)
{
DistributeWater(tree, waterPerTree___millis_per_tree);
}//foreach (var tree in trees)
foreach (var tree in trees)
{
PrintWaterDistribution(tree, "ROOT");
}//foreach (var tree in trees)
}//static void Main()
static List<Node> ParseForest(string input)
{
var trees = new List<Node>();
var treeStrings = input.Split('|');
foreach (var treeStr in treeStrings)
{
string trimmed = treeStr.Trim();
if (!string.IsNullOrEmpty(trimmed))
{
var tokens = Tokenize(trimmed);
int index = 0;
var root = new Node { Symbol = "ROOT" };
while (index < tokens.Count)
{
root.Children.Add(ParseNode(tokens, ref index));
}//while (index < tokens.Count)
trees.Add(root);
}//if (!string.IsNullOrEmpty(trimmed))
}//foreach (var treeStr in treeStrings)
return trees;
}//static List<Node> ParseForest(string input)
static List<string> Tokenize(string input)
{
var tokens = new List<string>();
string current = "";
foreach (char c in input)
{
if (c == '(' || c == ')')
{
if (!string.IsNullOrWhiteSpace(current))
{
tokens.AddRange(current.Trim().Split(' '));
current = "";
}//if (!string.IsNullOrWhiteSpace(current))
tokens.Add(c.ToString());
}
else
{
current += c;
}// end of else of if (c == '(' || c == ')')
}//foreach (char c in input)
if (!string.IsNullOrWhiteSpace(current))
{
tokens.AddRange(current.Trim().Split(' '));
}//if (!string.IsNullOrWhiteSpace(current))
return tokens;
}
static Node ParseNode(List<string> tokens, ref int index)
{
if (tokens[index] == "(")
{
index++; // skip '('
var parent = new Node { Symbol = "BRANCH" };
while (index < tokens.Count && tokens[index] != ")")
{
parent.Children.Add(ParseNode(tokens, ref index));
}// while (index < tokens.Count && tokens[index] != ")")
index++; // skip ')'
return parent;
}
else
{
return new Node { Symbol = tokens[index++] };
}//end of else of if (tokens[index] == "(")
}//static Node ParseNode(List<string> tokens, ref int index)
static void DistributeWater(Node node, double water)
{
node.Water_OR_MILLIS = water;
if (node.Children.Count > 0)
{
double share = water / node.Children.Count;
foreach (var child in node.Children)
{
DistributeWater(child, share);
}//foreach (var child in node.Children)
}//if (node.Children.Count > 0)
}//static void DistributeWater(Node node, double water)
static void PrintWaterDistribution(Node node, string path)
{
////// Suppose an ant is distributing W litres of water to whole forest… First it sees n number of trees so it allocates W/n amount of water to all trees equally irrespective of sizes of the trees.Then enters into a tree t_0 with W/n litres of water and sees there are n_t0_k0 number of level 0 branches so it allocates (W/n_t0_/n_k0) amount of water to each level 0 branch of that tree … then enter next one branch of level0 and until it enters there it cannot understand how many level 1 branches are there for that particular level0 branch of that tree and when it finds for that particular branch there are n_t0_k0_k1 number of level 1 sub branches for that particular branch n_t0_k0 so it distributes(W/n_t0_/n_t0_k0/n_t0_k0_k1) amount of water to all the sub branches for that branch … recursively in this way it can count number of subbranches only after entering there inside … it is like recursively file searching inside folders then sub folders … etc… until the crawler enters into a branch it cannot know how many sub entries are present there inside… the counts are not always same at every level so distributions are not same for all same level entries… The forest is written as string input = "| a b ( c d ( e f ) g ) h | a b ( c (d ( e f ) g )) h | (a b) ( c (d ( e (f) ) g )) h"; | delimits the trees and (…) denotes the branches and nested (…) denotes the sub branches… write a c sharp program to allocate water distributions mechanisms recursively for every leafs level (conditionally changes as per the order of (…) present in the string
if (node.Symbol != "ROOT" && node.Symbol != "BRANCH")
{
Console.WriteLine($"{path}/{node.Symbol} -> {node.Water_OR_MILLIS:F2} litres OR MILLISECONDS");
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_DISTRIBUTIONS_MILLIS_DISTRIBUTIONS_REPORTS
.AppendLine
($"{path}/{node.Symbol} -> {node.Water_OR_MILLIS:F2} litres OR MILLISECONDS");
//////// $"{node.Symbol.Replace("/","").Replace("ROOT","").Replace("BRANCH","")}_DISTRIBUTED_{node.Water_OR_MILLIS:F2}
PUBLIC_STATIC_STRINGBUILDER_FOR_WATER_OR_MILLIS_ALLOCATED_TOKENS
.AppendLine
(
node.Symbol +"_DISTRIBUTED_"+node.Water_OR_MILLIS.ToString("F2")
);
}//if (node.Symbol != "ROOT" && node.Symbol != "BRANCH")
int count = 0;
foreach (var child in node.Children)
{
PrintWaterDistribution(child, path + "/" + (node.Symbol == "ROOT" ? "" : node.Symbol));
count++;
}//foreach (var child in node.Children)
}//static void PrintWaterDistribution(Node node, string path)
}//public class WaterDistributor___OR_MILLIS_DISTRIBUTIONS
public static class PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
{
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
////// .PUBLIC_STATIC_STRING_INDIANIZED_NOTES_REPORT
/// <summary>
/// </summary>
///
//CALLING CONVENTIONS PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_STRING_INDIAN_NOTES_NAME___________PUBLIC_STATIC_STRING_FOR_GLOBAL_ACCESS
//CALLING CONVENTIONS PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_INT_INDIAN_NOTES_NUMBER___________PUBLIC_STATIC_INT_FOR_GLOBAL_ACCESS
public static string ___TEMP_STRING_INDIAN_NOTES_NAME___________PUBLIC_STATIC_STRING_FOR_GLOBAL_ACCESS = "S.";
public static int ___TEMP_INT_INDIAN_NOTES_NUMBER___________PUBLIC_STATIC_INT_FOR_GLOBAL_ACCESS = 69;
public static bool PUBLIC_STATIC_BOOL_TO_SHOW_THE_MESSAGEBOX___TO_SAVE_FILES_ALSO = false;
public static string PUBLIC_STATIC_STRING_INDIANIZED_NOTES_REPORT = "";
public static string[,] PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3 = new string[50, 3];
public static string PUBLIC_STATIC_STRING_TO_REPORT_PLAY_STATUS_LOGS = "";
public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>
PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
= new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>
PUBLIC_STATIC_PERMUTABLES_NOTES_DATA_BUT_PREPRESERVED_RAW_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
= new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
public static List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>
PUBLIC_STATIC_PERMUTED_NOTES_DATA_RAW_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
= new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
//PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3
public static string PUBLIC_STATIC_STRING_GET_INDINOTESNAME_BOTH_SIDES___FIRST_OCCURANCES___from_____PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3____FOR_GIVENS_MIDSNOTESNUMBER(int midnotesnums)
{
string found_indinotesnames_first_occurances = midnotesnums.ToString();// "";
string found_indinotesnames_second_occurances = "";
string complete_notesnamesfound = "";
try
{
for(int searcher=0;searcher< PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0); searcher++)
{
// if(PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher,2]!=null)
if (PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2] != null)
{
Console.WriteLine("Searching the indinotes = " + " for =" + midnotesnums
+ " " + PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0]
+ " " + PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 1]
+ " " + PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2]
);
//////if (PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2].TrimEnd().TrimStart().Trim()== midnotesnums.ToString().TrimEnd().TrimStart().Trim())
if (PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2].TrimEnd().TrimStart().Trim() == midnotesnums.ToString().TrimEnd().TrimStart().Trim())
{
complete_notesnamesfound = PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0];
}//if (PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2].TrimEnd().TrimStart().Trim()== midnotesnums.ToString().TrimEnd().TrimStart().Trim())
}//if(PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher,1]!=null)
}//for(int searcher=0;searcher< PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0); searcher++)
string[] _splittted_indinotesnamesarrays = complete_notesnamesfound.Split('/');
if(_splittted_indinotesnamesarrays.Length>1)
{
found_indinotesnames_first_occurances = _splittted_indinotesnamesarrays[0];
found_indinotesnames_second_occurances =_splittted_indinotesnamesarrays[1];
}//if(_splittted_indinotesnamesarrays.Length>1)
}
catch(Exception _excp_to_search_indinotes___PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3)
{
}//catch(Exception _excp_to_search_indinotes___PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3)
return complete_notesnamesfound;// found_indinotesnames_first_occurances;
}//public static string PUBLIC_STATIC_STRING_GET_INDINOTESNAME_BOTH_SIDES___FIRST_OCCURANCES___from_____PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3____FOR_GIVENS_MIDSNOTESNUMBER(int midnotesnums)
public static string PUBLIC_STATIC_STRING_GET_INDINOTESNAME_ONLY_LEFT_SIDES___FIRST_OCCURANCES___from_____PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3____FOR_GIVENS_MIDSNOTESNUMBER(int midnotesnums)
{
string found_indinotesnames_first_occurances = "";// midnotesnums.ToString();// "";
string found_indinotesnames_second_occurances = "";
string complete_notesnamesfound = "";
try
{
for (int searcher = 0; searcher < PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0); searcher++)
{
// if(PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher,2]!=null)
if (PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2] != null)
{
Console.WriteLine("Searching the indinotes = " + " for =" + midnotesnums
+ " " + PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0]
+ " " + PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 1]
+ " " + PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2]
);
//////if (PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2].TrimEnd().TrimStart().Trim()== midnotesnums.ToString().TrimEnd().TrimStart().Trim())
if (PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2].TrimEnd().TrimStart().Trim() == midnotesnums.ToString().TrimEnd().TrimStart().Trim())
{
complete_notesnamesfound = PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0];
}//if (PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2].TrimEnd().TrimStart().Trim()== midnotesnums.ToString().TrimEnd().TrimStart().Trim())
}//if(PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher,1]!=null)
}//for(int searcher=0;searcher< PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0); searcher++)
string[] _splittted_indinotesnamesarrays = complete_notesnamesfound.Split('/');
if (_splittted_indinotesnamesarrays.Length > 1)
{
found_indinotesnames_first_occurances = _splittted_indinotesnamesarrays[0];
found_indinotesnames_second_occurances = _splittted_indinotesnamesarrays[1];
}//if(_splittted_indinotesnamesarrays.Length>1)
}
catch (Exception _excp_to_search_indinotes___PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3)
{
}//catch(Exception _excp_to_search_indinotes___PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3)
return found_indinotesnames_first_occurances;// complete_notesnamesfound;// found_indinotesnames_first_occurances;
}//public static string PUBLIC_STATIC_STRING_GET_INDINOTESNAME_ONLY_LEFT_SIDES___FIRST_OCCURANCES___from_____PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3____FOR_GIVENS_MIDSNOTESNUMBER(int midnotesnums)
public static string PUBLIC_STATIC_STRING_GET_INDINOTESNAME_ONLY_RIGHT_SIDES_SIDES___FIRST_OCCURANCES___from_____PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3____FOR_GIVENS_MIDSNOTESNUMBER(int midnotesnums)
{
string found_indinotesnames_first_occurances = "";// midnotesnums.ToString();// "";
string found_indinotesnames_second_occurances = "";
string complete_notesnamesfound = "";
try
{
for (int searcher = 0; searcher < PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0); searcher++)
{
// if(PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher,2]!=null)
if (PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2] != null)
{
Console.WriteLine("Searching the indinotes = " + " for =" + midnotesnums
+ " " + PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0]
+ " " + PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 1]
+ " " + PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2]
);
//////if (PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2].TrimEnd().TrimStart().Trim()== midnotesnums.ToString().TrimEnd().TrimStart().Trim())
if (PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2].TrimEnd().TrimStart().Trim() == midnotesnums.ToString().TrimEnd().TrimStart().Trim())
{
complete_notesnamesfound = PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0];
}//if (PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2].TrimEnd().TrimStart().Trim()== midnotesnums.ToString().TrimEnd().TrimStart().Trim())
}//if(PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher,1]!=null)
}//for(int searcher=0;searcher< PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0); searcher++)
string[] _splittted_indinotesnamesarrays = complete_notesnamesfound.Split('/');
if (_splittted_indinotesnamesarrays.Length > 1)
{
found_indinotesnames_first_occurances = _splittted_indinotesnamesarrays[0];
found_indinotesnames_second_occurances = _splittted_indinotesnamesarrays[1];
}//if(_splittted_indinotesnamesarrays.Length>1)
}
catch (Exception _excp_to_search_indinotes___PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3)
{
}//catch(Exception _excp_to_search_indinotes___PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3)
return found_indinotesnames_second_occurances;// complete_notesnamesfound;// found_indinotesnames_first_occurances;
}//public static string PUBLIC_STATIC_STRING_GET_INDINOTESNAME_ONLY_RIGHT_SIDES_SIDES___FIRST_OCCURANCES___from_____PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3____FOR_GIVENS_MIDSNOTESNUMBER(int midnotesnums)
public static string PUBLIC_STATIC_STRING___return_NOTES_NUMBER_STRING_FROM_PRECONFIGURED_KEY_NAMES_TO_NUMBER______FROM___PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3(string NOTESNAME_TO_ASSIGN, int notenumber_to_assign, string NOTE_NAME_FILLED_IN_THE_CELL)
{
//PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3 stores the notenames srgs then freqs then numbers
string returned_notes_number_as_string = "";
string ___report_to_show_on_errors = "P# is not there D_ is not there";
string ___temp_note_name_lower_sides_to_match = "";
string ___temp_note_name_upper_sides_to_match = "";
try
{
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3 = new string[50, 3];
Array.Clear(PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3, 0, PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.Length);
////////NO SHARPNOFLATFOR P D NO P# NO D_
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[0, 0] = ".S_/.S_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[1, 0] = ".S#/.S";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[2, 0] = ".S#/.R_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3, 0] = ".R/.R";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 1, 0] = ".R#/.G_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 2, 0] = ".G/.G";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 3, 0] = ".G#/.M_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[7, 0] = ".M/.M";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[8, 0] = ".M#/.P_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[9, 0] = ".P/.P";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[10, 0] = ".D/.D";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[11, 0] = ".D#/.N_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[12, 0] = ".N/.N";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[13, 0] = ".N#/S_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[14, 0] = ".S#/S_";// i need to write it in this ways with slashes in between to get the strings searched
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 0, 0] = ".S#/S_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 1, 0] = "S/S";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 2, 0] = "S#/R_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3, 0] = "R/R";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 1, 0] = "R#/G_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 2, 0] = "G/G";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 3, 0] = "G#/M_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 7, 0] = "M/M";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 8, 0] = "M#/P_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 9, 0] = "P/P";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 10, 0] = "D/D";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 11, 0] = "D#/N_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 12, 0] = "N/N";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 13, 0] = "N#/S_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 14, 0] = "S#/S#";// i need to write it in this ways with slashes in between to get the strings searched
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 0, 0] = "S#/S#";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 1, 0] = "S#/S.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 2, 0] = "S#./R_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3, 0] = "R./R.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3 + 1, 0] = "R#./G_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3 + 2, 0] = "G./G.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3 + 3, 0] = "G#./M_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 7, 0] = "M./M.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 8, 0] = "M#./P_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 9, 0] = "P./P.";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 10, 0] = "D.";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 11, 0] = "D#./N_."; // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 12, 0] = "N./N.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 13, 0] = "N#./S_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 14, 0] = "S./S.";// i need to write it in this ways with slashes in between to get the strings searched
//////////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 45
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 46
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 47
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 48
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 49
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45, 0] = "-";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 1, 0] = "~";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 2, 0] = "^";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 3, 0] = "\\";//single backslash
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 4, 0] = "/";
////////////48,47,B2,123.47
////////////49,48,C3,130.81
////////////50,49,C#3/Db3,138.59
////////////51,50,D3,146.83
////////////52,51,D#3/Eb3,155.56
////////////53,52,E3,164.81
////////////54,53,F3,174.61
////////////55,54,F#3/Gb3,185
////////////56,55,G3,196
////////////57,56,G#3/Ab3,207.65
////////////58,57,A3,220
////////////59,58,A#3/Bb3,233.08
////////////60,59,B3,246.94
////////////61,60,C4(middle C),261.63
////////////62,61,C#4/Db4,277.18
////////////63,62,D4,293.66
////////////64,63,D#4/Eb4,311.13
////////////65,64,E4,329.63
////////////66,65,F4,349.23
////////////67,66,F#4/Gb4,369.99
////////////68,67,G4,392
////////////69,68,G#4/Ab4,415.3
////////////70,69,A4 concert pitch,440
////////////71,70,A#4/Bb4,466.16
////////////72,71,B4,493.88
////////////73,72,C5,523.25
////////////74,73,C#5/Db5,554.37
////////////75,74,D5,587.33
////////////76,75,D#5/Eb5,622.25
////////////77,76,E5,659.26
////////////78,77,F5,698.46
////////////79,78,F#5/Gb5,739.99
////////////80,79,G5,783.99
////////////81,80,G#5/Ab5,830.61
////////////82,81,A5,880
////////////83,82,A#5/Bb5,932.33
////////////84,83,B5,987.77
////////////85,84,C6,1046.5
////////////86,85,C#6/Db6,1108.73
////////////87,86,D6,1174.66
////////////88,87,D#6/Eb6,1244.51
////////////89,88,E6,1318.51
////////////90,89,F6,1396.91
////////////91,90,F#6/Gb6,1479.98
////////////92,91,G6,1567.98
////////////93,92,G#6/Ab6,1661.22
////////////94,93,A6,1760
////////////95,94,A#6/Bb6,1864.66
////////////96,95,B6,1975.53
////////////97,96,C7,2093
////////////98,97,C#7/Db7,2217.46
////////////99,98,D7,2349.32
////////////100,99,D#7/Eb7,2489.02
////////////101,100,E7,2637.02
// //////////////NO SHARPNOFLATFOR NO S# NO R_ NO P# NO D_
//////////////NO SHARPNOFLATFOR P D NO P# NO D_
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[0, 0] = "..N#/.S_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[1, 0] = ".S/.S";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[2, 0] = ".S#/.R_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3, 0] = ".R/.R";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 1, 0] = ".R#/.G_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 2, 0] = ".G/.G";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 3, 0] = ".G#/.M_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[7, 0] = ".M/.M";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[8, 0] = ".M#/.P_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[9, 0] = ".P/.P";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[10, 0] = ".D/.D";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[11, 0] = ".D#/.N_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[12, 0] = ".N/.N";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[13, 0] = ".N#/S_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[14, 0] = ".N/.N";// i need to write it in this ways with slashes in between to get the strings searched
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 0, 0] = ".N#/S_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 1, 0] = "S/S";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 2, 0] = "S#/R_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3, 0] = "R/R";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 1, 0] = "R#/G_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 2, 0] = "G/G";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 3, 0] = "G#/M_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 7, 0] = "M/M";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 8, 0] = "M#/P_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 9, 0] = "P/P";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 10, 0] = "D/D";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 11, 0] = "D#/N_";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 12, 0] = "N/N";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 13, 0] = "N#/S_.";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 14, 0] = "S./S.";// i need to write it in this ways with slashes in between to get the strings searched
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 0, 0] = "S#./R_.";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 1, 0] = "R./R.";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 2, 0] = "R#./G_..";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3, 0] = "G./G.";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3 + 1, 0] = "R#./G_.";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3 + 2, 0] = "G./G.";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3 + 3, 0] = "G#./M_.";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 7, 0] = "M./M.";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 8, 0] = "M#./P_.";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 9, 0] = "P./P.";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 10, 0] = "D./D.";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 11, 0] = "D#./N_."; // i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 12, 0] = "N./N.";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 13, 0] = "N#./S_..";// i need to write it in this ways with slashes in between to get the strings searched
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 14, 0] = "S../S..";// i need to write it in this ways with slashes in between to get the strings searched
////////////////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 45
//////////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 46
//////////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 47
//////////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 48
//////////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 49
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45, 0] = "-";
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 1, 0] = "~";
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 2, 0] = "^";
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 3, 0] = "\\";//single backslash
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 4, 0] = "/";
//////// //////////////NO SHARPNOFLATFOR NO S# NO R_ NO P# NO D_
////////////////////NO SHARPNOFLATFOR P D NO P# NO D_
////////NO SHARPNOFLATFOR P D NO P# NO D_
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[0, 0] = "..N#/.S_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[1, 0] = "..S/..S";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[2, 0] = ".S#/.R_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3, 0] = ".R/.R";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 1, 0] = ".R#/.G_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 2, 0] = ".G/.G";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 3, 0] = ".G#/.M_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[7, 0] = ".M/.M";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[8, 0] = ".M#/.P_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[9, 0] = ".P/.P";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[10, 0] = ".D/.D";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[11, 0] = ".D#/.N_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[12, 0] = ".N/.N";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[13, 0] = ".N#/.S_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[14, 0] = ".S/.S";// i need to write it in this ways with slashes in between to get the strings searched
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 0, 0] = ".N#/S_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 1, 0] = "S/S";// S i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 2, 0] = "S#/R_";// r i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3, 0] = "R/R";// R i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 1, 0] = "R#/G_";// g i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 2, 0] = "G/G";// G i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 3, 0] = "G#/M_";// m i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 7, 0] = "M/M";// M i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 8, 0] = "M#/P_";// P i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 9, 0] = "P/P";// d P# is not there D_ is not there // d i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 10, 0] = "D/D";// D P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 11, 0] = "D#/N_";// n i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 12, 0] = "N/N";// N i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 13, 0] = "N#/S_.";// S. i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 14, 0] = "S./S.";// i need to write it in this ways with slashes in between to get the strings searched
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 0, 0] = "S#./R_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 0, 0] = "S#./R_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 1, 0] = "R./R.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 2, 0] = "R#./G_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3, 0] = "G./G.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3 + 1, 0] = "G#./M_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3 + 2, 0] = "M./M.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3+3, 0] = "M#./P_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 7, 0] = "P./P.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 8, 0] = "D./D.";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 9, 0] = "D#./N_.";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 10, 0] = "N./N."; // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 11, 0] = "N#./S_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 12, 0] = "S../S..";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 13, 0] = "S#../R_..";// i need to write it in this ways with slashes in between to get the strings searched
//////////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 45
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 46
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 47
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 48
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 49
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30+14, 0] = "@";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45, 0] = "-";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 1, 0] = "~";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 2, 0] = "^";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 3, 0] = "\\";//single backslash
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 4, 0] = "/";
////////////48,47,B2,123.47
////////////49,48,C3,130.81
////////////50,49,C#3/Db3,138.59
////////////51,50,D3,146.83
////////////52,51,D#3/Eb3,155.56
////////////53,52,E3,164.81
////////////54,53,F3,174.61
////////////55,54,F#3/Gb3,185
////////////56,55,G3,196
////////////57,56,G#3/Ab3,207.65
////////////58,57,A3,220
////////////59,58,A#3/Bb3,233.08
////////////60,59,B3,246.94
////////////61,60,C4(middle C),261.63
////////////62,61,C#4/Db4,277.18
////////////63,62,D4,293.66
////////////64,63,D#4/Eb4,311.13
////////////65,64,E4,329.63
////////////66,65,F4,349.23
////////////67,66,F#4/Gb4,369.99
////////////68,67,G4,392
////////////69,68,G#4/Ab4,415.3
////////////70,69,A4 concert pitch,440
////////////71,70,A#4/Bb4,466.16
////////////72,71,B4,493.88
////////////73,72,C5,523.25
////////////74,73,C#5/Db5,554.37
////////////75,74,D5,587.33
////////////76,75,D#5/Eb5,622.25
////////////77,76,E5,659.26
////////////78,77,F5,698.46
////////////79,78,F#5/Gb5,739.99
////////////80,79,G5,783.99
////////////81,80,G#5/Ab5,830.61
////////////82,81,A5,880
////////////83,82,A#5/Bb5,932.33
////////////84,83,B5,987.77
////////////85,84,C6,1046.5
////////////86,85,C#6/Db6,1108.73
////////////87,86,D6,1174.66
////////////88,87,D#6/Eb6,1244.51
////////////89,88,E6,1318.51
////////////90,89,F6,1396.91
////////////91,90,F#6/Gb6,1479.98
////////////92,91,G6,1567.98
////////////93,92,G#6/Ab6,1661.22
////////////94,93,A6,1760
////////////95,94,A#6/Bb6,1864.66
////////////96,95,B6,1975.53
////////////97,96,C7,2093
////////////98,97,C#7/Db7,2217.46
////////////99,98,D7,2349.32
////////////100,99,D#7/Eb7,2489.02
////////////101,100,E7,2637.02
///
// IF THERE ARE C D E F G A B ... IN ENGLISH AND S R G M P D N S IN INDIAN NOTES THEN WHAT ARE THE CASES WHERE SHARPS AND FLATS ARE NOT THERE?
////// In Indian classical music, the Sargam system(Sa Re Ga Ma Pa Dha Ni Sa) corresponds to the Western notes(C D E F G A B C) in a manner that allows for both fixed and variable pitches.However, not all Western notes have corresponding Indian notes with sharps or flats.
//////Wikipedia
//////+ 7
//////sitars - ragas - icm.blogspot.com
//////+ 7
//////Wikipedia
//////+ 7
//////Notes Without Sharps or Flats in Indian Sargam
//////Sa(C): Represents the tonic note, and its pitch is fixed.
//////Pa(G): Known as Pancham, this note is also fixed and does not have a sharp or flat variant.
//////KupDF
//////Notes With Sharps or Flats
//////Re(D): Can be Komal(flat) as 'r' or Shuddha(natural) as 'R'.
//////Ga(E): Can be Komal(flat) as 'g' or Shuddha(natural) as 'G'.
//////Ma(F): Can be Shuddha(natural) as 'm' or Tivra(sharp) as 'M'.
//////Dha(A): Can be Komal(flat) as 'd' or Shuddha(natural) as 'D'.
//////Ni(B): Can be Komal(flat) as 'n' or Shuddha(natural) as 'N'.
//////KK Songs
//////+4
//////sitars - ragas - icm.blogspot.com
//////+ 4
//////KupDF
//////+ 4
//////Summary
//////In the Indian Sargam system, Sa (C) and Pa(G) are the only notes that do not have sharp or flat variants.All other notes(Re, Ga, Ma, Dha, Ni) can be either natural, flat, or sharp, depending on the specific raga and its mood.
//////Wikipedia
//////Certainly!The list of frequencies you've provided corresponds to the Western chromatic scale, and we can map these to the Indian classical music notation system (Sargam) as follows:
//////Mapping Western Notes to Indian Sargam
//////Western Note Frequency(Hz) Indian Sargam Notation
//////C 130.81 S
//////C♯/ D♭ 138.59 r(Komal Re)
//////D 146.83 R(Shuddha Re)
//////D♯/ E♭ 155.56 g(Komal Ga)
//////E 164.81 G(Shuddha Ga)
//////F 174.61 m(Shuddha Ma)
//////F♯/ G♭ 185.00 M(Tivra Ma)
//////G 196.00 P
//////G♯/ A♭ 207.65 d(Komal Dha)
//////A 220.00 D(Shuddha Dha)
//////A♯/ B♭ 233.08 n(Komal Ni)
//////B 246.94 N(Shuddha Ni)
//////C(Octave 4) 261.63 S
//////C♯/ D♭ 277.18 r
//////D 293.66 R
//////D♯/ E♭ 311.13 g
//////E 329.63 G
//////F 349.23 m
//////F♯/ G♭ 369.99 M
//////G 392.00 P
//////G♯/ A♭ 415.30 d
//////A 440.00 D
//////A♯/ B♭ 466.16 n
//////B 493.88 N
//////C(Octave 5) 523.25 S
//////C♯/ D♭ 554.37 r
//////D 587.33 R
//////D♯/ E♭ 622.25 g
//////E 659.26 G
//////F 698.46 m
//////F♯/ G♭ 739.99 M
//////G 783.99 P
//////G♯/ A♭ 830.61 d
//////A 880.00 D
//////A♯/ B♭ 932.33 n
//////B 987.77 N
//////C(Octave 6) 1046.50 S
//////C♯/ D♭ 1108.73 r
//////D 1174.66 R
//////D♯/ E♭ 1244.51 g
//////E 1318.51 G
//////F 1396.91 m
//////F♯/ G♭ 1479.98 M
//////G 1567.98 P
//////G♯/ A♭ 1661.22 d
//////A 1760.00 D
//////A♯/ B♭ 1864.66 n
//////B 1975.53 N
//////C(Octave 7) 2093.00 S
//////C♯/ D♭ 2217.46 r
//////D 2349.32 R
//////D♯/ E♭ 2489.02 g
//////E 2637.02 G
//////Notes:
//////Sharp Notes: In Indian classical music, sharp notes are indicated by a tilde(~) above the note(e.g., Ṭivra Ma as 'M').
//////Flat Notes: Flat notes are indicated by a line below the note(e.g., Komal Re as 'r').
//////Octave Representation: An apostrophe(') above a note indicates the higher octave, while a dot below indicates the lower octave.
////////////It appears you're mapping MIDI note numbers to Indian classical music notation (Sargam) using a C# array. However, there are inconsistencies in your mapping, particularly with the handling of sharps and flats.
////////////Observations:
////////////Missing Sharps and Flats: Indian classical music notation(Sargam) doesn't use sharps and flats in the same way as Western music. For example, the note "S" corresponds to "C" in Western notation, and "R" corresponds to "D". However, notes like "C#" or "D#" don't have direct equivalents in Sargam.
////////////Incorrect Mapping: Your array includes entries like "S#/R_" and "R#/G_", which imply a transition between notes that don't correspond directly in Sargam.
////////////Suggested Corrections:
////////////To align your MIDI note numbers with Indian classical notation, consider the following mappings:
////////////C(S): MIDI 60
////////////C# (S#): MIDI 61
////////////D(R): MIDI 62
////////////D# (R#): MIDI 63
////////////E(G): MIDI 64
////////////F(M): MIDI 65
////////////F# (M#): MIDI 66
////////////G(P): MIDI 67
////////////G# (P#): MIDI 68
////////////A(D): MIDI 69
////////////A# (D#): MIDI 70
////////////B(N): MIDI 71
////////////pianoandweb.blogspot.com
////////////+ 1
////////////Sweetwater
////////////+ 1
////////////For notes beyond this range, you would need to adjust the MIDI note numbers accordingly.
////////////Updated C# Array Example:
////////////csharp
////////////Copy
////////////Edit
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 0, 0] = "S/S"; // C
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 1, 0] = "S#/R_"; // C#
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 2, 0] = "R/R"; // D
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3, 0] = "R#/G_"; // D#
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 4, 0] = "G/G"; // E
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 5, 0] = "M/M"; // F
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 6, 0] = "M#/P_"; // F#
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 7, 0] = "P/P"; // G
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 8, 0] = "P#/D_"; // G#
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 9, 0] = "D/D"; // A
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 10, 0] = "D#/N_"; // A#
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 11, 0] = "N/N"; // B
////////////This mapping ensures that each MIDI note number corresponds to a specific note in Indian classical music notation.
////////////Notes:
////////////Middle C(MIDI 60): In your array, you have PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 0, 0] = ".N#/S_";, which seems to be an incorrect mapping.It should correspond to "S/S" for Middle C.
////////////Sharps and Flats: Indian classical music doesn't use sharps and flats in the same way as Western music. Therefore, notes like "C#" or "D#" don't have direct equivalents in Sargam.
////////////Octave Considerations: Ensure that the octave numbers align correctly with the MIDI note numbers.For example, MIDI note 60 corresponds to C4(Middle C), and MIDI note 72 corresponds to C5.
//////Mapping of 36 Notes Across Three Octaves
//////Mandra Saptak(Lower Octave)
////// Mandra Saptak refers to the lower octave in Hindustani classical music, where the frequency of notes is one octave lower than the Madhya Saptak(middle octave).These notes are denoted by placing a dot below them.SpringerOpen + 4Sitar Teacher: Anupama Gagneja+4schoolofindianmusic.com + 4
//////// Mandra Saptak (Lower Octave)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[0, 0] = "..S/..S"; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[1, 0] = "..r/..r"; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[2, 0] = "..R/..R"; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3, 0] = "..g/..g"; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[4, 0] = "..G/..G"; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[5, 0] = "..m/..m"; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[6, 0] = "..M/..M"; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[7, 0] = "..P/..P"; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[8, 0] = "..d/..d"; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[9, 0] = "..D/..D"; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[10, 0] = "..n/..n"; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[11, 0] = "..N/..N"; // Shuddha Ni
//////Madhya Saptak(Middle Octave)
////// Madhya Saptak is the middle octave, considered the standard range for vocal and instrumental music.Notes in this octave are denoted without any dots.
//////// Madhya Saptak (Middle Octave)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[12, 0] = "S/S"; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[13, 0] = "r/r"; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[14, 0] = "R/R"; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15, 0] = "g/g"; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[16, 0] = "G/G"; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[17, 0] = "m/m"; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[18, 0] = "M/M"; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[19, 0] = "P/P"; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[20, 0] = "d/d"; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[21, 0] = "D/D"; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[22, 0] = "n/n"; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[23, 0] = "N/N"; // Shuddha Ni
//////Taar Saptak(Upper Octave)
////// Taar Saptak is the upper octave, where the frequency of notes is one octave higher than the Madhya Saptak.These notes are denoted by placing a dot above them.Wikipedia + 8Sitar Teacher: Anupama Gagneja+8schoolofindianmusic.com + 8
//////// Taar Saptak (Upper Octave)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[24, 0] = "S'/S'"; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[25, 0] = "r'/r'"; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[26, 0] = "R'/R'"; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[27, 0] = "g'/g'"; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[28, 0] = "G'/G'"; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[29, 0] = "m'/m'"; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30, 0] = "M'/M'"; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[31, 0] = "P'/P'"; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[32, 0] = "d'/d'"; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[33, 0] = "D'/D'"; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[34, 0] = "n'/n'"; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[35, 0] = "N'/N'"; // Shuddha Ni
//////________________________________________
//////Notes on Notation
//////In Hindustani classical music, Mandra Saptak refers to the lower octave, Madhya Saptak to the middle octave, and Taar Saptak
////// // //////////////NO SHARPNOFLATFOR NO S# NO R_ NO P# NO D_
////// //////////////NO SHARPNOFLATFOR P D NO P# NO D_
////// //NO SHARPNOFLATFOR P D NO P# NO D_
////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[0, 0] = "..N#/.S_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[1, 0] = "..S/..S";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[2, 0] = ".S#/.R_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3, 0] = ".R/.R";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 1, 0] = ".R#/.G_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 2, 0] = ".G/.G";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3 + 3, 0] = ".G#/.M_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[7, 0] = ".M/.M";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[8, 0] = ".M#/.P_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[9, 0] = ".P/.P";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[10, 0] = ".D/.D";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[11, 0] = ".D#/.N_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[12, 0] = ".N/.N";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[13, 0] = ".N#/.S_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[14, 0] = ".S/.S";// i need to write it in this ways with slashes in between to get the strings searched
////////THERE IS NO S# NO R_
////////THERE IS NO P# NO D_
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 0, 0] = ".N#/S_";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 1, 0] = "S/S";// S i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 2, 0] = "S#/R_";// r i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3, 0] = "R/R";// R i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 1, 0] = "R#/G_";// g i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 2, 0] = "G/G";// G i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 3 + 3, 0] = "G#/M_";// m i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 7, 0] = "M/M";// M i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 8, 0] = "M#/P_";// P i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 9, 0] = "P/P";// d P# is not there D_ is not there // d i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 10, 0] = "D/D";// D P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 11, 0] = "D#/N_";// n i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 12, 0] = "N/N";// N i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 13, 0] = "N#/S_.";// S. i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15 + 14, 0] = "S./S.";// i need to write it in this ways with slashes in between to get the strings searched
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 0, 0] = "S#./R_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 0, 0] = "S#./R_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 1, 0] = "R./R.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 2, 0] = "R#./G_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3, 0] = "G./G.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3 + 1, 0] = "G#./M_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3 + 2, 0] = "M./M.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 3 + 3, 0] = "M#./P_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 7, 0] = "P./P.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 8, 0] = "D./D.";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 9, 0] = "D#./N_.";// P# is not there D_ is not there // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 10, 0] = "N./N."; // i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 11, 0] = "N#./S_.";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 12, 0] = "S../S..";// i need to write it in this ways with slashes in between to get the strings searched
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30 + 13, 0] = "S#../R_..";// i need to write it in this ways with slashes in between to get the strings searched
//////is there any komal Dha?
//////Yes, in Hindustani classical music, there is a note called Komal Dha(also known as Komal Dhaivat).It is one of the vikrit swaras(altered notes) and is considered a flat version of the natural Dha(Dhaivat). In Western notation, it corresponds to a note slightly lower than the natural D.
//////Scribd
//////spardhaschoolofmusic.com
//////Usage of Komal Dha
//////Komal Dha is prominently featured in several ragas and thaats, adding depth and emotional nuance to the compositions.Here are some examples:
//////sangeetparichoy.blogspot.com
//////News from Manipur - Imphal Times
//////Raga Todi: This raga employs Komal Dha as a pivotal note, often used in its ascent and descent patterns.The phrase "Sa Dha Dha Ni Ma Dha Ma Dha Sa" exemplifies its usage.
//////Path Of Music
//////divyamusic.com
//////Path Of Music
//////Raga Asavari: In this raga, Komal Dha is utilized, contributing to its distinct mood and tonal quality.
//////News from Manipur - Imphal Times
//////Scribd
//////divyamusic.com
//////Raga Marwa: This raga incorporates Komal Dha, adding to its unique emotional expression.
//////Todi Thaat: Komal Dha is a characteristic note in the Todi thaat, influencing the ragas derived from it.
//////Path Of Music
//////sangeetparichoy.blogspot.com
//////divyamusic.com
//////In summary, Komal Dha is an essential note in Hindustani classical music, enriching the tonal palette of various ragas and thaats.
////// i am too much confused here in the midi there is nothing sharp and nothing flat between the B and C and nothing sharp or flat between E and F and in indian also there is same kind of things at two places where are those cases where we cannot have any sharp or flat inbetween??????
//////In both Western and Indian music traditions, the absence of sharps or flats between certain note pairs specifically between B and C, and between E and F —is a fundamental characteristic rooted in the structure of the chromatic scale.
//////Western Music Perspective
//////In the standard chromatic scale, which comprises 12 unique pitches per octave, the intervals between most consecutive notes are a semitone(half step). However, between B and C, and between E and F, the interval is a semitone without any intervening sharps or flats.
//////B to C: The notes B and C are a half step apart, with no note in between.This is why there's no B♯ or C♭ in standard tuning.
//////E to F: Similarly, E and F are a half step apart, with no intervening note, hence no E♯ or F♭.
//////Good Music Academy
//////Wikipedia
//////This design is based on the natural harmonic series and the historical development of tuning systems.Introducing sharps or flats between these pairs would disrupt the established tuning conventions.For instance, in keys like F major or B major, the notes E and B are raised(E♯ and B♯), but these are considered enharmonic equivalents of F and C, respectively, not separate pitches.
//
////Mapping of 36 Notes Across Three Octaves
////Mandra Saptak(Lower Octave)
////Mandra Saptak refers to the lower octave in Hindustani classical music, where the frequency of notes is one octave lower than the Madhya Saptak(middle octave).These notes are denoted by placing a dot below them.SpringerOpen + 4Sitar Teacher: Anupama Gagneja+4schoolofindianmusic.com + 4
////// Mandra Saptak (Lower Octave)
///in indian systems there is nothing between Pa and Dha and there is nothing between Sa and Re ?????????? am i wrong????????????
//////in indian systems there is nothing between Pa and Dha and there is nothing between Sa and Re ?????????? am i wrong????????????
//////ChatGPT said:
////// You're correct in your understanding of Indian classical music notation and intervals. Let's clarify the specific points you've raised:
//////1.Intervals Between Notes
//////In Indian classical music, the standard seven notes(swara) are:
////// Sa(Shadja)
//////Re(Rishabh)
//////Ga(Gandhar)
//////Ma(Madhyam)
//////Pa(Pancham)
//////Dha(Dhaivat)
//////Ni(Nishad)
//////These notes can have variations:
////// Komal(flat): Re, Ga, Dha, Ni
//////Tivra(sharp): Ma
//////Important Points:
////// Sa and Pa are considered fixed and do not have sharp or flat variants.
//////Ma can be either natural(shuddha) or sharp(tivra).
//////Re, Ga, Dha, and Ni can be natural(shuddha) or flat(komal).
//////2.Intervals Between Specific Notes
//////Sa to Re: There is a microtonal interval between Sa and Re, known as Komal Re.This interval is not a full semitone but a subtle microtonal difference, which is characteristic of Indian classical music's just intonation system.
//////Pa to Dha: Similarly, there's a microtonal interval between Pa and Dha, known as Komal Dha. This interval is also a microtonal difference, not a full semitone.
//////These microtonal intervals are part of the 22 shrutis(microtonal pitches) in an octave, which are fundamental to the tuning system in Indian classical music.
//////3.No Sharp or Flat Between Sa and Re, and Pa and Dha
//////Your observation that there's no sharp or flat between Sa and Re, and between Pa and Dha, is accurate in the context of the standard seven note system. The microtonal intervals between these notes are subtle and don't correspond to the sharp or flat notes used in Western music. These nuances are part of the rich melodic structure in Indian classical music.
//////4.Conclusion
//////In summary:
//////Sa and Pa are fixed and do not have sharp or flat variants.
//////Ma can be sharp(tivra), but not flat.
//////Re, Ga, Dha, and Ni can be flat(komal), but not sharp.
//////The intervals between Sa and Re, and Pa and Dha, involve microtonal differences that are not represented by sharps or flats in the Western sense.
//////Understanding these intervals is crucial for grasping the melodic nuances in Indian classical music.
//////is P sharp not same as Dh flat in indian systems?
//////You're correct in your observations about the structure of Indian classical music and its relationship to Western music theory. Let's address your points:
//////1.No Sharp or Flat Between B and C, and E and F
//////In both Western and Indian classical music, there is no sharp or flat between B and C, and E and F.These intervals are considered semitones, meaning there is no intermediate pitch between them.This is a fundamental aspect of the chromatic scale in both traditions.
//////2.No Sharp or Flat Between Sa and Re, and Pa and Dha
//////In Indian classical music, the notes Sa(Shadja) and Pa(Panchama) are fixed and do not have sharp or flat variants.Similarly, Dha(Dhaivat) is a fixed note and does not have a flat variant. However, Re(Rishabha) can be either Shuddha(natural) or Komal(flat), and Ma(Madhyama) can be either Shuddha(natural) or Tivra(sharp). Ni(Nishada) can also be either Shuddha(natural) or Komal(flat). Therefore, while Sa and Pa are fixed, other notes like Re, Ma, and Ni have variants that can be sharp or flat, depending on the raga.
//////Raag Hindustani
//////Musicianself
//////Musicianself
//////en.wikipedia.org
//////ccrma.stanford.edu
//////Sitars, Ragas and Indian Classical Music
//////Ancient Future
//////Raag Hindustani
//////en.wikipedia.org
//////en.wikipedia.org
//////Ancient Future
//////////3.Is P# the Same as D♭ in Indian Systems?
//////////No, in Indian classical music, P(Panchama) is a fixed note and does not have a sharp variant. Dha(Dhaivat) can be either Shuddha(natural) or Komal(flat), but there is no sharp variant for P.Therefore, P# (sharp Panchama) does not exist in Indian music theory.
////is P sharp not same as Dh flat in indian systems?
////ChatGPT said:
////You're correct in your observations about the structure of Indian classical music and its relationship to Western music theory. Let's address your points:
////1.No Sharp or Flat Between B and C, and E and F
////In both Western and Indian classical music, there is no sharp or flat between B and C, and E and F.These intervals are considered semitones, meaning there is no intermediate pitch between them.This is a fundamental aspect of the chromatic scale in both traditions.
////2.No Sharp or Flat Between Sa and Re, and Pa and Dha
////In Indian classical music, the notes Sa(Shadja) and Pa(Panchama) are fixed and do not have sharp or flat variants.Similarly, Dha(Dhaivat) is a fixed note and does not have a flat variant. However, Re(Rishabha) can be either Shuddha(natural) or Komal(flat), and Ma(Madhyama) can be either Shuddha(natural) or Tivra(sharp). Ni(Nishada) can also be either Shuddha(natural) or Komal(flat). Therefore, while Sa and Pa are fixed, other notes like Re, Ma, and Ni have variants that can be sharp or flat, depending on the raga.
////en.wikipedia.org
////Raag Hindustani
////Musicianself
////Musicianself
////en.wikipedia.org
////ccrma.stanford.edu
////Sitars, Ragas and Indian Classical Music
////Ancient Future
////Raag Hindustani
////en.wikipedia.org
////en.wikipedia.org
////Ancient Future
////3.Is P# the Same as D♭ in Indian Systems?
////No, in Indian classical music, P(Panchama) is a fixed note and does not have a sharp variant. Dha(Dhaivat) can be either Shuddha(natural) or Komal(flat), but there is no sharp variant for P.Therefore, P# (sharp Panchama) does not exist in Indian music theory.
//////is P sharp not same as Dh flat in indian systems?
//////You're correct in your observations about the structure of Indian classical music and its relationship to Western music theory. Let's address your points:
//////1.No Sharp or Flat Between B and C, and E and F
/////In both Western and Indian classical music, there is no sharp or flat between B and C, and E and F.These intervals are considered semitones, meaning there is no intermediate pitch between them.This is a fundamental aspect of the chromatic scale in both traditions.
//////2.No Sharp or Flat Between Sa and Re, and Pa and Dha
//////In Indian classical music, the notes Sa(Shadja) and Pa(Panchama) are fixed and do not have sharp or flat variants.Similarly, Dha(Dhaivat) is a fixed note and does not have a flat variant. However, Re(Rishabha) can be either Shuddha(natural) or Komal(flat), and Ma(Madhyama) can be either Shuddha(natural) or Tivra(sharp). Ni(Nishada) can also be either Shuddha(natural) or Komal(flat). Therefore, while Sa and Pa are fixed, other notes like Re, Ma, and Ni have variants that can be sharp or flat, depending on the raga.
//////en.wikipedia.org
//////Raag Hindustani
//////Musicianself
//////Musicianself
//////en.wikipedia.org
//////ccrma.stanford.edu
//////Sitars, Ragas and Indian Classical Music
//////Ancient Future
//////Raag Hindustani
//////en.wikipedia.org
//////en.wikipedia.org
//////Ancient Future
//////3.Is P# the Same as D♭ in Indian Systems?
//////No, in Indian classical music, P(Panchama) is a fixed note and does not have a sharp variant. Dha(Dhaivat) can be either Shuddha(natural) or Komal(flat), but there is no sharp variant for P.Therefore, P# (sharp Panchama) does not exist in Indian music theory.
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[0, 0] = ".S/.S"; // Sa
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[1, 0] = ".R/.R"; // Komal Re
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[2, 0] = ".R#/.G_"; // Shuddha Re
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3, 0] = ".G/.G"; // Komal Ga
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[4, 0] = ".G#/.M_"; // Shuddha Ga
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[5, 0] = ".M/.M"; // Komal Ma
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[6, 0] = ".M#/.P_"; // Shuddha Ma
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[7, 0] = ".P/.P"; // Pa
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[8, 0] = ".D/.D"; // Komal Dha
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[9, 0] = ".D#/.N_"; // Shuddha Dha
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[10, 0] = ".N/.N"; // Komal Ni
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[11, 0] = ".N#/.S_"; // Shuddha Ni
////// Madhya Saptak(Middle Octave)
///////////////Madhya Saptak is the middle octave, considered the standard range for vocal and instrumental music.Notes in this octave are denoted without any dots.
// Madhya Saptak (Middle Octave)
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[12, 0] = "S/S"; // Sa
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[13, 0] = "R/R"; // Komal Re
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[14, 0] = "R#/G_"; // Shuddha Re
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15, 0] = "G/G"; // Komal Ga
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[16, 0] = "G#/M_"; // Shuddha Ga
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[17, 0] = "M/M"; // Komal Ma
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[18, 0] = "M#/P_"; // Shuddha Ma
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[19, 0] = "P/P"; // Pa
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[20, 0] = "D/D"; // Komal Dha
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[21, 0] = "D#/N_"; // Shuddha Dha
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[22, 0] = "N/N"; // Komal Ni
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[23, 0] = "N#/S_."; // Shuddha Ni
/// Taar Saptak(Upper Octave)
/////////Taar Saptak is the upper octave, where the frequency of notes is one octave higher than the Madhya Saptak.These notes are denoted by placing a dot above them.Wikipedia + 8Sitar Teacher: Anupama Gagneja+8schoolofindianmusic.com + 8
//////////////////// Taar Saptak (Upper Octave)
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[24, 0] = "S./S."; // Sa
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[25, 0] = "R./R."; // Komal Re
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[26, 0] = "R#./G_."; // Shuddha Re
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[27, 0] = "G./G_."; // Komal Ga
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[28, 0] = "G#./M_."; // Shuddha Ga
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[29, 0] = "M./M."; // Komal Ma
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30, 0] = "M#./P_."; // Shuddha Ma
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[31, 0] = "P./P."; // Pa
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[32, 0] = "D./D."; // Komal Dha
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[33, 0] = "D#./N_."; // Shuddha Dha
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[34, 0] = "N./N."; // Komal Ni
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[35, 0] = "N#./S.."; // Shuddha Ni
/////////////In Hindustani classical music, Mandra Saptak refers to the lower octave, Madhya Saptak to the middle octave, and Taar Saptak
////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 45
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 46
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 47
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 48
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 49
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[36, 0] = "(";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[37, 0] = ")";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[38, 0] = "{";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[39, 0] = "}";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[40, 0] = "[";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[41, 0] = "]";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[42, 0] = "|";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[43, 0] = "!";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[44, 0] = "@";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45, 0] = "-";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 1, 0] = "~";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 2, 0] = "^";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 3, 0] = "\\";//single backslash
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 4, 0] = "/";
for (int rrr = 0; rrr < PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0); rrr++)
{
//already populated PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rrr, 0] = "";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rrr, 1] = "";
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rrr, 2] = "";
___report_to_show_on_errors
=
___report_to_show_on_errors
+ "\r\n" +
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rrr, 0]
+ " " +
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rrr, 1]
+ " " +
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rrr, 2];
}//for (int rrr = 0; rrr < PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0);rrr++)
///////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_note_name_lower_sides_to_match = NOTESNAME_TO_ASSIGN.TrimEnd().TrimStart().Trim().ToUpper();
___temp_note_name_upper_sides_to_match = NOTESNAME_TO_ASSIGN.TrimEnd().TrimStart().Trim().ToUpper();
////////trying to check
//////if (!(___temp_note_name_lower_sides_to_match.Contains("P") || ___temp_note_name_lower_sides_to_match.Contains("D")))
//////{
////// ___temp_note_name_lower_sides_to_match = (___temp_note_name_lower_sides_to_match + "/").TrimEnd().TrimStart().Trim().ToUpper();
//////}//if(! ( ___temp_note_name_lower_sides_to_match.Contains("P") || ___temp_note_name_lower_sides_to_match.Contains("D")))
////////trying to check
////// if (!(___temp_note_name_upper_sides_to_match.Contains("P") || ___temp_note_name_upper_sides_to_match.Contains("D")))
//////{
////// ___temp_note_name_upper_sides_to_match = ("/" + ___temp_note_name_upper_sides_to_match).TrimEnd().TrimStart().Trim().ToUpper();
//////}//if(! ( ___temp_note_name_upper_sides_to_match.Contains("P") || ___temp_note_name_upper_sides_to_match.Contains("D")))
//trying to check
if (!(___temp_note_name_lower_sides_to_match.Contains("P") || ___temp_note_name_upper_sides_to_match.Contains("D")))
{
___temp_note_name_lower_sides_to_match = (___temp_note_name_lower_sides_to_match + "/").TrimEnd().TrimStart().Trim().ToUpper();
}//if(! ( ___temp_note_name_lower_sides_to_match.Contains("P") || ___temp_note_name_lower_sides_to_match.Contains("D")))
////////trying to check
else if (!(___temp_note_name_lower_sides_to_match.Contains("P") || ___temp_note_name_upper_sides_to_match.Contains("D")))
{
___temp_note_name_upper_sides_to_match = ("/" + ___temp_note_name_upper_sides_to_match).TrimEnd().TrimStart().Trim().ToUpper();
}//if(! ( ___temp_note_name_upper_sides_to_match.Contains("P") || ___temp_note_name_upper_sides_to_match.Contains("D")))
else
{
}
___report_to_show_on_errors
=
___report_to_show_on_errors
+ "\r\n___temp_note_name_lower_sides_to_match = " + ___temp_note_name_lower_sides_to_match
+ "\r\n___temp_note_name_upper_sides_to_match = " + ___temp_note_name_upper_sides_to_match
;
int ___int_note_number_to_assign = 0;
___int_note_number_to_assign
=
notenumber_to_assign;
if (notenumber_to_assign >= 0 && notenumber_to_assign <= 127)
{
for (int rerrr = 0; rerrr < PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0); rerrr++)
{
if (PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] != null)
{
//////if (
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0].Contains(___temp_note_name_lower_sides_to_match)
//////||
////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0].Contains(___temp_note_name_upper_sides_to_match)
//////)
if (
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0].StartsWith(___temp_note_name_lower_sides_to_match)
||
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0].EndsWith(___temp_note_name_upper_sides_to_match)
)
{
string STRING_FREQUENCY_FOUND
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
// PUBLIC_STATIC_STRING___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
PUBLIC_STATIC_DOUBLE___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
(___int_note_number_to_assign)
.ToString();
//for freqs
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 1] = STRING_FREQUENCY_FOUND.TrimEnd().TrimStart().Trim();
//for notes numbers
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 2] = ___int_note_number_to_assign.ToString().TrimEnd().TrimStart().Trim();
//now we know the position of rerrr
//now we know the position of rerrr
//now we know the position of rerrr
string STRING_FREQUENCY_FOUND_with_bacpropagator = "";
Console.WriteLine("FOUND FOUND FOUND NOTE AT rerrr = " + rerrr + " STRING_FREQUENCY_FOUND = " + STRING_FREQUENCY_FOUND + " other occurances ignored going to gotohere_after_doing_necessary_things_with_first_occurances");
int notenumberinsteadofnotesname__casefor_swaralipis = 0;
try
{
notenumberinsteadofnotesname__casefor_swaralipis = Convert.ToInt16(NOTE_NAME_FILLED_IN_THE_CELL.TrimEnd().TrimStart().Trim());
}
catch (Exception ___exfp_if_notes_number_is_used_to_populates)
{
notenumberinsteadofnotesname__casefor_swaralipis = 0;
}//catch (Exception ___exfp_if_notes_number_is_used_to_populates)
//since we need swarallipis for the cases sometimes
if (NOTE_NAME_FILLED_IN_THE_CELL.TrimEnd().TrimStart().Trim().ToUpper() != "" || notenumberinsteadofnotesname__casefor_swaralipis >0)
{
int ___number_of_forward_remaining_rows = 0;
___number_of_forward_remaining_rows = (44 - rerrr);
int backward_note_data_growing = 0;
for (int bacpropagator = rerrr; bacpropagator >= 0; bacpropagator--)
{
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr - backward_note_data_growing, 2]
// = (___int_note_number_to_assign - backward_note_data_growing).ToString();
//NEED TO CHECK WE ARE GETTING ONE VALUE UPPER
= (___int_note_number_to_assign - backward_note_data_growing - 1).ToString();
STRING_FREQUENCY_FOUND_with_bacpropagator
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
// PUBLIC_STATIC_STRING___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
PUBLIC_STATIC_DOUBLE___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
(___int_note_number_to_assign - backward_note_data_growing).ToString();
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr - backward_note_data_growing, 1]
=
STRING_FREQUENCY_FOUND_with_bacpropagator;
___report_to_show_on_errors
=
___report_to_show_on_errors
+ "\r\n" +
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr - backward_note_data_growing, 0]
+ " " +
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr - backward_note_data_growing, 1]
+ " " +
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr - backward_note_data_growing, 2];
backward_note_data_growing++;
}// for(int bacpropagator= rerrr; bacpropagator>=0; bacpropagator--)
for (int forepropagator = 0; forepropagator <= ___number_of_forward_remaining_rows; forepropagator++)
{
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr + forepropagator, 2]
= (___int_note_number_to_assign + forepropagator).ToString();
STRING_FREQUENCY_FOUND_with_bacpropagator
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
// PUBLIC_STATIC_STRING___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
PUBLIC_STATIC_DOUBLE___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
(___int_note_number_to_assign + forepropagator).ToString();
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr + forepropagator, 1]
=
STRING_FREQUENCY_FOUND_with_bacpropagator;
___report_to_show_on_errors
=
___report_to_show_on_errors
+ "\r\n" +
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr + forepropagator, 0]
+ " " +
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr + forepropagator, 1]
+ " " +
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr + forepropagator, 2];
}//for (int forepropagator = rerrr+1; forepropagator <=44; forepropagator++)
}// if(NOTE_NAME_FILLED_IN_THE_CELL.TrimEnd().TrimStart().Trim().ToUpper()!="")
//I FIRST DECIDED TO DO WORK WITH FIRST OCCURANCE AND PROCEED
//THEN I HAVE SEEN THAT THE LAST OCCURANCE GIVES BETTER OUTPUTS SO WE ARE NOT TAKING THE FIRST OCCURANCES
// goto gotohere_after_doing_necessary_things_with_first_occurances;
}
//////if (
////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0].Contains(___temp_note_name_lower_sides_to_match)
////// ||
////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0].Contains(___temp_note_name_upper_sides_to_match)
////// )
// THE CONTAINS DONT DO GREAT THINGS
//////if (
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0].StartsWith(___temp_note_name_lower_sides_to_match)
//////||
////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0].EndsWith(___temp_note_name_upper_sides_to_match)
//////)///
}//if(PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0]!=null)
else
{
Console.WriteLine("PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = " + rerrr); ;
}//end of else of if(PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0]!=null))
}//for (int rerrr = 0; rerrr < PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0);rerrr++)
}//if(notenumber_to_assign>=0 && notenumber_to_assign <=127)
//I FIRST DECIDED TO DO WORK WITH FIRST OCCURANCE AND PROCEED
//THEN I HAVE SEEN THAT THE LAST OCCURANCE GIVES BETTER OUTPUTS SO WE ARE NOT TAKING THE FIRST OCCURANCES
/// gotohere_after_doing_necessary_things_with_first_occurances:;
// for(int searcher=0;searcher < PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0);searcher++)
// for (int searcher = 0; searcher <= PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0); searcher++)
string ___the_current_rows_indinotes_or_commands_found = NOTE_NAME_FILLED_IN_THE_CELL;
//////if (
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("#")
//////||
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("_")
//////)
//////{
////// if (___the_current_rows_indinotes_or_commands_found == "s")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "S";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "S")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "S#";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "r")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "R";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "R")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "R#";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "g")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "G";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "G")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "G#";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "m")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "M";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "M")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "M#";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "p")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "P";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "P")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "P#";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "d")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "D";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "D")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "D#";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "n")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "N";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "N")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "N#";
////// }
////// else if (___the_current_rows_indinotes_or_commands_found == "-")
////// {
////// ___the_current_rows_indinotes_or_commands_found = "S";
////// }
////// else
////// {
////// }//preconditionings done
//////}
////////////if (
////////////!___the_current_rows_indinotes_or_commands_found.EndsWith("#")
////////////||
////////////!___the_current_rows_indinotes_or_commands_found.EndsWith("_")
//////////////////)
////////i had to do it specially
//////if (___the_current_rows_indinotes_or_commands_found == "-")
//////{
////// ___the_current_rows_indinotes_or_commands_found = "S";
//////}//if(___the_current_rows_indinotes_or_commands_found=="-")
///
///
///
///
///
///
///
///
///
///
///
///
///
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[0, 0] = ".S/.S"; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[1, 0] = ".R/.R"; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[2, 0] = ".R#/.G_"; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[3, 0] = ".G/.G"; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[4, 0] = ".G#/.M_"; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[5, 0] = ".M/.M"; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[6, 0] = ".M#/.P_"; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[7, 0] = ".P/.P"; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[8, 0] = ".D/.D"; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[9, 0] = ".D#/.N_"; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[10, 0] = ".N/.N"; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[11, 0] = ".N#/.S_"; // Shuddha Ni
////// ////// Madhya Saptak(Middle Octave)
////// ///////////////Madhya Saptak is the middle octave, considered the standard range for vocal and instrumental music.Notes in this octave are denoted without any dots.
////// // Madhya Saptak (Middle Octave)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[12, 0] = "S/S"; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[13, 0] = "R/R"; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[14, 0] = "R#/G_"; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[15, 0] = "G/G"; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[16, 0] = "G#/M_"; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[17, 0] = "M/M"; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[18, 0] = "M#/P_"; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[19, 0] = "P/P"; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[20, 0] = "D/D"; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[21, 0] = "D#/N_"; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[22, 0] = "N/N"; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[23, 0] = "N#/S_."; // Shuddha Ni
////// /// Taar Saptak(Upper Octave)
///////////////Taar Saptak is the upper octave, where the frequency of notes is one octave higher than the Madhya Saptak.These notes are denoted by placing a dot above them.Wikipedia + 8Sitar Teacher: Anupama Gagneja+8schoolofindianmusic.com + 8
////////////////////////// Taar Saptak (Upper Octave)
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[24, 0] = "S./S."; // Sa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[25, 0] = "R./R."; // Komal Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[26, 0] = "R#./G_."; // Shuddha Re
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[27, 0] = "G./G_."; // Komal Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[28, 0] = "G#./M_."; // Shuddha Ga
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[29, 0] = "M./M."; // Komal Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[30, 0] = "M#./P_."; // Shuddha Ma
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[31, 0] = "P./P."; // Pa
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[32, 0] = "D./D."; // Komal Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[33, 0] = "D#./N_."; // Shuddha Dha
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[34, 0] = "N./N."; // Komal Ni
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[35, 0] = "N#./S.."; // Shuddha Ni
///////////////////In Hindustani classical music, Mandra Saptak refers to the lower octave, Madhya Saptak to the middle octave, and Taar Saptak
//////////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 45
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 46
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 47
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 48
////////////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[rerrr, 0] is null for rerrr = 49
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[36, 0] = "(";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[37, 0] = ")";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[38, 0] = "{";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[39, 0] = "}";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[40, 0] = "[";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[41, 0] = "]";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[42, 0] = "|";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[43, 0] = "!";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[44, 0] = "@";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45, 0] = "-";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 1, 0] = "~";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 2, 0] = "^";
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 3, 0] = "\\";//single backslash
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[45 + 4, 0] = "/";
//////In Hindustani classical music, "raga vistar"(raag विस्तार) refers to the expansion or elaboration of a musical melody within a specific raga(melody scale). It involves the performer moving around within the raga, exploring its notes, and creating a musical narrative.Vistar is a crucial part of a raga performance, allowing the musician to showcase their creativity and skill.
//////Here's a more detailed breakdown:
//////Aalap and Vistar:
//////Vistar is often a part of the "aalap" section, which is the introductory improvisation that sets the tone of the raga. Aalap allows the musician to establish the raga's character and create a musical mood before moving into the more rhythmic sections of the performance.
//////Chalan:
//////Vistar is closely related to "chalan," which refers to the characteristic way in which a raga is played or sung, including its melodic phrases and patterns. Vistar builds upon the chalan, exploring its possibilities and nuances.
//////Improvisation:
//////Vistar involves improvisation, where the musician uses their knowledge of the raga's notes, patterns, and emotional qualities to create a unique musical piece.
//////Swar Vistaar:
//////The term "swar vistar" specifically refers to the exploration of notes within a raga.
//////Examples:
////////////Different ragas have different characteristics and vistar styles. For example, the raga Yaman, known for its grandeur and fundamental nature, allows for a wide range of improvisational possibilities.The raga Malkauns is considered an old raga in Indian classical music with its own unique vistar.
//////In Hindustani classical music, the concept of "raga vistaar"(raag विस्तार) refers to the expansive elaboration of a raga, allowing the performer to explore its melodic contours and emotional depth. This process is not merely an improvisational exercise but follows a structured approach that combines theoretical understanding with creative expression.
//////Mathematical and Structural Foundations of Raga Vistaar
//////Pitch Distribution and Tonal Hierarchy: Each raga is characterized by a specific set of notes(svaras), and the frequency with which these notes are used can be analyzed statistically.Research has shown that the relative frequency of more significant notes stabilizes more quickly than that of others, indicating their importance in expressing the raga's mood and structure.
//////MTG GitHub Pages
//////arXiv
//////Finite Automaton Models: Computational models, such as finite automata, have been employed to simulate the melodic progression in raga performances. These models help in understanding the sequence and transition of notes, reflecting the raga's inherent grammar and syntax.
//////CSE IIT Bombay
//////Statistical Analysis of Melodic Phrases: The identification of recurring melodic phrases or motifs is crucial in raga vistaar. By analyzing the occurrence and transition of these phrases, one can discern the underlying structure and emotional trajectory of the raga.
//////CSE IIT Bombay
//////Rhythmic and Temporal Structuring: While the melodic aspect is central, the rhythmic framework(tala) also plays a significant role in raga vistaar. The interplay between melody and rhythm is carefully structured to enhance the raga's expression and to guide the listener through its emotional journey.
//////Improvisational Techniques: Vistaar involves various improvisational techniques, such as meend (glides), gamak(oscillations), and murki(quick note clusters), which add nuance and depth to the performance. These techniques are not random but are governed by the raga's rules and the performer's creativity.
//////Conclusion
//////Raga vistaar is a sophisticated blend of mathematical principles, structural analysis, and artistic expression.While computational models provide insights into the underlying patterns and structures, the true essence of vistaar lies in the performer's ability to breathe life into these structures, creating a unique and emotive rendition of the raga.
//////Raga vistaar, a core element of Indian classical music, builds upon a mathematical and structural foundation. The vistaar, or expansion, involves exploring the melodic possibilities within a raga(scale), often using structures like alaap(melodic improvisation) and taans(rapid melodic ornamentation). The mathematical underpinnings lie in the relationships between notes, the construction of alankars(melodic exercises), and the systematic arrangement of notes within a raga.
//////Here's a more detailed look:
//////1.Mathematical Foundations:
//////Relationships between notes:
//////Ragas are built on specific relationships between the seven fundamental notes(Swaras Sa, Re, Ga, Ma, Pa, Dha, Ni), according to Artium Academy. These relationships, including intervals and microtones, are mathematically defined.
//////Alankars:
//////Alankars are melodic exercises that explore the notes within a raga.They are often structured using mathematical functions, such as the example of applying a pattern to the notes of a Thaat(a set of notes) to create a sequence of phrases.
//////Combinatorial Structures:
//////Indian music has a vast number of ragas, created through combinations and permutations of the seven fundamental notes.For instance, the 72 distinct scales(ragas) are a result of mathematical combinations.
//////2.Structural Foundations:
//////Compositional Structures:
//////Raga vistaar builds upon established compositional structures like gat(the main composition of a raga), which often starts from the melodic center and explores different octaves before returning to the starting point.
//////Alaap:
//////Alaap is a melodic improvisation that explores the emotional and expressive potential of a raga, often using specific melodic figures and ornaments.
//////Taan:
//////Taan is a rapid melodic ornamentation that adds dynamism and excitement to the performance, often incorporating various melodic patterns.
//////Bol Baant/ Bol Laya:
//////Some schools of Hindustani music also incorporate Bol Baant(rhythmic patterns) and Bol Laya(rhythmic improvisation) into the vistaar.
//https://swarsindhu.pratibha-spandan.org/wp-content/uploads/v10i02a11.pdf
//https://swarsindhu.pratibha-spandan.org/wp-content/uploads/v12i01a57.pdf // good list of the raaga orderings
//////(For our understanding r g d n stands for komal Re, komal Ga, komal Dha, komal NI; R,G ,D N
//////stands for Suddha Re, Suddha Ga, Suddha Dha and Suddha Ni ; m = Suddha Madhyam, M = Teevra
//////Ma)
//////SCALES WITH SUDDHA MA SCALES WITH TEEVRA MA
//////S r g m P d n S { BHAIRAVI}
//////S r g M P d n S { BHAVAPRIYA}
//////S r g m P d N S { DHENUKA}
//////S r g M P d N S { TODI}
//////S r g m P D n S { NATAKAPRIYA}
//////S r g M P D n S { SHADVIDHAMARGINI}
//////S r g m P D N S { KOKILAPRIYA}
//////S r g M P D N S { SUVARNANGI}
//////S R g m P d n S { ASAVERI}
//////S R g M P d n S { SHANMUKHAPRIYA}
//////S R g m P d N S { KEERVANI}
//////S R g M P d N S { SIMHENDRAMADHYAM}
//////S R g m P D n S { KAFI}
//////S R g M P D n S { HEMAVATI}
//////S R g m P D N S { GOURIMANOHARI}
//////S R g M P D N S { DHARMAVATI}
//////S r G m P d n S { BASANT MUKHARI}
//////S r G M P d n S { NAMANARAYANI}
//////S r G m P d N S { BHAIRAV}
//////S r G M P d N S { PURVI}
//////S r G m P D n S { AHIR BHAIRAV}
//////S r G M P D n S { RAMAPRIYA}
//////S r G m P D N S { ANAND BHAIRAV}
//////S r G M P D N S { MARWA}
//////S R G m P d n S { CHARUKESHI}
//////S R G M P d n S { RISHABHAPRIYA}
//////S R G m P d N S { NAT BHAIRAV}
//////S R G M P d N S { LATANGI}
//////S R G m P D n S { KHAMAJ}
//////S R G M P D n S { VACHASPATI}
//////S R G m P D N S { BILAWAL}
//////S R G M P D N S { KALYAN}
//////Of the above combinations, Pt. Bhatkhande chose only 10 primary Thaats, which were enough to
//////accommodate the ragas prevalent in his time. They are:
//////Bilawal, Khamaj, Kafi, Bhairav, Kalyan, Marwa, Purvi, Asaveri, Bhairavi and Todi.
//////According to Dr.Nupur Ganguly(HOD, Vocal Department, Rabindra Bharati University) in her
//////book “A Bird's eye view of Indian Musicology”, Pg 82-83 ( ISBN 9788177681109 ) (published
//////Jan 2018) this improvised scientific 32 Thaat system was the conception of the Senia Gharana.
//////The names of the musical scales have too been given for students of music.Shobhana Nayar‟s
//////book “Bhatkhande‟s Contribution to Music: A Historical Perspective” [ISBN 97808
//////(For our understanding r g d n stands for komal Re, komal Ga, komal Dha, komal NI; R,G ,D N
//////stands for Suddha Re, Suddha Ga, Suddha Dha and Suddha Ni ; m = Suddha Madhyam, M = Teevra
//////Ma)
//////SCALES WITH SUDDHA MA SCALES WITH TEEVRA MA
//////S r g m P d n S { BHAIRAVI}
//////S r g M P d n S { BHAVAPRIYA}
//////S r g m P d N S { DHENUKA}
//////S r g M P d N S { TODI}
//////S r g m P D n S { NATAKAPRIYA}
//////S r g M P D n S { SHADVIDHAMARGINI}
//////S r g m P D N S { KOKILAPRIYA}
//////S r g M P D N S { SUVARNANGI}
//////S R g m P d n S { ASAVERI}
//////S R g M P d n S { SHANMUKHAPRIYA}
//////S R g m P d N S { KEERVANI}
//////S R g M P d N S { SIMHENDRAMADHYAM}
//////S R g m P D n S { KAFI}
//////S R g M P D n S { HEMAVATI}
//////S R g m P D N S { GOURIMANOHARI}
//////S R g M P D N S { DHARMAVATI}
//////S r G m P d n S { BASANT MUKHARI}
//////S r G M P d n S { NAMANARAYANI}
//////S r G m P d N S { BHAIRAV}
//////S r G M P d N S { PURVI}
//////S r G m P D n S { AHIR BHAIRAV}
//////S r G M P D n S { RAMAPRIYA}
//////S r G m P D N S { ANAND BHAIRAV}
//////S r G M P D N S { MARWA}
//////S R G m P d n S { CHARUKESHI}
//////S R G M P d n S { RISHABHAPRIYA}
//////S R G m P d N S { NAT BHAIRAV}
//////S R G M P d N S { LATANGI}
//////S R G m P D n S { KHAMAJ}
//////S R G M P D n S { VACHASPATI}
//////S R G m P D N S { BILAWAL}
//////S R G M P D N S { KALYAN}
//////Of the above combinations, Pt. Bhatkhande chose only 10 primary Thaats, which we
if (___the_current_rows_indinotes_or_commands_found == ".s")
{
___the_current_rows_indinotes_or_commands_found = "..N#";//NOT IN THE ARRAY
}
if (___the_current_rows_indinotes_or_commands_found == ".S")
{
___the_current_rows_indinotes_or_commands_found = ".S";//NO S# THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".r")
{
___the_current_rows_indinotes_or_commands_found = ".R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".R")
{
___the_current_rows_indinotes_or_commands_found = ".R";//we have to type R# for our needs
}
else if (___the_current_rows_indinotes_or_commands_found == ".g")
{
___the_current_rows_indinotes_or_commands_found = ".G_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".G")
{
___the_current_rows_indinotes_or_commands_found = ".G";//we have to specify the G# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".m")
{
___the_current_rows_indinotes_or_commands_found = ".M_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".M")
{
___the_current_rows_indinotes_or_commands_found = ".M";//we have to specify M# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".p")
{
___the_current_rows_indinotes_or_commands_found = ".P_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".P")
{
___the_current_rows_indinotes_or_commands_found = ".P";//NO P SHARP THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".d")
{
___the_current_rows_indinotes_or_commands_found = ".D";//NO D FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == ".D")
{
___the_current_rows_indinotes_or_commands_found = ".D";//we have to specify D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".n")
{
___the_current_rows_indinotes_or_commands_found = ".N_";
}
else if (___the_current_rows_indinotes_or_commands_found == ".N")
{
___the_current_rows_indinotes_or_commands_found = ".N";//we have to specify N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == ".S")
{
___the_current_rows_indinotes_or_commands_found = ".S";// there is no S sharp (we are at lower octave)
}
else if (___the_current_rows_indinotes_or_commands_found == "s")
{
___the_current_rows_indinotes_or_commands_found = ".N#";//here it is ok for small s we take previous octaves .N#
}
else if (___the_current_rows_indinotes_or_commands_found == "S")
{
___the_current_rows_indinotes_or_commands_found = "S";//there is no S#
}
else if (___the_current_rows_indinotes_or_commands_found == "r")
{
___the_current_rows_indinotes_or_commands_found = "R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "R")
{
___the_current_rows_indinotes_or_commands_found = "R";//We have to specify the R# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "g")
{
___the_current_rows_indinotes_or_commands_found = "G_";
}
else if (___the_current_rows_indinotes_or_commands_found == "G")
{
___the_current_rows_indinotes_or_commands_found = "G";//we have to specify G# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m")
{
___the_current_rows_indinotes_or_commands_found = "M_";
}
else if (___the_current_rows_indinotes_or_commands_found == "M")
{
___the_current_rows_indinotes_or_commands_found = "M";//we have to specify M# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p")
{
___the_current_rows_indinotes_or_commands_found = "P_";
}
else if (___the_current_rows_indinotes_or_commands_found == "P")
{
___the_current_rows_indinotes_or_commands_found = "P";//there is no P#
}
else if (___the_current_rows_indinotes_or_commands_found == "d")
{
___the_current_rows_indinotes_or_commands_found = "D";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "D")
{
___the_current_rows_indinotes_or_commands_found = "D";//we have to specify the D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n")
{
___the_current_rows_indinotes_or_commands_found = "N_";
}
else if (___the_current_rows_indinotes_or_commands_found == "N")
{
___the_current_rows_indinotes_or_commands_found = "N";//We have to Specify the conditions of N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S.";//we are in higer octaves
}
else if (___the_current_rows_indinotes_or_commands_found == "s.")
{
___the_current_rows_indinotes_or_commands_found = "N#.";//this is the N# for the previous octave where it is called this means we are calling from the next octave
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S.";// there is no S#
}
else if (___the_current_rows_indinotes_or_commands_found == "r.")
{
___the_current_rows_indinotes_or_commands_found = "R.";//there is no R flat
}
else if (___the_current_rows_indinotes_or_commands_found == "R.")
{
___the_current_rows_indinotes_or_commands_found = "R.";// there is no R Flat and if necessary type the R#. specify that
}
else if (___the_current_rows_indinotes_or_commands_found == "g.")
{
___the_current_rows_indinotes_or_commands_found = "G_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "G.")
{
___the_current_rows_indinotes_or_commands_found = "G.";//specify G#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m.")
{
___the_current_rows_indinotes_or_commands_found = "M_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "M.")
{
___the_current_rows_indinotes_or_commands_found = "M.";// if necessary type M#. specify that
}
else if (___the_current_rows_indinotes_or_commands_found == "p.")
{
___the_current_rows_indinotes_or_commands_found = "P_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "P.")
{
___the_current_rows_indinotes_or_commands_found = "P.";//there is no P sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "d.")
{
___the_current_rows_indinotes_or_commands_found = "D.";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "D.")
{
___the_current_rows_indinotes_or_commands_found = "D.";// Specify the D#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "N.")
{
___the_current_rows_indinotes_or_commands_found = "N.";// if necessary specify N#.
}
else if (___the_current_rows_indinotes_or_commands_found == "S..")
{
___the_current_rows_indinotes_or_commands_found = "S..";//we are at higher to higher octave
}
else if (___the_current_rows_indinotes_or_commands_found == "s")
{
___the_current_rows_indinotes_or_commands_found = "S_";
}
else if (___the_current_rows_indinotes_or_commands_found == "S")
{
___the_current_rows_indinotes_or_commands_found = "S";//NO S SHARP THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "r")
{
___the_current_rows_indinotes_or_commands_found = "R";//NO R FLAT THERE
}
else if (___the_current_rows_indinotes_or_commands_found == "R")
{
___the_current_rows_indinotes_or_commands_found = "R";
}
else if (___the_current_rows_indinotes_or_commands_found == "g")
{
___the_current_rows_indinotes_or_commands_found = "G_";
}
else if (___the_current_rows_indinotes_or_commands_found == "G")
{
___the_current_rows_indinotes_or_commands_found = "G";
}
else if (___the_current_rows_indinotes_or_commands_found == "m")
{
___the_current_rows_indinotes_or_commands_found = "M_";
}
else if (___the_current_rows_indinotes_or_commands_found == "M")
{
___the_current_rows_indinotes_or_commands_found = "M";//type M# ifnecessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p")
{
___the_current_rows_indinotes_or_commands_found = "P_";//p has the flat and no sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "P")
{
// ___the_current_rows_indinotes_or_commands_found = "P#";
___the_current_rows_indinotes_or_commands_found = "P";//THERE IS NO P#
}
else if (___the_current_rows_indinotes_or_commands_found == "d")
{
___the_current_rows_indinotes_or_commands_found = "D";//THERE IS NO D_
}
else if (___the_current_rows_indinotes_or_commands_found == "D")
{
___the_current_rows_indinotes_or_commands_found = "D";//type D# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "n")
{
___the_current_rows_indinotes_or_commands_found = "N_";
}
else if (___the_current_rows_indinotes_or_commands_found == "N")
{
___the_current_rows_indinotes_or_commands_found = "N";// type N# if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "s.")
{
___the_current_rows_indinotes_or_commands_found = "N#";// this is calling of current octave from the upper octaves S
}
else if (___the_current_rows_indinotes_or_commands_found == "S.")
{
___the_current_rows_indinotes_or_commands_found = "S";//THERE IS NO S SHARP we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "r.")
{
___the_current_rows_indinotes_or_commands_found = "R.";//THERE IS NO r flat we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "R.")
{
___the_current_rows_indinotes_or_commands_found = "R."; // we are at upper octave
}
else if (___the_current_rows_indinotes_or_commands_found == "g.")
{
___the_current_rows_indinotes_or_commands_found = "G_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "G.")
{
___the_current_rows_indinotes_or_commands_found = "G.";//type G#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "m.")
{
___the_current_rows_indinotes_or_commands_found = "M_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "M.")
{
___the_current_rows_indinotes_or_commands_found = "M.";//type M#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "p.")
{
___the_current_rows_indinotes_or_commands_found = "P_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "P.")
{
___the_current_rows_indinotes_or_commands_found = "P.";//there is no p sharp
}
else if (___the_current_rows_indinotes_or_commands_found == "d.")
{
___the_current_rows_indinotes_or_commands_found = "D.";//there is no D flat
}
else if (___the_current_rows_indinotes_or_commands_found == "n.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";
}
else if (___the_current_rows_indinotes_or_commands_found == "N.")
{
___the_current_rows_indinotes_or_commands_found = "N_.";//type N#. if necessary
}
else if (___the_current_rows_indinotes_or_commands_found == "-")
{
___the_current_rows_indinotes_or_commands_found = "S";//we will take care this with the last note continuations
}
else if (___the_current_rows_indinotes_or_commands_found == "|")
{
___the_current_rows_indinotes_or_commands_found = "|";//this is the decorations notes
}
else if (___the_current_rows_indinotes_or_commands_found == "@")
{
___the_current_rows_indinotes_or_commands_found = "@";
}
else if (___the_current_rows_indinotes_or_commands_found == "(")
{
___the_current_rows_indinotes_or_commands_found = "(";
}
else if (___the_current_rows_indinotes_or_commands_found == ")")
{
___the_current_rows_indinotes_or_commands_found = ")";
}
else if (___the_current_rows_indinotes_or_commands_found == "{")
{
___the_current_rows_indinotes_or_commands_found = "{";
}
else if (___the_current_rows_indinotes_or_commands_found == "}")
{
___the_current_rows_indinotes_or_commands_found = "}";
}
else if (___the_current_rows_indinotes_or_commands_found == "[")
{
___the_current_rows_indinotes_or_commands_found = "[";
}
else if (___the_current_rows_indinotes_or_commands_found == "]")
{
___the_current_rows_indinotes_or_commands_found = "]";
}
else if (___the_current_rows_indinotes_or_commands_found == "\\")
{
___the_current_rows_indinotes_or_commands_found = "\\";//to handle these specially with references to the previous non decorative pure melody note assigned
}
else if (___the_current_rows_indinotes_or_commands_found == "/")
{
___the_current_rows_indinotes_or_commands_found = "/";//to handle these specially with references to the previous non decorative pure melody note assigned
}
else if (___the_current_rows_indinotes_or_commands_found == "~")
{
___the_current_rows_indinotes_or_commands_found = "~";//to handle these specially with references to the previous non decorative pure melody note assigned
}
////else
////{
////}//preconditionings done
// }
//////if (
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("#")
//////||
//////!___the_current_rows_indinotes_or_commands_found.EndsWith("_")
//////)
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
////////////////////// conditional conditioning for the data ////////////
//for the rows above 44 we have special kinds of actions like the pitch bends controls key after touch controls etc
for (int searcher = 0; searcher <= 44; searcher++)
{
//___the_current_rows_indinotes_or_commands_found
//////if
////// (
////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0].TrimEnd().TrimStart().Trim()
////// .StartsWith( (NOTE_NAME_FILLED_IN_THE_CELL+"/").TrimEnd().TrimStart().Trim().ToUpper() )
////// ||
////// PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0].TrimEnd().TrimStart().Trim()
////// .EndsWith(("/"+NOTE_NAME_FILLED_IN_THE_CELL ).TrimEnd().TrimStart().Trim().ToUpper())
////// )
///
if
(
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0].TrimEnd().TrimStart().Trim()
.StartsWith((___the_current_rows_indinotes_or_commands_found + "/").TrimEnd().TrimStart().Trim().ToUpper())
||
PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0].TrimEnd().TrimStart().Trim()
.EndsWith(("/" + ___the_current_rows_indinotes_or_commands_found).TrimEnd().TrimStart().Trim().ToUpper())
)
{
returned_notes_number_as_string
= PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 2];
//I FIRST DECIDED TO DO WORK WITH FIRST OCCURANCE AND PROCEED
//THEN I HAVE SEEN THAT THE LAST OCCURANCE GIVES BETTER OUTPUTS SO WE ARE NOT TAKING THE FIRST OCCURANCES
// goto gotohere_since_first_occurance_of_note_found;
}
//if(PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher,0].Contains(NOTE_NAME_FILLED_IN_THE_CELL.TrimEnd().TrimStart().Trim().ToUpper()))
//////(
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0].TrimEnd().TrimStart().Trim()
//////.StartsWith((NOTE_NAME_FILLED_IN_THE_CELL + "/").TrimEnd().TrimStart().Trim().ToUpper())
//////||
//////PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3[searcher, 0].TrimEnd().TrimStart().Trim()
//////.EndsWith(("/" + NOTE_NAME_FILLED_IN_THE_CELL).TrimEnd().TrimStart().Trim().ToUpper())
//////)
}//for(int searcher=0;searcher < PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3.GetLength(0);searcher++)
}
catch (Exception ___excp_to_run)
{
Console.WriteLine("___excp_to_run= " + ___excp_to_run.Message + " " + ___excp_to_run.StackTrace.ToString());
}//catch(Exception ___excp_to_run)
___report_to_show_on_errors
=
"CURRENT_INIDINOTES=" + NOTE_NAME_FILLED_IN_THE_CELL + "_RETNUMS=" + returned_notes_number_as_string
+ "\r\n" + ___report_to_show_on_errors;
Console.WriteLine
(
"\r\n returned_notes_number_as_string = " + returned_notes_number_as_string
+ "\r\n" +
___report_to_show_on_errors
);
//I FIRST DECIDED TO DO WORK WITH FIRST OCCURANCE AND PROCEED
//THEN I HAVE SEEN THAT THE LAST OCCURANCE GIVES BETTER OUTPUTS SO WE ARE NOT TAKING THE FIRST OCCURANCES
////// gotohere_since_first_occurance_of_note_found:;
string ___dummyfilesnamesformids_CURRENT_INDIANSNOTESMAPS_timestamps =
ExcelFormulaParser_GT_PARSERSample.Program.public_static_string_GT_folder
+ "CURRENT_INIDINOTES=" + NOTE_NAME_FILLED_IN_THE_CELL + "_RETNUMS=" + returned_notes_number_as_string + "_" + System.DateTime.Now.ToString("ddmmyyyyhhmmss").TrimEnd().TrimStart().Trim() + ".INDIANNOTES";
/////////////////////////////////////////////////////////////////////////
PUBLIC_STATIC_STRING_INDIANIZED_NOTES_REPORT
=
___report_to_show_on_errors;
/////////////////////////////////////////////////////////////////////////
if (PUBLIC_STATIC_BOOL_TO_SHOW_THE_MESSAGEBOX___TO_SAVE_FILES_ALSO)
{
System.IO.File.WriteAllText
(
___dummyfilesnamesformids_CURRENT_INDIANSNOTESMAPS_timestamps
,
___report_to_show_on_errors
);
}// if(PUBLIC_STATIC_BOOL_TO_SHOW_THE_MESSAGEBOX___TO_SAVE_FILES_ALSO)
return returned_notes_number_as_string;
}// public static string PUBLIC_STATIC_STRING___return_NOTES_NUMBER_STRING_FROM_PRECONFIGURED_KEY_NAMES_TO_NUMBER______FROM___PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3(string NOTESNAME_TO_ASSIGN,int notenumber_to_assign,string NOTE_NUMBER_FILLED_IN_THE_CELL)
public static void public_static_void_prepare_notes_sequences_for_prelistening_populate_to_rows()
{
if (PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS != null)
{
PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.Clear();
}
else
{
PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.Clear();
}//end of else of if(PUBLIC_STATIC_LIST___OF___PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS!=null)
}//public static void public_static_void_prepare_notes_sequences_for_prelistening_populate_to_rows()
}//public static class PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
////////////////////////// IMPORTANT HANDLING OF THE MEASURES ///////////////////////////////////////////////////////////
/// <summary>
/// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// </summary>
///
public class PUBLIC_CLASS_SMART_COMPOSED_OBJECT
{
public List<PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES>
PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
= new List<PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES>();
public int PUBLIC_INT_NUMBER_OF_MEASURE_OBJECTS = 0;
public double PUBLIC_DOUBLE___TOTAL_MILLIS_FOR_WHOLE_COMPOSER_OBJECT = 0;
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
List<SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>
___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
=
new List<SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
////////////////////////////////////////////////////////////// this is designed to arrange the whole decorations systems and the durations assigning and also for the start millis assignings
public List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___MEASURE_PIPES_FOUND = new List<int>();
//LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___MEASURE_PIPES_FOUND.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_START_FOUND = new List<int>();
// LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_START_FOUND.Clear();
public List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_FINALS_FOUND = new List<int>();
// this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_FINALS_FOUND.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_START_FOUND = new List<int>();
// this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_START_FOUND.Clear();
public List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_FINALS_FOUND = new List<int>();
// this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_FINALS_FOUND.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_START_FOUND = new List<int>();
// this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_START_FOUND.Clear();
List<int> LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_FINALS_FOUND = new List<int>();
// this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_FINALS_FOUND.Clear();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public PUBLIC_CLASS_SMART_COMPOSED_OBJECT()
{
PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
= new List<PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES>();
this.PUBLIC_LIST_OF_________PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES.Clear();
PUBLIC_INT_NUMBER_OF_MEASURE_OBJECTS = 0;
PUBLIC_DOUBLE___TOTAL_MILLIS_FOR_WHOLE_COMPOSER_OBJECT = 0;
___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
= new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
this.___temp_list_of____PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS.Clear();
this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___MEASURE_PIPES_FOUND = new List<int>();
this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___MEASURE_PIPES_FOUND.Clear();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_START_FOUND = new List<int>();
this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_START_FOUND.Clear();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_FINALS_FOUND = new List<int>();
this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___FIRST_BRACKET_FINALS_FOUND.Clear();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_START_FOUND = new List<int>();
this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_START_FOUND.Clear();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_FINALS_FOUND = new List<int>();
this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___SECONDS_BRACKET_FINALS_FOUND.Clear();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_START_FOUND = new List<int>();
LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_FINALS_FOUND = new List<int>();
this.LIST_OF_INTEGER_ROW_LOCATIONS_WHERE___THIRDS_BRACKET_FINALS_FOUND.Clear();
}//public PUBLIC_CLASS_SMART_COMPOSED_OBJECT()
}//public class PUBLIC_CLASS_SMART_COMPOSED_OBJECT
public class PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
{
public int PUBLIC_INT_MEASURE_ID = 0;
public double PUBLIC_DOUBLE_TOTAL_DURATIONS_IN_CURRENT_MEASURE_OBJECT = 0;
public List<PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE>
public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
= new List<PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE>();
public PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES()
{
this.PUBLIC_INT_MEASURE_ID = 0;
this.PUBLIC_DOUBLE_TOTAL_DURATIONS_IN_CURRENT_MEASURE_OBJECT = 0;
this.public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
= new List<PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE>();
public_list_of______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE.Clear();
}// public PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES()
}//public class PUBLIC_CLASS_SMART_MEASURE_OBJECT___WITH_SEVERAL_KINDS_OF_SEVERAL_LEVELS_OF_NESTED_GROUPS_OF_NOTES
//we need to populate these with level wise data
//we will populate these things in the first scan
// that will help us to handle the whole things easily
public class PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
{
//groups can have sub groups nested inside the groups levels
public List<PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE>
PUBLIC_LIST_OF_______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
= new List<PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE>();
//and the zero nested groups can also have loose notes in the zero depth groups also
//sequences of groups ordering depths are important
public List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>
PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
= new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
public int PUBLIC_INT_MEASURE_ID_FOR_THIS_GROUP_OF_NOTES = 0;
public int PUBLIC_INT_NESTING_LEVELS_DEPTH_FOR_THIS_GROUP_OF_OF_NOTES = 0;
public int PUBLIC_INT_NUMBER_OF_NOTES_IN_THIS_NESTED_GROUP_OF_NOTES = 0;
public double PUBLIC_DOUBLE_TOTAL_DURATIONS_MILLIS_ASSIGNED_TO_THIS_NESTED_GROUP_OF_NOTES = 0;
public PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE()
{
this.PUBLIC_LIST_OF_______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
= new List<PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE>();
this.PUBLIC_LIST_OF_______PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
.Clear();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
= new List<PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS>();
this.PUBLIC_LIST_OF________PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
.Clear();
this.PUBLIC_INT_MEASURE_ID_FOR_THIS_GROUP_OF_NOTES = 0;
this.PUBLIC_INT_NESTING_LEVELS_DEPTH_FOR_THIS_GROUP_OF_OF_NOTES = 0;
this.PUBLIC_INT_NUMBER_OF_NOTES_IN_THIS_NESTED_GROUP_OF_NOTES = 0;
this.PUBLIC_DOUBLE_TOTAL_DURATIONS_MILLIS_ASSIGNED_TO_THIS_NESTED_GROUP_OF_NOTES = 0;
}// public PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE()
}//public class PUBLIC_CLASS_SMART_NESTED_GROUPS_OF_NOTES___LEVEL_WISE
public class PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
{
public double PUBLIC_DOUBLE_CURRENT_NOTE_NUMBER = 0;
public double PUBLIC_DOUBLE_CURRENT_EVENT_COUNTER = 0;
public int PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___MEASURES_NUMBER___NUMBER_OF_PIPES_CROSSED = 0;
//THIS INCREASES WITH { AND DECREASES WITH ) AND THE UNBALANCED CASES ARE ALSO IDENTIFIED AND RESETS TO ZERO WHEN NEW PIPE IS FOUND
public int PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___NUMBER_OF_FIRST_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO = 0;
public int PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___NUMBER_OF_SECONDS_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO = 0;
public int PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___FOR_NOTES_ATTRIBUTES_DEFINER_NUMBER_OF_THIRDS_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO = 0;
public int PUBLIC_INT_LAST_NON_DECORATIVE_MIDS_NOTE_NUMBER_FOUND = 0;
public double PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = 0;
public double PUBIC_DOUBLE_ENFORCER_FINAL_TIMES_MILLIS_FOR_DECORATIONS_BACK_CALCULATIONS_GANTTS = 0;
public double PUBLIC_DOUBLE_TOTAL_MILLIS_ASSIGNED_TO_CURRENT_MEASURE = 0;
public int PUBLIC_INT_TOTAL_FREE_NOTES_NON_GROUPED_OUT_OF_BRACKETS_NOTES_ASSIGNED_TO_CURRENT_MEASURE = 0;
public double PUBLIC_DOUBLE_TOTAL_MILLIS_ASSIGNED_TO_CURRENT_GROUP_OF_NOTES = 0;
//this is necessary to calibrate sort fit the actual imported sequences after the decorations are done
public int INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES = 0;
public double PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS = 0;
public double PUBLIC_DOUBLE___TOTAL_CUMULATIVE_MILLIS_FOR_THE_WHOLE_SEQUENCE_SUM_OF_ALL_MELS_NOTES_DURATIONS = 0;
public int INT_SERIAL_NUMBER_OF_NOTE = 0;
public int INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = 0;
public double DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 0;
public int INT_CURRENT_NOTES_VELOCITY_0_TO_127 = 127;
public int INT_CURRENT_NOTES_PATCH_0_TO_127 = 127;
public string PUBLIC_STRING_THE_INDINOTE_FOUND = "";
public string PUBLIC_STRING_THE_LYR_FOUND = "";
public string STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = "0,100";
public string STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = "8192,8192";// "8192,16384";
public string STRING_COMMA_SEPERATED_WITHIN_NOTES_KEY_AFTERTOUCH_PERCENTAGES_DURATIONS = "0,100";
public string STRING_COMMA_SEPERATED_WITHIN_NOTES_KEY_AFTERTOUCH_VALUES = "0,127";
public long LONG_START_ABSOLUTE_TIME_FOR_CURRENT_NOTE = 0;
public long LONG_TICKS_DURATIONS_FOR_CURRENT_NOTE = 0;
public List<double> PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS = new List<double>();
public List<int> PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS = new List<int>();
public List<double> PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS = new List<double>();
public List<long> PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE = new List<long>();
public List<double> PUBLIC_LIST_OF_DOUBLE_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS = new List<double>();
public List<int> PUBLIC_LIST_OF_INT_KEY_AFTERTOUCH_0_TO_127_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS = new List<int>();
public List<double> PUBLIC_LIST_OF_DOUBLE_MILISECONDS_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS = new List<double>();
public List<long> PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_KEY_AFTERTOUCH_IN_WHOLE_SEQUENCE = new List<long>();
public int PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = 3;
public int PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = 3;
public double PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 0;
public int PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 0;
public int PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 0;
public double PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = 0;
public double Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = 0;
public double Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = 0;
public int PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 =6;
public int PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = 64;// 0;
public PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS()
{
this.PUBLIC_DOUBLE_CURRENT_NOTE_NUMBER = 0;
this.PUBLIC_DOUBLE_CURRENT_EVENT_COUNTER = 0;
this.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___MEASURES_NUMBER___NUMBER_OF_PIPES_CROSSED = 0;
//THIS INCREASES WITH { AND DECREASES WITH ) AND THE UNBALANCED CASES ARE ALSO IDENTIFIED AND RESETS TO ZERO WHEN NEW PIPE IS FOUND
this.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___NUMBER_OF_FIRST_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO = 0;
this.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___NUMBER_OF_SECONDS_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO = 0;
this.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___FOR_NOTES_ATTRIBUTES_DEFINER_NUMBER_OF_THIRDS_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO = 0;
this.PUBLIC_INT_LAST_NON_DECORATIVE_MIDS_NOTE_NUMBER_FOUND = 0;
this.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS = 0;
this.PUBIC_DOUBLE_ENFORCER_FINAL_TIMES_MILLIS_FOR_DECORATIONS_BACK_CALCULATIONS_GANTTS = 0;
this.PUBLIC_DOUBLE_TOTAL_MILLIS_ASSIGNED_TO_CURRENT_MEASURE = 0;
this.PUBLIC_INT_TOTAL_FREE_NOTES_NON_GROUPED_OUT_OF_BRACKETS_NOTES_ASSIGNED_TO_CURRENT_MEASURE = 0;
this.PUBLIC_DOUBLE_TOTAL_MILLIS_ASSIGNED_TO_CURRENT_GROUP_OF_NOTES = 0;//we can assign this to the next reversed iterations
this.PUBLIC_STRING_THE_INDINOTE_FOUND = "";
this.PUBLIC_STRING_THE_LYR_FOUND = "";
this.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES = 0;
this.PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS = 0;
// this is important when we need to grabs the data for the sharps start point controlled looping calculations
this.PUBLIC_DOUBLE___TOTAL_CUMULATIVE_MILLIS_FOR_THE_WHOLE_SEQUENCE_SUM_OF_ALL_MELS_NOTES_DURATIONS = 0;
this.INT_SERIAL_NUMBER_OF_NOTE = 0;
this.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 = 0;
this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = 680;
this.INT_CURRENT_NOTES_VELOCITY_0_TO_127 = 127;
this.INT_CURRENT_NOTES_PATCH_0_TO_127 = 127;
this.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS = "0,100";
this.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES = "8192,16368";
this.STRING_COMMA_SEPERATED_WITHIN_NOTES_KEY_AFTERTOUCH_PERCENTAGES_DURATIONS = "0,100";
this.STRING_COMMA_SEPERATED_WITHIN_NOTES_KEY_AFTERTOUCH_VALUES = "0,127";
this.LONG_START_ABSOLUTE_TIME_FOR_CURRENT_NOTE = 0;
this.LONG_TICKS_DURATIONS_FOR_CURRENT_NOTE = 0;
this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS = new List<double>();
this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Clear();
this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS = new List<int>();
this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS.Clear();
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS = new List<double>();
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS.Clear();
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE = new List<long>();
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE.Clear();
this.PUBLIC_LIST_OF_DOUBLE_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS = new List<double>();
this.PUBLIC_LIST_OF_DOUBLE_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS.Clear();
this.PUBLIC_LIST_OF_INT_KEY_AFTERTOUCH_0_TO_127_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS = new List<int>();
this.PUBLIC_LIST_OF_INT_KEY_AFTERTOUCH_0_TO_127_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS.Clear();
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS = new List<double>();
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS.Clear();
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_KEY_AFTERTOUCH_IN_WHOLE_SEQUENCE = new List<long>();
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_KEY_AFTERTOUCH_IN_WHOLE_SEQUENCE.Clear();
this.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 = 3;
this.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER = 3;
this.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP = 0;
this.PUBLIC_INT___Column_JUERK_UP_PITCHBEND = 0;
this.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND = 0;
this.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES = 0;
this.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES = 0;
this.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES = 0;
this.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 = 6;
////////////////////MIDI CC
////////////////////10 Pan Controls the left and right balance, generally for mono patches.
////////////////////0 = hard left, 64 = center, 127 = hard right 0 - 127
this.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT = 64;
}// public PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS()
public string GENERATE_AND_RETURN_REPORT_STRING()
{
string ___temp_report_string = "";
___temp_report_string =
___temp_report_string + "###" +
"ntsscnt=" + this.PUBLIC_DOUBLE_CURRENT_NOTE_NUMBER + "###" +
"evntsscnt=" + this.PUBLIC_DOUBLE_CURRENT_EVENT_COUNTER + "###" +
"measrcntrPIPCrsd=" + this.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___MEASURES_NUMBER___NUMBER_OF_PIPES_CROSSED + "###" +
//THIS INCREASES WITH { AND DECREASES WITH ) AND THE UNBALANCED CASES ARE ALSO IDENTIFIED AND RESETS TO ZERO WHEN NEW PIPE IS FOUND
"1stbrktcrsd="+ this.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___NUMBER_OF_FIRST_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO + "###" +
"2ndsbrktcrsd=" + this.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___NUMBER_OF_SECONDS_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO + "###" +
"3rdsbrktcrsd=" + this.PUBLIC_INT_CURRENT_NOTES_SRGMPDNS___WITHIN_CURRENT_MEASURES_NUMBER___FOR_NOTES_ATTRIBUTES_DEFINER_NUMBER_OF_THIRDS_BRACKET_CROSSED_IN_CURRENT_MEASURE_ODD_EVEN_COUNTER_ALSO + "###" +
"lastnondecorTHENIDSSnotesfnd=" + this.PUBLIC_INT_LAST_NON_DECORATIVE_MIDS_NOTE_NUMBER_FOUND + "###" +
"enforcerstartmillis(decor)=" + this.PUBIC_DOUBLE_ENFORCER_START_TIMES_MILLIS_FOR_DECORATIONS + "###" +
"enforcerfinalmillis(decor)=" + this.PUBIC_DOUBLE_ENFORCER_FINAL_TIMES_MILLIS_FOR_DECORATIONS_BACK_CALCULATIONS_GANTTS + "###" +
"millisforcurrmeasures=" + this.PUBLIC_DOUBLE_TOTAL_MILLIS_ASSIGNED_TO_CURRENT_MEASURE + "###" +
"nosofnongroupedntsincurrmeasr=" + this.PUBLIC_INT_TOTAL_FREE_NOTES_NON_GROUPED_OUT_OF_BRACKETS_NOTES_ASSIGNED_TO_CURRENT_MEASURE + "###" +
"durationsassignedtothisgroup=" + this.PUBLIC_DOUBLE_TOTAL_MILLIS_ASSIGNED_TO_CURRENT_GROUP_OF_NOTES + "###" +
"indint=" + this.PUBLIC_STRING_THE_INDINOTE_FOUND + "###" +
"lyr=" + this.PUBLIC_STRING_THE_LYR_FOUND + "###" +
"srnosofindints(raw)=" + this.INT_SERIAL_NUMBER_OF_SIMPLY___RAW_DATAGRIDS_ROW_OR_IMPORTED_NOTE_FROM_INDINOTES_OR_INDITAALS_FILES_OR_LYRS_FILES + "###" +
"cumulmillis(mels)=" + this.PUBLIC_DOUBLE_CUMULATIVE_MILLIS_START_TIMES_FOR_PURE_MEL_NOTES_CUMULATIONS + "###" +
// this is important when we need to grabs the data for the sharps start point controlled looping calculations
"totaldurs(allmels)=" + this.PUBLIC_DOUBLE___TOTAL_CUMULATIVE_MILLIS_FOR_THE_WHOLE_SEQUENCE_SUM_OF_ALL_MELS_NOTES_DURATIONS + "###" +
"srnosnts="+ this.INT_SERIAL_NUMBER_OF_NOTE + "###" +
"midsntnos=" + this.INT_NOTE_NUMBER_TO_PLAY_0_TO_127 + "###" +
"millisdurs(forprelistensMIDSavings)=" + this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY + "###" +
"vels=" + this.INT_CURRENT_NOTES_VELOCITY_0_TO_127 + "###" +
"ptchs=" + this.INT_CURRENT_NOTES_PATCH_0_TO_127 + "###" +
"ptchbndpercdurs=" + this.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS + "###" +
"ptchbndsvals=" + this.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES + "###" +
"keyaftchsdurs=" + this.STRING_COMMA_SEPERATED_WITHIN_NOTES_KEY_AFTERTOUCH_PERCENTAGES_DURATIONS + "###" +
"keyaftchsdata=" + this.STRING_COMMA_SEPERATED_WITHIN_NOTES_KEY_AFTERTOUCH_VALUES + "###" +
"startabstmscurrnts=" + this.LONG_START_ABSOLUTE_TIME_FOR_CURRENT_NOTE + "###" +
"lngabstkscurrnts=" + this.LONG_TICKS_DURATIONS_FOR_CURRENT_NOTE + "###" +
//this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS = new List<double>();
// this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Clear();
// +"percentagesdursptchbnds###" +
// +"ptchbndsvals###" +
// this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS = new List<int>();
// this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS.Clear();
// this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS = new List<double>();
//this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS.Clear();
// +"keypressdursperctgs###" +
// +"keypressvals###" +
// this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE = new List<long>();
// this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE.Clear();
// this.PUBLIC_LIST_OF_DOUBLE_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS = new List<double>();
// this.PUBLIC_LIST_OF_DOUBLE_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS.Clear();
// this.PUBLIC_LIST_OF_INT_KEY_AFTERTOUCH_0_TO_127_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS = new List<int>();
// this.PUBLIC_LIST_OF_INT_KEY_AFTERTOUCH_0_TO_127_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS.Clear();
// this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS = new List<double>();
// this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS_PERCENTAGES_WITHIN_NOTE_KEY_AFTERTOUCH_POSITIONS.Clear();
// this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_KEY_AFTERTOUCH_IN_WHOLE_SEQUENCE = new List<long>();
// this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_KEY_AFTERTOUCH_IN_WHOLE_SEQUENCE.Clear();
"chnls=" + this.PUBLIC_INT_CHANNEL_NUMBER_0_TO_15 + "###" +
"trknos=" + this.PUBLIC_INT_TRACK_NUMBER_0_TO_ANY_NUMBER + "###" +
"ptchbndsjrkgapmillis=" + this.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP + "###" +
"ptchbndsjrkup=" + this.PUBLIC_INT___Column_JUERK_UP_PITCHBEND + "###" +
"ptchbndsjrkdn=" + this.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND + "###" +
"startmillispercus=" + this.PUBLIC_DOUBLE___Column___ENFORCED_START_MILLIS_FOR_PERCUSSIONS_NOTES + "###" +
"startmillis(puremels)=" + this.Column___ENFORCED_START_MILLIS_FOR_PUREMELODY_NOTES + "###" +
"cumulrefstartmillis=" + this.Column___REFERENCE_CUMULATIVE_START_MILLIS_FOR_CURRENT_NOTES + "###" +
"ptchbndranges=" + this.PUBLIC_INT___Column___NOTE_WISE_PITHBENDS_RANGE_2X2_SEMITONES_DEFAULT_TO_10X2_20 + "###" +
"pans=" + this.PUBLIC_INT___Column_NOTES_WISE_PAN_0_LEFT_TO_127_RIGHT + "###";
return ___temp_report_string;
}// public string GENERATE_AND_RETURN_REPORT_STRING()
/// <summary>
/// CONSTRUCTOR COMPLETES
///
/// </summary>
/// <param name="START_ABSOLUTE_TIME_MIDITIKS"></param>
///
public void PUBLIC_NONSTATIC_VOID_UPDATE_CURRENT_NOTE_TO_UPDATE_PITCHBENDS_AND_OTHER_EFFECTS_FOR_CURRENT_NOTES_WITH_CURRENT_STARTING_ABSOLUTE_TIME_LONG(double START_ABSOLUTE_START_TIME_MILISECONDS, double MILLISECONDS_TO_MIDITIKS_MULTIPLIER)
//,int INT_MILLISECOND_TOLERANCE_FOR_RIPPLES_PITCHBENDS,int INT_UPSIDE_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES,int INT_DOWNSIES_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES
{
Console.WriteLine("public void PUBLIC_NONSTATIC_VOID_UPDATE_CURRENT_NOTE_TO_UPDATE_PITCHBENDS_AND_OTHER_EFFECTS_FOR_CURRENT_NOTES_WITH_CURRENT_STARTING_ABSOLUTE_TIME_LONG(double START_ABSOLUTE_START_TIME_MILISECONDS,double MILLISECONDS_TO_MIDITIKS_MULTIPLIER)");
Console.WriteLine(" START_ABSOLUTE_START_TIME_MILISECONDS = " + START_ABSOLUTE_START_TIME_MILISECONDS);
Console.WriteLine(" MILLISECONDS_TO_MIDITIKS_MULTIPLIER = " + MILLISECONDS_TO_MIDITIKS_MULTIPLIER);
Console.WriteLine(" this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = " + this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY);
int INT_MILLISECOND_TOLERANCE_FOR_RIPPLES_PITCHBENDS = (int)this.PUBLIC_DOUBLE____Column_PITCHBEND_JERKS_MILLIS_GAP;
int INT_UPSIDE_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES = this.PUBLIC_INT___Column_JUERK_UP_PITCHBEND;
int INT_DOWNSIES_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES = this.PUBLIC_INT___Column_JERK_DOWNS_PITCH_BEND;
Console.WriteLine("INT_MILLISECOND_TOLERANCE_FOR_RIPPLES_PITCHBENDS = " + INT_MILLISECOND_TOLERANCE_FOR_RIPPLES_PITCHBENDS);
Console.WriteLine(" INT_UPSIDE_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES = " + INT_UPSIDE_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES);
Console.WriteLine(" INT_DOWNSIES_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES = " + INT_DOWNSIES_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES);
this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.Clear();
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.Clear();
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
.Clear();
//////for references double START_ABSOLUTE_START_TIME_MILISECONDS
//////for references ,double MILLISECONDS_TO_MIDITIKS_MULTIPLIER
//////for references ,int CURRENT_NOTE_NUMBER
//////for references ,int INT_MILLISECOND_TOLERANCE_FOR_RIPPLES_PITCHBENDS
//////for references ,int INT_UPSIDE_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES
//////for references ,int INT_DOWNSIES_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES
double ___TEMP___DOUBLE_FREQUENCY_FOUND
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
.
// PUBLIC_STATIC_STRING___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
PUBLIC_STATIC_DOUBLE___RETURN_NOTE_FREQUENCY_FROM___1_values_up_down_not_necessary___indexes_since_my_array_is_1_to_128___NOTE_NUMBER___PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
(
// CURRENT_NOTE_NUMBER
this.INT_NOTE_NUMBER_TO_PLAY_0_TO_127
)
;
double ___temp_local_double_current_notes_total_duration = this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY;
//HERE WE WILL UPDATE THE PITCH BENDS AND OTHER DATA WITH THIS
string ___local_raw_string_for_pitchbend_durations_before_splitters = "";
string ___local_raw_string_for_pitchbend_data_before_splitters = "";
string[] ___local_array_of_string_tokens_splitted_string_for_pitchbend_durations_before_splitters = { };
string[] ___local_array_of_string_tokens_splitted_string_for_pitchbend_data_before_splitters = { };
double[] ___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters = { };
double[] ___local_array_of_double_tokens_splitted_string_for_pitchbend_data_before_splitters = { };
int tocountsuccessfulconvertionsofdurations = 0;
int tocountsuccessfulconvertionsofpitchbendsdata = 0;
//___temp_local_double_current_notes_total_duration
___local_raw_string_for_pitchbend_durations_before_splitters
= this.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_PERCENTAGES_DURATIONS;
___local_raw_string_for_pitchbend_data_before_splitters
= this.STRING_COMMA_SEPERATED_WITHIN_NOTES_PITCH_BENDS_VALUES;
Console.WriteLine(" ___local_raw_string_for_pitchbend_durations_before_splitters = " + ___local_raw_string_for_pitchbend_durations_before_splitters);
Console.WriteLine(" ___local_raw_string_for_pitchbend_data_before_splitters = " + ___local_raw_string_for_pitchbend_data_before_splitters);
///////////////////////////////////////////////////////////////////////////////////////////////////////////
if (___local_raw_string_for_pitchbend_durations_before_splitters.TrimEnd().TrimStart().Trim() == "")
{
___local_raw_string_for_pitchbend_durations_before_splitters
= "0;100";
}//if (___local_raw_string_for_pitchbend_durations_before_splitters.TrimEnd().TrimStart().Trim()=="")
if (___local_raw_string_for_pitchbend_data_before_splitters.TrimEnd().TrimStart().Trim() == "")
{
___local_raw_string_for_pitchbend_data_before_splitters
= "8192;8192";
}// if(___local_raw_string_for_pitchbend_data_before_splitters.TrimEnd().TrimStart().Trim()=="")
///////////////////////////////////////////////////////////////////////////////////////////////////////////
___local_array_of_string_tokens_splitted_string_for_pitchbend_durations_before_splitters
=
___local_raw_string_for_pitchbend_durations_before_splitters
.Split(new string[] { ",", ";", "#" }, StringSplitOptions.RemoveEmptyEntries);
;
___local_array_of_string_tokens_splitted_string_for_pitchbend_data_before_splitters
=
___local_raw_string_for_pitchbend_data_before_splitters
.Split(new string[] { ",", ";", "#" }, StringSplitOptions.RemoveEmptyEntries);
;
/////////////////////////////////////////////////////////////////////////////////////////////
int numbersofobjectstokensindurationspercentages =
___local_array_of_string_tokens_splitted_string_for_pitchbend_durations_before_splitters.Length;
Console.WriteLine(" ___local_array_of_string_tokens_splitted_string_for_pitchbend_durations_before_splitters.Length = " + ___local_array_of_string_tokens_splitted_string_for_pitchbend_durations_before_splitters.Length);
Console.WriteLine(" ___local_array_of_string_tokens_splitted_string_for_pitchbend_data_before_splitters.Length = " + ___local_array_of_string_tokens_splitted_string_for_pitchbend_data_before_splitters.Length);
List<double> ___temp___double_type_percentages_of_time_points = new List<double>();
___temp___double_type_percentages_of_time_points.Clear();
if (
___local_array_of_string_tokens_splitted_string_for_pitchbend_durations_before_splitters.Length
!=
___local_array_of_string_tokens_splitted_string_for_pitchbend_data_before_splitters
.Length
)
{
Console.WriteLine(" ___local_array_of_string_tokens_splitted_string_for_pitchbend_durations_before_splitters.Length = " + ___local_array_of_string_tokens_splitted_string_for_pitchbend_durations_before_splitters.Length);
Console.WriteLine(" ___local_array_of_string_tokens_splitted_string_for_pitchbend_data_before_splitters.Length = " + ___local_array_of_string_tokens_splitted_string_for_pitchbend_data_before_splitters.Length);
Console.WriteLine(" will return doing nothing for pitchbends array sizes dont match");
return;
//do nothing for such cases
}
else
{
/// here we are because both the splitted strings array are of same lengths
/// here we are because both the splitted strings array are of same lengths
/// here we are because both the splitted strings array are of same lengths
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
= new double[numbersofobjectstokensindurationspercentages];
___local_array_of_double_tokens_splitted_string_for_pitchbend_data_before_splitters
= new double[numbersofobjectstokensindurationspercentages];
//////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
= new List<double>();
this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.Clear();
//////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
= new List<int>();
this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
.Clear();
//////////////////////////////////////////////////////////////////////////////////////////
///
//////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
= new List<double>();
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.Clear();
//////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
= new List<long>();
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
.Clear();
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
try
{
//////___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
////// = new double[numbersofobjectstokensindurationspercentages];
//////___local_array_of_double_tokens_splitted_string_for_pitchbend_data_before_splitters
////// = new double[numbersofobjectstokensindurationspercentages];
for (int populator_ptchbnd = 0; populator_ptchbnd < numbersofobjectstokensindurationspercentages; populator_ptchbnd++)
{
try
{
////////////////////////////////////////////////////////////////////////////////////////////////////
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
[populator_ptchbnd]
=
Convert.ToDouble
(
___local_array_of_string_tokens_splitted_string_for_pitchbend_durations_before_splitters
[populator_ptchbnd]
);
//////////////////////////////////////////// this is ade to guarantee that all the times durations percentages are in increasing order even the typing wrong //////
//////////////////////////////////////////// this is ade to guarantee that all the times durations percentages are in increasing order even the typing wrong //////
//////////////////////////////////////////// this is ade to guarantee that all the times durations percentages are in increasing order even the typing wrong //////
///
___temp___double_type_percentages_of_time_points
.Add
(
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
[populator_ptchbnd]
);
//////////////////////////////////////////// this is ade to guarantee that all the times durations percentages are in increasing order even the typing wrong //////
//////////////////////////////////////////// this is ade to guarantee that all the times durations percentages are in increasing order even the typing wrong //////
//////////////////////////////////////////// this is ade to guarantee that all the times durations percentages are in increasing order even the typing wrong //////
tocountsuccessfulconvertionsofdurations++;
Console.WriteLine("populating tocountsuccessfulconvertionsofdurations = " + tocountsuccessfulconvertionsofdurations + " " + ___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters[populator_ptchbnd]);
////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception _convertions_of_pitchbends_data)
{
//cannot use this here since it is not in the Form class
//cannot use this here since it is not in the Form class
//cannot use this here since it is not in the Form class
// if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
// {
// }
// System.Windows.Forms.MessageBox.Show("_convertions_of_pitchbends_data = " + _convertions_of_pitchbends_data.Message + " " + _convertions_of_pitchbends_data.StackTrace.ToString());
Console.WriteLine("errors _convertions_of_pitchbends_data = " + _convertions_of_pitchbends_data.Message + " " + _convertions_of_pitchbends_data.StackTrace.ToString());
}//catch(Exception _convertions_of_pitchbends_data)
try
{
////////////////////////////////////////////////////////////////////////////////////////////////////
///// these are the pitch bends data so never sort this array nor calculate things otherwise
///simply take these data 0 to 8192 to 16384 strict note this
___local_array_of_double_tokens_splitted_string_for_pitchbend_data_before_splitters
[populator_ptchbnd]
=
Convert.ToDouble
(
___local_array_of_string_tokens_splitted_string_for_pitchbend_data_before_splitters
[populator_ptchbnd]
);
tocountsuccessfulconvertionsofpitchbendsdata++;
Console.WriteLine("populating tocountsuccessfulconvertionsofpitchbendsdata = " + tocountsuccessfulconvertionsofpitchbendsdata + " " + ___local_array_of_double_tokens_splitted_string_for_pitchbend_data_before_splitters[populator_ptchbnd]);
////////////////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception _convertions_of_pitchbends_data)
{
//cannot use this here since it is not in the Form class
//cannot use this here since it is not in the Form class
//cannot use this here since it is not in the Form class
// if (this.checkBox___ON_CLICK_SHOW_MESSAGEBOX_REPORT.CheckState.ToString().ToUpper() == "CHECKED")
// {
// }
// System.Windows.Forms.MessageBox.Show("_convertions_of_pitchbends_data = " + _convertions_of_pitchbends_data.Message + " " + _convertions_of_pitchbends_data.StackTrace.ToString());
Console.WriteLine("error _convertions_of_pitchbends_data = " + _convertions_of_pitchbends_data.Message + " " + _convertions_of_pitchbends_data.StackTrace.ToString());
}//catch(Exception _convertions_of_pitchbends_data)
}//for(int populator_ptchbnd=0; populator_ptchbnd<numbersofobjectstokensindurationspercentages; populator_ptchbnd++)
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
}
catch (Exception _convertions_of_pitchbends_data)
{
}//catch(Exception _convertions_of_pitchbends_data)
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
if (tocountsuccessfulconvertionsofdurations != tocountsuccessfulconvertionsofpitchbendsdata)
{
Console.WriteLine("tocountsuccessfulconvertionsofdurations = " + tocountsuccessfulconvertionsofdurations + "\r\ntocountsuccessfulconvertionsofpitchbendsdata = " + tocountsuccessfulconvertionsofpitchbendsdata);
return;
Console.WriteLine("the convertions of two data are not of same sizes");
}
else
{
// here we enter when all the convertions are properly done
//SINCE BOTH THE CONVERTIONS ARE SUCCESSFUL SO WE WILL POPULATE THE LISTS HERE
//for references this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
//for references = new List<double>();
//for references this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
//for references .Clear();
//for references
//for references this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
//for references = new List<int>();
//for references this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
//for references .Clear();
////////////////////////////////////////////////////////////////////////////////////////////////
//for references this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
//for references = new List<long>();
//for references this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
//for references .Clear();
Array.Clear
(
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
,
0
,
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
.Length
);
///////////////////////////////////////////////////////// these guarantees that the time percentages of points are always sorte ascending
___temp___double_type_percentages_of_time_points
.Sort();
///////////////////////////////////////////////////////// these guarantees that the time percentages of points are always sorte ascending
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
=
___temp___double_type_percentages_of_time_points
.ToArray<double>();
///////////////////////////////////////////////////////// these guarantees that the time percentages of points are always sorte ascending
/////////////// pre conditioning the lists initial sides of the note//////////////////////////////////////////////
/////////////// pre conditioning the lists initial sides of the note//////////////////////////////////////////////
/////////////// pre conditioning the lists initial sides of the note//////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
if (
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
[0] != 0
)
{
////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.Add
(
0.00
);
////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.Add
(
START_ABSOLUTE_START_TIME_MILISECONDS
);
////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
.Add
(
8192
);
////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
.Add
(
(long)
(
//////caution these miliseconds data are double types
(START_ABSOLUTE_START_TIME_MILISECONDS * MILLISECONDS_TO_MIDITIKS_MULTIPLIER)
+
/////////////////////////// since the data here are percentages of total durations //////////////
//////___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
////// [0]
0
* (0.01)
* this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY
* MILLISECONDS_TO_MIDITIKS_MULTIPLIER
)
);
}
//////if (
////// ___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
////// [0] != 0
////// )
////////////////////////////////////////////////////////////////////////////////////////
/// CAUTION we will do the end sides at the end of this for loop ////////////////
/// CAUTION we will do the end sides at the end of this for loop ////////////////
/// CAUTION we will do the end sides at the end of this for loop ////////////////
//trying to add the ripples
// if(numbersofobjectstokensindurationspercentages>2)
if (numbersofobjectstokensindurationspercentages >= 2)
{
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
try
{
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
// for (int SUCCESSFUL_populator_ptchbnd = 0; SUCCESSFUL_populator_ptchbnd < numbersofobjectstokensindurationspercentages; SUCCESSFUL_populator_ptchbnd++)
// for (int SUCCESSFUL_populator_ptchbnd = 1; SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages-1); SUCCESSFUL_populator_ptchbnd++)
for (int SUCCESSFUL_populator_ptchbnd = 0; SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages - 1); SUCCESSFUL_populator_ptchbnd++)
{
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
Console.WriteLine("SUCCESSFUL_populator_ptchbnd = " + SUCCESSFUL_populator_ptchbnd);
Console.WriteLine("SUCCESSFUL_populator_ptchbnd = " + SUCCESSFUL_populator_ptchbnd + " ___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters[SUCCESSFUL_populator_ptchbnd] = " + ___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters[SUCCESSFUL_populator_ptchbnd]);
//FOR REFERENCES FOR THE RIPPLE EFFECTS
//FOR REFERENCES FOR THE RIPPLE EFFECTS
//FOR REFERENCES FOR THE RIPPLE EFFECTS
//////////////// Add ripple effects
//////////////int rippleSteps = 5; // Number of ripple steps
//////////////for (int rippleStep = 1; rippleStep <= rippleSteps; rippleStep++)
//////////////{
////////////// long rippleTime = ___absolutetimesforpitchbends + (rippleStep * 10); // Adjust the time for ripple effect
////////////// int rippleValue = ptchbndsvals + (int)(Math.Sin(rippleStep * Math.PI / rippleSteps) * 2048); // Sinusoidal ripple effect
////////////// SAANSMIDSEVENTScollection.AddEvent(
////////////// new SAANAUDS.Midi.PitchWheelChangeEvent(
////////////// rippleTime,
////////////// tempchannelnos,
////////////// rippleValue
////////////// ),
////////////// trknos
////////////// );
////////////// THE_DOUBLE_EVENT_COUNTER_TO_TRACK_ALL_INTERMEDIATE_EVENTS_IN_GLOBAL_LISTS++;
////////////// Console.WriteLine("ripple effect rippleTime = " + rippleTime + " rippleValue = " + rippleValue + " tempchannelnos = " + tempchannelnos + " trknos = " + trknos);
//////////////}//for (int rippleStep = 1; rippleStep <= rippleSteps; rippleStep++)
//we will now do the forced ripples intermediates within the points //////
//we will now do the forced ripples intermediates within the points //////
//we will now do the forced ripples intermediates within the points //////
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
///
///
///
///
///
/////////////////////////////////////////////////////////////////////////////////////////////////////
//////cautions note that int SUCCESSFUL_populator_ptchbnd = 0; SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages-1); SUCCESSFUL_populator_ptchbnd++
/// SUCCESSFUL_populator_ptchbnd = 0 to
/// SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages-1)
/////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.Add
(
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
[SUCCESSFUL_populator_ptchbnd]
);
Console.WriteLine("Adding to this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Last = " + this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Last().ToString());
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.Sort();
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.Add
(
//////caution these miliseconds data are double types
START_ABSOLUTE_START_TIME_MILISECONDS
///no i tried to do jugad its wrong * (SUCCESSFUL_populator_ptchbnd - 1)
+
/////////////////////////// since the data here are percentages of total durations //////////////
(___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
[SUCCESSFUL_populator_ptchbnd]
* (0.01)
* (this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY)
)
// +
// 3
// to avoid the pitch bends starts before notes are started
);
Console.WriteLine("Adding to this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS.Last = " + this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS.Last().ToString());
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.Sort();
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
Console.WriteLine("checking (START_ABSOLUTE_START_TIME_MILISECONDS * MILLISECONDS_TO_MIDITIKS_MULTIPLIER) = " + (START_ABSOLUTE_START_TIME_MILISECONDS * MILLISECONDS_TO_MIDITIKS_MULTIPLIER));
Console.WriteLine("checking___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters [ " + SUCCESSFUL_populator_ptchbnd + " ] = " + ___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters[SUCCESSFUL_populator_ptchbnd]);
Console.WriteLine("checking___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters [ " + SUCCESSFUL_populator_ptchbnd + " ]* (0.01) = " + ___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters[SUCCESSFUL_populator_ptchbnd] * (0.01));
Console.WriteLine("all multiplications output = " + ___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters[SUCCESSFUL_populator_ptchbnd] * (0.01) * (START_ABSOLUTE_START_TIME_MILISECONDS * MILLISECONDS_TO_MIDITIKS_MULTIPLIER));
//saan finds this is very large data
//this is for the long type miditks data types converting the millis to midits and then populating these
//this is for the long type miditks data types converting the millis to midits and then populating these
//this is for the long type miditks data types converting the millis to midits and then populating these
/////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
.Add
(
(long)
(
//////caution these miliseconds data are double types
(START_ABSOLUTE_START_TIME_MILISECONDS * MILLISECONDS_TO_MIDITIKS_MULTIPLIER)
///no i tried to do jugad its wrong *(SUCCESSFUL_populator_ptchbnd-1)
+
/////////////////////////// since the data here are percentages of total durations //////////////
(
(___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
[SUCCESSFUL_populator_ptchbnd]
* (0.01)
)
* this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY
* MILLISECONDS_TO_MIDITIKS_MULTIPLIER)
// +
// 3
// to avoid the pitch bends starts before notes are started
)
);
/////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
.Sort();
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
Console.WriteLine("MILLISECONDS_TO_MIDITIKS_MULTIPLIER = " + MILLISECONDS_TO_MIDITIKS_MULTIPLIER + " this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY = " + this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY + " SUCCESSFUL_populator_ptchbnd = " + SUCCESSFUL_populator_ptchbnd + " ___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters[ " + SUCCESSFUL_populator_ptchbnd + "] = " + ___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters[SUCCESSFUL_populator_ptchbnd] + " Adding to this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE.Last = " + this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE.Last().ToString());
/////////////////////////////////////////////////////////////////////////////////////////////////////
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
/////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
.Add
(
/// these are the pitch bends data not the percentages
(int)
___local_array_of_double_tokens_splitted_string_for_pitchbend_data_before_splitters
[SUCCESSFUL_populator_ptchbnd]
);
/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
////////////////////////////////////////////////////////////////////////////////////////////////////////
Console.WriteLine("Adding to this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS.Last = " + this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS.Last().ToString());
///////////////////////////////////////////////// the values are already populated an now we will put the intermediate ripple effects for the ata ///////////////////////
///////////////////////////////////////////////// the values are already populated an now we will put the intermediate ripple effects for the ata ///////////////////////
///////////////////////////////////////////////// the values are already populated an now we will put the intermediate ripple effects for the ata ///////////////////////
///references int SUCCESSFUL_populator_ptchbnd = 0; SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages - 1);
///references double START_ABSOLUTE_START_TIME_MILISECONDS
//////references ,double MILLISECONDS_TO_MIDITIKS_MULTIPLIER
//////references ,int INT_MILLISECOND_TOLERANCE_FOR_RIPPLES_PITCHBENDS
//////references ,int INT_UPSIDE_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES
//////references ,int INT_DOWNSIES_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES
//REFERENCES this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
//REFERENCES this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
//REFERENCES this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
//we are already inside for (int SUCCESSFUL_populator_ptchbnd = 0; SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages - 1); SUCCESSFUL_populator_ptchbnd++)
// upto now we have populated the data to the lists
//SUCCESSFUL_populator_ptchbnd starts at 0
//SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages - 1)
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//double ensuring the conditions to apply the ripples to the pitch bends
//double ensuring the conditions to apply the ripples to the pitch bends
//double ensuring the conditions to apply the ripples to the pitch bends
if (SUCCESSFUL_populator_ptchbnd >= 0 && SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages - 1))
{
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
try
{
//CAUTION we have to do from start OF PITCH BEND POINT TIME to next PITCH BEND POINT TIME
//CAUTION we have to do from start OF PITCH BEND POINT TIME to next PITCH BEND POINT TIME
//CAUTION we have to do from start OF PITCH BEND POINT TIME to next PITCH BEND POINT TIME
double ___temp_ripple_time_millis_starts = 0;//flushing data
double ___temp_ripple_time_millis_completes = 0;//flushing data
double ___total_millis_for_this_start_to_final_of_pitchbends_points = 0;//flushing data
double ___temp_each_ripple_time_millis_gap_input = 0;//flushing data
int ___previous_is_current_pitch_bends_data___within_0_8192_16384_range = 0;//flushing data
int ___next_pitch_bends_data___within_0_8192_16384_range = 0;//flushing data
double ___temp_double_types_pitchbend_differences_from___orevs_as_current_to_next = 0;//flushing data
int ___temp_current_notes_ripples_up_jumper_number_input = 0;//flushing data
int ___temp_current_notes_ripples_down_jumper_number_input = 0;//flushing data
// THIS IS TO CALCULATE THE TIME FOR THE RIPPLES POINTS
double ___temp_double_FOR_R_TH___RIPPLES_POINT___CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple = 0;//flushing data
double ___temp_double_calculated_current______millisecond_for_____to_assign_for_current_ripple = 0;//flushing data
double ___temp_long_calculated_current______miditiks_for_____to_assign_for_current_ripple = 0;//flushing data
int ___temp_int_calculated_CENTER_TREND_LINES____VALUES_OF_PITCHBEND___current______pitchbend_data_for_____to_assign_for_current_ripple = 0;//flushing data
int ___temp_actual_pitch_bend_assigned_for_current_ripple = 8092;
int number_of_ripples_calculated___within_splitted_slabs = 0;//flushing data
double ___double_type_slope_found___negative_or_positive_tan_theta = 0;//flushing data
//we assume that the times are always increasing since we have already sorted the lists of the times
//caution never sort the
//references int pitchBend1 = 8192; // Pitch bend value at t1 (center position)
//references int pitchBend2 = 16384; // Pitch bend value at t2 (maximum pitch bend
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
___temp_ripple_time_millis_starts
=
//CAUTION cannot get from here this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
//CAUTION cannot get from here .Last();
//////caution these miliseconds data are double types
START_ABSOLUTE_START_TIME_MILISECONDS
+
/////////////////////////// since the data here are percentages of total durations //////////////
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
[SUCCESSFUL_populator_ptchbnd]
* (0.01)
* (this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY);
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///////////////////////////// CAUTION THE TRICKS IS HERE ////////////////////////////
___temp_ripple_time_millis_completes
=
//CAUTION cannot get from here this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
//CAUTION cannot get from here .Last();
//////caution these miliseconds data are double types
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
(START_ABSOLUTE_START_TIME_MILISECONDS
+
/////////////////////////// since the data here are percentages of total durations //////////////
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
[SUCCESSFUL_populator_ptchbnd + 1]
* (0.01)
* (this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY)
)
;
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
//////////////////////////////////////////////////////////////////////////////////////////////////////
___total_millis_for_this_start_to_final_of_pitchbends_points
=
(___temp_ripple_time_millis_completes - ___temp_ripple_time_millis_starts);
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
___temp_double_FOR_R_TH___RIPPLES_POINT___CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple
=
// ___temp_ripple_time_millis_starts;
0;
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////CAUTION CAUTION CAUTION
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
___temp_each_ripple_time_millis_gap_input
=
(double)INT_MILLISECOND_TOLERANCE_FOR_RIPPLES_PITCHBENDS;
//////////////////////////////////////////////////////////////////////////////////////////////////////
//for additional safesides
//for additional safesides
//for additional safesides
//this is necessary to stop the small changes for the notes
//this is necessary to stop the small changes for the notes
//this is necessary to stop the small changes for the notes
if (___temp_each_ripple_time_millis_gap_input > 0)
{
if (___total_millis_for_this_start_to_final_of_pitchbends_points > ___temp_each_ripple_time_millis_gap_input)
{
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
//CAUTION
//NEVER FLUSH ___temp_double_CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple
//CAUTION
//NEVER FLUSH ___temp_double_CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple
//CAUTION
//NEVER FLUSH ___temp_double_CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple
//DOUBLE / DOUBLE
number_of_ripples_calculated___within_splitted_slabs
=
(int)
(
___total_millis_for_this_start_to_final_of_pitchbends_points
/ ___temp_each_ripple_time_millis_gap_input
);
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
//////////////////////////////////////////////////////////////////////////////////////////////////////
//additional checks dones
//additional checks dones
//additional checks dones
if (number_of_ripples_calculated___within_splitted_slabs >= 2)
{
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
___previous_is_current_pitch_bends_data___within_0_8192_16384_range
=
(int)
___local_array_of_double_tokens_splitted_string_for_pitchbend_data_before_splitters
[SUCCESSFUL_populator_ptchbnd];
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
___next_pitch_bends_data___within_0_8192_16384_range
=
(int)
___local_array_of_double_tokens_splitted_string_for_pitchbend_data_before_splitters
[SUCCESSFUL_populator_ptchbnd + 1];
////////////////////////////////////////////////////////////////////////////////////
___temp_double_types_pitchbend_differences_from___orevs_as_current_to_next
=
((double)___next_pitch_bends_data___within_0_8192_16384_range)
-
((double)___previous_is_current_pitch_bends_data___within_0_8192_16384_range)
;
////////////////////////////////////////////////////////////////////////////////////
/// these are assigned at this stage since assigning these are not necessary if the previous conditions are not fulfilled
/// these are assigned at this stage since assigning these are not necessary if the previous conditions are not fulfilled
/// these are assigned at this stage since assigning these are not necessary if the previous conditions are not fulfilled
//////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_current_notes_ripples_up_jumper_number_input
=
INT_UPSIDE_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES;
//////////////////////////////////////////////////////////////////////////////////////////////////////
___temp_current_notes_ripples_down_jumper_number_input
=
INT_DOWNSIES_RIPPLES_AMPLITUDES_FOR_PITCHBENDS_SCALES;
//////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////// additional checks are dones /////////
////////////////// additional checks are dones /////////
////////////////// additional checks are dones /////////
if (___total_millis_for_this_start_to_final_of_pitchbends_points > 0)
{
///double divides double
___double_type_slope_found___negative_or_positive_tan_theta
=
___temp_double_types_pitchbend_differences_from___orevs_as_current_to_next
/
___total_millis_for_this_start_to_final_of_pitchbends_points
;
for (int ripples_counter = 0; ripples_counter < number_of_ripples_calculated___within_splitted_slabs; ripples_counter++)
{
___temp_double_FOR_R_TH___RIPPLES_POINT___CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple
=
___temp_double_FOR_R_TH___RIPPLES_POINT___CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple
+
//CAUTION DONT MULTIPLY
//CAUTION //////ripples_counter
//CAUTION //////*
___temp_each_ripple_time_millis_gap_input
;
////// we flush first
////// we flush first
////// we flush first
///
___temp_double_calculated_current______millisecond_for_____to_assign_for_current_ripple = 0;//flushing data
___temp_long_calculated_current______miditiks_for_____to_assign_for_current_ripple = 0;//flushing data
___temp_int_calculated_CENTER_TREND_LINES____VALUES_OF_PITCHBEND___current______pitchbend_data_for_____to_assign_for_current_ripple = 0;//flushing data
////// we flush first
////// we flush first
////// we flush first
//have doubts ??????
//////___temp_double_calculated_current______millisecond_for_____to_assign_for_current_ripple
////// =
////// ___temp_ripple_time_millis_starts
////// +
////// ___temp_double_FOR_R_TH___RIPPLES_POINT___CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple;
___temp_double_calculated_current______millisecond_for_____to_assign_for_current_ripple
=
___temp_ripple_time_millis_starts
+
___temp_double_FOR_R_TH___RIPPLES_POINT___CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple;
//THE ERROR WAS HERE
/// DID SILLY MISTAKE AND USED //////* (this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY);
//INSTEAD OF THIS * MILLISECONDS_TO_MIDITIKS_MULTIPLIER;
// THIS CONVERTIONS ARE NECESSARY FOR THE ASSIGNING OF THE MIDS EVENTS AT THE PROPER LOCATIONS
___temp_long_calculated_current______miditiks_for_____to_assign_for_current_ripple
=
___temp_double_calculated_current______millisecond_for_____to_assign_for_current_ripple
//CAUTION CAUTION CAUTION DONT DO THIS SINCE WE ARE NOT TAKING DATA FROM THE PERCENTAGES NOW * (0.01)
//////* (this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY);
* MILLISECONDS_TO_MIDITIKS_MULTIPLIER;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SAAN HAS TO CHECK THIS
___temp_double_FOR_R_TH___RIPPLES_POINT___CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple
=
ripples_counter
*
___temp_each_ripple_time_millis_gap_input;
/// WE WILL CALIBRATE AN CALCULATE THE NECESSARY PITCH BENDS FOR CURRENT RIPPLES OD AND THE EVEN CASES
/// WE WILL CALIBRATE AN CALCULATE THE NECESSARY PITCH BENDS FOR CURRENT RIPPLES OD AND THE EVEN CASES
/// WE WILL CALIBRATE AN CALCULATE THE NECESSARY PITCH BENDS FOR CURRENT RIPPLES OD AND THE EVEN CASES
//CAUTION we are inside two pitch bends points
//SO WE WILL USE ___temp_double_FOR_R_TH___RIPPLES_POINT___CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple
___temp_int_calculated_CENTER_TREND_LINES____VALUES_OF_PITCHBEND___current______pitchbend_data_for_____to_assign_for_current_ripple
=
//THIS was not there so abrupt jumps were there
___previous_is_current_pitch_bends_data___within_0_8192_16384_range
+
(int)
(
___double_type_slope_found___negative_or_positive_tan_theta
*
___temp_double_FOR_R_TH___RIPPLES_POINT___CAUTION___CUMULATIVE_AFTER_LAST_PITCH_BEND_POINT_STARTS___calculated_current______millisecond_for_____to_assign_for_current_ripple
)
;
///
//for safe sides
___temp_actual_pitch_bend_assigned_for_current_ripple
= ___previous_is_current_pitch_bends_data___within_0_8192_16384_range;// 8192;
//references ___temp_current_notes_ripples_up_jumper_number_input
//references ___temp_current_notes_ripples_down_jumper_number_input
//OD AN THE EVEN CALCULATIONS ARE DONE HERES
if (ripples_counter % 2 == 0)
{
___temp_actual_pitch_bend_assigned_for_current_ripple
//evens upwards
=
___temp_int_calculated_CENTER_TREND_LINES____VALUES_OF_PITCHBEND___current______pitchbend_data_for_____to_assign_for_current_ripple
+
___temp_current_notes_ripples_up_jumper_number_input;
//end of of if( ripples_counter % 2==0)
}
else
{
//start of else of if( ripples_counter % 2==0)
___temp_actual_pitch_bend_assigned_for_current_ripple
//evens upwards
=
___temp_int_calculated_CENTER_TREND_LINES____VALUES_OF_PITCHBEND___current______pitchbend_data_for_____to_assign_for_current_ripple
-
___temp_current_notes_ripples_down_jumper_number_input;
}//end of else of if( ripples_counter % 2==0)
if (___temp_long_calculated_current______miditiks_for_____to_assign_for_current_ripple > this.LONG_START_ABSOLUTE_TIME_FOR_CURRENT_NOTE)
{
Console.WriteLine("CAUTION THIS CHECK IS NECESSARY FOR SHORT PITCH BENDS JUMPS ASSIGNING SMALL PTCHBNDS TIKS = " + ___temp_long_calculated_current______miditiks_for_____to_assign_for_current_ripple + " > NOTES START TIKS = " + this.LONG_START_ABSOLUTE_TIME_FOR_CURRENT_NOTE);
if (___temp_actual_pitch_bend_assigned_for_current_ripple >= 0 && ___temp_actual_pitch_bend_assigned_for_current_ripple <= 16384)
{
///YESSS WORKS OK AFTER NOTE THAT THE TRIKS WORKED FOR THE PITCH BENDS WITHIN NOTE ADDITIONAL PERCENTAGE OF DURATIONS POPULATED CALIBRATEDLY INSIDE PPLES POPULATOR
///YESSS WORKS OK AFTER NOTE THAT THE TRIKS WORKED FOR THE PITCH BENDS WITHIN NOTE ADDITIONAL PERCENTAGE OF DURATIONS POPULATED CALIBRATEDLY INSIDE PPLES POPULATOR
///YESSS WORKS OK AFTER NOTE THAT THE TRIKS WORKED FOR THE PITCH BENDS WITHIN NOTE ADDITIONAL PERCENTAGE OF DURATIONS POPULATED CALIBRATEDLY INSIDE PPLES POPULATOR
////////NEED TO TEST AND THINK
//CAUTION CAUTION CAUTION THE PERCENTAGES OF THE SLABS NEED NOT CHANGE WITHIN RIPPLES GENERATORS
//CAUTION CAUTION CAUTION THE PERCENTAGES OF THE SLABS NEED NOT CHANGE WITHIN RIPPLES GENERATORS
//CAUTION CAUTION CAUTION THE PERCENTAGES OF THE SLABS NEED NOT CHANGE WITHIN RIPPLES GENERATORS
//CAUTION CAUTION CAUTION THE PERCENTAGES OF THE SLABS NEED NOT CHANGE WITHIN RIPPLES GENERATORS
//CAUTION CAUTION CAUTION THE PERCENTAGES OF THE SLABS NEED NOT CHANGE WITHIN RIPPLES GENERATORS
//CAUTION CAUTION CAUTION THE PERCENTAGES OF THE SLABS NEED NOT CHANGE WITHIN RIPPLES GENERATORS
//CAUTION CAUTION CAUTION THE PERCENTAGES OF THE SLABS NEED NOT CHANGE WITHIN RIPPLES GENERATORS
//CAUTION CAUTION CAUTION THE PERCENTAGES OF THE SLABS NEED NOT CHANGE WITHIN RIPPLES GENERATORS
//CAUTION CAUTION CAUTION THE PERCENTAGES OF THE SLABS NEED NOT CHANGE WITHIN RIPPLES GENERATORS
///////// WE WILL CALIBRATE AN CALCULATE THE NECESSARY PITCH BENDS FOR CURRENT RIPPLES OD AND THE EVEN CASES
///////// WE WILL CALIBRATE AN CALCULATE THE NECESSARY PITCH BENDS FOR CURRENT RIPPLES OD AND THE EVEN CASES
///////// WE WILL CALIBRATE AN CALCULATE THE NECESSARY PITCH BENDS FOR CURRENT RIPPLES OD AND THE EVEN CASES
////////we will now do the forced ripples intermediates within the points //////
////////we will now do the forced ripples intermediates within the points //////
////////we will now do the forced ripples intermediates within the points //////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////cautions note that int SUCCESSFUL_populator_ptchbnd = 0; SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages-1); SUCCESSFUL_populator_ptchbnd++
///////// SUCCESSFUL_populator_ptchbnd = 0 to
///////// SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages-1)
///////////////////////////////////////////////////////////////////////////////////////////////////////////
if (this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Last() <= 100)
{
// LOOKS LIKE IT WORKS AFTER ADDING THIS TRIKS
////////SIMPLY TO TEST
this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.Add
(
(
(
___temp_double_calculated_current______millisecond_for_____to_assign_for_current_ripple
-
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
[SUCCESSFUL_populator_ptchbnd]
)
/
this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY
)
* 100
// +
// 0.003 //to avoid the pitchbends starts before the note starts
);
Console.WriteLine("WITHIN RIPPLES ripples_counter = " + ripples_counter + " YESSS LOOKS IT Adding to this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Last = " + this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Last().ToString());
/////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
/// this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
/// .Sort();
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
/////////////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
/////////////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.Add
(
___temp_double_calculated_current______millisecond_for_____to_assign_for_current_ripple
// +1 //to avoid the pitchbends to start before the note starts
);
Console.WriteLine("WITHIN RIPPLES ripples_counter = " + ripples_counter + " Adding to this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS.Last = " + this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS.Last().ToString());
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
//I THINK WE NEED NOT SORT THIS WITHIN THE RIPPLES GENERATORS
//////// this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
//////// .Sort();
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
//this is for the long type miditks data types converting the millis to midits and then populating these
//this is for the long type miditks data types converting the millis to midits and then populating these
//this is for the long type miditks data types converting the millis to midits and then populating these
/////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
.Add
(
(long)
(
___temp_long_calculated_current______miditiks_for_____to_assign_for_current_ripple
// +3 //to avoid the pitch bends starts before notes starts
)
);
/////////////////////////////////////////////////////////////////////////////////////////////////////
///
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
//WITHIN THE PPLES GENERATOR this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
////// .Sort();
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
///////////////////////// ALWAYS SORT THIS SINCE IT IS MILISECONDS DATA //////////////
Console.WriteLine("WITHIN RIPPLES ripples_counter = " + ripples_counter + " Adding to this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE.Last = " + this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE.Last().ToString());
/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
/////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
.Add
(
/////////////////////////// since the data here are percentages of total durations //////////////
___temp_actual_pitch_bend_assigned_for_current_ripple
);
/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
/// CAUTION NEVER SORT THIS LIST AT ANY STAGE THESE ARE THE PITCH BENS DATA
////////////////////////////////////////////////////////////////////////////////////////////////////////
Console.WriteLine("WITHIN RIPPLES ripples_counter = " + ripples_counter + " Adding to this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS.Last = " + this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS.Last().ToString());
}//if(this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS.Last()<=100)
}//if (___temp_actual_pitch_bend_assigned_for_current_ripple>=0 && ___temp_actual_pitch_bend_assigned_for_current_ripple <= 16384)
}// if(___temp_long_calculated_current______miditiks_for_____to_assign_for_current_ripple> this.LONG_START_ABSOLUTE_TIME_FOR_CURRENT_NOTE)
}//for(int ripples_counter=0; ripples_counter<number_of_ripples_calculated___within_splitted_slabs; ripples_counter++)
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
////////////////// additional checks are dones /////////
////////////////// additional checks are dones /////////
////////////////// additional checks are dones /////////
}// if(___total_millis_for_this_start_to_final_of_pitchbends_points>0)
////////////////// additional checks are dones /////////
////////////////// additional checks are dones /////////
////////////////// additional checks are dones /////////
///CAUTION refer never sort this since these are pitch bends data this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
///
//////////////////tricks are here we cannot assign the things after the pitchbends slab completes
///we have to assign the intermediate ripples forward sides only
}//if(number_of_ripples_calculated___within_splitted_slabs>=2)
//additional checks dones
//additional checks dones
//additional checks dones
///////////////////////////////////////////////// the values are already populated an now we will put the intermediate ripple effects for the ata ///////////////////////
///////////////////////////////////////////////// the values are already populated an now we will put the intermediate ripple effects for the ata ///////////////////////
///////////////////////////////////////////////// the values are already populated an now we will put the intermediate ripple effects for the ata ///////////////////////
}// if (___total_millis_for_this_start_to_final_of_pitchbends_points > ___temp_each_ripple_time_millis_gap_input)
}// if(___temp_each_ripple_time_millis_gap_input>0)
}
catch (Exception ___excptoputripples)
{
}//catch(Exception ___excptoputripples)
}// if(SUCCESSFUL_populator_ptchbnd>=0 && SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages - 1) )
//double ensuring the conditions to apply the ripples to the pitch bends
//double ensuring the conditions to apply the ripples to the pitch bends
//double ensuring the conditions to apply the ripples to the pitch bends
}// for (int SUCCESSFUL_populator_ptchbnd = 0; SUCCESSFUL_populator_ptchbnd < (numbersofobjectstokensindurationspercentages - 1); SUCCESSFUL_populator_ptchbnd++)
// for (int SUCCESSFUL_populator_ptchbnd = 0; SUCCESSFUL_populator_ptchbnd < numbersofobjectstokensindurationspercentages; SUCCESSFUL_populator_ptchbnd++)
}
catch (Exception ___Excptoaddtheripplespopulatingtointermediatesdurations)
{
Console.WriteLine("___Excptoaddtheripplespopulatingtointermediatesdurations" + ___Excptoaddtheripplespopulatingtointermediatesdurations.Message + " " + ___Excptoaddtheripplespopulatingtointermediatesdurations.StackTrace.ToString());
}//catch(Exception ___Excptoaddtheripplespopulatingtointermediatesdurations)
}// if(numbersofobjectstokensindurationspercentages>2)
//////////////////////// after the notes populations are done for whole things ///////////////////////////////
//////////////////////// after the notes populations are done for whole things ///////////////////////////////
//////////////////////// after the notes populations are done for whole things ///////////////////////////////
//////////////////////// after the notes populations are done for whole things ///////////////////////////////
//////////////////////// after the notes populations are done for whole things ///////////////////////////////
//////////////////////// after the notes populations are done for whole things ///////////////////////////////
///
///
///
///
/////////////// pre conditioning the lists initial sides of the note//////////////////////////////////////////////
/////////////// pre conditioning the lists initial sides of the note//////////////////////////////////////////////
/////////////// pre conditioning the lists initial sides of the note//////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
if (
___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
[(numbersofobjectstokensindurationspercentages - 1)] != 100
)
{
////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_DOUBLE____PERCENTAGES____OF_DURATIONS_OF_CURRENT_NOTE______MILLISECONDS_WITHIN_NOTE_PITCH_BEND_POSITIONS
.Add
(
100
);
////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_DOUBLE_MILISECONDS____CALCULATED_FROM___PERCENTAGES_OF_MILISECONDS_DURATION___WITHIN_NOTE_PITCH_BEND_POSITIONS
.Add
(
this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY
);
////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_INT_0_TO_8192_16368_PRECALIBRATED_POPULATED_AS_PER_NOTES_CONDITIONS
.Add
(
8192
);
////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////
this.PUBLIC_LIST_OF_REAL_OF_LONG_ABSOLUTE_START_POINT_OF_THE_EVENT_FOR_CURRENT_PITCH_BEND_IN_WHOLE_SEQUENCE
.Add
(
(long)
(
//////caution these miliseconds data are double types
(START_ABSOLUTE_START_TIME_MILISECONDS * MILLISECONDS_TO_MIDITIKS_MULTIPLIER)
+
/////////////////////////// since the data here are percentages of total durations //////////////
//////___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
////// [0]
100
* (0.01)
* this.DOUBLE_MILLISECOND_DURATION_FOR_THE_NOTE_TO_PLAY
* MILLISECONDS_TO_MIDITIKS_MULTIPLIER
)
);
}
//////if (
//////___local_array_of_double_tokens_splitted_string_for_pitchbend_durations_before_splitters
////// [(numbersofobjectstokensindurationspercentages - 1)] != 100
////// )
////////////////////////////////////////////////////////////////////////////////////////
}// end of else of if( tocountsuccessfulconvertionsofdurations != tocountsuccessfulconvertionsofpitchbendsdata)
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
/// here we are because both the splitted strings array are of same lengths
/// here we are because both the splitted strings array are of same lengths
/// here we are because both the splitted strings array are of same lengths
}//end of else of non equal durations strings
}// public void PUBLIC_NONSTATIC_VOID_UPDATE_CURRENT_NOTE_TO_UPDATE_PITCHBENDS_AND_OTHER_EFFECTS_FOR_CURRENT_NOTES_WITH_CURRENT_STARTING_ABSOLUTE_TIME_LONG(double START_ABSOLUTE_START_TIME_MILISECONDS,double MILLISECONDS_TO_MIDITIKS_MULTIPLIER)
public static void PUBLIC_STATIC_VOID_UPDATE_CURRENT_NOTE_WITH_CURRENT_STARTING_ABSOLUTE_TIME_LONG(long START_ABSOLUTE_TIME_MIDITIKS)
{
//HERE WE WILL UPDATE THE PITCH BENDS AND OTHER DATA WITH THIS
}//public static void PUBLIC_STATIC_VOID_UPDATE_CURRENT_NOTE_WITH_CURRENT_STARTING_ABSOLUTE_TIME_LONG(long START_ABSOLUTE_TIME_MIDITIKS)
}// public class PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
}//namespace SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
//////////////references
////////////public void LogOriginalPitchBendRange(MidiOut midiOut, int channel)
////////////{
//////////// // Select RPN 0 (Pitch Bend Sensitivity)
//////////// midiOut.Send(MidiMessage.ChangeControl(channel, 101, 0).RawData); // RPN MSB
//////////// midiOut.Send(MidiMessage.ChangeControl(channel, 100, 0).RawData); // RPN LSB
//////////// // Request the current pitch bend range (this part is device-specific and may not be supported by all devices)
//////////// // You would need to implement a method to read the response from the MIDI device
//////////// // Deselect RPN
//////////// midiOut.Send(MidiMessage.ChangeControl(channel, 101, 127).RawData); // RPN MSB
//////////// midiOut.Send(MidiMessage.ChangeControl(channel, 100, 127).RawData); // RPN LSB
//////////// // Log the original pitch bend range (this is a placeholder for the actual implementation)
//////////// Console.WriteLine("Original pitch bend range logged.");
////////////}
////////////// Usage example
////////////MidiOut midiOut = new MidiOut(0); // Initialize MIDI output on the first available device
////////////LogOriginalPitchBendRange(midiOut, 0); // Log the original pitch bend range on channel 0
//////Volume in drive F has no label.
//////Volume Serial Number is FDAD-E6EA
//////Directory of \excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\collected_soundfonts
//////05/17/2025 09:42 AM 1,592,486 068_Florestan_Woodwinds.sf2
//////01/23/2024 12:32 AM 10,296,986 5THS LOOPED.sf2
//////05/17/2025 09:42 AM 5,107,862 azteka_2_.sf2
//////05/22/2025 09:17 PM 2,536,210 Baaah.sf2
//////05/17/2025 10:52 AM 5,784,134 Bachata_guitar.sf2
//////01/23/2024 12:32 AM 3,065,642 CHUGS.sf2
//////05/22/2025 09:17 PM 2,475,710 Discord_Soundfont.sf2
//////05/17/2025 09:42 AM 17,957,028 Dizi.sf2
//////10/10/2020 07:00 PM 6,421,112 DrawnToLife LOOPED.sf2
//////10/10/2020 07:00 PM 6,422,984 DrawnToLife.sf2
//////05/20/2025 12:06 AM 148,398,306 FluidR3_GM.sf2
//////05/17/2025 09:42 AM 947,624 FLUTE2.SF2
//////04/26/2025 04:50 PM 3,263,654 INUSEOFVLCS_Midi.sf2
//////05/17/2025 09:22 AM 858,868 IowaFluteGM.sf2
//////05/17/2025 09:22 AM 635,384 Ixox_Flute_Reduced.sf2
//////05/17/2025 09:22 AM 9,098,582 JazzFlute.sf2
//////05/17/2025 09:42 AM 6,333,342 LatinSuperFluteV1.sf2
//////01/23/2024 12:33 AM 11,288,948 LEAD LOOPCUT.sf2
//////01/23/2024 12:32 AM 11,571,018 LEAD LOOPED.sf2
//////05/17/2025 09:42 AM 71,232 MickeyMania.sf2
//////05/17/2025 09:42 AM 10,009,678 Milton_Pan_flute.SF2
//////05/22/2025 09:18 PM 3,104,518 My_flutes_and_My_voice (2).sf2
//////05/17/2025 09:23 AM 3,104,518 My_flutes_and_My_voice.sf2
//////05/17/2025 09:42 AM 30,410,646 Nilce.sf2
//////01/23/2024 12:32 AM 1,600,840 OP CHRD LOOP.sf2
//////12/05/2019 03:20 AM 674,090 PorkyPig A.sf2
//////12/05/2019 03:21 AM 660,010 PorkyPig S.sf2
//////05/07/2022 09:30 PM 257,632 Puggsy - Edited.sf2
//////05/07/2022 09:30 PM 257,632 Puggsy.sf2
//////05/20/2025 02:22 AM 716,390 Realistic_Sitar_GM (1).sf2
//////05/20/2025 02:22 AM 716,390 Realistic_Sitar_GM.sf2
//////05/20/2025 12:09 AM 324,800,670 SGM-v2.01-NicePianosGuitarsBass-V1.2.sf2
//////05/17/2025 09:42 AM 111,848 SuperGameBoy.sf2
//////05/17/2025 09:23 AM 13,243,888 Tapeworm.sf2
//////05/17/2025 09:22 AM 47,782,306 Tropical Freeze Soundfont.sf2
//////01/23/2024 12:32 AM 39,381,764 ULT FZZ LOOP.sf2
////// 36 File(s) 730,959,932 bytes
////// Directory of \excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\collected_soundfonts\DrawnToLife
//////10/10/2020 07:00 PM 6,421,112 DrawnToLife LOOPED.sf2
//////10/10/2020 07:00 PM 6,422,984 DrawnToLife.sf2
////// 2 File(s) 12,844,096 bytes
////// Directory of \excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\collected_soundfonts\PorkyPig_SNES_SF2
//////12/05/2019 03:20 AM 674,090 PorkyPig A.sf2
//////12/05/2019 03:21 AM 660,010 PorkyPig S.sf2
////// 2 File(s) 1,334,100 bytes
////// Directory of \excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\collected_soundfonts\Puggsy
//////05/07/2022 09:30 PM 257,632 Puggsy - Edited.sf2
//////05/07/2022 09:30 PM 257,632 Puggsy.sf2
////// 2 File(s) 515,264 bytes
////// Directory of \excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\collected_soundfonts\Steve Stevens SoundFont\5THS LOOPED
//////01/23/2024 12:32 AM 10,296,986 5THS LOOPED.sf2
////// 1 File(s) 10,296,986 bytes
////// Directory of \excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\collected_soundfonts\Steve Stevens SoundFont\CHUGS
//////01/23/2024 12:32 AM 3,065,642 CHUGS.sf2
////// 1 File(s) 3,065,642 bytes
////// Directory of \excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\collected_soundfonts\Steve Stevens SoundFont\LEAD LOOPCUT
//////01/23/2024 12:33 AM 11,288,948 LEAD LOOPCUT.sf2
////// 1 File(s) 11,288,948 bytes
////// Directory of \excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\collected_soundfonts\Steve Stevens SoundFont\LEAD LOOPED
//////01/23/2024 12:32 AM 11,571,018 LEAD LOOPED.sf2
////// 1 File(s) 11,571,018 bytes
////// Directory of \excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\collected_soundfonts\Steve Stevens SoundFont\OP CHRD LOOP
//////01/23/2024 12:32 AM 1,600,840 OP CHRD LOOP.sf2
////// 1 File(s) 1,600,840 bytes
////// Directory of \excelformulaparser\DOING_GT06012020plus\DSMSETS_ANI_DNGIFGTTODOINOFFICE\ExcelFormulaParserSample\collected_soundfonts\Steve Stevens SoundFont\ULT FZZ LOOP
//////01/23/2024 12:32 AM 39,381,764 ULT FZZ LOOP.sf2
////// 1 File(s) 39,381,764 bytes
////// Total Files Listed:
////// 48 File(s) 822,858,590 bytes
////// 0 Dir(s) 2,320,502,784 bytes free
//////using System;
//////using System.IO;
//////using System.Linq;
//////using System.Collections.Generic;
//////using System.Text;
namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
{
//https://www.youtube.com/watch?v=CTdD0tXfuDg
public class FluteWavGenerator___WITH___VIBRATO_BREADTHCONTROLS
{
const int SampleRate = 8000;
const int BytesPerSample = 2;
public static void GenerateFluteMelody___WITH___VIBRATO_BREADTHCONTROLS___Main(string filePathnons_velocity, ref System.Windows.Forms.ProgressBar ___PROGRESSBAR)
{
GenerateFluteMelody___WITH___VIBRATO_BREADTHCONTROLS(filePathnons_velocity, ref ___PROGRESSBAR);
}
public static void GenerateFluteMelody___WITH___VIBRATO_BREADTHCONTROLS(string filePathnons_velocity, ref System.Windows.Forms.ProgressBar ___PROGRESSBAR)
{
string[] lines = File.ReadAllLines(filePathnons_velocity);
var notes = new List<(int startMs, int durationMs, string freqStr)>();
___PROGRESSBAR.Maximum = lines.Length;
___PROGRESSBAR.Value = 0;
___PROGRESSBAR.Invalidate();
___PROGRESSBAR.Refresh();
int linescounter = 0;
foreach (var line in lines)
{
linescounter++;
var parts = line.Split(new[] { "######" }, StringSplitOptions.None);
if (parts.Length != 3) continue;
if (!int.TryParse(parts[0].Trim(), out int startMs)) continue;
if (!int.TryParse(parts[1].Trim(), out int durationMs)) continue;
string freqStr = parts[2].Trim();
notes.Add((startMs, durationMs, freqStr));
___PROGRESSBAR.Value = linescounter;
___PROGRESSBAR.Invalidate();
___PROGRESSBAR.Refresh();
}
long totalSamples = (long)(notes.Max(n => n.startMs + n.durationMs) * SampleRate / 1000.0);
float[] monoBuffer = new float[totalSamples];
float[] stereoLeft = new float[totalSamples];
float[] stereoRight = new float[totalSamples];
for (int i = 0; i < notes.Count; i++)
{
var (startMs, durationMs, freqStr) = notes[i];
long startSample = startMs * SampleRate / 1000;
long durationSamples = durationMs * SampleRate / 1000;
bool isSilence = freqStr == "0" || freqStr == "-";
double freqThis = isSilence ? 0 : double.Parse(freqStr, CultureInfo.InvariantCulture);
double freqPrev = (i > 0 && notes[i - 1].freqStr != "0" && notes[i - 1].freqStr != "-")
? double.Parse(notes[i - 1].freqStr, CultureInfo.InvariantCulture)
: freqThis;
double freqNext = (i + 1 < notes.Count && notes[i + 1].freqStr != "0" && notes[i + 1].freqStr != "-")
? double.Parse(notes[i + 1].freqStr, CultureInfo.InvariantCulture)
: freqThis;
long attack = (long)(durationSamples * 0.15);
long release = (long)(durationSamples * 0.15);
for (long s = 0; s < durationSamples; s++)
{
long globalIndex = startSample + s;
if (globalIndex >= totalSamples) break;
double tNorm = (double)s / durationSamples;
double vibrato = 1 + 0.005 * Math.Sin(2 * Math.PI * 5 * s / SampleRate);
double freq;
if (s < attack)
{
double p = (double)s / attack;
freq = freqPrev + (freqThis - freqPrev) * p;
}
else if (s >= durationSamples - release)
{
double p = (double)(s - (durationSamples - release)) / release;
freq = freqThis + (freqNext - freqThis) * p;
}
else
{
freq = freqThis;
}
double env = isSilence ? 0 : ParametricEnvelope(tNorm);
double waveform = 0;
if (!isSilence)
{
//IT WAS HAVING OVER FLAVORS
// waveform += 0.7 * Math.Sin(2 * Math.PI * freq * s / SampleRate * vibrato);
waveform += 0.7 * Math.Sin(2 * Math.PI * freq * s / SampleRate * vibrato);
waveform += 0.2 * Math.Sin(4 * Math.PI * freq * s / SampleRate);
waveform += 0.1 * Math.Sin(6 * Math.PI * freq * s / SampleRate);
waveform *= env;
if (Math.Abs(waveform) < 0.3)
{
waveform = 0.3 * Math.Sign(waveform); // enforce minimum audible level during glide
}// if (Math.Abs(waveform) < 0.3)
}//if (!isSilence)
float monoVal = (float)Math.Max(-1f, Math.Min(1f, waveform));
monoBuffer[globalIndex] += monoVal;
double swingT = globalIndex / (SampleRate * 0.006);
double pan = Math.Sin(swingT * Math.PI * 2 / 400);
stereoLeft[globalIndex] += (float)((1 - pan) / 2 * monoVal);
stereoRight[globalIndex] += (float)((1 + pan) / 2 * monoVal);
}
}
string monoPath = filePathnons_velocity + "_WITH_VIBRATO_flute_MONO.wav";
string stereoPath = filePathnons_velocity + "_WITH_VIBRATO_PANS_flute_STEREO.wav";
using (var monoBw = new BinaryWriter(File.Create(monoPath)))
using (var stereoBw = new BinaryWriter(File.Create(stereoPath)))
{
WriteWavHeader(monoBw, 1, 0);
WriteWavHeader(stereoBw, 2, 0);
long dataSizeMono = 0, dataSizeStereo = 0;
for (int i = 0; i < totalSamples; i++)
{
short monoSample = (short)(Math.Max(-1f, Math.Min(1f, monoBuffer[i])) * short.MaxValue);
short left = (short)(Math.Max(-1f, Math.Min(1f, stereoLeft[i])) * short.MaxValue);
short right = (short)(Math.Max(-1f, Math.Min(1f, stereoRight[i])) * short.MaxValue);
monoBw.Write(monoSample);
stereoBw.Write(left);
stereoBw.Write(right);
dataSizeMono += 2;
dataSizeStereo += 4;
}
WriteWavDataSize(monoBw, dataSizeMono);
WriteWavDataSize(stereoBw, dataSizeStereo);
}
}
static double ParametricEnvelope(double t)
{
double shape = t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
double breath = 0.98 + 0.02 * Math.Sin(2 * Math.PI * 2 * t);
return shape * breath;
}
static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
{
int byteRate = SampleRate * channels * BytesPerSample;
int blockAlign = channels * BytesPerSample;
bw.Write(System.Text.Encoding.ASCII.GetBytes("RIFF"));
bw.Write(dataSize + 36);
bw.Write(System.Text.Encoding.ASCII.GetBytes("WAVE"));
bw.Write(System.Text.Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(SampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)(BytesPerSample * 8));
bw.Write(System.Text.Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
}
static void WriteWavDataSize(BinaryWriter bw, long dataSize)
{
bw.Seek(4, SeekOrigin.Begin);
bw.Write((int)(dataSize + 36));
bw.Seek(40, SeekOrigin.Begin);
bw.Write((int)dataSize);
}
}//public class FluteWavGenerator___WITH___VIBRATO_BREADTHCONTROLS
public class DISCARDING_AGAIN___THERE_IS_SHARP_SILENCES___FluteWavGenerator___WITH___VIBRATO_BREADTHCONTROLS
{
const int SampleRate = 8000;
const int BytesPerSample = 2;
public static void GenerateFluteMelody___WITH___VIBRATO_BREADTHCONTROLS___Main(string filePathnons_velocity, ref System.Windows.Forms.ProgressBar ___PROGRESSBAR)
{
GenerateFluteMelody___WITH___VIBRATO_BREADTHCONTROLS(filePathnons_velocity, ref ___PROGRESSBAR);
}
public static void GenerateFluteMelody___WITH___VIBRATO_BREADTHCONTROLS(string filePathnons_velocity, ref System.Windows.Forms.ProgressBar ___PROGRESSBAR)
{
string[] lines = File.ReadAllLines(filePathnons_velocity);
var notes = new List<(int startMs, int durationMs, string freqStr)>();
___PROGRESSBAR.Maximum = lines.Length;
___PROGRESSBAR.Value = 0;
___PROGRESSBAR.Invalidate();
___PROGRESSBAR.Refresh();
int linescounter = 0;
foreach (var line in lines)
{
linescounter++;
var parts = line.Split(new[] { "######" }, StringSplitOptions.None);
if (parts.Length != 3) continue;
if (!int.TryParse(parts[0].Trim(), out int startMs)) continue;
if (!int.TryParse(parts[1].Trim(), out int durationMs)) continue;
string freqStr = parts[2].Trim();
notes.Add((startMs, durationMs, freqStr));
___PROGRESSBAR.Value = linescounter;
___PROGRESSBAR.Invalidate();
___PROGRESSBAR.Refresh();
}
long totalSamples = (long)(notes.Max(n => n.startMs + n.durationMs) * SampleRate / 1000.0);
float[] monoBuffer = new float[totalSamples];
float[] stereoLeft = new float[totalSamples];
float[] stereoRight = new float[totalSamples];
for (int i = 0; i < notes.Count; i++)
{
var (startMs, durationMs, freqStr) = notes[i];
long startSample = startMs * SampleRate / 1000;
long durationSamples = durationMs * SampleRate / 1000;
bool isSilence = freqStr == "0" || freqStr == "-";
double freqThis = isSilence ? 0 : double.Parse(freqStr, CultureInfo.InvariantCulture);
double freqPrev = (i > 0 && notes[i - 1].freqStr != "0" && notes[i - 1].freqStr != "-")
? double.Parse(notes[i - 1].freqStr, CultureInfo.InvariantCulture)
: freqThis;
double freqNext = (i + 1 < notes.Count && notes[i + 1].freqStr != "0" && notes[i + 1].freqStr != "-")
? double.Parse(notes[i + 1].freqStr, CultureInfo.InvariantCulture)
: freqThis;
long attack = (long)(durationSamples * 0.15);
long release = (long)(durationSamples * 0.15);
for (long s = 0; s < durationSamples; s++)
{
long globalIndex = startSample + s;
if (globalIndex >= totalSamples) break;
double tNorm = (double)s / durationSamples;
double vibrato = 1 + 0.005 * Math.Sin(2 * Math.PI * 5 * s / SampleRate);
double freq;
if (s < attack)
{
double p = (double)s / attack;
freq = freqPrev + (freqThis - freqPrev) * p;
}
else if (s >= durationSamples - release)
{
double p = (double)(s - (durationSamples - release)) / release;
freq = freqThis + (freqNext - freqThis) * p;
}
else
{
freq = freqThis;
}
double env = isSilence ? 0 : ParametricEnvelope(tNorm);
double waveform = 0;
if (!isSilence)
{
waveform += 0.7 * Math.Sin(2 * Math.PI * freq * s / SampleRate * vibrato);
waveform += 0.2 * Math.Sin(4 * Math.PI * freq * s / SampleRate);
waveform += 0.1 * Math.Sin(6 * Math.PI * freq * s / SampleRate);
waveform *= env;
}//if (!isSilence)
float monoVal = (float)Math.Max(-1f, Math.Min(1f, waveform));
monoBuffer[globalIndex] += monoVal;
double swingT = globalIndex / (SampleRate * 0.006);
double pan = Math.Sin(swingT * Math.PI * 2 / 400);
stereoLeft[globalIndex] += (float)((1 - pan) / 2 * monoVal);
stereoRight[globalIndex] += (float)((1 + pan) / 2 * monoVal);
}
}
string monoPath = filePathnons_velocity + "_WITH_VIBRATO_flute_MONO.wav";
string stereoPath = filePathnons_velocity + "_WITH_VIBRATO_PANS_flute_STEREO.wav";
using (var monoBw = new BinaryWriter(File.Create(monoPath)))
using (var stereoBw = new BinaryWriter(File.Create(stereoPath)))
{
WriteWavHeader(monoBw, 1, 0);
WriteWavHeader(stereoBw, 2, 0);
long dataSizeMono = 0, dataSizeStereo = 0;
for (int i = 0; i < totalSamples; i++)
{
short monoSample = (short)(Math.Max(-1f, Math.Min(1f, monoBuffer[i])) * short.MaxValue);
short left = (short)(Math.Max(-1f, Math.Min(1f, stereoLeft[i])) * short.MaxValue);
short right = (short)(Math.Max(-1f, Math.Min(1f, stereoRight[i])) * short.MaxValue);
monoBw.Write(monoSample);
stereoBw.Write(left);
stereoBw.Write(right);
dataSizeMono += 2;
dataSizeStereo += 4;
}
WriteWavDataSize(monoBw, dataSizeMono);
WriteWavDataSize(stereoBw, dataSizeStereo);
}
}
static double ParametricEnvelope(double t)
{
double shape = t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
double breath = 0.98 + 0.02 * Math.Sin(2 * Math.PI * 2 * t);
return shape * breath;
}//static double ParametricEnvelope(double t)
static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
{
int byteRate = SampleRate * channels * BytesPerSample;
int blockAlign = channels * BytesPerSample;
bw.Write(System.Text.Encoding.ASCII.GetBytes("RIFF"));
bw.Write(dataSize + 36);
bw.Write(System.Text.Encoding.ASCII.GetBytes("WAVE"));
bw.Write(System.Text.Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(SampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)(BytesPerSample * 8));
bw.Write(System.Text.Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
}
static void WriteWavDataSize(BinaryWriter bw, long dataSize)
{
bw.Seek(4, SeekOrigin.Begin);
bw.Write((int)(dataSize + 36));
bw.Seek(40, SeekOrigin.Begin);
bw.Write((int)dataSize);
}
}//public class FluteWavGenerator___WITH___VIBRATO_BREADTHCONTROLS
public class DISCARDING___THERE_WAS_SHARP_SILENCES___INBETWEEN_NOTES___FluteWavGenerator___WITH___VIBRATO_BREADTHCONTROLS
{
const int SampleRate = 8000;
const int BytesPerSample = 2;
public static void GenerateFluteMelody___WITH___VIBRATO_BREADTHCONTROLS___Main(string filePathnons_velocity, ref System.Windows.Forms.ProgressBar ___PROGRESSBAR)
{
string filePath = filePathnons_velocity;// "saansnamespaces.txt";
GenerateFluteMelody___WITH___VIBRATO_BREADTHCONTROLS(filePath,ref ___PROGRESSBAR);
}// public static void GenerateFluteMelody___WITH___VIBRATO_BREADTHCONTROLS___Main(string filePathnons_velocity)
public static void GenerateFluteMelody___WITH___VIBRATO_BREADTHCONTROLS(string filePathnons_velocity, ref System.Windows.Forms.ProgressBar ___PROGRESSBAR)
{
string[] lines = File.ReadAllLines(filePathnons_velocity);
var notes = new List<(int startMs, int durationMs, string freqStr)>();
___PROGRESSBAR.Maximum = lines.Length;
___PROGRESSBAR.Value = 0;
___PROGRESSBAR.Invalidate();
___PROGRESSBAR.Refresh();
int linescounter = 0;
foreach (var line in lines)
{
linescounter++;
var parts = line.Split(new[] { "######" }, StringSplitOptions.None);
if (parts.Length != 3) continue;
if (!int.TryParse(parts[0].Trim(), out int startMs)) continue;
if (!int.TryParse(parts[1].Trim(), out int durationMs)) continue;
string freqStr = parts[2].Trim();
notes.Add((startMs, durationMs, freqStr));
___PROGRESSBAR.Value = linescounter;
___PROGRESSBAR.Invalidate();
___PROGRESSBAR.Refresh();
}//foreach (var line in lines)
long totalSamples = (long)(notes.Max(n => n.startMs + n.durationMs) * SampleRate / 1000.0);
string monoPath = filePathnons_velocity + "_WITH_VIBRATO_flute_MONO.wav";
string stereoPath = filePathnons_velocity + "_WITH_VIBRATO_PANS_flute_STEREO.wav";
using (var monoBw = new BinaryWriter(File.Create(monoPath)))
using (var stereoBw = new BinaryWriter(File.Create(stereoPath)))
{
WriteWavHeader(monoBw, 1, 0);
WriteWavHeader(stereoBw, 2, 0);
long dataSizeMono = 0, dataSizeStereo = 0, currentSample = 0;
for (int i = 0; i < notes.Count; i++)
{
var (startMs, durationMs, freqStr) = notes[i];
long startSample = startMs * SampleRate / 1000;
long durationSamples = durationMs * SampleRate / 1000;
bool isSilence = freqStr == "0" || freqStr == "-";
double freqThis = isSilence ? 0 : double.Parse(freqStr, CultureInfo.InvariantCulture);
double freqPrev = (i > 0 && notes[i - 1].freqStr != "0" && notes[i - 1].freqStr != "-")
? double.Parse(notes[i - 1].freqStr, CultureInfo.InvariantCulture)
: freqThis;
double freqNext = (i + 1 < notes.Count && notes[i + 1].freqStr != "0" && notes[i + 1].freqStr != "-")
? double.Parse(notes[i + 1].freqStr, CultureInfo.InvariantCulture)
: freqThis;
long attack = (long)(durationSamples * 0.15);
long release = (long)(durationSamples * 0.15);
long sustain = durationSamples - attack - release;
while (currentSample < startSample)
{
monoBw.Write((short)0);
stereoBw.Write((short)0);
stereoBw.Write((short)0);
currentSample++;
dataSizeMono += 2;
dataSizeStereo += 4;
}//while (currentSample < startSample)
for (long s = 0; s < durationSamples; s++)
{
double freq;
if (s < attack)
{
double p = (double)s / attack;
freq = freqPrev + (freqThis - freqPrev) * p;
}
else if (s >= durationSamples - release)
{
double p = (double)(s - (durationSamples - release)) / release;
freq = freqThis + (freqNext - freqThis) * p;
}
else
{
freq = freqThis;
}//end of else of if (s < attack)
double tNorm = (double)s / durationSamples;
double vibrato = 1 + 0.005 * Math.Sin(2 * Math.PI * 5 * s / SampleRate);
double env = ParametricEnvelope(tNorm);
double val = 0;
if (!isSilence)
{
val += 0.7 * Math.Sin(2 * Math.PI * freq * s / SampleRate * vibrato);
val += 0.2 * Math.Sin(4 * Math.PI * freq * s / SampleRate);
val += 0.1 * Math.Sin(6 * Math.PI * freq * s / SampleRate);
val *= env;
}//if (!isSilence)
float monoVal = (float)Math.Max(-1f, Math.Min(1f, val));
short monoSample = (short)(monoVal * short.MaxValue);
monoBw.Write(monoSample);
dataSizeMono += 2;
double swingT = (currentSample + s) / (SampleRate * 0.006);
double pan = Math.Sin(swingT * Math.PI * 2 / 400);
float left = (float)((1 - pan) / 2 * monoVal);
float right = (float)((1 + pan) / 2 * monoVal);
stereoBw.Write((short)(left * short.MaxValue));
stereoBw.Write((short)(right * short.MaxValue));
dataSizeStereo += 4;
}//for (long s = 0; s < durationSamples; s++)
currentSample += durationSamples;
}//for (int i = 0; i < notes.Count; i++)
while (currentSample < totalSamples)
{
monoBw.Write((short)0);
stereoBw.Write((short)0);
stereoBw.Write((short)0);
currentSample++;
dataSizeMono += 2;
dataSizeStereo += 4;
}//while (currentSample < totalSamples)
WriteWavDataSize(monoBw, dataSizeMono);
WriteWavDataSize(stereoBw, dataSizeStereo);
}
}//public static void GenerateFluteMelody(string filePath)
static double ParametricEnvelope(double t)
{
// More natural than cosine taper — shaped by curve and vibrato blending
double shape = t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
double breath = 0.98 + 0.02 * Math.Sin(2 * Math.PI * 2 * t);
return shape * breath;
}//static double ParametricEnvelope(double t)
static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
{
int byteRate = SampleRate * channels * BytesPerSample;
int blockAlign = channels * BytesPerSample;
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(dataSize + 36);
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1); // PCM
bw.Write((short)channels);
bw.Write(SampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)(BytesPerSample * 8));
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
}//static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
static void WriteWavDataSize(BinaryWriter bw, long dataSize)
{
bw.Seek(4, SeekOrigin.Begin);
bw.Write((int)(dataSize + 36));
bw.Seek(40, SeekOrigin.Begin);
bw.Write((int)dataSize);
}//static void WriteWavDataSize(BinaryWriter bw, long dataSize)
}//public class FluteWavGenerator___WITH___VIBRATO_BREADTHCONTROLS
// New generator supporting velocity (amplitude scaling) from 4th column
// Format: START_MS ###### DURATION_MS ###### FREQ ###### VELOCITY (0–1.0, as MIDI/127)
//////using System;
//////using System.Collections.Generic;
//////using System.Globalization;
//////using System.IO;
public static class FluteMelodyWavGenerator_WithVelocity
{
const int SampleRate = 8000;
const int BytesPerSample = 2;
public static void GenerateVelocityAwareFluteMelody(string filePath)
{
var lines = File.ReadAllLines(filePath);
var notes = new List<(int startMs, int durationMs, string freqStr, double velocity)>();
foreach (var line in lines)
{
var parts = line.Split(new[] { "######" }, StringSplitOptions.None);
if (parts.Length != 4) continue;
if (!int.TryParse(parts[0].Trim(), out int startMs)) continue;
if (!int.TryParse(parts[1].Trim(), out int durationMs)) continue;
string freqStr = parts[2].Trim();
if (!double.TryParse(parts[3].Trim(), NumberStyles.Float, CultureInfo.InvariantCulture, out double velocity))
velocity = 1.0;
velocity = Math.Min(1.0, Math.Max(0.0, velocity));
notes.Add((startMs, durationMs, freqStr, velocity));
}//foreach (var line in lines)
long totalSamples = (long)(notes.Max(n => n.startMs + n.durationMs) * SampleRate / 1000.0);
string monoPath = filePath + "_VELOCITY_mono_8000_16pcms.wav";
string stereoPath = filePath + "_VELOCITY_stereo_2ch_PAN.wav";
using (var monoBw = new BinaryWriter(File.Create(monoPath)))
{
using (var stereoBw = new BinaryWriter(File.Create(stereoPath)))
{
WriteWavHeader(monoBw, 1, 0);
WriteWavHeader(stereoBw, 2, 0);
long dataSizeMono = 0, dataSizeStereo = 0, currentSample = 0;
for (int i = 0; i < notes.Count; i++)
{
var (startMs, durMs, freqStr, velocity) = notes[i];
long startSample = startMs * SampleRate / 1000;
long durSamples = durMs * SampleRate / 1000;
bool isSilence = freqStr == "-" || freqStr == "0";
double freqStart = isSilence ? 0 : double.Parse(freqStr, CultureInfo.InvariantCulture);
double freqEnd = freqStart;
if (!isSilence && i + 1 < notes.Count && notes[i + 1].freqStr != "-" && notes[i + 1].freqStr != "0")
freqEnd = double.Parse(notes[i + 1].freqStr, CultureInfo.InvariantCulture);
while (currentSample < startSample)
{
monoBw.Write((short)0);
stereoBw.Write((short)0);
stereoBw.Write((short)0);
currentSample++;
dataSizeMono += 2;
dataSizeStereo += 4;
}//while (currentSample < startSample)
for (long s = 0; s < durSamples; s++)
{
double tNorm = (double)s / durSamples;
double envelope = 0.5 * (1 - Math.Cos(2 * Math.PI * tNorm));
float monoVal = 0f;
if (!isSilence)
{
double freq = freqStart + (freqEnd - freqStart) * tNorm;
double waveform =
0.8 * Math.Sin(2 * Math.PI * freq * s / SampleRate) +
0.15 * Math.Sin(4 * Math.PI * freq * s / SampleRate) +
0.05 * Math.Sin(6 * Math.PI * freq * s / SampleRate);
monoVal = (float)(velocity * envelope * waveform);
}
short monoS = (short)(Math.Max(-1, Math.Min(1, monoVal)) * short.MaxValue);
monoBw.Write(monoS);
dataSizeMono += 2;
double swingT = (currentSample + s) / (SampleRate * 0.006);
double pan = Math.Sin(swingT * Math.PI * 2 / 400);
float left = (float)((1 - pan) / 2.0 * monoVal);
float right = (float)((1 + pan) / 2.0 * monoVal);
short l = (short)(Math.Max(-1, Math.Min(1, left)) * short.MaxValue);
short r = (short)(Math.Max(-1, Math.Min(1, right)) * short.MaxValue);
stereoBw.Write(l);
stereoBw.Write(r);
dataSizeStereo += 4;
}
currentSample += durSamples;
}
while (currentSample < totalSamples)
{
monoBw.Write((short)0);
stereoBw.Write((short)0);
stereoBw.Write((short)0);
currentSample++;
dataSizeMono += 2;
dataSizeStereo += 4;
}// while (currentSample < totalSamples)
monoBw.Seek(4, SeekOrigin.Begin);
monoBw.Write((int)(dataSizeMono + 36));
monoBw.Seek(40, SeekOrigin.Begin);
monoBw.Write((int)dataSizeMono);
stereoBw.Seek(4, SeekOrigin.Begin);
stereoBw.Write((int)(dataSizeStereo + 36));
stereoBw.Seek(40, SeekOrigin.Begin);
stereoBw.Write((int)dataSizeStereo);
}
}// using (var monoBw = new BinaryWriter(File.Create(monoPath)))
}//public static void GenerateVelocityAwareFluteMelody(string filePath)
private static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
{
int byteRate = SampleRate * channels * BytesPerSample;
int blockAlign = channels * BytesPerSample;
bw.Write(System.Text.Encoding.ASCII.GetBytes("RIFF"));
bw.Write(dataSize + 36);
bw.Write(System.Text.Encoding.ASCII.GetBytes("WAVE"));
bw.Write(System.Text.Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(SampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)(BytesPerSample * 8));
bw.Write(System.Text.Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
}// private static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
}//public static class FluteMelodyWavGenerator_WithVelocity
// Updated to add glide (smudged note transitions) between notes
//////using System;
//////using System.Collections.Generic;
//////using System.Globalization;
//////using System.IO;
// Updated GLIDING generator to apply segmented pitch transitions
//////using System;
//////using System.Collections.Generic;
//////using System.Globalization;
//////using System.IO;
//////public static double GetRandomBetween1_3And1_8()
//////{
////// private static readonly Random _random = new Random();
//////// Generates a double between 0.0 and 1.0
//////double range = 1.8 - 1.3;
////// return 1.3 + (_random.NextDouble() * range);
//////}//public static double GetRandomBetween1_3And1_8()
public static class FluteMelodyWavGenerator___GLIDING_NOTES_WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
{
const int SampleRate = 8000;
const int BytesPerSample = 2;
public static void GenerateWavFromMelodyData___WITH_DETAILED_RANDOMIZED_WITH_PARAMETRIK_WAVES_WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES(string filePath ,ref System.Windows.Forms.ProgressBar ___progressbar)
{
var lines = File.ReadAllLines(filePath);
var notes = new List<(int startMs, int durationMs, string freqStr)>();
foreach (var line in lines)
{
var parts = line.Split(new[] { "######" }, StringSplitOptions.None);
if (parts.Length != 3) continue;
if (!int.TryParse(parts[0].Trim(), out int startMs)) continue;
if (!int.TryParse(parts[1].Trim(), out int durationMs)) continue;
string freqStr = parts[2].Trim();
notes.Add((startMs, durationMs, freqStr));
}//foreach (var line in lines)
long totalSamples = (long)(notes.Max(n => n.startMs + n.durationMs) * SampleRate / 1000.0);
string monoPath = filePath + "_OVERLAPS_GLIDING_NOTES_mono_8000_16pcms.wav";
string stereoPath = filePath + "_OVERLAPS_GLIDING_NOTES_stereo_2_channels_PAN_gradually_swinging__8000_16pcms.wav";
using (var monoBw = new BinaryWriter(File.Create(monoPath)))
{
using (var stereoBw = new BinaryWriter(File.Create(stereoPath)))
{
WriteWavHeader(monoBw, 1, 0);
WriteWavHeader(stereoBw, 2, 0);
long dataSizeMono = 0, dataSizeStereo = 0, currentSample = 0;
___progressbar.Maximum = notes.Count;
___progressbar.Value = 0;
___progressbar.Invalidate();
___progressbar.Refresh();
for (int i = 0; i < notes.Count; i++)
{
// ___progressbar.Maximum = notes.Count;
___progressbar.Value = i;
___progressbar.Invalidate();
___progressbar.Refresh();
var note = notes[i];
long startSample = note.startMs * SampleRate / 1000;
long durationSamples = note.durationMs * SampleRate / 1000;
bool isSilence = note.freqStr == "-" || note.freqStr == "0";
double freqThis = isSilence ? 0 : double.Parse(note.freqStr, CultureInfo.InvariantCulture);
double freqPrev = (i == 0 || notes[i - 1].freqStr == "-" || notes[i - 1].freqStr == "0") ? 0 : double.Parse(notes[i - 1].freqStr, CultureInfo.InvariantCulture);
double freqNext = (i + 1 < notes.Count && notes[i + 1].freqStr != "-" && notes[i + 1].freqStr != "0") ? double.Parse(notes[i + 1].freqStr, CultureInfo.InvariantCulture) : 0;
Random _random_for_notes_start_overlaps = new Random();//saan did this
double ranges_for_notes_start_overlap_millis =30-11;//saan did this
double ___random_start_millis = 11 + (_random_for_notes_start_overlaps.NextDouble() * ranges_for_notes_start_overlap_millis);
Random _random_for_notes_finals_overlaps = new Random();//saan did this
double ranges_for_notes_final_overlap_millis = 60 - 13;//saan did this
double ___random_final_millis=13+(_random_for_notes_finals_overlaps.NextDouble() * ranges_for_notes_final_overlap_millis);
long attackSamples = Math.Min(durationSamples,(long)(___random_start_millis * SampleRate / 1000));
long releaseSamples = Math.Min(durationSamples - attackSamples, (long)(___random_final_millis * SampleRate / 1000));
long sustainSamples =Math.Abs( durationSamples - attackSamples - releaseSamples);
while (currentSample < startSample)
{
monoBw.Write((short)0);
stereoBw.Write((short)0);
stereoBw.Write((short)0);
currentSample++;
dataSizeMono += 2;
dataSizeStereo += 4;
}//while (currentSample < startSample)
for (long s = 0; s < durationSamples; s++)
{
double tNorm = (double)s / durationSamples;
// double envelope = 0.5 * (1 - Math.Cos(2 * Math.PI * tNorm));
Random _random_for_randomizeds_min_envellopes = new Random();//saan did this
double ranges_for_randomizeds_min_envellopes = 0.3-0.1;//saan did this
double ___random_found_randomizeds_min_envellopes = 0.1 + (_random_for_randomizeds_min_envellopes.NextDouble() * ranges_for_randomizeds_min_envellopes);
double envelope = Math.Max
(
___random_found_randomizeds_min_envellopes
,
0.5 * (1 - Math.Cos(2 * Math.PI * tNorm)));
//////////////////////////////////////////////////////////////
Random _random = new Random();//saan did this
double range_for_randoms_envellopes = 1.8 - 1.3;//saan did this
double ___lastenvellopes_val = 0;
___lastenvellopes_val = envelope;
double _randomsbetween_1_3___to_1_8 = 1.3+_random.NextDouble() * range_for_randoms_envellopes;//saan did this
// double envelope = 0.5 * (_randomsbetween_1_3___to_1_8 - Math.Cos(2 * Math.PI * tNorm));//saan did this
double freq;
if (s < attackSamples)
{
double aT = (double)s / attackSamples;
freq = freqPrev + (freqThis - freqPrev) * aT;
//NO ITS BAD envelope = 1;//SAAN THINKS TRIED
// envelope = 0.5 * (_randomsbetween_1_3___to_1_8 - Math.Cos(2 * Math.PI * tNorm));//saan did this
// ___lastenvellopes_val = Math.Max(___lastenvellopes_val, envelope);
}
else if (s >= durationSamples - releaseSamples)
{
double rT = (double)(s - (durationSamples - releaseSamples)) / releaseSamples;
freq = freqThis + (freqNext - freqThis) * rT;
//NO ITS BAD envelope = 1;//SAAN THINKS TRIED
// envelope = 0.5 * (_randomsbetween_1_3___to_1_8 - Math.Cos(2 * Math.PI * tNorm));//saan did this
// ___lastenvellopes_val = Math.Min(___lastenvellopes_val, envelope);
}
else
{
freq = freqThis;
//NO ITS BAD
// envelope = 0.5 * (1 - Math.Cos(2 * Math.PI * tNorm));//SAAN THINKS TRIED
// ___lastenvellopes_val = Math.Max(___lastenvellopes_val, envelope);
}
//saan tries to do this
// envelope = ___lastenvellopes_val;
float monoVal = 0f;
if (!isSilence)
{
Random _random_for_sustains_waveforms_fundamental_amps = new Random();//saan did this
double ranges_for_sustains_waveforms_fundamental_amps = 0.9-0.6;//saan did this
double ___random_found____for_sustains_waveforms_fundamental_amps = 0.6 + (_random_for_sustains_waveforms_fundamental_amps.NextDouble() * ranges_for_sustains_waveforms_fundamental_amps);
Random _random_for_sustains_waveforms_double_fundamental_amps = new Random();//saan did this
double ranges_for_sustains_waveforms_double_fundamental_amps = 0.18 - 0.11;//saan did this
double ___random_found____for_sustains_waveforms__double_fundamental_amps = 0.11 + (_random_for_sustains_waveforms_double_fundamental_amps.NextDouble() * ranges_for_sustains_waveforms_double_fundamental_amps);
Random _random_for_sustains_waveforms_tripples_fundamental_amps = new Random();//saan did this
double ranges_for_sustains_waveforms_tripples_fundamental_amps = 0.08 - 0.01;//saan did this
double ___random_found____for_sustains_waveforms_tripples_fundamental_amps = 0.01 + (_random_for_sustains_waveforms_tripples_fundamental_amps.NextDouble() * ranges_for_sustains_waveforms_tripples_fundamental_amps);
Random _random_for_sustains_waveforms___monovals_amps_factor = new Random();//saan did this
double ranges_for_sustains_waveforms___monovals_amps_factor = 0.8 - 0.6;//saan did this
double ___random_found____for_sustains_waveforms___monovals_amps_factor = 0.6 + (_random_for_sustains_waveforms___monovals_amps_factor.NextDouble() * ranges_for_sustains_waveforms___monovals_amps_factor);
//////double waveform
////// =
//////0.8 * Math.Sin(2 * Math.PI * freq * s / SampleRate)
//////+
//////0.15 * Math.Sin(4 * Math.PI * freq * s / SampleRate)
//////+
//////0.05 * Math.Sin(6 * Math.PI * freq * s / SampleRate);
///
double waveform
=
___random_found____for_sustains_waveforms_fundamental_amps
* Math.Sin(2 * Math.PI * freq * s / SampleRate)
+
___random_found____for_sustains_waveforms__double_fundamental_amps
* Math.Sin(4 * Math.PI * freq * s / SampleRate)
+
___random_found____for_sustains_waveforms_tripples_fundamental_amps
* Math.Sin(6 * Math.PI * freq * s / SampleRate);
//////// Fourier Expansion with 60 Terms
//////double waveform = 0.80000000
////// + +2705.54970107 * Math.Cos(2 * Math.PI * freq * s / SampleRate)
////// + -464.12804194 * Math.Sin(2 * Math.PI * freq * s / SampleRate)
////// + -1633.63905871 * Math.Cos(4 * Math.PI * freq * s / SampleRate)
////// + +1372.70734580 * Math.Sin(4 * Math.PI * freq * s / SampleRate)
////// + +1732.89301811 * Math.Cos(6 * Math.PI * freq * s / SampleRate)
////// + -895.84901280 * Math.Sin(6 * Math.PI * freq * s / SampleRate)
////// + -662.86715949 * Math.Cos(8 * Math.PI * freq * s / SampleRate)
////// + +880.91145465 * Math.Sin(8 * Math.PI * freq * s / SampleRate)
////// + +762.18646283 * Math.Cos(10 * Math.PI * freq * s / SampleRate)
////// + -1299.14297833 * Math.Sin(10 * Math.PI * freq * s / SampleRate)
////// + -1978.79547525 * Math.Cos(12 * Math.PI * freq * s / SampleRate)
////// + +566.95998179 * Math.Sin(12 * Math.PI * freq * s / SampleRate)
////// + +1795.36814553 * Math.Cos(14 * Math.PI * freq * s / SampleRate)
////// + -483.77867472 * Math.Sin(14 * Math.PI * freq * s / SampleRate)
////// + -1536.69628285 * Math.Cos(16 * Math.PI * freq * s / SampleRate)
////// + +1719.82703891 * Math.Sin(16 * Math.PI * freq * s / SampleRate)
////// + +1302.33807022 * Math.Cos(18 * Math.PI * freq * s / SampleRate)
////// + -1316.85244289 * Math.Sin(18 * Math.PI * freq * s / SampleRate)
////// + -208.60156387 * Math.Cos(20 * Math.PI * freq * s / SampleRate)
////// + +1643.08573938 * Math.Sin(20 * Math.PI * freq * s / SampleRate)
////// + -77.67245566 * Math.Cos(22 * Math.PI * freq * s / SampleRate)
////// + -2034.04777646 * Math.Sin(22 * Math.PI * freq * s / SampleRate)
////// + +54.36632701 * Math.Cos(24 * Math.PI * freq * s / SampleRate)
////// + +888.77822613 * Math.Sin(24 * Math.PI * freq * s / SampleRate)
////// + -219.35404311 * Math.Cos(26 * Math.PI * freq * s / SampleRate)
////// + -258.74991311 * Math.Sin(26 * Math.PI * freq * s / SampleRate)
////// + -3.04668746 * Math.Cos(28 * Math.PI * freq * s / SampleRate)
////// + +896.30592454 * Math.Sin(28 * Math.PI * freq * s / SampleRate)
////// + +126.17840838 * Math.Cos(30 * Math.PI * freq * s / SampleRate)
////// + -480.73252999 * Math.Sin(30 * Math.PI * freq * s / SampleRate)
////// + +580.57625726 * Math.Cos(32 * Math.PI * freq * s / SampleRate)
////// + +464.05575867 * Math.Sin(32 * Math.PI * freq * s / SampleRate)
////// + -14.59479417 * Math.Cos(34 * Math.PI * freq * s / SampleRate)
////// + -947.20693293 * Math.Sin(34 * Math.PI * freq * s / SampleRate)
////// + +13.38383116 * Math.Cos(36 * Math.PI * freq * s / SampleRate)
////// + +424.74422317 * Math.Sin(36 * Math.PI * freq * s / SampleRate)
////// + -253.46727141 * Math.Cos(38 * Math.PI * freq * s / SampleRate)
////// + +381.66704711 * Math.Sin(38 * Math.PI * freq * s / SampleRate)
////// + +81.40746184 * Math.Cos(40 * Math.PI * freq * s / SampleRate)
////// + -305.93786850 * Math.Sin(40 * Math.PI * freq * s / SampleRate)
////// + +177.14128329 * Math.Cos(42 * Math.PI * freq * s / SampleRate)
////// + +559.67612829 * Math.Sin(42 * Math.PI * freq * s / SampleRate)
////// + +359.13663048 * Math.Cos(44 * Math.PI * freq * s / SampleRate)
////// + -372.03124242 * Math.Sin(44 * Math.PI * freq * s / SampleRate)
////// + +200.74997737 * Math.Cos(46 * Math.PI * freq * s / SampleRate)
////// + -87.48475208 * Math.Sin(46 * Math.PI * freq * s / SampleRate)
////// + -386.07922727 * Math.Cos(48 * Math.PI * freq * s / SampleRate)
////// + +107.29744992 * Math.Sin(48 * Math.PI * freq * s / SampleRate)
////// + +325.07400624 * Math.Cos(50 * Math.PI * freq * s / SampleRate)
////// + +48.39514811 * Math.Sin(50 * Math.PI * freq * s / SampleRate)
////// + -368.37279178 * Math.Cos(52 * Math.PI * freq * s / SampleRate)
////// + -384.12748763 * Math.Sin(52 * Math.PI * freq * s / SampleRate)
////// + +713.59658391 * Math.Cos(54 * Math.PI * freq * s / SampleRate)
////// + +651.66751319 * Math.Sin(54 * Math.PI * freq * s / SampleRate)
////// + -459.48985925 * Math.Cos(56 * Math.PI * freq * s / SampleRate)
////// + -757.69385097 * Math.Sin(56 * Math.PI * freq * s / SampleRate)
////// + +557.87615045 * Math.Cos(58 * Math.PI * freq * s / SampleRate)
////// + +133.23295107 * Math.Sin(58 * Math.PI * freq * s / SampleRate)
////// + -966.90372104 * Math.Cos(60 * Math.PI * freq * s / SampleRate)
////// + +93.21272086 * Math.Sin(60 * Math.PI * freq * s / SampleRate)
////// + +584.45093462 * Math.Cos(62 * Math.PI * freq * s / SampleRate)
////// + -331.04717528 * Math.Sin(62 * Math.PI * freq * s / SampleRate)
////// + -486.33344777 * Math.Cos(64 * Math.PI * freq * s / SampleRate)
////// + +472.65520503 * Math.Sin(64 * Math.PI * freq * s / SampleRate)
////// + +627.98327717 * Math.Cos(66 * Math.PI * freq * s / SampleRate)
////// + -338.13256466 * Math.Sin(66 * Math.PI * freq * s / SampleRate)
////// + -349.82035155 * Math.Cos(68 * Math.PI * freq * s / SampleRate)
////// + +124.65747369 * Math.Sin(68 * Math.PI * freq * s / SampleRate)
////// + +218.94675750 * Math.Cos(70 * Math.PI * freq * s / SampleRate)
////// + -428.10035693 * Math.Sin(70 * Math.PI * freq * s / SampleRate)
////// + -532.58211434 * Math.Cos(72 * Math.PI * freq * s / SampleRate)
////// + +157.86312480 * Math.Sin(72 * Math.PI * freq * s / SampleRate)
////// + +160.56434413 * Math.Cos(74 * Math.PI * freq * s / SampleRate)
////// + +9.90628012 * Math.Sin(74 * Math.PI * freq * s / SampleRate)
////// + -158.56091024 * Math.Cos(76 * Math.PI * freq * s / SampleRate)
////// + +334.15811017 * Math.Sin(76 * Math.PI * freq * s / SampleRate)
////// + +146.48131719 * Math.Cos(78 * Math.PI * freq * s / SampleRate)
////// + -78.59304459 * Math.Sin(78 * Math.PI * freq * s / SampleRate)
////// + +240.55735758 * Math.Cos(80 * Math.PI * freq * s / SampleRate)
////// + +0.94744165 * Math.Sin(80 * Math.PI * freq * s / SampleRate)
////// + -233.70708709 * Math.Cos(82 * Math.PI * freq * s / SampleRate)
////// + -507.97729591 * Math.Sin(82 * Math.PI * freq * s / SampleRate)
////// + -251.68995483 * Math.Cos(84 * Math.PI * freq * s / SampleRate)
////// + +293.76790327 * Math.Sin(84 * Math.PI * freq * s / SampleRate)
////// + -197.63010233 * Math.Cos(86 * Math.PI * freq * s / SampleRate)
////// + -197.15113922 * Math.Sin(86 * Math.PI * freq * s / SampleRate)
////// + +124.04206461 * Math.Cos(88 * Math.PI * freq * s / SampleRate)
////// + +438.63520215 * Math.Sin(88 * Math.PI * freq * s / SampleRate)
////// + -63.43725241 * Math.Cos(90 * Math.PI * freq * s / SampleRate)
////// + +327.20320310 * Math.Sin(90 * Math.PI * freq * s / SampleRate)
////// + +558.31466985 * Math.Cos(92 * Math.PI * freq * s / SampleRate)
////// + -658.03374090 * Math.Sin(92 * Math.PI * freq * s / SampleRate)
////// + -103.21738238 * Math.Cos(94 * Math.PI * freq * s / SampleRate)
////// + +223.65870118 * Math.Sin(94 * Math.PI * freq * s / SampleRate)
////// + -181.29431907 * Math.Cos(96 * Math.PI * freq * s / SampleRate)
////// + -374.65472150 * Math.Sin(96 * Math.PI * freq * s / SampleRate)
////// + -134.55267331 * Math.Cos(98 * Math.PI * freq * s / SampleRate)
////// + +280.74118813 * Math.Sin(98 * Math.PI * freq * s / SampleRate)
////// + -457.55430022 * Math.Cos(100 * Math.PI * freq * s / SampleRate)
////// + +349.60464369 * Math.Sin(100 * Math.PI * freq * s / SampleRate)
////// + +552.84064984 * Math.Cos(102 * Math.PI * freq * s / SampleRate)
////// + +133.79671545 * Math.Sin(102 * Math.PI * freq * s / SampleRate)
////// + +181.49262494 * Math.Cos(104 * Math.PI * freq * s / SampleRate)
////// + +112.09959840 * Math.Sin(104 * Math.PI * freq * s / SampleRate)
////// + +257.44024909 * Math.Cos(106 * Math.PI * freq * s / SampleRate)
////// + -64.42243479 * Math.Sin(106 * Math.PI * freq * s / SampleRate)
////// + +62.06624207 * Math.Cos(108 * Math.PI * freq * s / SampleRate)
////// + -343.94470372 * Math.Sin(108 * Math.PI * freq * s / SampleRate)
////// + -339.54941804 * Math.Cos(110 * Math.PI * freq * s / SampleRate)
////// + +509.38680098 * Math.Sin(110 * Math.PI * freq * s / SampleRate)
////// + -188.74974290 * Math.Cos(112 * Math.PI * freq * s / SampleRate)
////// + -221.27810919 * Math.Sin(112 * Math.PI * freq * s / SampleRate)
////// + +492.01390187 * Math.Cos(114 * Math.PI * freq * s / SampleRate)
////// + +340.52533586 * Math.Sin(114 * Math.PI * freq * s / SampleRate)
////// + -47.51332556 * Math.Cos(116 * Math.PI * freq * s / SampleRate)
////// + +320.70051190 * Math.Sin(116 * Math.PI * freq * s / SampleRate)
////// + +407.84621113 * Math.Cos(118 * Math.PI * freq * s / SampleRate)
////// + -292.66747998 * Math.Sin(118 * Math.PI * freq * s / SampleRate)
////// + -221.81772033 * Math.Cos(120 * Math.PI * freq * s / SampleRate)
////// + +134.66147048 * Math.Sin(120 * Math.PI * freq * s / SampleRate)
//////;
//////// Reconstructed waveform using top harmonics
//////double waveform = 0.0;
//////waveform += 0.00625137 * Math.Cos(25758 * Math.PI * freq * s / SampleRate);
//////waveform += 0.01638565 * Math.Sin(25758 * Math.PI * freq * s / SampleRate);
//////waveform += 0.00317095 * Math.Cos(25760 * Math.PI * freq * s / SampleRate);
//////waveform += 0.01890780 * Math.Sin(25760 * Math.PI * freq * s / SampleRate);
//////waveform += -0.00138241 * Math.Cos(25762 * Math.PI * freq * s / SampleRate);
//////waveform += 0.01897952 * Math.Sin(25762 * Math.PI * freq * s / SampleRate);
//////waveform += -0.00665054 * Math.Cos(25764 * Math.PI * freq * s / SampleRate);
//////waveform += 0.01804920 * Math.Sin(25764 * Math.PI * freq * s / SampleRate);
//////waveform += -0.01087721 * Math.Cos(25766 * Math.PI * freq * s / SampleRate);
//////waveform += 0.01545593 * Math.Sin(25766 * Math.PI * freq * s / SampleRate);
//////waveform += -0.01508395 * Math.Cos(25768 * Math.PI * freq * s / SampleRate);
//////waveform += 0.01097674 * Math.Sin(25768 * Math.PI * freq * s / SampleRate);
//////waveform += -0.01842808 * Math.Cos(25770 * Math.PI * freq * s / SampleRate);
//////waveform += 0.00719734 * Math.Sin(25770 * Math.PI * freq * s / SampleRate);
//////waveform += -0.01786300 * Math.Cos(25772 * Math.PI * freq * s / SampleRate);
//////waveform += 0.00381297 * Math.Sin(25772 * Math.PI * freq * s / SampleRate);
//////waveform += -0.01346462 * Math.Cos(25776 * Math.PI * freq * s / SampleRate);
//////waveform += -0.00838950 * Math.Sin(25776 * Math.PI * freq * s / SampleRate);
//////waveform += -0.01219873 * Math.Cos(25778 * Math.PI * freq * s / SampleRate);
//////waveform += -0.01100506 * Math.Sin(25778 * Math.PI * freq * s / SampleRate);
//////// Top Harmonics by Energy
//////double waveform = 0.0;
//////waveform += +0.00000506 * Math.Cos(224866 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000000 * Math.Sin(224866 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000503 * Math.Cos(224814 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000000 * Math.Sin(224814 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000497 * Math.Cos(224840 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000000 * Math.Sin(224840 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000492 * Math.Cos(224686 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000000 * Math.Sin(224686 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000492 * Math.Cos(224788 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000000 * Math.Sin(224788 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000490 * Math.Cos(224480 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000000 * Math.Sin(224480 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000488 * Math.Cos(225430 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000000 * Math.Sin(225430 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000486 * Math.Cos(225404 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000000 * Math.Sin(225404 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000485 * Math.Cos(224762 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000000 * Math.Sin(224762 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000484 * Math.Cos(224994 * Math.PI * freq * s / SampleRate);
//////waveform += +0.00000000 * Math.Sin(224994 * Math.PI * freq * s / SampleRate);
//////double waveform
////// =
//////0.8 * Math.Sin(2 * Math.PI * freq * s / SampleRate)
//////+
//////0.15 * Math.Sin(4 * Math.PI * freq * s / SampleRate)
//////+
//////0.05 * Math.Sin(6 * Math.PI * freq * s / SampleRate);
///
//////// Fourier Expansion with 3 Terms
//////double waveform = -0.01475350
////// + -0.00070543 * Math.Cos(2 * Math.PI * freq * s / SampleRate)
////// + +0.00012101 * Math.Sin(2 * Math.PI * freq * s / SampleRate)
////// + +0.00042595 * Math.Cos(4 * Math.PI * freq * s / SampleRate)
////// + -0.00035791 * Math.Sin(4 * Math.PI * freq * s / SampleRate)
////// + -0.00045182 * Math.Cos(6 * Math.PI * freq * s / SampleRate)
////// + +0.00023358 * Math.Sin(6 * Math.PI * freq * s / SampleRate)
//////;
//////// Fourier Expansion with 6 Terms
//////double waveform = -0.01475350
////// + -0.00070543 * Math.Cos(2 * Math.PI * freq * s / SampleRate)
////// + +0.00012101 * Math.Sin(2 * Math.PI * freq * s / SampleRate)
////// + +0.00042595 * Math.Cos(4 * Math.PI * freq * s / SampleRate)
////// + -0.00035791 * Math.Sin(4 * Math.PI * freq * s / SampleRate)
////// + -0.00045182 * Math.Cos(6 * Math.PI * freq * s / SampleRate)
////// + +0.00023358 * Math.Sin(6 * Math.PI * freq * s / SampleRate)
////// + +0.00017283 * Math.Cos(8 * Math.PI * freq * s / SampleRate)
////// + -0.00022968 * Math.Sin(8 * Math.PI * freq * s / SampleRate)
////// + -0.00019873 * Math.Cos(10 * Math.PI * freq * s / SampleRate)
////// + +0.00033873 * Math.Sin(10 * Math.PI * freq * s / SampleRate)
////// + +0.00051594 * Math.Cos(12 * Math.PI * freq * s / SampleRate)
////// + -0.00014783 * Math.Sin(12 * Math.PI * freq * s / SampleRate)
//////;
//////// Fourier expansion with 20 terms
//////double waveform =
////// -0.00070543 * Math.Cos(2 * Math.PI * freq * s / SampleRate) +
////// 0.00012101 * Math.Sin(2 * Math.PI * freq * s / SampleRate) +
////// 0.00042595 * Math.Cos(4 * Math.PI * freq * s / SampleRate) +
////// -0.00035791 * Math.Sin(4 * Math.PI * freq * s / SampleRate) +
////// -0.00045182 * Math.Cos(6 * Math.PI * freq * s / SampleRate) +
////// 0.00023358 * Math.Sin(6 * Math.PI * freq * s / SampleRate) +
////// 0.00017283 * Math.Cos(8 * Math.PI * freq * s / SampleRate) +
////// -0.00022968 * Math.Sin(8 * Math.PI * freq * s / SampleRate) +
////// -0.00019873 * Math.Cos(10 * Math.PI * freq * s / SampleRate) +
////// 0.00033873 * Math.Sin(10 * Math.PI * freq * s / SampleRate) +
////// 0.00051594 * Math.Cos(12 * Math.PI * freq * s / SampleRate) +
////// -0.00014783 * Math.Sin(12 * Math.PI * freq * s / SampleRate) +
////// -0.00046811 * Math.Cos(14 * Math.PI * freq * s / SampleRate) +
////// 0.00012614 * Math.Sin(14 * Math.PI * freq * s / SampleRate) +
////// 0.00040067 * Math.Cos(16 * Math.PI * freq * s / SampleRate) +
////// -0.00044842 * Math.Sin(16 * Math.PI * freq * s / SampleRate) +
////// -0.00033956 * Math.Cos(18 * Math.PI * freq * s / SampleRate) +
////// 0.00034335 * Math.Sin(18 * Math.PI * freq * s / SampleRate) +
////// 0.00005439 * Math.Cos(20 * Math.PI * freq * s / SampleRate) +
////// -0.00042841 * Math.Sin(20 * Math.PI * freq * s / SampleRate);
//////// Fourier Expansion with 20 Terms
//////double waveform = -0.01475350;
//////+-0.00070553 * Math.Cos(2 * Math.PI * freq * s / SampleRate)
//////+ 0.00012101 * Math.Sin(2 * Math.PI * freq * s / SampleRate)
//////+ 0.00042586 * Math.Cos(4 * Math.PI * freq * s / SampleRate)
//////+ -0.00035790 * Math.Sin(4 * Math.PI * freq * s / SampleRate)
//////+ -0.00045193 * Math.Cos(6 * Math.PI * freq * s / SampleRate)
//////+ 0.00023356 * Math.Sin(6 * Math.PI * freq * s / SampleRate)
//////+ 0.00017274 * Math.Cos(8 * Math.PI * freq * s / SampleRate)
//////+ -0.00022968 * Math.Sin(8 * Math.PI * freq * s / SampleRate)
//////+ -0.00019885 * Math.Cos(10 * Math.PI * freq * s / SampleRate)
//////+ 0.00033872 * Math.Sin(10 * Math.PI * freq * s / SampleRate)
//////+ 0.00051585 * Math.Cos(12 * Math.PI * freq * s / SampleRate)
//////+ -0.00014779 * Math.Sin(12 * Math.PI * freq * s / SampleRate)
//////+ -0.00046822 * Math.Cos(14 * Math.PI * freq * s / SampleRate)
//////+ 0.00012611 * Math.Sin(14 * Math.PI * freq * s / SampleRate)
//////+ 0.00040061 * Math.Cos(16 * Math.PI * freq * s / SampleRate)
//////+ -0.00044839 * Math.Sin(16 * Math.PI * freq * s / SampleRate)
//////+ -0.00033969 * Math.Cos(18 * Math.PI * freq * s / SampleRate)
//////+ 0.00034331 * Math.Sin(18 * Math.PI * freq * s / SampleRate)
//////+ 0.00005433 * Math.Cos(20 * Math.PI * freq * s / SampleRate)
//////+ -0.00042841 * Math.Sin(20 * Math.PI * freq * s / SampleRate)
//////+ 0.00002010 * Math.Cos(22 * Math.PI * freq * s / SampleRate)
//////+ 0.00053034 * Math.Sin(22 * Math.PI * freq * s / SampleRate)
//////+ -0.00001425 * Math.Cos(24 * Math.PI * freq * s / SampleRate)
//////+ -0.00023172 * Math.Sin(24 * Math.PI * freq * s / SampleRate)
//////+ 0.00005709 * Math.Cos(26 * Math.PI * freq * s / SampleRate)
//////+ 0.00006748 * Math.Sin(26 * Math.PI * freq * s / SampleRate)
//////+ 0.00000074 * Math.Cos(28 * Math.PI * freq * s / SampleRate)
//////+ -0.00023370 * Math.Sin(28 * Math.PI * freq * s / SampleRate)
//////+ -0.00003301 * Math.Cos(30 * Math.PI * freq * s / SampleRate)
//////+ 0.00012533 * Math.Sin(30 * Math.PI * freq * s / SampleRate)
//////+ -0.00015146 * Math.Cos(32 * Math.PI * freq * s / SampleRate)
//////+ -0.00012103 * Math.Sin(32 * Math.PI * freq * s / SampleRate)
//////+ 0.00000366 * Math.Cos(34 * Math.PI * freq * s / SampleRate)
//////+ 0.00024697 * Math.Sin(34 * Math.PI * freq * s / SampleRate)
//////+ -0.00000357 * Math.Cos(36 * Math.PI * freq * s / SampleRate)
//////+ -0.00011073 * Math.Sin(36 * Math.PI * freq * s / SampleRate)
//////+ 0.00006601 * Math.Cos(38 * Math.PI * freq * s / SampleRate)
//////+ -0.00009951 * Math.Sin(38 * Math.PI * freq * s / SampleRate)
//////+ -0.00002133 * Math.Cos(40 * Math.PI * freq * s / SampleRate)
//////+ 0.00007976 * Math.Sin(40 * Math.PI * freq * s / SampleRate)
///////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// 60 terms
//////double waveform = -0.01475350
//////+-0.00070553 * Math.Cos(2 * Math.PI * freq * s / SampleRate)
//////+ 0.00012101 * Math.Sin(2 * Math.PI * freq * s / SampleRate)
//////+ 0.00042586 * Math.Cos(4 * Math.PI * freq * s / SampleRate)
//////+ -0.00035790 * Math.Sin(4 * Math.PI * freq * s / SampleRate)
//////+ -0.00045193 * Math.Cos(6 * Math.PI * freq * s / SampleRate)
//////+ 0.00023356 * Math.Sin(6 * Math.PI * freq * s / SampleRate)
//////+ 0.00017274 * Math.Cos(8 * Math.PI * freq * s / SampleRate)
//////+ -0.00022968 * Math.Sin(8 * Math.PI * freq * s / SampleRate)
//////+ -0.00019885 * Math.Cos(10 * Math.PI * freq * s / SampleRate)
//////+ 0.00033872 * Math.Sin(10 * Math.PI * freq * s / SampleRate)
//////+ 0.00051585 * Math.Cos(12 * Math.PI * freq * s / SampleRate)
//////+ -0.00014779 * Math.Sin(12 * Math.PI * freq * s / SampleRate)
//////+ -0.00046822 * Math.Cos(14 * Math.PI * freq * s / SampleRate)
//////+ 0.00012611 * Math.Sin(14 * Math.PI * freq * s / SampleRate)
//////+ 0.00040061 * Math.Cos(16 * Math.PI * freq * s / SampleRate)
//////+ -0.00044839 * Math.Sin(16 * Math.PI * freq * s / SampleRate)
//////+ -0.00033969 * Math.Cos(18 * Math.PI * freq * s / SampleRate)
//////+ 0.00034331 * Math.Sin(18 * Math.PI * freq * s / SampleRate)
//////+ 0.00005433 * Math.Cos(20 * Math.PI * freq * s / SampleRate)
//////+ -0.00042841 * Math.Sin(20 * Math.PI * freq * s / SampleRate)
//////+ 0.00002010 * Math.Cos(22 * Math.PI * freq * s / SampleRate)
//////+ 0.00053034 * Math.Sin(22 * Math.PI * freq * s / SampleRate)
//////+ -0.00001425 * Math.Cos(24 * Math.PI * freq * s / SampleRate)
//////+ -0.00023172 * Math.Sin(24 * Math.PI * freq * s / SampleRate)
//////+ 0.00005709 * Math.Cos(26 * Math.PI * freq * s / SampleRate)
//////+ 0.00006748 * Math.Sin(26 * Math.PI * freq * s / SampleRate)
//////+ 0.00000074 * Math.Cos(28 * Math.PI * freq * s / SampleRate)
//////+ -0.00023370 * Math.Sin(28 * Math.PI * freq * s / SampleRate)
//////+ -0.00003301 * Math.Cos(30 * Math.PI * freq * s / SampleRate)
//////+ 0.00012533 * Math.Sin(30 * Math.PI * freq * s / SampleRate)
//////+ -0.00015146 * Math.Cos(32 * Math.PI * freq * s / SampleRate)
//////+ -0.00012103 * Math.Sin(32 * Math.PI * freq * s / SampleRate)
//////+ 0.00000366 * Math.Cos(34 * Math.PI * freq * s / SampleRate)
//////+ 0.00024697 * Math.Sin(34 * Math.PI * freq * s / SampleRate)
//////+ -0.00000357 * Math.Cos(36 * Math.PI * freq * s / SampleRate)
//////+ -0.00011073 * Math.Sin(36 * Math.PI * freq * s / SampleRate)
//////+ 0.00006601 * Math.Cos(38 * Math.PI * freq * s / SampleRate)
//////+ -0.00009951 * Math.Sin(38 * Math.PI * freq * s / SampleRate)
//////+ -0.00002133 * Math.Cos(40 * Math.PI * freq * s / SampleRate)
//////+ 0.00007976 * Math.Sin(40 * Math.PI * freq * s / SampleRate)
//////+ -0.00004625 * Math.Cos(42 * Math.PI * freq * s / SampleRate)
//////+ -0.00014594 * Math.Sin(42 * Math.PI * freq * s / SampleRate)
//////+ -0.00009376 * Math.Cos(44 * Math.PI * freq * s / SampleRate)
//////+ 0.00009697 * Math.Sin(44 * Math.PI * freq * s / SampleRate)
//////+ -0.00005246 * Math.Cos(46 * Math.PI * freq * s / SampleRate)
//////+ 0.00002280 * Math.Sin(46 * Math.PI * freq * s / SampleRate)
//////+ 0.00010057 * Math.Cos(48 * Math.PI * freq * s / SampleRate)
//////+ -0.00002795 * Math.Sin(48 * Math.PI * freq * s / SampleRate)
//////+ -0.00008485 * Math.Cos(50 * Math.PI * freq * s / SampleRate)
//////+ -0.00001265 * Math.Sin(50 * Math.PI * freq * s / SampleRate)
//////+ 0.00009593 * Math.Cos(52 * Math.PI * freq * s / SampleRate)
//////+ 0.00010018 * Math.Sin(52 * Math.PI * freq * s / SampleRate)
//////+ -0.00018612 * Math.Cos(54 * Math.PI * freq * s / SampleRate)
//////+ -0.00016997 * Math.Sin(54 * Math.PI * freq * s / SampleRate)
//////+ 0.00011964 * Math.Cos(56 * Math.PI * freq * s / SampleRate)
//////+ 0.00019758 * Math.Sin(56 * Math.PI * freq * s / SampleRate)
//////+ -0.00014556 * Math.Cos(58 * Math.PI * freq * s / SampleRate)
//////+ -0.00003477 * Math.Sin(58 * Math.PI * freq * s / SampleRate)
//////+ 0.00025201 * Math.Cos(60 * Math.PI * freq * s / SampleRate)
//////+ -0.00002423 * Math.Sin(60 * Math.PI * freq * s / SampleRate)
//////+ -0.00015250 * Math.Cos(62 * Math.PI * freq * s / SampleRate)
//////+ 0.00008627 * Math.Sin(62 * Math.PI * freq * s / SampleRate)
//////+ 0.00012675 * Math.Cos(64 * Math.PI * freq * s / SampleRate)
//////+ -0.00012320 * Math.Sin(64 * Math.PI * freq * s / SampleRate)
//////+ -0.00016386 * Math.Cos(66 * Math.PI * freq * s / SampleRate)
//////+ 0.00008810 * Math.Sin(66 * Math.PI * freq * s / SampleRate)
//////+ 0.00009111 * Math.Cos(68 * Math.PI * freq * s / SampleRate)
//////+ -0.00003247 * Math.Sin(68 * Math.PI * freq * s / SampleRate)
//////+ -0.00005723 * Math.Cos(70 * Math.PI * freq * s / SampleRate)
//////+ 0.00011161 * Math.Sin(70 * Math.PI * freq * s / SampleRate)
//////+ 0.00013878 * Math.Cos(72 * Math.PI * freq * s / SampleRate)
//////+ -0.00004109 * Math.Sin(72 * Math.PI * freq * s / SampleRate)
//////+ -0.00004195 * Math.Cos(74 * Math.PI * freq * s / SampleRate)
//////+ -0.00000259 * Math.Sin(74 * Math.PI * freq * s / SampleRate)
//////+ 0.00004128 * Math.Cos(76 * Math.PI * freq * s / SampleRate)
//////+ -0.00008711 * Math.Sin(76 * Math.PI * freq * s / SampleRate)
//////+ -0.00003829 * Math.Cos(78 * Math.PI * freq * s / SampleRate)
//////+ 0.00002046 * Math.Sin(78 * Math.PI * freq * s / SampleRate)
//////+ -0.00006283 * Math.Cos(80 * Math.PI * freq * s / SampleRate)
//////+ -0.00000029 * Math.Sin(80 * Math.PI * freq * s / SampleRate)
//////+ 0.00006077 * Math.Cos(82 * Math.PI * freq * s / SampleRate)
//////+ 0.00013248 * Math.Sin(82 * Math.PI * freq * s / SampleRate)
//////+ 0.00006556 * Math.Cos(84 * Math.PI * freq * s / SampleRate)
//////+ -0.00007655 * Math.Sin(84 * Math.PI * freq * s / SampleRate)
//////+ 0.00005143 * Math.Cos(86 * Math.PI * freq * s / SampleRate)
//////+ 0.00005144 * Math.Sin(86 * Math.PI * freq * s / SampleRate)
//////+ -0.00003237 * Math.Cos(88 * Math.PI * freq * s / SampleRate)
//////+ -0.00011437 * Math.Sin(88 * Math.PI * freq * s / SampleRate)
//////+ 0.00001650 * Math.Cos(90 * Math.PI * freq * s / SampleRate)
//////+ -0.00008534 * Math.Sin(90 * Math.PI * freq * s / SampleRate)
//////+ -0.00014575 * Math.Cos(92 * Math.PI * freq * s / SampleRate)
//////+ 0.00017149 * Math.Sin(92 * Math.PI * freq * s / SampleRate)
//////+ 0.00002682 * Math.Cos(94 * Math.PI * freq * s / SampleRate)
//////+ -0.00005829 * Math.Sin(94 * Math.PI * freq * s / SampleRate)
//////+ 0.00004712 * Math.Cos(96 * Math.PI * freq * s / SampleRate)
//////+ 0.00009772 * Math.Sin(96 * Math.PI * freq * s / SampleRate)
//////+ 0.00003502 * Math.Cos(98 * Math.PI * freq * s / SampleRate)
//////+ -0.00007315 * Math.Sin(98 * Math.PI * freq * s / SampleRate)
//////+ 0.00011929 * Math.Cos(100 * Math.PI * freq * s / SampleRate)
//////+ -0.00009109 * Math.Sin(100 * Math.PI * freq * s / SampleRate)
//////+ -0.00014419 * Math.Cos(102 * Math.PI * freq * s / SampleRate)
//////+ -0.00003497 * Math.Sin(102 * Math.PI * freq * s / SampleRate)
//////+ -0.00004740 * Math.Cos(104 * Math.PI * freq * s / SampleRate)
//////+ -0.00002927 * Math.Sin(104 * Math.PI * freq * s / SampleRate)
//////+ -0.00006724 * Math.Cos(106 * Math.PI * freq * s / SampleRate)
//////+ 0.00001674 * Math.Sin(106 * Math.PI * freq * s / SampleRate)
//////+ -0.00001635 * Math.Cos(108 * Math.PI * freq * s / SampleRate)
//////+ 0.00008968 * Math.Sin(108 * Math.PI * freq * s / SampleRate)
//////+ 0.00008850 * Math.Cos(110 * Math.PI * freq * s / SampleRate)
//////+ -0.00013276 * Math.Sin(110 * Math.PI * freq * s / SampleRate)
//////+ 0.00004912 * Math.Cos(112 * Math.PI * freq * s / SampleRate)
//////+ 0.00005772 * Math.Sin(112 * Math.PI * freq * s / SampleRate)
//////+ -0.00012831 * Math.Cos(114 * Math.PI * freq * s / SampleRate)
//////+ -0.00008886 * Math.Sin(114 * Math.PI * freq * s / SampleRate)
//////+ 0.00001234 * Math.Cos(116 * Math.PI * freq * s / SampleRate)
//////+ -0.00008365 * Math.Sin(116 * Math.PI * freq * s / SampleRate)
//////+ -0.00010649 * Math.Cos(118 * Math.PI * freq * s / SampleRate)
//////+ 0.00007622 * Math.Sin(118 * Math.PI * freq * s / SampleRate)
//////+ 0.00005774 * Math.Cos(120 * Math.PI * freq * s / SampleRate)
//////+ -0.00003510 * Math.Sin(120 * Math.PI * freq * s / SampleRate)
//////;
// waveform = waveform * 0.8;
//////monoVal = (float)
////// (
////// 0.8 * envelope * waveform
////// );
//___random_found____for_sustains_waveforms___monovals_amps_factor
monoVal = (float)
(
___random_found____for_sustains_waveforms___monovals_amps_factor
* envelope * waveform
);
}//if (!isSilence)
short monoSample = (short)(Math.Max(-1f, Math.Min(1f, monoVal)) * short.MaxValue);
monoBw.Write(monoSample);
dataSizeMono += 2;
double swingT = (currentSample + s) / (SampleRate * 0.006);
double pan = Math.Sin(swingT * Math.PI * 2 / 400);
float left = (float)((1 - pan) / 2.0 * monoVal);
float right = (float)((1 + pan) / 2.0 * monoVal);
stereoBw.Write((short)(Math.Max(-1f, Math.Min(1f, left)) * short.MaxValue));
stereoBw.Write((short)(Math.Max(-1f, Math.Min(1f, right)) * short.MaxValue));
dataSizeStereo += 4;
}
currentSample += durationSamples;
}
while (currentSample < totalSamples)
{
monoBw.Write((short)0);
stereoBw.Write((short)0);
stereoBw.Write((short)0);
currentSample++;
dataSizeMono += 2;
dataSizeStereo += 4;
}//while (currentSample < totalSamples)
monoBw.Seek(4, SeekOrigin.Begin);
monoBw.Write((int)(dataSizeMono + 36));
monoBw.Seek(40, SeekOrigin.Begin);
monoBw.Write((int)dataSizeMono);
stereoBw.Seek(4, SeekOrigin.Begin);
stereoBw.Write((int)(dataSizeStereo + 36));
stereoBw.Seek(40, SeekOrigin.Begin);
stereoBw.Write((int)dataSizeStereo);
}// using (var stereoBw = new BinaryWriter(File.Create(stereoPath)))
}//using (var monoBw = new BinaryWriter(File.Create(monoPath)))
}
private static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
{
int byteRate = SampleRate * channels * BytesPerSample;
int blockAlign = channels * BytesPerSample;
bw.Write(System.Text.Encoding.ASCII.GetBytes("RIFF"));
bw.Write(dataSize + 36);
bw.Write(System.Text.Encoding.ASCII.GetBytes("WAVE"));
bw.Write(System.Text.Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(SampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)(BytesPerSample * 8));
bw.Write(System.Text.Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
}
}//public static class FluteMelodyWavGenerator___GLIDING_NOTES_WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
public static class DISCARDING___SINCE_WE_ARE_ADDING_60_MILLISECONDS_OVERLAPPED_GLIDING___FOR_NOTES_TRANSITIONS___FluteMelodyWavGenerator___GLIDING_NOTES_WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
{
const int SampleRate = 8000;
const int BytesPerSample = 2;
public static void GenerateWavFromMelodyData___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES(string filePath)
{
var lines = File.ReadAllLines(filePath);
var notes = new List<(int startMs, int durationMs, string freqStr)>();
foreach (var line in lines)
{
var parts = line.Split(new[] { "######" }, StringSplitOptions.None);
if (parts.Length != 3) continue;
if (!int.TryParse(parts[0].Trim(), out int startMs)) continue;
if (!int.TryParse(parts[1].Trim(), out int durationMs)) continue;
string freqStr = parts[2].Trim();
notes.Add((startMs, durationMs, freqStr));
}//foreach (var line in lines)
long totalSamples = (long)(notes.Max(n => n.startMs + n.durationMs) * SampleRate / 1000.0);
string monoPath = filePath + "_GLIDING_NOTES_mono_8000_16pcms.wav";
string stereoPath = filePath + "_GLIDING_NOTES_stereo_2_channels_PAN_gradually_swinging__8000_16pcms.wav";
using (var monoBw = new BinaryWriter(File.Create(monoPath)))
using (var stereoBw = new BinaryWriter(File.Create(stereoPath)))
{
WriteWavHeader(monoBw, 1, 0);
WriteWavHeader(stereoBw, 2, 0);
long dataSizeMono = 0;
long dataSizeStereo = 0;
long currentSample = 0;
long maxSamples = totalSamples;
for (int noteIndex = 0; noteIndex < notes.Count; noteIndex++)
{
var note = notes[noteIndex];
long startSample = note.startMs * SampleRate / 1000;
long durationSamples = note.durationMs * SampleRate / 1000;
double amplitude = 0.8;
bool isSilence = (note.freqStr == "-" || note.freqStr == "0");
double freqStart = isSilence ? 0 : double.Parse(note.freqStr, CultureInfo.InvariantCulture);
double freqEnd = freqStart;
if (!isSilence && noteIndex + 1 < notes.Count &&
notes[noteIndex + 1].freqStr != "-" && notes[noteIndex + 1].freqStr != "0")
{
freqEnd = double.Parse(notes[noteIndex + 1].freqStr, CultureInfo.InvariantCulture);
}
// Pad silence before the note if needed
while (currentSample < startSample)
{
monoBw.Write((short)0);
stereoBw.Write((short)0);
stereoBw.Write((short)0);
currentSample++;
dataSizeMono += 2;
dataSizeStereo += 4;
}//while (currentSample < startSample)
//divide the whole duration into three parts
// first 30 milliseconds of the whole current notes duration is to get the current frequency gliding from the previous frequency
//last 30 milliseconds of the whole of current notes duration is to envellope such that it feels interpolating to reach the next notes frequency
//the linear gliding of pitch shifts are necessary for each of the notes(only the first note 0 to current note frequency achieved in first 3 milliseconds and for last note have last 30 milliseconds to fall the frequency to zero linearly)
//for all intermediate notes the 60 milliseconds (last 30 millisecond from previous note and first 30 millisecond of current note are overlapped with linear frequency changes ...similarly the last 30 millisecond of current note and the first 30 millisecond of next note will have linear gliding of gradual frequency changes )
for (long i = 0; i < durationSamples; i++)
{
double tNorm = (double)i / durationSamples;
double envelope = 0.5 * (1 - Math.Cos(2 * Math.PI * tNorm));
float monoVal = 0f;
if (!isSilence)
{
double freq = freqStart + (freqEnd - freqStart) * tNorm; // Glide freq
double waveform =
0.8 * Math.Sin(2 * Math.PI * freq * i / SampleRate) +
0.15 * Math.Sin(4 * Math.PI * freq * i / SampleRate) +
0.05 * Math.Sin(6 * Math.PI * freq * i / SampleRate);
monoVal = (float)(amplitude * envelope * waveform);
}//if (!isSilence)
short monoSample = (short)(Math.Max(-1.0f, Math.Min(1.0f, monoVal)) * short.MaxValue);
monoBw.Write(monoSample);
dataSizeMono += 2;
double swingT = (currentSample + i) / (SampleRate * 0.006);
double pan = Math.Sin(swingT * Math.PI * 2 / 400);
float left = (float)((1 - pan) / 2.0 * monoVal);
float right = (float)((1 + pan) / 2.0 * monoVal);
short l = (short)(Math.Max(-1.0f, Math.Min(1.0f, left)) * short.MaxValue);
short r = (short)(Math.Max(-1.0f, Math.Min(1.0f, right)) * short.MaxValue);
stereoBw.Write(l);
stereoBw.Write(r);
dataSizeStereo += 4;
}// for (long i = 0; i < durationSamples; i++)
currentSample += durationSamples;
}
while (currentSample < maxSamples)
{
monoBw.Write((short)0);
stereoBw.Write((short)0);
stereoBw.Write((short)0);
currentSample++;
dataSizeMono += 2;
dataSizeStereo += 4;
}
monoBw.Seek(4, SeekOrigin.Begin);
monoBw.Write((int)(dataSizeMono + 36));
monoBw.Seek(40, SeekOrigin.Begin);
monoBw.Write((int)dataSizeMono);
stereoBw.Seek(4, SeekOrigin.Begin);
stereoBw.Write((int)(dataSizeStereo + 36));
stereoBw.Seek(40, SeekOrigin.Begin);
stereoBw.Write((int)dataSizeStereo);
}
}
private static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
{
int byteRate = SampleRate * channels * BytesPerSample;
int blockAlign = channels * BytesPerSample;
bw.Write(System.Text.Encoding.ASCII.GetBytes("RIFF"));
bw.Write(dataSize + 36);
bw.Write(System.Text.Encoding.ASCII.GetBytes("WAVE"));
bw.Write(System.Text.Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(SampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)(BytesPerSample * 8));
bw.Write(System.Text.Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
}//private static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
}//public static class FluteMelodyWavGenerator___GLIDING_NOTES_WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
/// <summary>
/// ///////////////////////////////
/// </summary>
public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
{
const int SampleRate = 8000;
const int BytesPerSample = 2;
public static void GenerateWavFromMelodyData___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES(string filePath)
{
var lines = File.ReadAllLines(filePath);
var notes = new List<(int startMs, int durationMs, string freqStr)>();
foreach (var line in lines)
{
var parts = line.Split(new[] { "######" }, StringSplitOptions.None);
if (parts.Length != 3) continue;
if (!int.TryParse(parts[0].Trim(), out int startMs)) continue;
if (!int.TryParse(parts[1].Trim(), out int durationMs)) continue;
string freqStr = parts[2].Trim();
notes.Add((startMs, durationMs, freqStr));
}//foreach (var line in lines)
long totalSamples = (long)(notes.Max(n => n.startMs + n.durationMs) * SampleRate / 1000.0);
string monoPath = filePath + "_DISCRETE_NOTES_mono_8000_16pcms.wav";
string stereoPath = filePath + "_DISCRETE_NOTES__stereo_2_channels_PAN_gradually_swinging__8000_16pcms.wav";
using (var monoBw = new BinaryWriter(File.Create(monoPath)))
{
using (var stereoBw = new BinaryWriter(File.Create(stereoPath)))
{
WriteWavHeader(monoBw, 1, 0); // Placeholder
WriteWavHeader(stereoBw, 2, 0); // Placeholder
long dataSizeMono = 0;
long dataSizeStereo = 0;
long currentSample = 0;
long maxSamples = totalSamples;
foreach (var note in notes)
{
long startSample = note.startMs * SampleRate / 1000;
long durationSamples = note.durationMs * SampleRate / 1000;
double amplitude = 0.8;
bool isSilence = (note.freqStr == "-" || note.freqStr == "0");
double freq = 0;
if (!isSilence) freq = double.Parse(note.freqStr, CultureInfo.InvariantCulture);
// Pad silence before the note if needed
while (currentSample < startSample)
{
monoBw.Write((short)0);
stereoBw.Write((short)0); // Left
stereoBw.Write((short)0); // Right
currentSample++;
dataSizeMono += 2;
dataSizeStereo += 4;
}//while (currentSample < startSample)
for (long i = 0; i < durationSamples; i++)
{
double tNorm = (double)i / durationSamples;
// double envelope = 0.5 * (1 - Math.Cos(2 * Math.PI * tNorm));
// double envelope = Math.Min( 0.3,0.5 * (1 - Math.Cos(2 * Math.PI * tNorm)));
// double envelope = Math.Min(0.5 * (1 - Math.Sin(2 * Math.PI * tNorm)), 0.5 * (1 - Math.Cos(2 * Math.PI * tNorm)) );
double envelope = Math.Max(Math.Abs(0.5 * (1 - Math.Sin( 2 * Math.PI * tNorm) )), Math.Abs(0.5 * (1 - Math.Cos(2 * Math.PI * tNorm) ) ) );
float monoVal = 0f;
if (!isSilence)
{
double waveform =
0.8 * Math.Sin(2 * Math.PI * freq * i / SampleRate) +
0.15 * Math.Sin(4 * Math.PI * freq * i / SampleRate) +
0.05 * Math.Sin(6 * Math.PI * freq * i / SampleRate);
monoVal = (float)(amplitude * envelope * waveform);
}//if (!isSilence)
short monoSample = (short)(Math.Max(-1.0f, Math.Min(1.0f, monoVal)) * short.MaxValue);
monoBw.Write(monoSample);
dataSizeMono += 2;
double swingT = (currentSample + i) / (SampleRate * 0.006);
double pan = Math.Sin(swingT * Math.PI * 2 / 400);
float left = (float)((1 - pan) / 2.0 * monoVal);
float right = (float)((1 + pan) / 2.0 * monoVal);
short l = (short)(Math.Max(-1.0f, Math.Min(1.0f, left)) * short.MaxValue);
short r = (short)(Math.Max(-1.0f, Math.Min(1.0f, right)) * short.MaxValue);
stereoBw.Write(l);
stereoBw.Write(r);
dataSizeStereo += 4;
}//for (long i = 0; i < durationSamples; i++)
currentSample += durationSamples;
}//foreach (var note in notes)
// Pad remaining if needed
while (currentSample < maxSamples)
{
monoBw.Write((short)0);
stereoBw.Write((short)0);
stereoBw.Write((short)0);
currentSample++;
dataSizeMono += 2;
dataSizeStereo += 4;
}//while (currentSample < maxSamples)
// Update headers
monoBw.Seek(4, SeekOrigin.Begin);
monoBw.Write((int)(dataSizeMono + 36));
monoBw.Seek(40, SeekOrigin.Begin);
monoBw.Write((int)dataSizeMono);
stereoBw.Seek(4, SeekOrigin.Begin);
stereoBw.Write((int)(dataSizeStereo + 36));
stereoBw.Seek(40, SeekOrigin.Begin);
stereoBw.Write((int)dataSizeStereo);
}//using (var stereoBw = new BinaryWriter(File.Create(stereoPath)))
}//using (var monoBw = new BinaryWriter(File.Create(monoPath)))
}// public static void GenerateWavFromMelodyData___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES(string filePath)
private static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
{
int byteRate = SampleRate * channels * BytesPerSample;
int blockAlign = channels * BytesPerSample;
bw.Write(System.Text.Encoding.ASCII.GetBytes("RIFF"));
bw.Write(dataSize + 36); // Placeholder size
bw.Write(System.Text.Encoding.ASCII.GetBytes("WAVE"));
bw.Write(System.Text.Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1); // PCM
bw.Write((short)channels);
bw.Write(SampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)(BytesPerSample * 8));
bw.Write(System.Text.Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
}//private static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
}// public static class FluteMelodyWavGenerator___DISCRETE_NOTES____WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
public static class DISCARDING___CANNOT_GENERATE_LARGE_WAV_FILES______SAMPLE_COUNTS_LIMITS_ARE_THERES___FluteMelodyWavGenerator___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
{
const int SampleRate = 8000;
const int BytesPerSample = 2;
public static void GenerateWavFromMelodyData___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES(string filePath)
{
var lines = File.ReadAllLines(filePath);
var notes = new List<(int startMs, int durationMs, string freqStr)>();
foreach (var line in lines)
{
var parts = line.Split(new[] { "######" }, StringSplitOptions.None);
if (parts.Length != 3) continue;
if (!int.TryParse(parts[0].Trim(), out int startMs)) continue;
if (!int.TryParse(parts[1].Trim(), out int durationMs)) continue;
string freqStr = parts[2].Trim();
notes.Add((startMs, durationMs, freqStr));
}//foreach (var line in lines)
////// int totalSamples = (int)(notes.Max(n => n.startMs + n.durationMs) * SampleRate / 1000.0);
//////// double totalSamples = (notes.Max(n => n.startMs + n.durationMs) * SampleRate / 1000.0);
////// float[] monoSamples = new float[totalSamples];
////// float[] stereoLeft = new float[totalSamples];
////// float[] stereoRight = new float[totalSamples];
///
long totalSamples = (long)(notes.Max(n => n.startMs + n.durationMs) * SampleRate / 1000.0);
if (totalSamples > int.MaxValue)
throw new InvalidOperationException("Sample count exceeds maximum supported size for in-memory array.");
float[] monoSamples = new float[(int)totalSamples];
float[] stereoLeft = new float[(int)totalSamples];
float[] stereoRight = new float[(int)totalSamples];
/// Then ensure you use long or cast carefully in:
foreach (var note in notes)
{
int startSample = note.startMs * SampleRate / 1000;
int durationSamples = note.durationMs * SampleRate / 1000;
double amplitude = 0.8;
bool isSilence = (note.freqStr == "-" || note.freqStr == "0");
double freq = 0;
if (!isSilence) freq = double.Parse(note.freqStr, CultureInfo.InvariantCulture);
for (int i = 0; i < durationSamples && (startSample + i) < totalSamples; i++)
{
double tNorm = (double)i / durationSamples;
double envelope = 0.5 * (1 - Math.Cos(2 * Math.PI * tNorm));
float monoVal = 0f;
if (!isSilence)
{
double waveform =
0.8 * Math.Sin(2 * Math.PI * freq * i / SampleRate) +
0.15 * Math.Sin(4 * Math.PI * freq * i / SampleRate) +
0.05 * Math.Sin(6 * Math.PI * freq * i / SampleRate);
monoVal = (float)(amplitude * envelope * waveform);
}//if (!isSilence)
monoSamples[startSample + i] += monoVal;
// Swinging PAN every ~6ms
double swingT = (startSample + i) / (SampleRate * 0.006); // every 6ms
double pan = Math.Sin(swingT * Math.PI * 2 / 400); // full swing in ~2.4 sec
float left = (float)((1 - pan) / 2.0 * monoVal);
float right = (float)((1 + pan) / 2.0 * monoVal);
stereoLeft[startSample + i] += left;
stereoRight[startSample + i] += right;
}//for (int i = 0; i < durationSamples && (startSample + i) < totalSamples; i++)
}//foreach (var note in notes)
string monoPath = filePath + "_mono_8000_16pcms.wav";
SaveWavMono16Bit(monoPath, monoSamples);
string stereoPath = filePath + "_stereo_2_channels_PAN_gradually_swinging__8000_16pcms.wav";
SaveWavStereo16Bit(stereoPath, stereoLeft, stereoRight);
}//public static void GenerateWavFromMelodyData___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES(string filePath)
private static void SaveWavMono16Bit(string path, float[] samples)
{
using (var bw = new BinaryWriter(File.Create(path)))
{
int dataSize = samples.Length * BytesPerSample;
WriteWavHeader(bw, 1, dataSize);
foreach (float f in samples)
{
short s = (short)(Math.Max(-1.0f, Math.Min(1.0f, f)) * short.MaxValue);
bw.Write(s);
}//foreach (float f in samples)
}//using (var bw = new BinaryWriter(File.Create(path)))
}//private static void SaveWavMono16Bit(string path, float[] samples)
private static void SaveWavStereo16Bit(string path, float[] left, float[] right)
{
using (var bw = new BinaryWriter(File.Create(path)))
{
int dataSize = left.Length * BytesPerSample * 2;
WriteWavHeader(bw, 2, dataSize);
for (int i = 0; i < left.Length; i++)
{
short l = (short)(Math.Max(-1.0f, Math.Min(1.0f, left[i])) * short.MaxValue);
short r = (short)(Math.Max(-1.0f, Math.Min(1.0f, right[i])) * short.MaxValue);
bw.Write(l);
bw.Write(r);
}//for (int i = 0; i < left.Length; i++)
}//using (var bw = new BinaryWriter(File.Create(path)))
}//private static void SaveWavStereo16Bit(string path, float[] left, float[] right)
private static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
{
int byteRate = SampleRate * channels * BytesPerSample;
int blockAlign = channels * BytesPerSample;
bw.Write(System.Text.Encoding.ASCII.GetBytes("RIFF"));
bw.Write(36 + dataSize);
bw.Write(System.Text.Encoding.ASCII.GetBytes("WAVE"));
bw.Write(System.Text.Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1); // PCM
bw.Write((short)channels);
bw.Write(SampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)(BytesPerSample * 8));
bw.Write(System.Text.Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
}//private static void WriteWavHeader(BinaryWriter bw, int channels, int dataSize)
}//public static class DISCARDING___CANNOT_GENERATE_LARGE_WAV_FILES______SAMPLE_COUNTS_LIMITS_ARE_THERES___FluteMelodyWavGenerator___WITHOUT_CUSTOMIZING_VELOCITY_ON_NOTES
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class ThetaFeature
{
public int SampleIndex;
public double TimeMilliseconds;
public double SumLeft;
public double SumRight;
public double GapMilliseconds;
public double SumDifference;
public double DotProduct;
public double ThetaDegrees;
public double DIFFERENCE_BETWEEN_THE_ABS_NEXT_AMPLITUDE_TO_ABS_CURRENT_AMPLITUDE = 0;
public double MILLISECOND_PER_SAMPLE_GAP = 0;
public double THE_ARC_TAN_FOR_CURRENT_SAMPLE_TO_NEXT_SAMPLE = 0;
public int THE_DEGREES_0_TO_900_THAT_IS_10_TIMES_SCALED_FOR_900_SIZED_ARRAYS = 0;
}//public class ThetaFeature
public class ThetaRotationBucketer
{
private List<ThetaFeature>[] buckets;
private int sampleRate;
private float[] samples;
private int k_for_crawler_left_and_right_of_current_samples_index_to_calculate_angles;
public ThetaRotationBucketer(float[] monoSamples, int sampleRate)
{
this.samples = monoSamples;
this.sampleRate = sampleRate;
this.buckets = new List<ThetaFeature>[1801];
for (int i = 0; i <= 1800; i++)
{
buckets[i] = new List<ThetaFeature>();
}
this.k_for_crawler_left_and_right_of_current_samples_index_to_calculate_angles
= sampleRate / 200;//WE ASSUME WE ARE HANDLING THE 8000 SAMPLES PER SECONDS DEFAULT
}//public ThetaRotationBucketer(float[] monoSamples, int sampleRate)
public void Process___ThetaRotationBucketer(int k_supplied, ref System.Windows.Forms.ProgressBar progressBar)
{
int total = samples.Length;
int k = k_supplied == 0 ? this.k_for_crawler_left_and_right_of_current_samples_index_to_calculate_angles : k_supplied;
int start = k;
int end = total - k;
double millisPerSample = 1000.0 / sampleRate;
progressBar.Maximum = 100;
for (int i = start; i < end; i++)
{
double sumLeft = 0;
double sumRight = 0;
double dotProduct = 0;
for (int j = 1; j <= k; j++)
{
float left = samples[i - j];
float right = samples[i + j];
sumLeft += left;
sumRight += right;
dotProduct += left * right;
}// for (int j = 1; j <= k; j++)
double dGap = k * 2 * millisPerSample;
double delta = sumRight - sumLeft;
// Enhanced quadrant-aware angle calculation
double thetaRad = 0;
if ((sumLeft >= 0 && sumRight >= 0) || (sumLeft < 0 && sumRight < 0))
{
if((sumLeft >= 0 && sumRight >= 0) && (sumLeft <= sumRight))
{
// anticlock rotation so it is to take 90 + degrees
// Both on same side, normal atan2
thetaRad = Math.Atan2(delta, dGap);
thetaRad = (Math.PI) - thetaRad;// (Math.PI / 2) - thetaRad;//(Math.PI / 2) + thetaRad;// (Math.PI / 2) + thetaRad;
}
else if ((sumLeft >= 0 && sumRight >= 0) && (sumLeft > sumRight))
{
// clock rotation so it is to take 90 + degrees
// Both on same side, normal atan2
thetaRad = Math.Atan2(delta, dGap);
// thetaRad = (Math.PI / 2) + thetaRad;
}
else if ((sumLeft < 0 && sumRight <0) && (sumLeft < sumRight))
{
// anticlock rotation so it is to take 90 + degrees
// Both on same side, normal atan2
thetaRad = Math.Atan2(delta, dGap);
thetaRad = (Math.PI ) - thetaRad; // (Math.PI / 2) - thetaRad;// (Math.PI / 2) + thetaRad;
}
else if ((sumLeft < 0 && sumRight < 0) && (sumLeft > sumRight))
{
// anticlock rotation so it is to take 90 + degrees
// Both on same side, normal atan2
thetaRad = (Math.PI / 2);// Math.Atan2(delta, dGap);
// thetaRad = thetaRad;
}
else
{
thetaRad = Math.Atan2(delta, dGap);
//to check
}
}
else
{
// Mixed signs, emphasize rotation crossing axis
thetaRad = Math.Atan2(delta * 1.5, dGap);
}//end of else of if ((sumLeft >= 0 && sumRight >= 0) || (sumLeft < 0 && sumRight < 0))
double thetaDeg = (180.0 / Math.PI) * thetaRad;
double absTheta = Math.Abs(thetaDeg);
int bucketIndex = Math.Min(1800, (int)Math.Round(absTheta * 10));
ThetaFeature feature = new ThetaFeature()
{
SampleIndex = i,
TimeMilliseconds = i * millisPerSample,
SumLeft = sumLeft,
SumRight = sumRight,
GapMilliseconds = dGap,
SumDifference = delta,
DotProduct = dotProduct,
ThetaDegrees = thetaDeg
};
buckets[bucketIndex].Add(feature);
if (i % 10000 == 0)
{
progressBar.Value = (int)((i * 100.0) / total);
progressBar.Invalidate();
progressBar.Refresh();
}
}
progressBar.Value = 100;
progressBar.Invalidate();
progressBar.Refresh();
}//public void Process___ThetaRotationBucketer(int k_supplied, ref System.Windows.Forms.ProgressBar progressBar)
//////public void Process___ThetaRotationBucketer(int k_supplied ,ref System.Windows.Forms.ProgressBar progressBar)
//////{
////// //i think the deeper calculationsnecessary here
////// //since we will try to generate vectors toe tip toe tip additions of these rotor vectors
////// ///??????????? to take care seperately to understand right rotations situations
////// //?????????????? when sumRight>sumLeft and both negative when when sumRight<sumLeft and both negative
////// //?????????????? when sumRight>sumLeft and both positive when when sumRight<sumLeft and both positive
////// //?????????????? when sumRight>sumLeft and one negative other positive when when sumRight<sumLeft and one negative other positive
////// //default call with k_supplied=0 otherwise this.k_for_crawler_left_and_right_of_current_samples_index_to_calculate_angles
////// int total = samples.Length;
////// int k = 1;// k_supplied
////// int start = 1;// k;
////// int end = total-k;// total - k;
////// if (k_supplied == 0)
////// {
////// //////k = k_supplied;
////// //////start = k;
////// //////end = total - k;
////// k = this.k_for_crawler_left_and_right_of_current_samples_index_to_calculate_angles;
////// start = k;
////// end = total - k;
////// }
////// else
////// {
////// k = k_supplied;
////// start = k;//k_supplied
////// end = total - k; ;// total - k_supplied;
////// }//end of else of if (k_supplied == 0)
////// double millisPerSample = 1000.0 / sampleRate;
////// progressBar.Maximum = 100;
////// for (int i = start; i < end; i++)
////// {
////// double sumLeft = 0;
////// double sumRight = 0;
////// double dotProduct = 0;
////// for (int j = 1; j <= k; j++)
////// {
////// float left = samples[i - j];
////// float right = samples[i + j];
////// sumLeft += left;
////// sumRight += right;
////// dotProduct += left * right;
////// }//for (int j = 1; j <= k; j++)
////// double dGap = k * 2 * millisPerSample;
////// double delta = sumRight - sumLeft; //?????????????
////// //i think the deeper calculationsnecessary here
////// //since we will try to generate vectors toe tip toe tip additions of these rotor vectors
////// ///??????????? to take care seperately to understand right rotations situations
////// //?????????????? when sumRight>sumLeft and both negative when when sumRight<sumLeft and both negative
////// //?????????????? when sumRight>sumLeft and both positive when when sumRight<sumLeft and both positive
////// //?????????????? when sumRight>sumLeft and one negative other positive when when sumRight<sumLeft and one negative other positive
////// double thetaRad = Math.Atan2(delta, dGap);//?????????????
////// //since we will try to generate vectors toe tip toe tip additions of these rotor vectors
////// ///??????????? to take care seperately to understand right rotations situations
////// //?????????????? when sumRight>sumLeft and both negative when when sumRight<sumLeft and both negative
////// //?????????????? when sumRight>sumLeft and both positive when when sumRight<sumLeft and both positive
////// //?????????????? when sumRight>sumLeft and one negative other positive when when sumRight<sumLeft and one negative other positive
////// double thetaDeg = (180.0 / Math.PI) * thetaRad;
////// double absTheta = Math.Abs(thetaDeg);
////// int bucketIndex = Math.Min(1800, (int)Math.Round(absTheta * 10));
////// ThetaFeature feature = new ThetaFeature()
////// {
////// SampleIndex = i,
////// TimeMilliseconds = i * millisPerSample,
////// SumLeft = sumLeft,
////// SumRight = sumRight,
////// GapMilliseconds = dGap,
////// SumDifference = delta,
////// DotProduct = dotProduct,
////// ThetaDegrees = thetaDeg
////// };
////// buckets[bucketIndex].Add(feature);
////// if (i % 10000 == 0)
////// {
////// progressBar.Value = (int)((i * 100.0) / total);
////// progressBar.Invalidate();
////// progressBar.Refresh();
////// }//if (i % 10000 == 0)
////// }//for (int i = start; i < end; i++)
////// progressBar.Value = 100;
////// progressBar.Invalidate();
////// progressBar.Refresh();
//////}//public void Process___ThetaRotationBucketer(ref System.Windows.Forms.ProgressBar progressBar)
public List<ThetaFeature>[] GetBuckets()
{
return buckets;
}//public List<ThetaFeature>[] GetBuckets()
public static void GenerateHighClarityBitmap1800Bins(List<ThetaFeature>[] buckets, string outputPath, int width, int height)
{
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height);
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
{
g.Clear(System.Drawing.Color.White);
using (var font = new System.Drawing.Font("Arial", 6))
using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
{
int seconds = width / 10;
for (int s = 0; s <= seconds; s++)
{
int x = s * 10;
g.DrawLine(thinPen, x, 0, x, height);
g.DrawString(s.ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
}//for (int s = 0; s <= seconds; s++)
}//using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
for (int bucketIndex = 0; bucketIndex < 1800; bucketIndex++)
{
var features = buckets[bucketIndex];
foreach (var feature in features)
{
int x = (int)(feature.TimeMilliseconds / 1000.0 * 10);
int y = bucketIndex * height / 1800;
if (x >= 0 && x < width && y >= 0 && y < height)
{
int density = features.Count;
System.Drawing.Color dotColor = System.Drawing.Color.Lime;
if (density > 10000) dotColor = System.Drawing.Color.Red;
else if (density > 5000) dotColor = System.Drawing.Color.Orange;
else if (density > 2000) dotColor = System.Drawing.Color.Yellow;
bmp.SetPixel(x, y, dotColor);
}//if (x >= 0 && x < width && y >= 0 && y < height)
}//foreach (var feature in features)
}//for (int bucketIndex = 0; bucketIndex < 1800; bucketIndex++)
}//using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
bmp.Save(outputPath);
}//public static void GenerateHighClarityBitmap1800Bins(List<ThetaFeature>[] buckets, string outputPath, int width, int height)
public static void GenerateBucketBitmap( List<ThetaFeature>[] buckets, string outputPath, int width, int height)
{
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height);
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
{
g.Clear(System.Drawing.Color.White);
// Draw vertical lines for seconds
int seconds = width / 10;
using (System.Drawing.Pen pen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
{
for (int s = 0; s < seconds; s++)
{
int x = s * 10;
g.DrawLine(pen, x, 0, x, height);
}
}
for (int bucketIndex = 0; bucketIndex < 1800; bucketIndex++)
{
int count = buckets[bucketIndex].Count;
foreach (var feature in buckets[bucketIndex])
{
int x = (int)(feature.TimeMilliseconds / 1000.0 * 10);
int y = bucketIndex * height / 1800;
if (x >= 0 && x < width && y >= 0 && y < height)
{
System.Drawing.Color dotColor = count > 100 ? System.Drawing.Color.Red : System.Drawing.Color.Lime;
bmp.SetPixel(x, y, dotColor);
}//if (x >= 0 && x < width && y >= 0 && y < height)
}//foreach (var feature in buckets[bucketIndex])
}//for (int bucketIndex = 0; bucketIndex < 1800; bucketIndex++)
}//using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
bmp.Save(outputPath);
}//public static void GenerateBucketBitmap(List<ThetaFeature>[] buckets, string outputPath, int width, int height)
//////public static void GenerateBucketBitmap(List<ThetaFeature>[] buckets, string outputPath, int width, int height)
//////{
////// System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height);
////// using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
////// {
////// // g.Clear(System.Drawing.Color.Black);
////// // i need the vertical grids thin line for seconds (1000 milliseconds)
////// // i need the total count buckets total data on the horizontal line for bucketIndex
////// // i need the sparse dots in green and dense dots in red
////// g.Clear(System.Drawing.Color.White);
////// for (int bucketIndex = 0; bucketIndex < 1800; bucketIndex++)
////// {
////// foreach (var feature in buckets[bucketIndex])
////// {
////// int x = (int)(feature.TimeMilliseconds / 1000.0 * 10);
////// int y = bucketIndex * height / 1800;
////// if (x >= 0 && x < width && y >= 0 && y < height)
////// {
////// bmp.SetPixel(x, y, System.Drawing.Color.Lime);//i need the custom color
////// }//if (x >= 0 && x < width && y >= 0 && y < height)
////// }//foreach (var feature in buckets[bucketIndex])
////// }//for (int bucketIndex = 0; bucketIndex < 1800; bucketIndex++)
////// }//using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
////// bmp.Save(outputPath);
//////}//public static void GenerateBucketBitmap(List<ThetaFeature>[] buckets, string outputPath, int width, int height)
}//public class ThetaRotationBucketer
//////public class ThetaFeature
//////{
////// // I HAVE TO INCORPORATE SEVERAL MORE THINGS HERE
////// public int SampleIndex;
////// public double TimeMs;
////// public double SumLeft;
////// public double SumRight;
////// public double DeltaGap;
////// public double DotProduct;
////// public double ThetaDeg;
//////}//public class ThetaFeature
//////public class ThetaFeature
//////{
////// public int SampleIndex;
////// public double TimeMilliseconds;
////// public double SumLeft;
////// public double SumRight;
////// public double GapMilliseconds;
////// public double SumDifference;
////// public double DotProduct;
////// public double ThetaDegrees;
//////}//public class ThetaFeature
//////public class ThetaRotationBucketer
//////{
////// private List<ThetaFeature>[] buckets;
////// private int sampleRate;
////// private float[] samples;
////// private int k;
////// public ThetaRotationBucketer(float[] monoSamples, int sampleRate)
////// {
////// this.samples = monoSamples;
////// this.sampleRate = sampleRate;
////// this.buckets = new List<ThetaFeature>[1801];
////// for (int i = 0; i <= 1800; i++)
////// {
////// buckets[i] = new List<ThetaFeature>();
////// }
////// this.k = sampleRate / 200; // 100 ms window (k/2 on each side)
////// }//public ThetaRotationBucketer(float[] monoSamples, int sampleRate)
////// public void Process___ThetaRotationBucketer(ref System.Windows.Forms.ProgressBar progressBar)
////// {
////// int total = samples.Length;
////// int start = k;
////// int end = total - k;
////// double millisPerSample = 1000.0 / sampleRate;
////// progressBar.Maximum = 100;
////// for (int i = start; i < end; i++)
////// {
////// double sumLeft = 0;
////// double sumRight = 0;
////// double dotProduct = 0;
////// for (int j = 1; j <= k; j++)
////// {
////// float left = samples[i - j];
////// float right = samples[i + j];
////// sumLeft += left;
////// sumRight += right;
////// dotProduct += left * right;
////// }//for (int j = 1; j <= k; j++)
////// double dGap = k * 2 * millisPerSample;
////// double delta = sumRight - sumLeft;
////// double thetaRad = Math.Atan2(delta, dGap);
////// double thetaDeg = (180.0 / Math.PI) * thetaRad;
////// double absTheta = Math.Abs(thetaDeg);
////// int bucketIndex = Math.Min(1800, (int)Math.Round(absTheta * 10));
////// ThetaFeature feature = new ThetaFeature()
////// {
////// SampleIndex = i,
////// TimeMilliseconds = i * millisPerSample,
////// SumLeft = sumLeft,
////// SumRight = sumRight,
////// GapMilliseconds = dGap,
////// SumDifference = delta,
////// DotProduct = dotProduct,
////// ThetaDegrees = thetaDeg
////// };
////// buckets[bucketIndex].Add(feature);
////// if (i % 10000 == 0)
////// {
////// progressBar.Value = (int)((i * 100.0) / total);
////// progressBar.Invalidate();
////// progressBar.Refresh();
////// }//if (i % 10000 == 0)
////// }//for (int i = start; i < end; i++)
////// progressBar.Value = 100;
////// progressBar.Invalidate();
////// progressBar.Refresh();
////// }// public void Process___ThetaRotationBucketer(ref System.Windows.Forms.ProgressBar progressBar)
////// public List<ThetaFeature>[] GetBuckets()
////// {
////// return buckets;
////// }//public List<ThetaFeature>[] GetBuckets()
//////}//public class ThetaRotationBucketer
public class WavMetadata
{
//WavMetadata.PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
//WavMetadata.PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
//WavMetadata.PUBLIC_STATIC_BOOL___IS_THE_RESAMPLING_COMPLETE
//WavMetadata.PUBLIC_STATIC_BOOL___IS_THE_STANDARD_FILE_WRITING_COMPLETE
public static long PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = 0;
public static long PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = 0;
public static bool PUBLIC_STATIC_BOOL___IS_THE_RESAMPLING_COMPLETE = false;
public static bool PUBLIC_STATIC_BOOL___IS_THE_STANDARD_FILE_WRITING_COMPLETE = false;
public int SampleRate { get; set; }
public int Channels { get; set; }
public int BitsPerSample { get; set; }
public static WavMetadata Read(string path)
{
WavMetadata meta = new WavMetadata();
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
br.ReadBytes(12); // RIFF header
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16(); // Audio format
meta.Channels = br.ReadInt16();
meta.SampleRate = br.ReadInt32();
br.ReadInt32(); // Byte rate
br.ReadInt16(); // Block align
meta.BitsPerSample = br.ReadInt16();
if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
}
else
{
br.BaseStream.Position += chunkSize;
}//END OF ELSE OF if (chunkID == "fmt ")
}//while (br.BaseStream.Position < br.BaseStream.Length)
}//using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
return meta;
}//public static WavMetadata Read(string path)
}//public class WavMetadata
public static class WavResampler
{
//WavResampler.ThetaCounts THIS IS DICTIONARY = new Dictionary<int, int>();
//WavResampler.ThetaCounts
//WavResampler.ThetaCountMedian
//WavResampler.public_static_double___dtMs___1000_slash_sampleRate
//WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins
//WavResampler.FirstScanThetaBinning___for_1800_level_details_With_HermitesOperations
public static Dictionary<int, int> ThetaCounts = new Dictionary<int, int>();
public static int ThetaCountMedian = 0;
// float[] samples = samples;// ReadWavMonoAsFloats(inputWavPath, out int sampleRate);
public static double public_static_double___dtMs___1000_slash_sampleRate = 1;//1000.0 / sampleRate;
public static List<double>[] public_static___1800_sArray_of_List_of_doubles___thetaBins = { };// new List<double>[1800];
public static double FluteWave(double t)
{
return
0.8 * Math.Sin(2 * Math.PI * t) +
0.15 * Math.Sin(4 * Math.PI * t) +
0.05 * Math.Sin(6 * Math.PI * t);
}// public static double FluteWave(double t)
public static double Envelope(double x)
{
return 0.5 * (1 - Math.Cos(2 * Math.PI * x)); // 0 to 1
}//public static double Envelope(double x)
public static void RE_SPECIAL___Generate___Bitmap_And_Wav___From_1800_Bins
(
string basePath, int width, int height,
ref System.Windows.Forms.ProgressBar progressBar,
int min_bucket_number_to_filter,
int maxes_bucket_number_to_filter
)
{
int sampleRate = 8000;
int intervalMs = 500;
int samplesPerInterval = sampleRate * intervalMs / 1000;
List<short> waveformSamples = new List<short>();
StringBuilder csv = new StringBuilder();
csv.AppendLine("sl_no,millis_from,millis_to,duration_ms,sum_custom");
using (Bitmap bmp = new Bitmap(width, height))
{
BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, width, height),
ImageLockMode.ReadWrite, bmp.PixelFormat);
int stride = bmpData.Stride;
IntPtr ptr = bmpData.Scan0;
int bytes = stride * height;
byte[] rgbValues = new byte[bytes];
for (int i = 0; i < rgbValues.Length; i += 3)
rgbValues[i] = rgbValues[i + 1] = rgbValues[i + 2] = 255;
Color[] gradientColors = Enumerable.Range(0, 60)
.Select(i => Color.FromArgb((int)(255.0 * i / 59), (int)(255.0 * (59 - i) / 59), 0))
.ToArray();
for (int bucket = 0; bucket < 1800; bucket++)
{
var times = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucket];
int density = times.Count;
if (density == 0) continue;
int colorIndex = Math.Min(59, density / 100);
Color dotColor = gradientColors[colorIndex];
int y = height - bucket * height / 1800;
foreach (double t in times)
{
int x = (int)(t / 1000.0 * 10);
if (x >= 0 && x < width)
{
int pos = y * stride + x * 3;
if (pos + 2 < rgbValues.Length)
{
rgbValues[pos + 0] = dotColor.B;
rgbValues[pos + 1] = dotColor.G;
rgbValues[pos + 2] = dotColor.R;
}//if (pos + 2 < rgbValues.Length)
}//if (x >= 0 && x < width)
}//foreach (double t in times)
}//for (int bucket = 0; bucket < 1800; bucket++)
System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);
bmp.UnlockBits(bmpData);
using (Graphics g = Graphics.FromImage(bmp))
using (Font font = new Font("Arial", 6))
using (Pen pen = new Pen(Color.LightGray))
{
int totalMs = (int)WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins
.SelectMany(list => list)
.DefaultIfEmpty(0).Max();
int totalBlocks = totalMs / intervalMs;
progressBar.Maximum = totalBlocks;
for (int s = 0; s < totalBlocks; s++)
{
int x = s * 5;
g.DrawLine(pen, x, 0, x, height);
g.DrawString((s * intervalMs).ToString(), font, Brushes.Black, x + 1, 0);
double msStart = s * intervalMs;
double msEnd = msStart + intervalMs;
int sumBins = 0;
for (int bin = min_bucket_number_to_filter; bin <= maxes_bucket_number_to_filter; bin++)
{
foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
{
if (t >= msStart && t < msEnd)
sumBins++;
if (t >= msEnd) break;
}//foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
}//for (int bin = min_bucket_number_to_filter; bin <= maxes_bucket_number_to_filter; bin++)
csv.AppendLine($"{s + 1},{msStart},{msEnd},{intervalMs},{sumBins}");
double frequency = sumBins * 2;
double amplitude = Math.Min(0.8, sumBins / 1000.0);
for (int i = 0; i < samplesPerInterval; i++)
{
double localT = (double)i / samplesPerInterval; // [0,1]
double envelope = 0.5 * (1 - Math.Cos(2 * Math.PI * localT)); // Raised cosine envelope
double waveform =
0.8 * Math.Sin(2 * Math.PI * frequency * localT) +
0.15 * Math.Sin(4 * Math.PI * frequency * localT) +
0.05 * Math.Sin(6 * Math.PI * frequency * localT);
double value = amplitude * envelope * waveform;
short sample = (short)(value * short.MaxValue);
waveformSamples.Add(sample);
}//for (int i = 0; i < samplesPerInterval; i++)
if (s % 5 == 0)
{
progressBar.Value = Math.Min(s, progressBar.Maximum - 1);
progressBar.Invalidate();
progressBar.Refresh();
}//if (s % 5 == 0)
}//for (int s = 0; s < totalBlocks; s++)
for (int b = 0; b < 1800; b += 6)
{
int y = height - (b * height / 1800);
g.DrawString(b.ToString(), font, Brushes.Black, width - 60, y);
}//for (int b = 0; b < 1800; b += 6)
}
bmp.Save(Path.ChangeExtension(basePath, ".png"), ImageFormat.Png);
File.WriteAllText(Path.ChangeExtension(basePath, ".csv"), csv.ToString());
string wavPath = basePath + "_" + min_bucket_number_to_filter + "_" + maxes_bucket_number_to_filter + ".wav";
RESPECIAL___SaveMono16BitWav(wavPath, waveformSamples.ToArray(), sampleRate);
}
}// public static void RE_SPECIAL___Generate___Bitmap_And_Wav___From_1800_Bins
/// <summary>
/// ///////////////////////////////////////////////
/// </summary>
/// <param name="basePath"></param>
/// <param name="width"></param>
/// <param name="height"></param>
/// <param name="progressBar"></param>
/// <param name="min_bucket_number_to_filter"></param>
/// <param name="maxes_bucket_number_to_filter"></param>
public static void DISCARDING___THE_FLUTES_SAMPLES_ARE_NOT_GOOD_TO_LISTEN___RE_SPECIAL___Generate___Bitmap_And_Wav___From_1800_Bins
(
string basePath, int width, int height,
ref System.Windows.Forms.ProgressBar progressBar
,
int min_bucket_number_to_filter
,
int maxes_bucket_number_to_filter
)
{
int sampleRate = 8000;
int intervalMs = 500;
int samplesPerInterval = sampleRate * intervalMs / 1000;
List<short> waveformSamples = new List<short>();
StringBuilder csv = new StringBuilder();
csv.AppendLine("sl_no,millis_from,millis_to,duration_ms,sum_100_900");
using (Bitmap bmp = new Bitmap(width, height))
{
BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, width, height),
ImageLockMode.ReadWrite, bmp.PixelFormat);
int stride = bmpData.Stride;
IntPtr ptr = bmpData.Scan0;
int bytes = stride * height;
byte[] rgbValues = new byte[bytes];
for (int i = 0; i < rgbValues.Length; i += 3) { rgbValues[i] = rgbValues[i + 1] = rgbValues[i + 2] = 255; }
Color[] gradientColors = Enumerable.Range(0, 60)
.Select(i => Color.FromArgb((int)(255.0 * i / 59), (int)(255.0 * (59 - i) / 59), 0))
.ToArray();
for (int bucket = 0; bucket < 1800; bucket++)
{
var times = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucket];
int density = times.Count;
if (density == 0) continue;
int colorIndex = Math.Min(59, density / 100);
Color dotColor = gradientColors[colorIndex];
int y = height - bucket * height / 1800;
foreach (double t in times)
{
int x = (int)(t / 1000.0 * 10);
if (x >= 0 && x < width)
{
int pos = y * stride + x * 3;
if (pos + 2 < rgbValues.Length)
{
rgbValues[pos + 0] = dotColor.B;
rgbValues[pos + 1] = dotColor.G;
rgbValues[pos + 2] = dotColor.R;
}
}
}
}
System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);
bmp.UnlockBits(bmpData);
using (Graphics g = Graphics.FromImage(bmp))
using (Font font = new Font("Arial", 6))
using (Pen pen = new Pen(Color.LightGray))
{
int totalMs = (int)WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins
.SelectMany(list => list)
.DefaultIfEmpty(0).Max();
int totalBlocks = totalMs / intervalMs;
progressBar.Maximum = totalBlocks;
for (int s = 0; s < totalBlocks; s++)
{
int x = s * 5;
g.DrawLine(pen, x, 0, x, height);
g.DrawString((s * intervalMs).ToString(), font, Brushes.Black, x + 1, 0);
double msStart = s * intervalMs;
double msEnd = msStart + intervalMs;
int sum_100_900 = 0;
int sum_custom_ranges_counter_mins_bucket_to_uptos_bucket = 0;
//////,
////// int min_bucket_number_to_filter
//////,
////// int maxes_bucket_number_to_filter
///
// sum_custom_ranges_counter_mins_bucket_to_uptos_bucket
for (int bin = min_bucket_number_to_filter; bin <= maxes_bucket_number_to_filter; bin++)
{
foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
{
if (t >= msStart && t < msEnd)
{ sum_custom_ranges_counter_mins_bucket_to_uptos_bucket++; }
if (t >= msEnd) break;
}//foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
}// for (int bin = min_bucket_number_to_filter; bin <= maxes_bucket_number_to_filter; bin++)
//////for (int bin = 100; bin <= 900; bin++)
//////{
////// foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
////// {
////// if (t >= msStart && t < msEnd)
////// sum_100_900++;
////// if (t >= msEnd) break;
////// }//foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
//////}//for (int bin = 100; bin <= 900; bin++)
// csv.AppendLine($"{s + 1},{msStart},{msEnd},{intervalMs},{sum_100_900}");
csv.AppendLine($"{s + 1},{msStart},{msEnd},{intervalMs},{sum_custom_ranges_counter_mins_bucket_to_uptos_bucket}");
//////double frequency = sum_100_900 * 2;
//////double amplitude = Math.Min(0.8, sum_100_900 / 1000.0);
///
double frequency = sum_custom_ranges_counter_mins_bucket_to_uptos_bucket * 2;
// double amplitude = Math.Min(0.8, sum_custom_ranges_counter_mins_bucket_to_uptos_bucket / 1000.0);
double amplitude = Math.Min(0.8, sum_custom_ranges_counter_mins_bucket_to_uptos_bucket / 1000.0);
//pureflutessamples_501_samples_0.3_to_-0.3 0
//pureflutessamples_501_samples_0.3_to_-0.3 0.02331614
//pureflutessamples_501_samples_0.3_to_-0.3 -0.0077517
//pureflutessamples_501_samples_0.3_to_-0.3 -0.02798547
//pureflutessamples_501_samples_0.3_to_-0.3 -0.02908414
//pureflutessamples_501_samples_0.3_to_-0.3 -0.05850398
//pureflutessamples_501_samples_0.3_to_-0.3 -0.09094516
//pureflutessamples_501_samples_0.3_to_-0.3 -0.06631672
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03436384
//pureflutessamples_501_samples_0.3_to_-0.3 -0.02182074
//pureflutessamples_501_samples_0.3_to_-0.3 0.0135197
//pureflutessamples_501_samples_0.3_to_-0.3 0.04986725
//pureflutessamples_501_samples_0.3_to_-0.3 0.03921628
//pureflutessamples_501_samples_0.3_to_-0.3 0.03595081
//pureflutessamples_501_samples_0.3_to_-0.3 0.01977599
//pureflutessamples_501_samples_0.3_to_-0.3 0.00964385
//pureflutessamples_501_samples_0.3_to_-0.3 -0.00851466
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03915525
//pureflutessamples_501_samples_0.3_to_-0.3 -0.00308237
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04776147
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04342784
//pureflutessamples_501_samples_0.3_to_-0.3 -0.06680502
//pureflutessamples_501_samples_0.3_to_-0.3 -0.0585345
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03625599
//pureflutessamples_501_samples_0.3_to_-0.3 -0.06329539
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04235969
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03161718
//pureflutessamples_501_samples_0.3_to_-0.3 0.00451674
//pureflutessamples_501_samples_0.3_to_-0.3 0.02441481
//pureflutessamples_501_samples_0.3_to_-0.3 0.05139317
//pureflutessamples_501_samples_0.3_to_-0.3 0.05514695
//pureflutessamples_501_samples_0.3_to_-0.3 0.07565539
//pureflutessamples_501_samples_0.3_to_-0.3 0.05258339
//pureflutessamples_501_samples_0.3_to_-0.3 0.0273751
//pureflutessamples_501_samples_0.3_to_-0.3 -0.00137333
//pureflutessamples_501_samples_0.3_to_-0.3 -0.0400708
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04626606
//pureflutessamples_501_samples_0.3_to_-0.3 -0.06646931
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07065035
//pureflutessamples_501_samples_0.3_to_-0.3 -0.0842616
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08627582
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04361095
//pureflutessamples_501_samples_0.3_to_-0.3 -0.01684622
//pureflutessamples_501_samples_0.3_to_-0.3 0.02679525
//pureflutessamples_501_samples_0.3_to_-0.3 0.05896176
//pureflutessamples_501_samples_0.3_to_-0.3 0.05990783
//pureflutessamples_501_samples_0.3_to_-0.3 0.09204382
//pureflutessamples_501_samples_0.3_to_-0.3 0.05612354
//pureflutessamples_501_samples_0.3_to_-0.3 0.05722221
//pureflutessamples_501_samples_0.3_to_-0.3 0.01470992
//pureflutessamples_501_samples_0.3_to_-0.3 -0.01556444
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03210547
//pureflutessamples_501_samples_0.3_to_-0.3 -0.06921598
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07971435
//pureflutessamples_501_samples_0.3_to_-0.3 -0.09762871
//pureflutessamples_501_samples_0.3_to_-0.3 -0.09659109
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08832057
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04663228
//pureflutessamples_501_samples_0.3_to_-0.3 -0.02563555
//pureflutessamples_501_samples_0.3_to_-0.3 0.04367199
//pureflutessamples_501_samples_0.3_to_-0.3 0.06155583
//pureflutessamples_501_samples_0.3_to_-0.3 0.07272561
//pureflutessamples_501_samples_0.3_to_-0.3 0.07690664
//pureflutessamples_501_samples_0.3_to_-0.3 0.07593005
//pureflutessamples_501_samples_0.3_to_-0.3 0.05236976
//pureflutessamples_501_samples_0.3_to_-0.3 -0.01236
//pureflutessamples_501_samples_0.3_to_-0.3 -0.05496383
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08798486
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1025422
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1011078
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08874783
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08059938
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07562487
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04647969
//pureflutessamples_501_samples_0.3_to_-0.3 0.01007111
//pureflutessamples_501_samples_0.3_to_-0.3 0.02862636
//pureflutessamples_501_samples_0.3_to_-0.3 0.08456679
//pureflutessamples_501_samples_0.3_to_-0.3 0.07623523
//pureflutessamples_501_samples_0.3_to_-0.3 0.08560442
//pureflutessamples_501_samples_0.3_to_-0.3 0.07129124
//pureflutessamples_501_samples_0.3_to_-0.3 0.0516068
//pureflutessamples_501_samples_0.3_to_-0.3 0.02493362
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03378399
//pureflutessamples_501_samples_0.3_to_-0.3 -0.05905332
//pureflutessamples_501_samples_0.3_to_-0.3 -0.12125
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1290017
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1387982
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1205481
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1093783
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04684591
//pureflutessamples_501_samples_0.3_to_-0.3 0.01525925
//pureflutessamples_501_samples_0.3_to_-0.3 0.05478073
//pureflutessamples_501_samples_0.3_to_-0.3 0.1222877
//pureflutessamples_501_samples_0.3_to_-0.3 0.1592456
//pureflutessamples_501_samples_0.3_to_-0.3 0.1559496
//pureflutessamples_501_samples_0.3_to_-0.3 0.1299478
//pureflutessamples_501_samples_0.3_to_-0.3 0.09784234
//pureflutessamples_501_samples_0.3_to_-0.3 0.02777184
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04562517
//pureflutessamples_501_samples_0.3_to_-0.3 -0.111301
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1389813
//pureflutessamples_501_samples_0.3_to_-0.3 -0.147496
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1734672
//pureflutessamples_501_samples_0.3_to_-0.3 -0.155797
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08609272
//pureflutessamples_501_samples_0.3_to_-0.3 -0.06439406
//pureflutessamples_501_samples_0.3_to_-0.3 0.00924711
//pureflutessamples_501_samples_0.3_to_-0.3 0.07165746
//pureflutessamples_501_samples_0.3_to_-0.3 0.1051363
//pureflutessamples_501_samples_0.3_to_-0.3 0.1260109
//pureflutessamples_501_samples_0.3_to_-0.3 0.1148717
//pureflutessamples_501_samples_0.3_to_-0.3 0.1125217
//pureflutessamples_501_samples_0.3_to_-0.3 0.08252205
//pureflutessamples_501_samples_0.3_to_-0.3 0.01873836
//pureflutessamples_501_samples_0.3_to_-0.3 -0.05114902
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08075198
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1431928
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1234474
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1354411
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1242714
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08175909
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07223731
//pureflutessamples_501_samples_0.3_to_-0.3 0.00421155
//pureflutessamples_501_samples_0.3_to_-0.3 0.0455031
//pureflutessamples_501_samples_0.3_to_-0.3 0.07635731
//pureflutessamples_501_samples_0.3_to_-0.3 0.1096835
//pureflutessamples_501_samples_0.3_to_-0.3 0.09625538
//pureflutessamples_501_samples_0.3_to_-0.3 0.08069094
//pureflutessamples_501_samples_0.3_to_-0.3 0.09042634
//pureflutessamples_501_samples_0.3_to_-0.3 0.01702933
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03024384
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08865627
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1337626
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1062654
//pureflutessamples_501_samples_0.3_to_-0.3 -0.09866634
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08404797
//pureflutessamples_501_samples_0.3_to_-0.3 -0.05847346
//pureflutessamples_501_samples_0.3_to_-0.3 -0.05825983
//pureflutessamples_501_samples_0.3_to_-0.3 -0.01510666
//pureflutessamples_501_samples_0.3_to_-0.3 0.04495376
//pureflutessamples_501_samples_0.3_to_-0.3 0.09720145
//pureflutessamples_501_samples_0.3_to_-0.3 0.1396832
//pureflutessamples_501_samples_0.3_to_-0.3 0.1338237
//pureflutessamples_501_samples_0.3_to_-0.3 0.1306497
//pureflutessamples_501_samples_0.3_to_-0.3 0.0634785
//pureflutessamples_501_samples_0.3_to_-0.3 0.01010163
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08301035
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1156346
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1562548
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1880245
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1345256
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1358379
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07730339
//pureflutessamples_501_samples_0.3_to_-0.3 -0.02963347
//pureflutessamples_501_samples_0.3_to_-0.3 0.03009125
//pureflutessamples_501_samples_0.3_to_-0.3 0.08044679
//pureflutessamples_501_samples_0.3_to_-0.3 0.1326945
//pureflutessamples_501_samples_0.3_to_-0.3 0.1376385
//pureflutessamples_501_samples_0.3_to_-0.3 0.1299783
//pureflutessamples_501_samples_0.3_to_-0.3 0.1001007
//pureflutessamples_501_samples_0.3_to_-0.3 0.07516709
//pureflutessamples_501_samples_0.3_to_-0.3 0.04647969
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08740501
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1482284
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1918394
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2049013
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1518601
//pureflutessamples_501_samples_0.3_to_-0.3 -0.126133
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1065401
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08548234
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04614399
//pureflutessamples_501_samples_0.3_to_-0.3 0.04412977
//pureflutessamples_501_samples_0.3_to_-0.3 0.09552293
//pureflutessamples_501_samples_0.3_to_-0.3 0.1556749
//pureflutessamples_501_samples_0.3_to_-0.3 0.1544542
//pureflutessamples_501_samples_0.3_to_-0.3 0.1346782
//pureflutessamples_501_samples_0.3_to_-0.3 0.1034883
//pureflutessamples_501_samples_0.3_to_-0.3 0.04266488
//pureflutessamples_501_samples_0.3_to_-0.3 -0.0384228
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1317484
//pureflutessamples_501_samples_0.3_to_-0.3 -0.145085
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1987671
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1598865
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1414838
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1286966
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08124027
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03317362
//pureflutessamples_501_samples_0.3_to_-0.3 0.02386547
//pureflutessamples_501_samples_0.3_to_-0.3 0.08233894
//pureflutessamples_501_samples_0.3_to_-0.3 0.139378
//pureflutessamples_501_samples_0.3_to_-0.3 0.1468551
//pureflutessamples_501_samples_0.3_to_-0.3 0.1662343
//pureflutessamples_501_samples_0.3_to_-0.3 0.1119419
//pureflutessamples_501_samples_0.3_to_-0.3 0.07644887
//pureflutessamples_501_samples_0.3_to_-0.3 -0.0110477
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1169469
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1645558
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1971801
//pureflutessamples_501_samples_0.3_to_-0.3 -0.161504
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1511277
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1345561
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07074191
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03592028
//pureflutessamples_501_samples_0.3_to_-0.3 0.05810724
//pureflutessamples_501_samples_0.3_to_-0.3 0.1178015
//pureflutessamples_501_samples_0.3_to_-0.3 0.154088
//pureflutessamples_501_samples_0.3_to_-0.3 0.1472518
//pureflutessamples_501_samples_0.3_to_-0.3 0.06787317
//pureflutessamples_501_samples_0.3_to_-0.3 0.04940947
//pureflutessamples_501_samples_0.3_to_-0.3 0.01907407
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04950102
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1425214
//pureflutessamples_501_samples_0.3_to_-0.3 -0.159917
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1687063
//pureflutessamples_501_samples_0.3_to_-0.3 -0.143376
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1205786
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08777124
//pureflutessamples_501_samples_0.3_to_-0.3 -0.0638142
//pureflutessamples_501_samples_0.3_to_-0.3 -0.05566576
//pureflutessamples_501_samples_0.3_to_-0.3 0.02163762
//pureflutessamples_501_samples_0.3_to_-0.3 0.07608265
//pureflutessamples_501_samples_0.3_to_-0.3 0.1389813
//pureflutessamples_501_samples_0.3_to_-0.3 0.1592761
//pureflutessamples_501_samples_0.3_to_-0.3 0.1184729
//pureflutessamples_501_samples_0.3_to_-0.3 0.1097446
//pureflutessamples_501_samples_0.3_to_-0.3 0.06329539
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03118992
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1082186
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1765191
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1861934
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1618091
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1148106
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1037019
//pureflutessamples_501_samples_0.3_to_-0.3 -0.0725425
//pureflutessamples_501_samples_0.3_to_-0.3 -0.06228828
//pureflutessamples_501_samples_0.3_to_-0.3 0.01870785
//pureflutessamples_501_samples_0.3_to_-0.3 0.09964293
//pureflutessamples_501_samples_0.3_to_-0.3 0.1431318
//pureflutessamples_501_samples_0.3_to_-0.3 0.1830195
//pureflutessamples_501_samples_0.3_to_-0.3 0.147496
//pureflutessamples_501_samples_0.3_to_-0.3 0.1421247
//pureflutessamples_501_samples_0.3_to_-0.3 0.07922605
//pureflutessamples_501_samples_0.3_to_-0.3 0.03811762
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1012604
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1773125
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1980956
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1961425
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1513108
//pureflutessamples_501_samples_0.3_to_-0.3 -0.156621
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1092868
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07068087
//pureflutessamples_501_samples_0.3_to_-0.3 0.01974548
//pureflutessamples_501_samples_0.3_to_-0.3 0.09466842
//pureflutessamples_501_samples_0.3_to_-0.3 0.1565294
//pureflutessamples_501_samples_0.3_to_-0.3 0.1700796
//pureflutessamples_501_samples_0.3_to_-0.3 0.1549425
//pureflutessamples_501_samples_0.3_to_-0.3 0.1036714
//pureflutessamples_501_samples_0.3_to_-0.3 0.09866634
//pureflutessamples_501_samples_0.3_to_-0.3 0.03079318
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1149937
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1634877
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2051759
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1780145
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1165807
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1105686
//pureflutessamples_501_samples_0.3_to_-0.3 -0.102237
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08584857
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03631703
//pureflutessamples_501_samples_0.3_to_-0.3 0.0761742
//pureflutessamples_501_samples_0.3_to_-0.3 0.1094699
//pureflutessamples_501_samples_0.3_to_-0.3 0.1686148
//pureflutessamples_501_samples_0.3_to_-0.3 0.1641896
//pureflutessamples_501_samples_0.3_to_-0.3 0.1547288
//pureflutessamples_501_samples_0.3_to_-0.3 0.1226539
//pureflutessamples_501_samples_0.3_to_-0.3 0.0426954
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07730339
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1953795
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1899167
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2117069
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1335795
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1355937
//pureflutessamples_501_samples_0.3_to_-0.3 -0.103885
//pureflutessamples_501_samples_0.3_to_-0.3 -0.05514695
//pureflutessamples_501_samples_0.3_to_-0.3 0.01324503
//pureflutessamples_501_samples_0.3_to_-0.3 0.08667257
//pureflutessamples_501_samples_0.3_to_-0.3 0.1467635
//pureflutessamples_501_samples_0.3_to_-0.3 0.2133244
//pureflutessamples_501_samples_0.3_to_-0.3 0.2147282
//pureflutessamples_501_samples_0.3_to_-0.3 0.1980346
//pureflutessamples_501_samples_0.3_to_-0.3 0.1210669
//pureflutessamples_501_samples_0.3_to_-0.3 0.09424116
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07956176
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1800592
//pureflutessamples_501_samples_0.3_to_-0.3 -0.202002
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2299265
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1766717
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1572924
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1482589
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07928709
//pureflutessamples_501_samples_0.3_to_-0.3 -0.01339763
//pureflutessamples_501_samples_0.3_to_-0.3 0.1133457
//pureflutessamples_501_samples_0.3_to_-0.3 0.2066103
//pureflutessamples_501_samples_0.3_to_-0.3 0.2377392
//pureflutessamples_501_samples_0.3_to_-0.3 0.2324595
//pureflutessamples_501_samples_0.3_to_-0.3 0.1463363
//pureflutessamples_501_samples_0.3_to_-0.3 0.1362651
//pureflutessamples_501_samples_0.3_to_-0.3 0.04937895
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07544176
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2012696
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2150334
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1916257
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1579333
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1160314
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1135899
//pureflutessamples_501_samples_0.3_to_-0.3 -0.09442427
//pureflutessamples_501_samples_0.3_to_-0.3 -0.05450606
//pureflutessamples_501_samples_0.3_to_-0.3 0.05328532
//pureflutessamples_501_samples_0.3_to_-0.3 0.1378521
//pureflutessamples_501_samples_0.3_to_-0.3 0.2051149
//pureflutessamples_501_samples_0.3_to_-0.3 0.217658
//pureflutessamples_501_samples_0.3_to_-0.3 0.1942808
//pureflutessamples_501_samples_0.3_to_-0.3 0.1358684
//pureflutessamples_501_samples_0.3_to_-0.3 0.08041627
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03466903
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1505783
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1837519
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1876278
//pureflutessamples_501_samples_0.3_to_-0.3 -0.158208
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1213416
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1078524
//pureflutessamples_501_samples_0.3_to_-0.3 -0.09012116
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03027436
//pureflutessamples_501_samples_0.3_to_-0.3 0.0720542
//pureflutessamples_501_samples_0.3_to_-0.3 0.1653188
//pureflutessamples_501_samples_0.3_to_-0.3 0.2254097
//pureflutessamples_501_samples_0.3_to_-0.3 0.2470473
//pureflutessamples_501_samples_0.3_to_-0.3 0.194525
//pureflutessamples_501_samples_0.3_to_-0.3 0.1552171
//pureflutessamples_501_samples_0.3_to_-0.3 0.07754754
//pureflutessamples_501_samples_0.3_to_-0.3 -0.02685629
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1803949
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2343516
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2110355
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1869564
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1268349
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1337626
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08526871
//pureflutessamples_501_samples_0.3_to_-0.3 -0.02569658
//pureflutessamples_501_samples_0.3_to_-0.3 0.0798059
//pureflutessamples_501_samples_0.3_to_-0.3 0.1993164
//pureflutessamples_501_samples_0.3_to_-0.3 0.2526933
//pureflutessamples_501_samples_0.3_to_-0.3 0.2492752
//pureflutessamples_501_samples_0.3_to_-0.3 0.2002014
//pureflutessamples_501_samples_0.3_to_-0.3 0.129368
//pureflutessamples_501_samples_0.3_to_-0.3 0.07834101
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03494369
//pureflutessamples_501_samples_0.3_to_-0.3 -0.195471
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2435377
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2602619
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2103031
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1508225
//pureflutessamples_501_samples_0.3_to_-0.3 -0.132664
//pureflutessamples_501_samples_0.3_to_-0.3 -0.09640797
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04712058
//pureflutessamples_501_samples_0.3_to_-0.3 0.06241035
//pureflutessamples_501_samples_0.3_to_-0.3 0.1812189
//pureflutessamples_501_samples_0.3_to_-0.3 0.2273324
//pureflutessamples_501_samples_0.3_to_-0.3 0.2626118
//pureflutessamples_501_samples_0.3_to_-0.3 0.2246467
//pureflutessamples_501_samples_0.3_to_-0.3 0.1689505
//pureflutessamples_501_samples_0.3_to_-0.3 0.110416
//pureflutessamples_501_samples_0.3_to_-0.3 -0.00457778
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1538743
//pureflutessamples_501_samples_0.3_to_-0.3 -0.254677
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2448805
//pureflutessamples_501_samples_0.3_to_-0.3 -0.229194
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1639454
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1655019
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1260414
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04980621
//pureflutessamples_501_samples_0.3_to_-0.3 0.05050813
//pureflutessamples_501_samples_0.3_to_-0.3 0.1712394
//pureflutessamples_501_samples_0.3_to_-0.3 0.2523575
//pureflutessamples_501_samples_0.3_to_-0.3 0.3028352
//pureflutessamples_501_samples_0.3_to_-0.3 0.2623371
//pureflutessamples_501_samples_0.3_to_-0.3 0.1957762
//pureflutessamples_501_samples_0.3_to_-0.3 0.1123386
//pureflutessamples_501_samples_0.3_to_-0.3 0.03381451
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1532945
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2567217
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2686544
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2552263
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1815241
//pureflutessamples_501_samples_0.3_to_-0.3 -0.168157
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1174352
//pureflutessamples_501_samples_0.3_to_-0.3 -0.03494369
//pureflutessamples_501_samples_0.3_to_-0.3 0.02893155
//pureflutessamples_501_samples_0.3_to_-0.3 0.1836604
//pureflutessamples_501_samples_0.3_to_-0.3 0.2599567
//pureflutessamples_501_samples_0.3_to_-0.3 0.2678609
//pureflutessamples_501_samples_0.3_to_-0.3 0.2312693
//pureflutessamples_501_samples_0.3_to_-0.3 0.1367229
//pureflutessamples_501_samples_0.3_to_-0.3 0.1069674
//pureflutessamples_501_samples_0.3_to_-0.3 -0.01446577
//pureflutessamples_501_samples_0.3_to_-0.3 -0.159978
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2824488
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2735679
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2183294
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1597339
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1128574
//pureflutessamples_501_samples_0.3_to_-0.3 -0.09387494
//pureflutessamples_501_samples_0.3_to_-0.3 -0.05001984
//pureflutessamples_501_samples_0.3_to_-0.3 0.02432325
//pureflutessamples_501_samples_0.3_to_-0.3 0.1570483
//pureflutessamples_501_samples_0.3_to_-0.3 0.2154912
//pureflutessamples_501_samples_0.3_to_-0.3 0.2542192
//pureflutessamples_501_samples_0.3_to_-0.3 0.2207099
//pureflutessamples_501_samples_0.3_to_-0.3 0.1661428
//pureflutessamples_501_samples_0.3_to_-0.3 0.09305093
//pureflutessamples_501_samples_0.3_to_-0.3 0.00582904
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1349834
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2550127
//pureflutessamples_501_samples_0.3_to_-0.3 -0.258034
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2327952
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1641591
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1122166
//pureflutessamples_501_samples_0.3_to_-0.3 -0.09665212
//pureflutessamples_501_samples_0.3_to_-0.3 -0.05569628
//pureflutessamples_501_samples_0.3_to_-0.3 0.02725303
//pureflutessamples_501_samples_0.3_to_-0.3 0.1413923
//pureflutessamples_501_samples_0.3_to_-0.3 0.2562639
//pureflutessamples_501_samples_0.3_to_-0.3 0.2865383
//pureflutessamples_501_samples_0.3_to_-0.3 0.2735679
//pureflutessamples_501_samples_0.3_to_-0.3 0.1868038
//pureflutessamples_501_samples_0.3_to_-0.3 0.1206397
//pureflutessamples_501_samples_0.3_to_-0.3 0.00848415
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1508835
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2903531
//pureflutessamples_501_samples_0.3_to_-0.3 -0.3192541
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2551042
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1920835
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1172826
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1162755
//pureflutessamples_501_samples_0.3_to_-0.3 -0.04596088
//pureflutessamples_501_samples_0.3_to_-0.3 0.02237007
//pureflutessamples_501_samples_0.3_to_-0.3 0.1586352
//pureflutessamples_501_samples_0.3_to_-0.3 0.2586139
//pureflutessamples_501_samples_0.3_to_-0.3 0.2818384
//pureflutessamples_501_samples_0.3_to_-0.3 0.2524491
//pureflutessamples_501_samples_0.3_to_-0.3 0.1866512
//pureflutessamples_501_samples_0.3_to_-0.3 0.1118198
//pureflutessamples_501_samples_0.3_to_-0.3 -0.004944
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1308329
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2958464
//pureflutessamples_501_samples_0.3_to_-0.3 -0.3071688
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2712485
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1870479
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1250038
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1122471
//pureflutessamples_501_samples_0.3_to_-0.3 -0.07449568
//pureflutessamples_501_samples_0.3_to_-0.3 -0.02063051
//pureflutessamples_501_samples_0.3_to_-0.3 0.09854427
//pureflutessamples_501_samples_0.3_to_-0.3 0.2139653
//pureflutessamples_501_samples_0.3_to_-0.3 0.2524491
//pureflutessamples_501_samples_0.3_to_-0.3 0.2609943
//pureflutessamples_501_samples_0.3_to_-0.3 0.1950133
//pureflutessamples_501_samples_0.3_to_-0.3 0.112186
//pureflutessamples_501_samples_0.3_to_-0.3 0.04400769
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1192969
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2540361
//pureflutessamples_501_samples_0.3_to_-0.3 -0.317362
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2687765
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1973327
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1275674
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1305277
//pureflutessamples_501_samples_0.3_to_-0.3 -0.09640797
//pureflutessamples_501_samples_0.3_to_-0.3 -0.00360118
//pureflutessamples_501_samples_0.3_to_-0.3 0.1030305
//pureflutessamples_501_samples_0.3_to_-0.3 0.2216559
//pureflutessamples_501_samples_0.3_to_-0.3 0.2824183
//pureflutessamples_501_samples_0.3_to_-0.3 0.2847072
//pureflutessamples_501_samples_0.3_to_-0.3 0.2096622
//pureflutessamples_501_samples_0.3_to_-0.3 0.1614124
//pureflutessamples_501_samples_0.3_to_-0.3 0.04504532
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08218635
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2582476
//pureflutessamples_501_samples_0.3_to_-0.3 -0.3271279
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2832728
//pureflutessamples_501_samples_0.3_to_-0.3 -0.2205268
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1521043
//pureflutessamples_501_samples_0.3_to_-0.3 -0.16657
//pureflutessamples_501_samples_0.3_to_-0.3 -0.08481093
//pureflutessamples_501_samples_0.3_to_-0.3 0.00234993
//pureflutessamples_501_samples_0.3_to_-0.3 0.09344768
//pureflutessamples_501_samples_0.3_to_-0.3 0.2556536
//pureflutessamples_501_samples_0.3_to_-0.3 0.2897427
//pureflutessamples_501_samples_0.3_to_-0.3 0.2594989
//pureflutessamples_501_samples_0.3_to_-0.3 0.1834468
//pureflutessamples_501_samples_0.3_to_-0.3 0.08319346
//pureflutessamples_501_samples_0.3_to_-0.3 0.02920621
//pureflutessamples_501_samples_0.3_to_-0.3 -0.1238746
for (int i = 0; i < samplesPerInterval; i++)
{
amplitude = Math.Max(0.06,amplitude * (Math.Cos(i / samplesPerInterval)) ) ;
double t = (double)i / sampleRate;
double value = (amplitude > 0.001)
? amplitude * Math.Sin(2 * Math.PI * frequency * t)
: 0.0;
short sample = (short)(value * short.MaxValue);
waveformSamples.Add(sample);
}//for (int i = 0; i < samplesPerInterval; i++)
if (s % 5 == 0)
{
progressBar.Value = Math.Min(s, progressBar.Maximum - 1);
progressBar.Invalidate();
progressBar.Refresh();
}
}
for (int b = 0; b < 1800; b += 6)
{
int y = height - (b * height / 1800);
g.DrawString(b.ToString(), font, Brushes.Black, width - 60, y);
}
}
bmp.Save(Path.ChangeExtension(basePath, ".png"), ImageFormat.Png);
File.WriteAllText(Path.ChangeExtension(basePath, ".csv"), csv.ToString());
//////,
////// int min_bucket_number_to_filter
//////,
////// int maxes_bucket_number_to_filter
string the_wav_files_path = "";
the_wav_files_path
=
basePath + "_" + min_bucket_number_to_filter + "_" + maxes_bucket_number_to_filter + ".wav";
//Path.ChangeExtension(basePath, ".wav")
RESPECIAL___SaveMono16BitWav(the_wav_files_path, waveformSamples.ToArray(), sampleRate);
}
}//public static void RE_SPECIAL___Generate___Bitmap_And_Wav___From_1800_Bins
private static void RESPECIAL___SaveMono16BitWav(string path, short[] samples, int sampleRate)
{
using (var fs = new FileStream(path, FileMode.Create))
using (var bw = new BinaryWriter(fs))
{
int byteRate = sampleRate * 2;
int dataLength = samples.Length * 2;
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(36 + dataLength);
bw.Write(Encoding.ASCII.GetBytes("WAVEfmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)1);
bw.Write(sampleRate);
bw.Write(byteRate);
bw.Write((short)2);
bw.Write((short)16);
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(dataLength);
foreach (short s in samples)
bw.Write(s);
}//using (var bw = new BinaryWriter(fs))
}//private static void RESPECIAL___SaveMono16BitWav(string path, short[] samples, int sampleRate)
public static void SPECIAL___Generate___Bitmap_And_Wav___From_1800_Bins
(
string basePath, int width, int height,
ref System.Windows.Forms.ProgressBar progressBar)
{
int sampleRate = 8000;
int intervalMs = 500;
int samplesPerInterval = sampleRate * intervalMs / 1000;
List<short> waveformSamples = new List<short>();
StringBuilder csv = new StringBuilder();
csv.AppendLine("sl_no,millis_from,millis_to,duration_ms,sum_100_900");
using (Bitmap bmp = new Bitmap(width, height))
{
BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, width, height),
ImageLockMode.ReadWrite, bmp.PixelFormat);
int stride = bmpData.Stride;
IntPtr ptr = bmpData.Scan0;
int bytes = stride * height;
byte[] rgbValues = new byte[bytes];
for (int i = 0; i < rgbValues.Length; i += 3) { rgbValues[i] = rgbValues[i + 1] = rgbValues[i + 2] = 255; }
Color[] gradientColors = Enumerable.Range(0, 60)
.Select(i => Color.FromArgb((int)(255.0 * i / 59), (int)(255.0 * (59 - i) / 59), 0))
.ToArray();
for (int bucket = 0; bucket < 1800; bucket++)
{
var times = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucket];
int density = times.Count;
if (density == 0) continue;
int colorIndex = Math.Min(59, density / 100);
Color dotColor = gradientColors[colorIndex];
int y = height - bucket * height / 1800;
foreach (double t in times)
{
int x = (int)(t / 1000.0 * 10);
if (x >= 0 && x < width)
{
int pos = y * stride + x * 3;
if (pos + 2 < rgbValues.Length)
{
rgbValues[pos + 0] = dotColor.B;
rgbValues[pos + 1] = dotColor.G;
rgbValues[pos + 2] = dotColor.R;
}
}
}
}
System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);
bmp.UnlockBits(bmpData);
using (Graphics g = Graphics.FromImage(bmp))
using (Font font = new Font("Arial", 6))
using (Pen pen = new Pen(Color.LightGray))
{
int blockCount = width / 5;
progressBar.Maximum = blockCount;
for (int s = 0; s < blockCount; s++)
{
int x = s * 5;
g.DrawLine(pen, x, 0, x, height);
g.DrawString((s * intervalMs).ToString(), font, Brushes.Black, x + 1, 0);
double msStart = s * intervalMs;
double msEnd = msStart + intervalMs;
int sum_100_900 = 0;
int sum_0_1300 = 0;
for (int bin = 100; bin <= 1300; bin++)
{
foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
{
if (t >= msStart && t < msEnd)
sum_0_1300++;
if (t >= msEnd) break;
}
}
// Write CSV
csv.AppendLine($"{s + 1},{msStart},{msEnd},{intervalMs},{sum_100_900}");
// Synth: Frequency and amplitude
double frequency = sum_0_1300;// sum_100_900;// * 2;
// double amplitude = Math.Min(0.8, sum_100_900 / 1000.0);
double amplitude = Math.Min(0.8, sum_0_1300 / 1000.0);
for (int i = 0; i < samplesPerInterval; i++)
{
double t = (double)i / sampleRate;
double value = amplitude * Math.Sin(2 * Math.PI * frequency * t);
short sample = (short)(value * short.MaxValue);
waveformSamples.Add(sample);
}
if (s % 5 == 0)
{
progressBar.Value = Math.Min(s, progressBar.Maximum - 1);
progressBar.Invalidate();
progressBar.Refresh();
}
}
}
// Save PNG and CSV
bmp.Save(Path.ChangeExtension(basePath, ".png"), ImageFormat.Png);
File.WriteAllText(Path.ChangeExtension(basePath, ".csv"), csv.ToString());
// Save WAV
SPECIAL___SaveMono16BitWav(Path.ChangeExtension(basePath, ".wav"), waveformSamples.ToArray(), sampleRate);
}
}//public static void SPECIAL___Generate___Bitmap_And_Wav___From_1800_Bins
private static void SPECIAL___SaveMono16BitWav(string path, short[] samples, int sampleRate)
{
using (var fs = new FileStream(path, FileMode.Create))
using (var bw = new BinaryWriter(fs))
{
int byteRate = sampleRate * 2;
int dataLength = samples.Length * 2;
// WAV Header
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(36 + dataLength);
bw.Write(Encoding.ASCII.GetBytes("WAVEfmt "));
bw.Write(16); // PCM
bw.Write((short)1); // Mono
bw.Write((short)1); // Mono
bw.Write(sampleRate);
bw.Write(byteRate);
bw.Write((short)2); // Block align
bw.Write((short)16); // Bits per sample
// Data chunk
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(dataLength);
foreach (short s in samples)
bw.Write(s);
}
}//private static void SPECIAL___SaveMono16BitWav(string path, short[] samples, int sampleRate)
//THIS SAVES PNG FILES
public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(
string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees,
int width,
int height,
ref System.Windows.Forms.ProgressBar progressbartotrack)
{
StringBuilder ___tempStrbldr_for_degrees_slabwise_500_millis_wise_report = new StringBuilder();
___tempStrbldr_for_degrees_slabwise_500_millis_wise_report.Clear();
___tempStrbldr_for_degrees_slabwise_500_millis_wise_report
.AppendLine
("sl_nos,millis_froms,millis_to ,_durations_millis , 0_200 , 200_400 , 400_600,600_800,800_1000 , 1000_1200, 1200_1400,1400_1600,1600_1800 ");
int ___serials_number = 0;
// using (Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb))
using (Bitmap bmp = new Bitmap(width, height))
{
BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, width, height),
ImageLockMode.ReadWrite, bmp.PixelFormat);
int stride = bmpData.Stride;
IntPtr ptr = bmpData.Scan0;
int bytes = Math.Abs(stride) * height;
byte[] rgbValues = new byte[bytes];
// Fill entire image white
for (int i = 0; i < rgbValues.Length; i += 3)
{
rgbValues[i] = 255; // Blue
rgbValues[i + 1] = 255; // Green
rgbValues[i + 2] = 255; // Red
}
// 60 Color gradient
Color[] gradientColors = new Color[60];
for (int i = 0; i < 60; i++)
{
int r = (int)(255.0 * i / 59);
int gVal = (int)(255.0 * (59 - i) / 59);
gradientColors[i] = Color.FromArgb(r, gVal, 0);
}
// Plot pixels
for (int bucket = 0; bucket < 1800; bucket++)
{
List<double> times = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucket];
int density = times.Count;
if (density == 0) continue;
int colorIndex = Math.Min(59, density / 100);
Color dotColor = gradientColors[colorIndex];
int y = height - bucket * height / 1800;
if (y < 0 || y >= height) continue;
foreach (double t in times)
{
int x = (int)(t / 1000.0 * 10);
if (x >= 0 && x < width)
{
int pos = y * stride + x * 3;
if (pos >= 0 && pos + 2 < rgbValues.Length)
{
rgbValues[pos + 0] = dotColor.B;
rgbValues[pos + 1] = dotColor.G;
rgbValues[pos + 2] = dotColor.R;
}
}
}
}
System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);
bmp.UnlockBits(bmpData);
using (Graphics g = Graphics.FromImage(bmp))
{
using (Font font = new Font("Arial", 6))
using (Pen thinPen = new Pen(Color.LightGray, 1))
{
int interval_ms = 500;
int blockCount = width / 5;
progressbartotrack.Maximum = blockCount;
for (int s = 0; s < blockCount; s++)
{
___serials_number++;
int x = s * 5;
g.DrawLine(thinPen, x, 0, x, height);
g.DrawString((s * interval_ms).ToString(), font, Brushes.Black, x + 1, 0);
int sum_0_300 = 0, sum_0_600 = 0,
// sum_600_800 = 0,
sum_300_800 = 0;
int sum_0_200 = 0;
int sum_200_400 = 0;
int sum_400_600 = 0;
int sum_600_800 = 0;
int sum_800_1000 = 0;
int sum_1000_1200 = 0;
int sum_1200_1400 = 0;
int sum_1400_1600 = 0;
int sum_1600_1800 = 0;
double msStart = s * interval_ms;
double msEnd = msStart + interval_ms;
for (int bin = 0; bin < 1800; bin++)
{
foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
{
if (t >= msEnd) break;
if (t >= msStart)
{
if (bin <= 300) sum_0_300++;
if (bin <= 600) sum_0_600++;
if (bin >= 300 && bin <= 800) sum_300_800++;
///////////////////////////////////////////////////////////
if (bin >= 0 && bin < 200) sum_0_200++;
if (bin >= 200 && bin < 400) sum_200_400++;
if (bin >= 400 && bin < 600) sum_400_600++;
if (bin >= 600 && bin < 800) sum_600_800++;
if (bin >= 800 && bin < 1000) sum_800_1000++;
if (bin >= 1000 && bin < 1200) sum_1000_1200++;
if (bin >= 1200 && bin < 1400) sum_1200_1400++;
if (bin >= 1400 && bin < 1600) sum_1400_1600++;
if (bin >= 1600 && bin < 1800) sum_1600_1800++;
}// if (t >= msStart)
}//foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
}// for (int bin = 0; bin < 1800; bin++)
using (StringFormat vertical = new StringFormat())
{
vertical.FormatFlags = StringFormatFlags.DirectionVertical;
g.DrawString("0-300:" + sum_0_300, font, Brushes.Blue, x + 1, 10, vertical);
g.DrawString("0-600:" + sum_0_600, font, Brushes.Green, x + 1, 80, vertical);
g.DrawString("600-800:" + sum_600_800, font, Brushes.Maroon, x + 1, 150, vertical);
g.DrawString("300-800:" + sum_300_800, font, Brushes.Maroon, x + 1, 230, vertical);
//for references ___tempStrbldr_for_degrees_slabwise_500_millis_wise_report
//for references .AppendLine
//for references ("sl_nos,millis_froms,millis_to ,_durations_millis , 0_200 , 200_400 , 400_600,600_800,800_1000 , 1000_1200, 1200_1400,1400_1600,1600_1800 ");
___tempStrbldr_for_degrees_slabwise_500_millis_wise_report
.AppendLine
(
___serials_number +
"," +
msStart +
"," +
msEnd +
"," +
interval_ms +
"," +
sum_0_200 +
"," +
sum_200_400 +
"," +
sum_400_600 +
"," +
sum_600_800 +
"," +
sum_800_1000 +
"," +
sum_1000_1200 +
"," +
sum_1200_1400 +
"," +
sum_1400_1600 +
"," +
sum_1600_1800 +
""
);
}
if (s % 5 == 0)
{
progressbartotrack.Value = Math.Min(s, progressbartotrack.Maximum - 1);
progressbartotrack.Invalidate();
progressbartotrack.Refresh();
}
}
for (int b = 0; b < 1800; b += 6)
{
int y = height - (b * height / 1800);
g.DrawString(b.ToString(), font, Brushes.Black, width - 60, y);
}
}
}
// Save as lightweight PNG
//IT IUS IN KBS
bmp.Save(Path.ChangeExtension(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, ".png"), ImageFormat.Png);
// IT IS 180 MB S EVEN NOT USING 24BPP FORMATS
// TOO HEAVY bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, ImageFormat.Bmp);
System.IO.File.WriteAllText
(
outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees+".csv"
,
___tempStrbldr_for_degrees_slabwise_500_millis_wise_report.ToString()
);
}
}//SAVING PNG
/// <summary>
/// TOO HEAVY AND THE BLACK
/// </summary>
/// <param name="outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees"></param>
/// <param name="width"></param>
/// <param name="height"></param>
////// public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler
////// (
//////string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees,
//////int width,
//////int height,
//////ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// using (Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb))
////// {
////// using (Graphics gClear = Graphics.FromImage(bmp))
////// {
////// gClear.Clear(Color.White);
////// }
////// BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, width, height),
////// ImageLockMode.ReadWrite, bmp.PixelFormat);
////// int stride = bmpData.Stride;
////// IntPtr ptr = bmpData.Scan0;
////// int bytes = Math.Abs(stride) * height;
////// byte[] rgbValues = new byte[bytes];
////// Array.Clear(rgbValues, 0, rgbValues.Length);
////// // 60 Color gradient
////// Color[] gradientColors = new Color[60];
////// for (int i = 0; i < 60; i++)
////// {
////// int r = (int)(255.0 * i / 59);
////// int gVal = (int)(255.0 * (59 - i) / 59);
////// gradientColors[i] = Color.FromArgb(r, gVal, 0);
////// }
////// // Plot theta bin pixels
////// for (int bucket = 0; bucket < 1800; bucket++)
////// {
////// List<double> times = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucket];
////// int density = times.Count;
////// if (density == 0) continue;
////// int colorIndex = Math.Min(59, density / 100);
////// Color dotColor = gradientColors[colorIndex];
////// int y = height - bucket * height / 1800;
////// if (y < 0 || y >= height) continue;
////// foreach (double t in times)
////// {
////// int x = (int)(t / 1000.0 * 10);
////// if (x >= 0 && x < width)
////// {
////// int pos = y * stride + x * 3;
////// if (pos >= 0 && pos + 2 < rgbValues.Length)
////// {
////// rgbValues[pos + 0] = dotColor.B;
////// rgbValues[pos + 1] = dotColor.G;
////// rgbValues[pos + 2] = dotColor.R;
////// }
////// }
////// }
////// }
////// System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);
////// bmp.UnlockBits(bmpData);
////// // Drawing vertical lines and summaries every 500ms
////// using (Graphics g = Graphics.FromImage(bmp))
////// {
////// using (Font font = new Font("Arial", 6))
////// using (Pen thinPen = new Pen(Color.LightGray, 1))
////// {
////// int interval_ms = 500;
////// int blockCount = width / 5;
////// progressbartotrack.Maximum = blockCount;
////// for (int s = 0; s < blockCount; s++)
////// {
////// int x = s * 5;
////// g.DrawLine(thinPen, x, 0, x, height);
////// g.DrawString((s * interval_ms).ToString(), font, Brushes.Black, x + 1, 0);
////// int sum_0_300 = 0, sum_0_600 = 0, sum_600_800 = 0, sum_300_800 = 0;
////// double msStart = s * interval_ms;
////// double msEnd = msStart + interval_ms;
////// for (int bin = 0; bin < 1800; bin++)
////// {
////// foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
////// {
////// if (t >= msEnd) break;
////// if (t >= msStart)
////// {
////// if (bin <= 300) sum_0_300++;
////// if (bin <= 600) sum_0_600++;
////// if (bin >= 600 && bin <= 800) sum_600_800++;
////// if (bin >= 300 && bin <= 800) sum_300_800++;
////// }
////// }
////// }
////// using (StringFormat vertical = new StringFormat())
////// {
////// vertical.FormatFlags = StringFormatFlags.DirectionVertical;
////// g.DrawString("0-300:" + sum_0_300, font, Brushes.Blue, x + 1, 10, vertical);
////// g.DrawString("0-600:" + sum_0_600, font, Brushes.Green, x + 1, 100, vertical);
////// g.DrawString("600-800:" + sum_600_800, font, Brushes.Maroon, x + 1, 200, vertical);
////// g.DrawString("300-800:" + sum_300_800, font, Brushes.Maroon, x + 1, 300, vertical);
////// }
////// if (s % 5 == 0)
////// {
////// progressbartotrack.Value = Math.Min(s, progressbartotrack.Maximum - 1);
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// }
////// }
////// for (int b = 0; b < 1800; b += 6)
////// {
////// int y = height - (b * height / 1800);
////// g.DrawString(b.ToString(), font, Brushes.Black, width - 60, y);
////// }
////// }
////// }
////// bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, ImageFormat.Bmp);
////// }
////// }
public static void Generate___WITHOUT_PROGRESSBAR_AND_NOT_OK___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
{
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height);
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
{
g.Clear(System.Drawing.Color.White);
// Generate 60 gradient colors
System.Drawing.Color[] gradientColors = new System.Drawing.Color[60];
for (int i = 0; i < 60; i++)
{
int r = (int)(255.0 * i / 59);
int gVal = (int)(255.0 * (59 - i) / 59);
gradientColors[i] = System.Drawing.Color.FromArgb(r, gVal, 0);
}
for (int bucketIndex = 0; bucketIndex < 1800; bucketIndex++)
{
List<double> timeList = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucketIndex];
int density = timeList.Count;
int colorIndex = Math.Min(59, density / 100);
System.Drawing.Color dotColor = gradientColors[colorIndex];
int y = height - bucketIndex * height / 1800;
int maxX = timeList.Count > 0 ? (int)(timeList.Max() / 1000.0 * 10) : 0;
if (maxX > 30) maxX = 30;
if (maxX < width * 0.1)
{
//g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, maxX, y);
}
else
{
g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, width - 1, y);
}
foreach (double millis in timeList)
{
int x = (int)(millis / 1000.0 * 10);
if (x >= 0 && x < width && y >= 0 && y < height)
{
bmp.SetPixel(x, y, dotColor);
}
}
}
using (var font = new System.Drawing.Font("Arial", 6))
using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
{
//////int seconds = width / 10;
//////for (int s = 0; s <= seconds; s++)
//////{
////// int x = s * 10;
////// g.DrawLine(thinPen, x, 0, x, height);
////// g.DrawString(s.ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
////// int sum_0_300 = 0;
////// int sum_0_600 = 0;
////// int sum_600_800 = 0;
////// int sum_300_800 = 0;
////// double millis_start = s * 1000.0;
////// double millis_end = millis_start + 1000.0;
////// for (int bin = 0; bin < 1800; bin++)
////// {
////// foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
////// {
////// if (t >= millis_start && t < millis_end)
////// {
////// if (bin <= 300) sum_0_300++;
////// if (bin <= 600) sum_0_600++;
////// if (bin >= 600 && bin <= 800) sum_600_800++;
////// if (bin >= 300 && bin <= 800) sum_300_800++;
////// }
////// }
////// }
////// using (System.Drawing.StringFormat vertFormat = new System.Drawing.StringFormat())
////// {
////// vertFormat.FormatFlags = System.Drawing.StringFormatFlags.DirectionVertical;
////// g.DrawString("0-300: " + sum_0_300.ToString(), font, System.Drawing.Brushes.Blue, x + 1, 10, vertFormat);
////// g.DrawString("0-600: " + sum_0_600.ToString(), font, System.Drawing.Brushes.DarkGreen, x + 1, 100, vertFormat);
////// g.DrawString("600-800: " + sum_600_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 200, vertFormat);
////// g.DrawString("300-800: " + sum_300_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 300, vertFormat);
////// }//using (System.Drawing.StringFormat vertFormat = new System.Drawing.StringFormat())
//////}
int one_tenth_of_seconds = width / 100;
for (int s = 0; s <= one_tenth_of_seconds; s++)
{
int x = s * 10;
g.DrawLine(thinPen, x, 0, x, height);
g.DrawString(s.ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
int sum_0_300 = 0;
int sum_0_600 = 0;
int sum_600_800 = 0;
int sum_300_800 = 0;
double millis_start = s * 100;// 1000.0;
double millis_end = millis_start + 100;// 1000.0;
for (int bin = 0; bin < 1800; bin++)
{
foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
{
if (t >= millis_start && t < millis_end)
{
if (bin <= 300) sum_0_300++;
if (bin <= 600) sum_0_600++;
if (bin >= 600 && bin <= 800) sum_600_800++;
if (bin >= 300 && bin <= 800) sum_300_800++;
}//if (t >= millis_start && t < millis_end)
}//foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
}//for (int bin = 0; bin < 1800; bin++)
using (System.Drawing.StringFormat vertFormat = new System.Drawing.StringFormat())
{
vertFormat.FormatFlags = System.Drawing.StringFormatFlags.DirectionVertical;
g.DrawString("0-300: " + sum_0_300.ToString(), font, System.Drawing.Brushes.Blue, x + 1, 10, vertFormat);
g.DrawString("0-600: " + sum_0_600.ToString(), font, System.Drawing.Brushes.DarkGreen, x + 1, 100, vertFormat);
g.DrawString("600-800: " + sum_600_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 200, vertFormat);
g.DrawString("300-800: " + sum_300_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 300, vertFormat);
}//using (System.Drawing.StringFormat vertFormat = new System.Drawing.StringFormat())
}//for (int s = 0; s <= one_tenth_of_seconds; s++)
for (int bincounter = 0; bincounter <= 1800; bincounter++)
{
int x = width - 60;
int y = height - (bincounter * height / 1800);
if (bincounter % 6 == 0)
{
g.DrawString(bincounter.ToString(), font, System.Drawing.Brushes.Black, x, y);
}
}//for (int bincounter = 0; bincounter <= 1800; bincounter++)
}
}
bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees);
}//public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
////// now adding the progress bar to track 100th milliseconds
//////// taking long times
public static void Generate___CENTI_SECONDS___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height, ref System.Windows.Forms.ProgressBar progressbartotrack)
{
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height);
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
{
g.Clear(System.Drawing.Color.White);
// Generate 60 gradient colors
System.Drawing.Color[] gradientColors = new System.Drawing.Color[60];
for (int i = 0; i < 60; i++)
{
int r = (int)(255.0 * i / 59);
int gVal = (int)(255.0 * (59 - i) / 59);
gradientColors[i] = System.Drawing.Color.FromArgb(r, gVal, 0);
}
for (int bucketIndex = 0; bucketIndex < 1800; bucketIndex++)
{
List<double> timeList = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucketIndex];
int density = timeList.Count;
int colorIndex = Math.Min(59, density / 100);
System.Drawing.Color dotColor = gradientColors[colorIndex];
int y = height - bucketIndex * height / 1800;
int maxX = timeList.Count > 0 ? (int)(timeList.Max() / 1000.0 * 10) : 0;
if (maxX > 30) maxX = 30;
if (maxX < width * 0.1)
{
// g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, maxX, y);
}
else
{
g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, width - 1, y);
}
foreach (double millis in timeList)
{
int x = (int)(millis / 1000.0 * 10);
if (x >= 0 && x < width && y >= 0 && y < height)
{
bmp.SetPixel(x, y, dotColor);
}
}
}
using (var font = new System.Drawing.Font("Arial", 6))
using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
{
int centiSeconds = width / 1; // 100 ms intervals
for (int s = 0; s <= centiSeconds; s++)
{
int x = s;
g.DrawLine(thinPen, x, 0, x, height);
g.DrawString((s * 100).ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
int sum_0_300 = 0;
int sum_0_600 = 0;
int sum_600_800 = 0;
int sum_300_800 = 0;
double millis_start = s * 100.0;
double millis_end = millis_start + 100.0;
for (int bin = 0; bin < 1800; bin++)
{
foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
{
if (t >= millis_start && t < millis_end)
{
if (bin <= 300) sum_0_300++;
if (bin <= 600) sum_0_600++;
if (bin >= 600 && bin <= 800) sum_600_800++;
if (bin >= 300 && bin <= 800) sum_300_800++;
}
}
}
using (System.Drawing.StringFormat vertFormat = new System.Drawing.StringFormat())
{
vertFormat.FormatFlags = System.Drawing.StringFormatFlags.DirectionVertical;
g.DrawString("0-300: " + sum_0_300.ToString(), font, System.Drawing.Brushes.Blue, x + 1, 10, vertFormat);
g.DrawString("0-600: " + sum_0_600.ToString(), font, System.Drawing.Brushes.DarkGreen, x + 1, 100, vertFormat);
g.DrawString("600-800: " + sum_600_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 200, vertFormat);
g.DrawString("300-800: " + sum_300_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 300, vertFormat);
}
}
for (int bincounter = 0; bincounter <= 1800; bincounter++)
{
int x = width - 60;
int y = height - (bincounter * height / 1800);
if (bincounter % 6 == 0)
{
g.DrawString(bincounter.ToString(), font, System.Drawing.Brushes.Black, x, y);
}
}
}
}
bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees);
}// public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
////// public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler
////// (
//////string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees,
//////int width,
//////int height,
//////ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// using (Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb))
////// {
////// using (Graphics gClear = Graphics.FromImage(bmp))
////// {
////// gClear.Clear(Color.White);
////// }
////// BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, width, height),
////// ImageLockMode.ReadWrite, bmp.PixelFormat);
////// int stride = bmpData.Stride;
////// IntPtr ptr = bmpData.Scan0;
////// int bytes = Math.Abs(stride) * height;
////// byte[] rgbValues = new byte[bytes];
////// Array.Clear(rgbValues, 0, rgbValues.Length);
////// Color[] gradientColors = new Color[60];
////// for (int i = 0; i < 60; i++)
////// {
////// int r = (int)(255.0 * i / 59);
////// int gVal = (int)(255.0 * (59 - i) / 59);
////// gradientColors[i] = Color.FromArgb(r, gVal, 0);
////// }
////// for (int bucket = 0; bucket < 1800; bucket++)
////// {
////// List<double> times = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucket];
////// int density = times.Count;
////// if (density == 0) continue;
////// int colorIndex = Math.Min(59, density / 100);
////// Color dotColor = gradientColors[colorIndex];
////// int y = height - bucket * height / 1800;
////// if (y < 0 || y >= height) continue;
////// foreach (double t in times)
////// {
////// int x = (int)(t / 1000.0 * 10);
////// if (x >= 0 && x < width)
////// {
////// int pos = y * stride + x * 3;
////// if (pos >= 0 && pos + 2 < rgbValues.Length)
////// {
////// rgbValues[pos + 0] = dotColor.B;
////// rgbValues[pos + 1] = dotColor.G;
////// rgbValues[pos + 2] = dotColor.R;
////// }
////// }
////// }
////// }
////// System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);
////// bmp.UnlockBits(bmpData);
////// using (Graphics g = Graphics.FromImage(bmp))
////// {
////// using (Font font = new Font("Arial", 6))
////// using (Pen thinPen = new Pen(Color.LightGray, 1))
////// {
////// int centiSeconds = width;
////// progressbartotrack.Maximum = centiSeconds;
////// for (int s = 0; s < centiSeconds; s++)
////// {
////// int x = s;
////// g.DrawLine(thinPen, x, 0, x, height);
////// g.DrawString((s * 100).ToString(), font, Brushes.Black, x + 1, 0);
////// int sum_0_300 = 0, sum_0_600 = 0, sum_600_800 = 0, sum_300_800 = 0;
////// double msStart = s * 100.0, msEnd = msStart + 100.0;
////// for (int bin = 0; bin < 1800; bin++)
////// {
////// foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
////// {
////// if (t < msStart) continue;
////// if (t >= msEnd) break;
////// if (bin <= 300) sum_0_300++;
////// if (bin <= 600) sum_0_600++;
////// if (bin >= 600 && bin <= 800) sum_600_800++;
////// if (bin >= 300 && bin <= 800) sum_300_800++;
////// }
////// }
////// using (StringFormat vertical = new StringFormat())
////// {
////// vertical.FormatFlags = StringFormatFlags.DirectionVertical;
////// g.DrawString("0-300:" + sum_0_300, font, Brushes.Blue, x + 1, 10, vertical);
////// g.DrawString("0-600:" + sum_0_600, font, Brushes.Green, x + 1, 100, vertical);
////// g.DrawString("600-800:" + sum_600_800, font, Brushes.Maroon, x + 1, 200, vertical);
////// g.DrawString("300-800:" + sum_300_800, font, Brushes.Maroon, x + 1, 300, vertical);
////// }
////// if (s % 10 == 0)
////// {
////// progressbartotrack.Value = Math.Min(s, progressbartotrack.Maximum - 1);
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// }
////// }
////// for (int b = 0; b < 1800; b += 6)
////// {
////// int y = height - (b * height / 1800);
////// g.DrawString(b.ToString(), font, Brushes.Black, width - 60, y);
////// }
////// }
////// }
////// bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, ImageFormat.Bmp);
////// }
////// }//public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler
//it was too heavy and the grey
////// public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler
////// (
//////string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees,
//////int width,
//////int height,
//////ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// using (Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb))
////// {
////// BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, width, height),
////// ImageLockMode.ReadWrite, bmp.PixelFormat);
////// int stride = bmpData.Stride;
////// IntPtr ptr = bmpData.Scan0;
////// int bytes = Math.Abs(stride) * height;
////// byte[] rgbValues = new byte[bytes];
////// Array.Clear(rgbValues, 0, rgbValues.Length);
////// // Precompute gradient colors
////// Color[] gradientColors = new Color[60];
////// for (int i = 0; i < 60; i++)
////// {
////// int r = (int)(255.0 * i / 59);
////// int gVal = (int)(255.0 * (59 - i) / 59);
////// gradientColors[i] = Color.FromArgb(r, gVal, 0);
////// }
////// // Draw colored horizontal bands & scatter dots
////// for (int bucket = 0; bucket < 1800; bucket++)
////// {
////// List<double> times = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucket];
////// int density = times.Count;
////// if (density == 0) continue;
////// int colorIndex = Math.Min(59, density / 100);
////// Color dotColor = gradientColors[colorIndex];
////// int y = height - bucket * height / 1800;
////// foreach (double t in times)
////// {
////// int x = (int)(t / 1000.0 * 10);
////// if (x >= 0 && x < width && y >= 0 && y < height)
////// {
////// int pos = y * stride + x * 3;
////// if (pos >= 0 && pos + 2 < rgbValues.Length)
////// {
////// rgbValues[pos + 0] = dotColor.B;
////// rgbValues[pos + 1] = dotColor.G;
////// rgbValues[pos + 2] = dotColor.R;
////// }
////// }
////// }
////// }
////// // Copy pixels back
////// System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);
////// bmp.UnlockBits(bmpData);
////// // Now use Graphics for lines and rotated text
////// using (Graphics g = Graphics.FromImage(bmp))
////// {
////// g.Clear(Color.White);
////// using (Font font = new Font("Arial", 6))
////// using (Pen thinPen = new Pen(Color.LightGray, 1))
////// {
////// int centiSeconds = width; // every 100ms == every pixel (1 pixel per 100 ms)
////// progressbartotrack.Maximum = centiSeconds;
////// for (int s = 0; s < centiSeconds; s += 1)
////// {
////// int x = s;
////// g.DrawLine(thinPen, x, 0, x, height);
////// g.DrawString((s * 100).ToString(), font, Brushes.Black, x + 1, 0);
////// int sum_0_300 = 0, sum_0_600 = 0, sum_600_800 = 0, sum_300_800 = 0;
////// double msStart = s * 100.0, msEnd = msStart + 100.0;
////// for (int bin = 0; bin < 1800; bin++)
////// {
////// foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
////// {
////// if (t < msStart) continue;
////// if (t >= msEnd) break;
////// if (bin <= 300) sum_0_300++;
////// if (bin <= 600) sum_0_600++;
////// if (bin >= 600 && bin <= 800) sum_600_800++;
////// if (bin >= 300 && bin <= 800) sum_300_800++;
////// }
////// }
////// using (StringFormat vertical = new StringFormat())
////// {
////// vertical.FormatFlags = StringFormatFlags.DirectionVertical;
////// g.DrawString("0-300:" + sum_0_300, font, Brushes.Blue, x + 1, 10, vertical);
////// g.DrawString("0-600:" + sum_0_600, font, Brushes.Green, x + 1, 100, vertical);
////// g.DrawString("600-800:" + sum_600_800, font, Brushes.Maroon, x + 1, 200, vertical);
////// g.DrawString("300-800:" + sum_300_800, font, Brushes.Maroon, x + 1, 300, vertical);
////// }
////// if (s % 10 == 0)
////// {
////// progressbartotrack.Value = Math.Min(s, progressbartotrack.Maximum - 1);
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// }
////// }
////// // Y-axis labels (buckets)
////// for (int b = 0; b < 1800; b += 6)
////// {
////// int y = height - (b * height / 1800);
////// g.DrawString(b.ToString(), font, Brushes.Black, width - 60, y);
////// }
////// }
////// }
////// bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, ImageFormat.Bmp);
////// }
////// }// public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler
//to do this faster using the lockbits
//////public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height, ref System.Windows.Forms.ProgressBar progressbartotrack)
//////{
////// System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height);
////// using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
////// {
////// g.Clear(System.Drawing.Color.White);
////// System.Drawing.Color[] gradientColors = new System.Drawing.Color[60];
////// for (int i = 0; i < 60; i++)
////// {
////// int r = (int)(255.0 * i / 59);
////// int gVal = (int)(255.0 * (59 - i) / 59);
////// gradientColors[i] = System.Drawing.Color.FromArgb(r, gVal, 0);
////// }
////// for (int bucketIndex = 0; bucketIndex < 1800; bucketIndex++)
////// {
////// List<double> timeList = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucketIndex];
////// int density = timeList.Count;
////// int colorIndex = Math.Min(59, density / 100);
////// System.Drawing.Color dotColor = gradientColors[colorIndex];
////// int y = height - bucketIndex * height / 1800;
////// int maxX = timeList.Count > 0 ? (int)(timeList.Max() / 1000.0 * 10) : 0;
////// if (maxX > 30) maxX = 30;
////// if (maxX < width * 0.1)
////// {
////// // skip line
////// }
////// else
////// {
////// g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, width - 1, y);
////// }
////// foreach (double millis in timeList)
////// {
////// int x = (int)(millis / 1000.0 * 10);
////// if (x >= 0 && x < width && y >= 0 && y < height)
////// {
////// bmp.SetPixel(x, y, dotColor);
////// }
////// }
////// }
////// using (var font = new System.Drawing.Font("Arial", 6))
////// using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
////// {
////// int centiSeconds = width / 1;
////// progressbartotrack.Maximum = centiSeconds;
////// for (int s = 0; s <= centiSeconds; s++)
////// {
////// int x = s;
////// g.DrawLine(thinPen, x, 0, x, height);
////// g.DrawString((s * 100).ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
////// int sum_0_300 = 0;
////// int sum_0_600 = 0;
////// int sum_600_800 = 0;
////// int sum_300_800 = 0;
////// double millis_start = s * 100.0;
////// double millis_end = millis_start + 100.0;
////// for (int bin = 0; bin < 1800; bin++)
////// {
////// foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
////// {
////// if (t >= millis_start && t < millis_end)
////// {
////// if (bin <= 300) sum_0_300++;
////// if (bin <= 600) sum_0_600++;
////// if (bin >= 600 && bin <= 800) sum_600_800++;
////// if (bin >= 300 && bin <= 800) sum_300_800++;
////// }
////// }
////// }
////// using (System.Drawing.StringFormat vertFormat = new System.Drawing.StringFormat())
////// {
////// vertFormat.FormatFlags = System.Drawing.StringFormatFlags.DirectionVertical;
////// g.DrawString("0-300: " + sum_0_300.ToString(), font, System.Drawing.Brushes.Blue, x + 1, 10, vertFormat);
////// g.DrawString("0-600: " + sum_0_600.ToString(), font, System.Drawing.Brushes.DarkGreen, x + 1, 100, vertFormat);
////// g.DrawString("600-800: " + sum_600_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 200, vertFormat);
////// g.DrawString("300-800: " + sum_300_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 300, vertFormat);
////// }
////// progressbartotrack.Value = Math.Min(s, progressbartotrack.Maximum);
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// }
////// for (int bincounter = 0; bincounter <= 1800; bincounter++)
////// {
////// int x = width - 60;
////// int y = height - (bincounter * height / 1800);
////// if (bincounter % 6 == 0)
////// {
////// g.DrawString(bincounter.ToString(), font, System.Drawing.Brushes.Black, x, y);
////// }
////// }
////// }
////// }
////// bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees);
//////}//public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height, ref System.Windows.Forms.ProgressBar progressbartotrack)
//now adding the progress bar to track 100th milliseconds
//taking long times
//////public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height, ref System.Windows.Forms.ProgressBar progressbartotrack)
//////{
////// System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height);
////// using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
////// {
////// g.Clear(System.Drawing.Color.White);
////// // Generate 60 gradient colors
////// System.Drawing.Color[] gradientColors = new System.Drawing.Color[60];
////// for (int i = 0; i < 60; i++)
////// {
////// int r = (int)(255.0 * i / 59);
////// int gVal = (int)(255.0 * (59 - i) / 59);
////// gradientColors[i] = System.Drawing.Color.FromArgb(r, gVal, 0);
////// }
////// for (int bucketIndex = 0; bucketIndex < 1800; bucketIndex++)
////// {
////// List<double> timeList = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucketIndex];
////// int density = timeList.Count;
////// int colorIndex = Math.Min(59, density / 100);
////// System.Drawing.Color dotColor = gradientColors[colorIndex];
////// int y = height - bucketIndex * height / 1800;
////// int maxX = timeList.Count > 0 ? (int)(timeList.Max() / 1000.0 * 10) : 0;
////// if (maxX > 30) maxX = 30;
////// if (maxX < width * 0.1)
////// {
////// // g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, maxX, y);
////// }
////// else
////// {
////// g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, width - 1, y);
////// }
////// foreach (double millis in timeList)
////// {
////// int x = (int)(millis / 1000.0 * 10);
////// if (x >= 0 && x < width && y >= 0 && y < height)
////// {
////// bmp.SetPixel(x, y, dotColor);
////// }
////// }
////// }
////// using (var font = new System.Drawing.Font("Arial", 6))
////// using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
////// {
////// int centiSeconds = width / 1; // 100 ms intervals
////// for (int s = 0; s <= centiSeconds; s++)
////// {
////// int x = s;
////// g.DrawLine(thinPen, x, 0, x, height);
////// g.DrawString((s * 100).ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
////// int sum_0_300 = 0;
////// int sum_0_600 = 0;
////// int sum_600_800 = 0;
////// int sum_300_800 = 0;
////// double millis_start = s * 100.0;
////// double millis_end = millis_start + 100.0;
////// for (int bin = 0; bin < 1800; bin++)
////// {
////// foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
////// {
////// if (t >= millis_start && t < millis_end)
////// {
////// if (bin <= 300) sum_0_300++;
////// if (bin <= 600) sum_0_600++;
////// if (bin >= 600 && bin <= 800) sum_600_800++;
////// if (bin >= 300 && bin <= 800) sum_300_800++;
////// }
////// }
////// }
////// using (System.Drawing.StringFormat vertFormat = new System.Drawing.StringFormat())
////// {
////// vertFormat.FormatFlags = System.Drawing.StringFormatFlags.DirectionVertical;
////// g.DrawString("0-300: " + sum_0_300.ToString(), font, System.Drawing.Brushes.Blue, x + 1, 10, vertFormat);
////// g.DrawString("0-600: " + sum_0_600.ToString(), font, System.Drawing.Brushes.DarkGreen, x + 1, 100, vertFormat);
////// g.DrawString("600-800: " + sum_600_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 200, vertFormat);
////// g.DrawString("300-800: " + sum_300_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 300, vertFormat);
////// }
////// }
////// for (int bincounter = 0; bincounter <= 1800; bincounter++)
////// {
////// int x = width - 60;
////// int y = height - (bincounter * height / 1800);
////// if (bincounter % 6 == 0)
////// {
////// g.DrawString(bincounter.ToString(), font, System.Drawing.Brushes.Black, x, y);
////// }
////// }
////// }
////// }
////// bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees);
//////}// public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
//////public static void DISCARDING_SINCE_WE_NEED_STATS_AT_100_MILLIS___Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
//////{
////// System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height);
////// using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
////// {
////// g.Clear(System.Drawing.Color.White);
////// // Generate 60 gradient colors
////// System.Drawing.Color[] gradientColors = new System.Drawing.Color[60];
////// for (int i = 0; i < 60; i++)
////// {
////// int r = (int)(255.0 * i / 59);
////// int gVal = (int)(255.0 * (59 - i) / 59);
////// gradientColors[i] = System.Drawing.Color.FromArgb(r, gVal, 0);
////// }
////// for (int bucketIndex = 0; bucketIndex < 1800; bucketIndex++)
////// {
////// List<double> timeList = WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucketIndex];
////// int density = timeList.Count;
////// int colorIndex = Math.Min(59, density / 100);
////// System.Drawing.Color dotColor = gradientColors[colorIndex];
////// int y = height - bucketIndex * height / 1800;
////// int maxX = timeList.Count > 0 ? (int)(timeList.Max() / 1000.0 * 10) : 0;
////// if (maxX > 30) maxX = 30;
////// if (maxX < width * 0.1)
////// {
////// //g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, maxX, y);
////// }
////// else
////// {
////// g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, width - 1, y);
////// }
////// foreach (double millis in timeList)
////// {
////// int x = (int)(millis / 1000.0 * 10);
////// if (x >= 0 && x < width && y >= 0 && y < height)
////// {
////// bmp.SetPixel(x, y, dotColor);
////// }
////// }
////// }
////// using (var font = new System.Drawing.Font("Arial", 6))
////// using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
////// {
////// //////int seconds = width / 10;
////// //////for (int s = 0; s <= seconds; s++)
////// //////{
////// ////// int x = s * 10;
////// ////// g.DrawLine(thinPen, x, 0, x, height);
////// ////// g.DrawString(s.ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
////// ////// int sum_0_300 = 0;
////// ////// int sum_0_600 = 0;
////// ////// int sum_600_800 = 0;
////// ////// int sum_300_800 = 0;
////// ////// double millis_start = s * 1000.0;
////// ////// double millis_end = millis_start + 1000.0;
////// ////// for (int bin = 0; bin < 1800; bin++)
////// ////// {
////// ////// foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
////// ////// {
////// ////// if (t >= millis_start && t < millis_end)
////// ////// {
////// ////// if (bin <= 300) sum_0_300++;
////// ////// if (bin <= 600) sum_0_600++;
////// ////// if (bin >= 600 && bin <= 800) sum_600_800++;
////// ////// if (bin >= 300 && bin <= 800) sum_300_800++;
////// ////// }
////// ////// }
////// ////// }
////// ////// using (System.Drawing.StringFormat vertFormat = new System.Drawing.StringFormat())
////// ////// {
////// ////// vertFormat.FormatFlags = System.Drawing.StringFormatFlags.DirectionVertical;
////// ////// g.DrawString("0-300: " + sum_0_300.ToString(), font, System.Drawing.Brushes.Blue, x + 1, 10, vertFormat);
////// ////// g.DrawString("0-600: " + sum_0_600.ToString(), font, System.Drawing.Brushes.DarkGreen, x + 1, 100, vertFormat);
////// ////// g.DrawString("600-800: " + sum_600_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 200, vertFormat);
////// ////// g.DrawString("300-800: " + sum_300_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 300, vertFormat);
////// ////// }//using (System.Drawing.StringFormat vertFormat = new System.Drawing.StringFormat())
////// //////}
////// int one_tenth_of_seconds = width / 100;
////// for (int s = 0; s <= one_tenth_of_seconds; s++)
////// {
////// int x = s * 10;
////// g.DrawLine(thinPen, x, 0, x, height);
////// g.DrawString(s.ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
////// int sum_0_300 = 0;
////// int sum_0_600 = 0;
////// int sum_600_800 = 0;
////// int sum_300_800 = 0;
////// double millis_start = s * 100;// 1000.0;
////// double millis_end = millis_start + 100;// 1000.0;
////// for (int bin = 0; bin < 1800; bin++)
////// {
////// foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
////// {
////// if (t >= millis_start && t < millis_end)
////// {
////// if (bin <= 300) sum_0_300++;
////// if (bin <= 600) sum_0_600++;
////// if (bin >= 600 && bin <= 800) sum_600_800++;
////// if (bin >= 300 && bin <= 800) sum_300_800++;
////// }//if (t >= millis_start && t < millis_end)
////// }//foreach (double t in WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bin])
////// }//for (int bin = 0; bin < 1800; bin++)
////// using (System.Drawing.StringFormat vertFormat = new System.Drawing.StringFormat())
////// {
////// vertFormat.FormatFlags = System.Drawing.StringFormatFlags.DirectionVertical;
////// g.DrawString("0-300: " + sum_0_300.ToString(), font, System.Drawing.Brushes.Blue, x + 1, 10, vertFormat);
////// g.DrawString("0-600: " + sum_0_600.ToString(), font, System.Drawing.Brushes.DarkGreen, x + 1, 100, vertFormat);
////// g.DrawString("600-800: " + sum_600_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 200, vertFormat);
////// g.DrawString("300-800: " + sum_300_800.ToString(), font, System.Drawing.Brushes.Maroon, x + 1, 300, vertFormat);
////// }//using (System.Drawing.StringFormat vertFormat = new System.Drawing.StringFormat())
////// }//for (int s = 0; s <= one_tenth_of_seconds; s++)
////// for (int bincounter = 0; bincounter <= 1800; bincounter++)
////// {
////// int x = width - 60;
////// int y = height - (bincounter * height / 1800);
////// if (bincounter % 6 == 0)
////// {
////// g.DrawString(bincounter.ToString(), font, System.Drawing.Brushes.Black, x, y);
////// }
////// }//for (int bincounter = 0; bincounter <= 1800; bincounter++)
////// }
////// }
////// bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees);
//////}//public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
public static void THIS_WAS_OK___BUT_NEED_TO_ENHANCE_SHOWING___SECOND_WISE_FREQUENCIES_ALSO_______Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
{
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height);
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
{
g.Clear(System.Drawing.Color.White);
//////using (var font = new System.Drawing.Font("Arial", 6))
//////{
//////using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
//////{
////// int seconds = width / 10;
////// for (int s = 0; s <= seconds; s++)
////// {
////// int x = s * 10;
////// g.DrawLine(thinPen, x, 0, x, height);
////// g.DrawString(s.ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
////// }//for (int s = 0; s <= seconds; s++)
////// for (int bincounter = 0; bincounter <= 1800; bincounter++)
////// {
////// //int x = s * 10;
////// int x = 6;
////// int y = height - bincounter * height / 1800;
////// // g.DrawLine(thinPen, x, 0, x, height);
////// g.DrawString(bincounter.ToString(), font, System.Drawing.Brushes.Black, x, y);
////// }// for (int bincounter = 0; bincounter <= 1800; bincounter++)
//////}//using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
//////}//using (var font = new System.Drawing.Font("Arial", 6))
// Generate 60 gradient colors
System.Drawing.Color[] gradientColors = new System.Drawing.Color[60];
for (int i = 0; i < 60; i++)
{
//////int r = (int)(255.0 * i / 40);
//////int gVal = (int)(255.0 * (40 - i) / 40);
//////int bVal = (int)(255.0 * (59 - r- gVal) / 59);
///
int r = (int)(255.0 * i / 59);
int gVal = (int)(255.0 * (59 - i) / 59);
// gradientColors[i] = System.Drawing.Color.FromArgb(r, gVal, bVal);
gradientColors[i] = System.Drawing.Color.FromArgb(r, gVal, 0);
}//for (int i = 0; i < 60; i++)
for (int bucketIndex___WITH_SIMPLE_MILLIS_LISTS = 0; bucketIndex___WITH_SIMPLE_MILLIS_LISTS < 1800; bucketIndex___WITH_SIMPLE_MILLIS_LISTS++)
{
List<double> LIST_OF_DOUBLE_OF_MILLIS_FROM_START =
WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucketIndex___WITH_SIMPLE_MILLIS_LISTS];
int density = LIST_OF_DOUBLE_OF_MILLIS_FROM_START.Count;
int colorIndex = Math.Min(59, density / 100);
System.Drawing.Color dotColor = gradientColors[colorIndex];
int y = height - bucketIndex___WITH_SIMPLE_MILLIS_LISTS * height / 1800;
int maxX = LIST_OF_DOUBLE_OF_MILLIS_FROM_START.Count > 0 ? (int)(LIST_OF_DOUBLE_OF_MILLIS_FROM_START.Max() / 1000.0 * 10) : 0;
if (maxX > 30)
{
maxX = 30;
}
if (maxX < width * 0.1)
{
// g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, maxX, y);
}
else
{
g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, width - 1, y);
}
foreach (double feature_millis_in_list in LIST_OF_DOUBLE_OF_MILLIS_FROM_START)
{
int x = (int)(feature_millis_in_list / 1000.0 * 10);
if (x >= 0 && x < width && y >= 0 && y < height)
{
bmp.SetPixel(x, y, dotColor);
}//if (x >= 0 && x < width && y >= 0 && y < height)
}//foreach (double feature_millis_in_list in LIST_OF_DOUBLE_OF_MILLIS_FROM_START)
}// for (int bucketIndex___WITH_SIMPLE_MILLIS_LISTS = 0; bucketIndex___WITH_SIMPLE_MILLIS_LISTS < 1800; bucketIndex___WITH_SIMPLE_MILLIS_LISTS++)
using (var font = new System.Drawing.Font("Arial", 6))
{
using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
{
int seconds = width / 10;
for (int s = 0; s <= seconds; s++)
{
int x = s * 10;
g.DrawLine(thinPen, x, 0, x, height);
g.DrawString(s.ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
}//for (int s = 0; s <= seconds; s++)
for (int bincounter = 0; bincounter <= 1800; bincounter++)
{
//int x = s * 10;
// int x = width - 6* bincounter;// 6;
int x = width - 60;// bincounter;// 6;
int y = height - (bincounter * height / 1800);
// g.DrawLine(thinPen, x, 0, x, height);
// int y = height - bucketIndex___WITH_SIMPLE_MILLIS_LISTS * height / 1800;
// using (System.Drawing.Font font_new = new System.Drawing.Font("Arial", 3))
{
//bincounter
// g.DrawString(bincounter.ToString(), font_new, System.Drawing.Brushes.Black, x, y);
if(bincounter%6 ==0)
{
g.DrawString(bincounter.ToString(), font, System.Drawing.Brushes.Black, x, y);
}//if(bincounter%6 ==0)
}// using (System.Drawing.Font font_new = new System.Drawing.Font("Arial", 3))
}// for (int bincounter = 0; bincounter <= 1800; bincounter++)
}//using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
}//using (var font = new System.Drawing.Font("Arial", 6))
}// using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees);
}//public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
public static void DISCARDING_AGAIN______Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
{
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height);
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
{
g.Clear(System.Drawing.Color.White);
using (var font = new System.Drawing.Font("Arial", 6))
using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
{
int seconds = width / 10;
for (int s = 0; s <= seconds; s++)
{
int x = s * 10;
g.DrawLine(thinPen, x, 0, x, height);
g.DrawString(s.ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
}
}
for (int bucketIndex___WITH_SIMPLE_MILLIS_LISTS = 0; bucketIndex___WITH_SIMPLE_MILLIS_LISTS < 1800; bucketIndex___WITH_SIMPLE_MILLIS_LISTS++)
{
List<double> LIST_OF_DOUBLE_OF_MILLIS_FROM_START =
WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins[bucketIndex___WITH_SIMPLE_MILLIS_LISTS];
int density = LIST_OF_DOUBLE_OF_MILLIS_FROM_START.Count;
System.Drawing.Color dotColor = System.Drawing.Color.Lime;
if (density > 10000) dotColor = System.Drawing.Color.Red;
else if (density > 5000) dotColor = System.Drawing.Color.Orange;
else if (density > 2000) dotColor = System.Drawing.Color.Yellow;
int y = height - bucketIndex___WITH_SIMPLE_MILLIS_LISTS * height / 1800;
int maxX = LIST_OF_DOUBLE_OF_MILLIS_FROM_START.Count > 0 ? (int)(LIST_OF_DOUBLE_OF_MILLIS_FROM_START.Max() / 1000.0 * 10) : 0;
if (maxX > 30)
{
maxX = 30;
}
if (maxX < width)
{
// g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, maxX, y);
}
else
{ g.DrawLine(new System.Drawing.Pen(dotColor, 1), 0, y, width - 1, y); }
foreach (double feature_millis_in_list in LIST_OF_DOUBLE_OF_MILLIS_FROM_START)
{
int x = (int)(feature_millis_in_list / 1000.0 * 10);
if (x >= 0 && x < width && y >= 0 && y < height)
{
bmp.SetPixel(x, y, dotColor);
}
}
}
}
bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees);
}//public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler(string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
public static void DISCARDING______Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler( string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
{
//USING THE bucketIndex___WITH_SIMPLE_MILLIS_LISTS THIS IS DIFFERENT KIND OF PLOTTINGS FOR CONSEQUETIVE SAMPLES ANGLES OF ROTATIONS
//WavResampler.ThetaCounts THIS IS DICTIONARY = new Dictionary<int, int>();
//WavResampler.ThetaCounts
//WavResampler.ThetaCountMedian
//WavResampler.public_static_double___dtMs___1000_slash_sampleRate
//WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins
//WavResampler.FirstScanThetaBinning___for_1800_level_details_With_HermitesOperations
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(width, height);
using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
{
g.Clear(System.Drawing.Color.White);
using (var font = new System.Drawing.Font("Arial", 6))
using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
{
int seconds = width / 10;
for (int s = 0; s <= seconds; s++)
{
int x = s * 10;
g.DrawLine(thinPen, x, 0, x, height);
g.DrawString(s.ToString(), font, System.Drawing.Brushes.Black, x + 1, 0);
}//for (int s = 0; s <= seconds; s++)
}//using (var thinPen = new System.Drawing.Pen(System.Drawing.Color.LightGray, 1))
for (int bucketIndex___WITH_SIMPLE_MILLIS_LISTS = 0; bucketIndex___WITH_SIMPLE_MILLIS_LISTS < 1800; bucketIndex___WITH_SIMPLE_MILLIS_LISTS++)
{
//var features = buckets[bucketIndex___WITH_SIMPLE_MILLIS_LISTS];
//var features = buckets[bucketIndex___WITH_SIMPLE_MILLIS_LISTS];
List<double> LIST_OF_DOUBLE_OF_MILLIS_FROM_START =
WavResampler.public_static___1800_sArray_of_List_of_doubles___thetaBins
[bucketIndex___WITH_SIMPLE_MILLIS_LISTS];
// foreach (var feature in features)
foreach(double feature_millis_in_list in LIST_OF_DOUBLE_OF_MILLIS_FROM_START)
{
int x = (int)(feature_millis_in_list / 1000.0 * 10);// feature_millis_in_list //(int)(feature.TimeMilliseconds / 1000.0 * 10);
// int y = bucketIndex___WITH_SIMPLE_MILLIS_LISTS * height / 1800;
// int y = bucketIndex___WITH_SIMPLE_MILLIS_LISTS * height / 1800;
int y =(height- bucketIndex___WITH_SIMPLE_MILLIS_LISTS * height / 1800);
//////if (x >= 0 && x < width && y >= 0 && y < height)
//////{
////// int density = LIST_OF_DOUBLE_OF_MILLIS_FROM_START.Count;
////// System.Drawing.Color dotColor = System.Drawing.Color.Lime;
////// if (density > 10000) dotColor = System.Drawing.Color.Red;
////// else if (density > 5000) dotColor = System.Drawing.Color.Orange;
////// else if (density > 2000) dotColor = System.Drawing.Color.Yellow;
////// bmp.SetPixel(x, y, dotColor);
//////}//if (x >= 0 && x < width && y >= 0 && y < height)
if (x >= 0 && x < width && y >= 0 && y < height)
{
int density = LIST_OF_DOUBLE_OF_MILLIS_FROM_START.Count;
System.Drawing.Color dotColor = System.Drawing.Color.Lime;
if (density > 10000) dotColor = System.Drawing.Color.Red;
else if (density > 5000) dotColor = System.Drawing.Color.Orange;
else if (density > 2000) dotColor = System.Drawing.Color.Yellow;
bmp.SetPixel(x, y, dotColor);
}//if (x >= 0 && x < width && y >= 0 && y < height)
}//foreach (double feature_millis_in_list in LIST_OF_DOUBLE_OF_MILLIS_FROM_START)
}//for (int bucketIndex___WITH_SIMPLE_MILLIS_LISTS = 0; bucketIndex___WITH_SIMPLE_MILLIS_LISTS < 1800; bucketIndex___WITH_SIMPLE_MILLIS_LISTS++)
}//using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
bmp.Save(outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees);
}//public static void Generate___SAAN_STYLES_1800_scaled_degrees_HighClarityBitmap___WITH___public_static___1800_sArray_of_List_of_doubles___thetaBins___WavResampler( string outputPath___for_simple_WavResampler___millis_to_1800_scaled_degrees, int width, int height)
//float[] samples
public static void FirstScanThetaBinning___for_1800_level_details_With_HermitesOperations(float[] samples,int sampleRate)
{
// need deep calculations with chunk sizes target lengths start positions also
public_static_double___dtMs___1000_slash_sampleRate = 1000.0 / sampleRate;
Array.Clear(public_static___1800_sArray_of_List_of_doubles___thetaBins, 0, public_static___1800_sArray_of_List_of_doubles___thetaBins.Length);
// float[] samples = samples;// ReadWavMonoAsFloats(inputWavPath, out int sampleRate);
// double dtMs = 1000.0 / sampleRate;
// List<double>[] thetaBins = new List<double>[1800];
public_static___1800_sArray_of_List_of_doubles___thetaBins = new List<double>[1800];
for (int i = 0; i < 1800; i++)
{
public_static___1800_sArray_of_List_of_doubles___thetaBins[i] = new List<double>();
ThetaCounts[i] = 0;
}//for (int i = 0; i < 1800; i++)
for (int i = 1; i < samples.Length; i++)
{
float amp1 = samples[i - 1];
float amp2 = samples[i];
double dAmp = amp2 - amp1;
double thetaRad = Math.Atan2(dAmp, public_static_double___dtMs___1000_slash_sampleRate);
double thetaDeg = (thetaRad * 180.0 / Math.PI);
if (thetaDeg < 0) { thetaDeg += 180; }
// int bin = (int)Math.Floor(thetaDeg*10);
int bin = (int)Math.Floor(thetaDeg * 2*10);
if (bin >= 0 && bin < 1800)
{
double timeMs = i * public_static_double___dtMs___1000_slash_sampleRate;
public_static___1800_sArray_of_List_of_doubles___thetaBins[bin].Add(timeMs);
ThetaCounts[bin]++;
}//if (bin >= 0 && bin < 1800)
}//for (int i = 1; i < samples.Length; i++)
ThetaCountMedian = ThetaCounts.Values.OrderBy(x => x).ElementAt(ThetaCounts.Count / 2);
// SaveBitmapAndDxf(thetaBins, samples.Length, dtMs, inputWavPath);
// ExportThetaStats(thetaBins, inputWavPath);
// no need to call heres (double copies generates) GenerateShrutiVariants___GPT(inputWavPath, inputWavPath + "_STATISTIKALLY_COLORED_66_COPIES_PANNED.WAV");
}//public static void FirstScanThetaBinning___for_1800_level_details_With_HermitesOperations(string inputWavPath)
public static void ConvertToStandardFormat(string inputPath, string outputPath, ref System.Windows.Forms.ProgressBar progressbartotrack)
{
int originalSps, channels, bits;
WavMetadata metadata = WavMetadata.Read(inputPath);
originalSps = metadata.SampleRate;
channels = metadata.Channels;
bits = metadata.BitsPerSample;
float[] samples = ReadWavMonoAsFloats_Chunked(inputPath, out originalSps, ref progressbartotrack);
double durationInSeconds = (double)samples.Length / originalSps;
int targetSampleCount = (int)(durationInSeconds * 8000);
// need deep calculations with chunk sizes target lengths start positions also
public_static_double___dtMs___1000_slash_sampleRate = 1000.0 / metadata.SampleRate;// sampleRate;
Array.Clear(public_static___1800_sArray_of_List_of_doubles___thetaBins, 0, public_static___1800_sArray_of_List_of_doubles___thetaBins.Length);
// float[] samples = samples;// ReadWavMonoAsFloats(inputWavPath, out int sampleRate);
// double dtMs = 1000.0 / sampleRate;
// List<double>[] thetaBins = new List<double>[1800];
public_static___1800_sArray_of_List_of_doubles___thetaBins = new List<double>[1800];
// THIS IS NECESSARY TO AVOID THE NULL REFERENCES ERRORS
public_static___1800_sArray_of_List_of_doubles___thetaBins = new List<double>[1800];
for (int i = 0; i < 1800; i++)
{
public_static___1800_sArray_of_List_of_doubles___thetaBins[i] = new List<double>();
ThetaCounts[i] = 0;
}//for (int i = 0; i < 1800; i++)
float[] resampled = ResampleHermite_Chunked(samples, targetSampleCount, ref progressbartotrack);
WriteMonoPcmWav(outputPath, resampled, 8000, 16, ref progressbartotrack);
}//public static void ConvertToStandardFormat(...)
public static float[] ResampleHermite_Chunked(float[] input, int targetLength, ref System.Windows.Forms.ProgressBar progressbartotrack)
{
float[] result = new float[targetLength];
double step = (double)(input.Length - 1) / (targetLength - 1);
int chunkSize = 8192;
WavMetadata.PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = targetLength;
progressbartotrack.Maximum = 100;
for (int start = 0; start < targetLength; start += chunkSize)
{
int end = Math.Min(start + chunkSize, targetLength);
for (int i = start; i < end; i++)
{
double pos = i * step;
int idx = (int)Math.Floor(pos);
double frac = pos - idx;
float y0 = idx > 0 ? input[idx - 1] : input[0];
float y1 = input[idx];
float y2 = (idx + 1 < input.Length) ? input[idx + 1] : input[input.Length - 1];
float y3 = (idx + 2 < input.Length) ? input[idx + 2] : input[input.Length - 1];
result[i] = HermiteInterpolate(y0, y1, y2, y3, (float)frac);
try
{
////////////////////////////////////////SAAN ADDED THIS
// if (i >= 1)
if (i >= 0)
{
//SAAN ADDS THIS
//////float amp1 = samples[i - 1];
//////float amp2 = samples[i];
///
float amp1 = result[i - 1];
float amp2 = result[i];
double dAmp = amp2 - amp1;
//saan adds this now
dAmp = Math.Abs(dAmp);
double thetaRad = Math.Atan2(dAmp, public_static_double___dtMs___1000_slash_sampleRate);
double thetaDeg = (thetaRad * 180.0 / Math.PI);
if (thetaDeg < 0) { thetaDeg += 180; }
// int bin = (int)Math.Floor(thetaDeg * 10);
int bin = (int)Math.Floor(thetaDeg * 2* 10);
if (bin >= 0 && bin < 1800)
{
double timeMs = (start+i) * public_static_double___dtMs___1000_slash_sampleRate;
public_static___1800_sArray_of_List_of_doubles___thetaBins[bin].Add(timeMs);
ThetaCounts[bin]++;
}//if (bin >= 0 && bin < 1800)
////////////////////////////////////////SAAN ADDED THIS
}// if (i >= 1)
}
catch (Exception _excp_to_store_angles_100_times___inside___ResampleHermite_Chunked)
{
}//catch(Exception _excp_to_store_angles_100_times___inside___ResampleHermite_Chunked)
}//for (int i = start; i < end; i++)
progressbartotrack.Value = (int)((start * 100.0) / targetLength);
progressbartotrack.Invalidate();
progressbartotrack.Refresh();
}
WavMetadata.PUBLIC_STATIC_BOOL___IS_THE_RESAMPLING_COMPLETE = true;
return result;
}//public static float[] ResampleHermite_Chunked(...)
private static float HermiteInterpolate(float y0, float y1, float y2, float y3, float mu)
{
//https://sites.math.rutgers.edu/~falk/math373/lecture7.pdf
//https://www.cs.cornell.edu/~bindel/class/cs3220-s12/notes/lec19.pdf
float mu2 = mu * mu;
float a0 = -0.5f * y0 + 1.5f * y1 - 1.5f * y2 + 0.5f * y3;
float a1 = y0 - 2.5f * y1 + 2f * y2 - 0.5f * y3;
float a2 = -0.5f * y0 + 0.5f * y2;
float a3 = y1;
return a0 * mu * mu2 + a1 * mu2 + a2 * mu + a3;
}//private static float HermiteInterpolate(...)
public static void WriteMonoPcmWav(string path, float[] samples, int sampleRate, int bits, ref System.Windows.Forms.ProgressBar progressbartotrack)
{
using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
{
int dataSize = samples.Length * (bits / 8);
bw.Write(System.Text.Encoding.ASCII.GetBytes("RIFF"));
bw.Write(36 + dataSize);
bw.Write(System.Text.Encoding.ASCII.GetBytes("WAVE"));
bw.Write(System.Text.Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)1);
bw.Write(sampleRate);
bw.Write(sampleRate * bits / 8);
bw.Write((short)(bits / 8));
bw.Write((short)bits);
bw.Write(System.Text.Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
int chunkSize = 8192;
for (int i = 0; i < samples.Length; i += chunkSize)
{
int blockEnd = Math.Min(i + chunkSize, samples.Length);
for (int j = i; j < blockEnd; j++)
{
short val = (short)(Math.Max(-1f, Math.Min(1f, samples[j])) * short.MaxValue);
bw.Write(val);
}
progressbartotrack.Value = (int)((i * 100.0) / samples.Length);
progressbartotrack.Invalidate();
progressbartotrack.Refresh();
}
WavMetadata.PUBLIC_STATIC_BOOL___IS_THE_STANDARD_FILE_WRITING_COMPLETE = true;
}
}//public static void WriteMonoPcmWav(...)
public static float[] ReadWavMonoAsFloats_Chunked(string path, out int sampleRate, ref System.Windows.Forms.ProgressBar progressbartotrack)
{
sampleRate = 8000;
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
br.BaseStream.Seek(0, SeekOrigin.Begin);
br.ReadBytes(12);
int channels = 1, bits = 16;
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16();
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32();
br.ReadInt16();
bits = br.ReadInt16();
if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
}
else if (chunkID == "data")
{
int bytesPerSample = bits / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
byte[] buffer = new byte[chunkSize];
br.Read(buffer, 0, chunkSize);
int index = 0;
for (int i = 0; i < buffer.Length; i += channels * bytesPerSample)
{
short sample = BitConverter.ToInt16(buffer, i);
samples[index++] = sample / 32768f;
}
return samples;
}
else
{
br.BaseStream.Position += chunkSize;
}
}
}
return new float[0];
}//public static float[] ReadWavMonoAsFloats_Chunked(...)
public static void WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK(string path, int timeoutMs = 5000)
{
DateTime start = DateTime.Now;
while (true)
{
try
{
using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
{
if (fs.Length > 0) return;
}
}
catch (IOException) { }
if ((DateTime.Now - start).TotalMilliseconds > timeoutMs)
throw new TimeoutException("File was not ready within timeout.");
System.Threading.Thread.Sleep(100);
}//while (true)
}//public static void WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK(...)
}//public static class WavResampler
//////public static class WavResampler
//////{
////// public static void ConvertToStandardFormat(string inputPath, string outputPath, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// int originalSps, channels, bits;
////// WavMetadata metadata = WavMetadata.Read(inputPath);
////// originalSps = metadata.SampleRate;
////// channels = metadata.Channels;
////// bits = metadata.BitsPerSample;
////// float[] samples = ReadWavMonoAsFloats(inputPath, out originalSps, ref progressbartotrack);
////// double durationInSeconds = (double)samples.Length / originalSps;
////// int targetSampleCount = (int)(durationInSeconds * 8000);
////// NormalizeSamples(ref samples);
////// float[] resampled = Resample(samples, targetSampleCount, ref progressbartotrack);
////// WriteMonoPcmWav(outputPath, resampled, 8000, 16, ref progressbartotrack);
////// }
////// public static float[] Resample(float[] input, int targetLength, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// float[] result = new float[targetLength];
////// double step = (double)(input.Length - 1) / (targetLength - 1);
////// WavMetadata.PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = targetLength;
////// progressbartotrack.Maximum = 100;
////// for (int i = 0; i < targetLength; i++)
////// {
////// double pos = i * step;
////// int idx = (int)pos;
////// double frac = pos - idx;
////// if (idx + 1 >= input.Length)
////// {
////// result[i] = input[input.Length - 1];
////// }
////// else
////// {
////// result[i] = (float)((1 - frac) * input[idx] + frac * input[idx + 1]);
////// }
////// WavMetadata.PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = i;
////// progressbartotrack.Value = Math.Min(100, (int)((i * 100.0) / targetLength));
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// }
////// WavMetadata.PUBLIC_STATIC_BOOL___IS_THE_RESAMPLING_COMPLETE = true;
////// return result;
////// }
////// public static void WriteMonoPcmWav(string path, float[] samples, int sampleRate, int bits, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
////// {
////// int dataSize = samples.Length * (bits / 8);
////// bw.Write(System.Text.Encoding.ASCII.GetBytes("RIFF"));
////// bw.Write(36 + dataSize);
////// bw.Write(System.Text.Encoding.ASCII.GetBytes("WAVE"));
////// bw.Write(System.Text.Encoding.ASCII.GetBytes("fmt "));
////// bw.Write(16);
////// bw.Write((short)1);
////// bw.Write((short)1);
////// bw.Write(sampleRate);
////// bw.Write(sampleRate * bits / 8);
////// bw.Write((short)(bits / 8));
////// bw.Write((short)bits);
////// bw.Write(System.Text.Encoding.ASCII.GetBytes("data"));
////// bw.Write(dataSize);
////// WavMetadata.PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = samples.LongLength;
////// progressbartotrack.Maximum = 100;
////// for (long i = 0; i < samples.LongLength; i++)
////// {
////// float s = samples[i];
////// short val = (short)(Math.Max(-1f, Math.Min(1f, s)) * short.MaxValue);
////// bw.Write(val);
////// WavMetadata.PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = i;
////// progressbartotrack.Value = Math.Min(100, (int)((i * 100.0) / samples.LongLength));
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// }
////// WavMetadata.PUBLIC_STATIC_BOOL___IS_THE_STANDARD_FILE_WRITING_COMPLETE = true;
////// }
////// }
////// public static void NormalizeSamples(ref float[] samples)
////// {
////// float max = samples.Max(s => Math.Abs(s));
////// if (max < 0.00001f) return; // prevent divide by near-zero
////// for (int i = 0; i < samples.Length; i++)
////// {
////// samples[i] /= max;
////// }
////// }
////// public static float[] ReadWavMonoAsFloats(string path, out int sampleRate, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// sampleRate = 8000;
////// using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
////// {
////// br.BaseStream.Seek(0, SeekOrigin.Begin);
////// br.ReadBytes(12);
////// int channels = 1, bits = 16;
////// while (br.BaseStream.Position < br.BaseStream.Length)
////// {
////// string chunkID = new string(br.ReadChars(4));
////// int chunkSize = br.ReadInt32();
////// if (chunkID == "fmt ")
////// {
////// br.ReadInt16();
////// channels = br.ReadInt16();
////// sampleRate = br.ReadInt32();
////// br.ReadInt32();
////// br.ReadInt16();
////// bits = br.ReadInt16();
////// if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
////// }
////// else if (chunkID == "data")
////// {
////// int bytesPerSample = bits / 8;
////// int totalSamples = chunkSize / bytesPerSample;
////// float[] samples = new float[totalSamples / channels];
////// int j = 0;
////// for (int i = 0; i < totalSamples; i++)
////// {
////// if (br.BaseStream.Position + 2 > br.BaseStream.Length) break;
////// short sample = br.ReadInt16();
////// if (channels == 1 || i % channels == 0)
////// {
////// samples[j++] = sample / 32768f;
////// }
////// if (channels == 2) { br.ReadInt16(); }
////// }
////// return samples;
////// }
////// else
////// {
////// br.BaseStream.Position += chunkSize;
////// }
////// }
////// }
////// return new float[0];
////// }
////// public static void WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK(string path, int timeoutMs = 5000)
////// {
////// DateTime start = DateTime.Now;
////// while (true)
////// {
////// try
////// {
////// using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
////// {
////// if (fs.Length > 0) return;
////// }
////// }
////// catch (IOException) { }
////// if ((DateTime.Now - start).TotalMilliseconds > timeoutMs)
////// throw new TimeoutException("File was not ready within timeout.");
////// System.Threading.Thread.Sleep(100);
////// }
////// }
//////}//public static class WavResampler
////// public static class WavResampler
////// {
////// public static void ConvertToStandardFormat(string inputPath, string outputPath, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// int originalSps, channels, bits;
////// WavMetadata metadata = WavMetadata.Read(inputPath);
////// originalSps = metadata.SampleRate;
////// channels = metadata.Channels;
////// bits = metadata.BitsPerSample;
////// float[] samples = ReadWavMonoAsFloats(inputPath, out originalSps, ref progressbartotrack);
////// double durationInSeconds = (double)samples.Length / originalSps;
////// int targetSampleCount = (int)(durationInSeconds * 8000);
////// NormalizeSamples(ref samples);
////// float[] resampled = Resample(samples, targetSampleCount, ref progressbartotrack);
////// WriteMonoPcmWav(outputPath, resampled, 8000, 16, ref progressbartotrack);
////// }//public static void ConvertToStandardFormat(string inputPath, string outputPath, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// private static float HermiteInterpolate(float y0, float y1, float y2, float y3, float mu)
////// {
////// float mu2 = mu * mu;
////// float a0 = -0.5f * y0 + 1.5f * y1 - 1.5f * y2 + 0.5f * y3;
////// float a1 = y0 - 2.5f * y1 + 2f * y2 - 0.5f * y3;
////// float a2 = -0.5f * y0 + 0.5f * y2;
////// float a3 = y1;
////// return a0 * mu * mu2 + a1 * mu2 + a2 * mu + a3;
////// }//private static float HermiteInterpolate(float y0, float y1, float y2, float y3, float mu)
////// public static float[] Resample(float[] input, int targetLength, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// float[] result = new float[targetLength];
////// double step = (double)(input.Length - 1) / (targetLength - 1);
////// WavMetadata.PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = targetLength;
////// progressbartotrack.Maximum = 100;
////// for (int i = 0; i < targetLength; i++)
////// {
////// double pos = i * step;
////// int idx = (int)pos;
////// double frac = pos - idx;
////// if (idx + 1 >= input.Length)
////// {
////// result[i] = input[input.Length - 1];
////// }
////// else
////// {
////// result[i] = (float)((1 - frac) * input[idx] + frac * input[idx + 1]);
////// }//end of else of if (idx + 1 >= input.Length)
////// WavMetadata.PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = i;
////// progressbartotrack.Value = Math.Min(100, (int)((i * 100.0) / targetLength));
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// }//for (int i = 0; i < targetLength; i++)
////// WavMetadata.PUBLIC_STATIC_BOOL___IS_THE_RESAMPLING_COMPLETE = true;
////// return result;
////// }//public static float[] Resample(float[] input, int targetLength, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// public static void WriteMonoPcmWav(string path, float[] samples, int sampleRate, int bits, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
////// {
////// int dataSize = samples.Length * (bits / 8);
////// bw.Write(System.Text.Encoding.ASCII.GetBytes("RIFF"));
////// bw.Write(36 + dataSize);
////// bw.Write(System.Text.Encoding.ASCII.GetBytes("WAVE"));
////// bw.Write(System.Text.Encoding.ASCII.GetBytes("fmt "));
////// bw.Write(16);
////// bw.Write((short)1);
////// bw.Write((short)1);
////// bw.Write(sampleRate);
////// bw.Write(sampleRate * bits / 8);
////// bw.Write((short)(bits / 8));
////// bw.Write((short)bits);
////// bw.Write(System.Text.Encoding.ASCII.GetBytes("data"));
////// bw.Write(dataSize);
////// WavMetadata.PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = samples.LongLength;
////// progressbartotrack.Maximum = 100;
////// for (long i = 0; i < samples.LongLength; i++)
////// {
////// float s = samples[i];
////// short val = (short)(Math.Max(-1f, Math.Min(1f, s)) * short.MaxValue);
////// bw.Write(val);
////// WavMetadata.PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = i;
////// progressbartotrack.Value = Math.Min(100, (int)((i * 100.0) / samples.LongLength));
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// }//for (long i = 0; i < samples.LongLength; i++)
////// WavMetadata.PUBLIC_STATIC_BOOL___IS_THE_STANDARD_FILE_WRITING_COMPLETE = true;
////// }//using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
////// }//public static void WriteMonoPcmWav(string path, float[] samples, int sampleRate, int bits, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// public static void NormalizeSamples(ref float[] samples)
////// {
////// float max = samples.Max(s => Math.Abs(s));
////// if (max < 0.00001f) return; // prevent divide by near-zero
////// for (int i = 0; i < samples.Length; i++)
////// {
////// samples[i] /= max;
////// }
////// }
////// public static float[] ReadWavMonoAsFloats(string path, out int sampleRate, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// sampleRate = 8000;
////// using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
////// {
////// br.BaseStream.Seek(0, SeekOrigin.Begin);
////// br.ReadBytes(12);
////// int channels = 1, bits = 16;
////// while (br.BaseStream.Position < br.BaseStream.Length)
////// {
////// string chunkID = new string(br.ReadChars(4));
////// int chunkSize = br.ReadInt32();
////// if (chunkID == "fmt ")
////// {
////// br.ReadInt16();
////// channels = br.ReadInt16();
////// sampleRate = br.ReadInt32();
////// br.ReadInt32();
////// br.ReadInt16();
////// bits = br.ReadInt16();
////// if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
////// }
////// else if (chunkID == "data")
////// {
////// int bytesPerSample = bits / 8;
////// int totalSamples = chunkSize / bytesPerSample;
////// float[] samples = new float[totalSamples / channels];
////// int j = 0;
////// for (int i = 0; i < totalSamples; i++)
////// {
////// if (br.BaseStream.Position + 2 > br.BaseStream.Length) break;
////// short sample = br.ReadInt16();
////// if (channels == 1 || i % channels == 0)
////// {
////// samples[j++] = sample / 32768f;
////// }
////// if (channels == 2) { br.ReadInt16(); }
////// }
////// return samples;
////// }
////// else
////// {
////// br.BaseStream.Position += chunkSize;
////// }
////// }
////// }
////// return new float[0];
////// }// public static float[] ReadWavMonoAsFloats(string path, out int sampleRate, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// public static void WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK(string path, int timeoutMs = 5000)
////// {
////// DateTime start = DateTime.Now;
////// while (true)
////// {
////// try
////// {
////// using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
////// {
////// if (fs.Length > 0) return;
////// }
////// }
////// catch (IOException) { }
////// if ((DateTime.Now - start).TotalMilliseconds > timeoutMs)
////// throw new TimeoutException("File was not ready within timeout.");
////// System.Threading.Thread.Sleep(100);
////// }//while (true)
////// }// public static void WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK(string path, int timeoutMs = 5000)
//////}//public static class WavResampler
// this above is also bad not at par to audacity
/// below is also bad
////// public static class WavResampler
////// {
////// public static void discarding___ConvertToStandardFormat(string inputPath, string outputPath,ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// int originalSps, channels, bits;
////// WavMetadata metadata = WavMetadata.Read(inputPath);
////// originalSps = metadata.SampleRate;
////// channels = metadata.Channels;
////// bits = metadata.BitsPerSample;
////// //ref System.Windows.Forms.ProgressBar progressbartotrack
////// float[] samples = ReadWavMonoAsFloats(inputPath, out _ , ref progressbartotrack);
////// int newSampleCount = (int)((8000.0 / originalSps) * samples.Length);
////// //ref System.Windows.Forms.ProgressBar progressbartotrack
////// float[] resampled = Resample(samples, newSampleCount,ref progressbartotrack);
////// //ref System.Windows.Forms.ProgressBar progressbartotrack
////// WriteMonoPcmWav(outputPath, resampled, 8000, 16, ref progressbartotrack);
////// }//public static void ConvertToStandardFormat(string inputPath, string outputPath)
////// public static void ConvertToStandardFormat(string inputPath, string outputPath, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// int originalSps, channels, bits;
////// WavMetadata metadata = WavMetadata.Read(inputPath);
////// originalSps = metadata.SampleRate;
////// channels = metadata.Channels;
////// bits = metadata.BitsPerSample;
////// // Read original WAV samples with progress
////// float[] samples = ReadWavMonoAsFloats(inputPath, out originalSps, ref progressbartotrack);
////// // New logic: compute original duration based on full file's actual sample count & sample rate
////// double durationInSeconds = (double)samples.Length / originalSps;
////// // Target sample count based on duration to match Audacity behavior
////// int targetSampleCount = (int)(durationInSeconds * 8000);
////// // Resample to exact length, tracking progress
////// float[] resampled = Resample(samples, targetSampleCount, ref progressbartotrack);
////// // Write to 8000 SPS, 16-bit mono file
////// WriteMonoPcmWav(outputPath, resampled, 8000, 16, ref progressbartotrack);
////// }//public static void ConvertToStandardFormat(string inputPath, string outputPath)
////// //ref System.Windows.Forms.ProgressBar progressbartotrack
////// public static float[] Resample(float[] input, int targetLength, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// float[] result = new float[targetLength];
////// double step = (double)(input.Length - 1) / (targetLength - 1);
////// long ___long___total_samples = 0;
////// ___long___total_samples = targetLength;// samples.LongCount();
////// long __long_number_of_items_processed = 0;
////// WavMetadata
////// .PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
////// =
////// ___long___total_samples;
////// progressbartotrack.Maximum = 100;
////// progressbartotrack.Value = 0;
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// //////FOR REFERENCES public static long PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = 0;
////// //////FOR REFERENCES public static long PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = 0;
////// //////FOR REFERENCES public static bool PUBLIC_STATIC_BOOL___IS_THE_RESAMPLING_COMPLETE = false;
////// //////FOR REFERENCES public static bool PUBLIC_STATIC_BOOL___IS_THE_STANDARD_FILE_WRITING_COMPLETE = false;
////// for (int i = 0; i < targetLength; i++)
////// {
////// WavMetadata
////// .PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
////// = i;
////// progressbartotrack.Value = (int)((i/ targetLength))*100;
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// double pos = i * step;
////// int idx = (int)pos;
////// double frac = pos - idx;
////// result[i] = (idx + 1 < input.Length)
////// ? (float)((1 - frac) * input[idx] + frac * input[idx + 1])
////// : input[idx];
////// }// for (int i = 0; i < targetLength; i++)
////// if (
////// WavMetadata
////// .PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
////// ==
////// WavMetadata
////// .PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
////// )
////// {
////// WavMetadata
////// .PUBLIC_STATIC_BOOL___IS_THE_RESAMPLING_COMPLETE = true;
////// }
////// //////if (
////// //////WavMetadata
////// //////.PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
////// //////==
////// //////WavMetadata
////// //////.PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
////// //////)
////// return result;
////// }//public static float[] Resample(float[] input, int targetLength)
////// public static void WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK(string path, int timeoutMs = 5000)
////// {
////// DateTime start = DateTime.Now;
////// while (true)
////// {
////// try
////// {
////// using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
////// {
////// if (fs.Length > 0)
////// return; // File is ready
////// }//using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
////// }
////// catch (IOException)
////// {
////// // File is still locked or being written
////// }
////// if ((DateTime.Now - start).TotalMilliseconds > timeoutMs)
////// throw new TimeoutException("File was not ready within timeout.");
////// System.Threading.Thread.Sleep(100); // small wait before retrying
////// }//while (true)
////// }//public static void WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK(string path, int timeoutMs = 5000)
////// //ref System.Windows.Forms.ProgressBar progressbartotrack
////// public static void WriteMonoPcmWav(string path, float[] samples, int sampleRate, int bits, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
////// {
////// int dataSize = samples.Length * (bits / 8);
////// // Header
////// bw.Write(Encoding.ASCII.GetBytes("RIFF"));
////// bw.Write(36 + dataSize);
////// bw.Write(Encoding.ASCII.GetBytes("WAVE"));
////// bw.Write(Encoding.ASCII.GetBytes("fmt "));
////// bw.Write(16);
////// bw.Write((short)1); // PCM
////// bw.Write((short)1); // Mono
////// bw.Write(sampleRate);
////// bw.Write(sampleRate * bits / 8);
////// bw.Write((short)(bits / 8));
////// bw.Write((short)bits);
////// bw.Write(Encoding.ASCII.GetBytes("data"));
////// bw.Write(dataSize);
////// int total_samples_counter = (int)samples.LongCount();
////// int number_of_samples_processed = 0;
////// //////FOR REFERENCES public static long PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = 0;
////// //////FOR REFERENCES public static long PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT = 0;
////// //////FOR REFERENCES public static bool PUBLIC_STATIC_BOOL___IS_THE_RESAMPLING_COMPLETE = false;
////// //////FOR REFERENCES public static bool PUBLIC_STATIC_BOOL___IS_THE_STANDARD_FILE_WRITING_COMPLETE = false;
////// long ___long___total_samples = 0;
////// ___long___total_samples = samples.LongCount();
////// long __long_number_of_items_processed = 0;
////// progressbartotrack.Maximum = 100;
////// progressbartotrack.Value = 0;
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// WavMetadata
////// .PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
////// = ___long___total_samples;
////// //WE HAVE TO USE WaitUntilFileIsReady___TOO_IMPORTANT_TO_CHECK
////// foreach (float s in samples)
////// {
////// number_of_samples_processed++;
////// __long_number_of_items_processed++;
////// progressbartotrack.Value = ((int)((__long_number_of_items_processed / ___long___total_samples) * 100));
////// progressbartotrack.Invalidate();
////// progressbartotrack.Refresh();
////// WavMetadata
////// .PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
////// = __long_number_of_items_processed;
////// short val = (short)(Math.Max(-1f, Math.Min(1f, s)) * short.MaxValue);
////// bw.Write(val);
////// }//foreach (float s in samples)
//////if(
//////WavMetadata
//////.PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
//////==
//////WavMetadata
//////.PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
//////)
//////{
////// WavMetadata
////// .PUBLIC_STATIC_BOOL___IS_THE_STANDARD_FILE_WRITING_COMPLETE = true;
//////}
////////////if (
////////////WavMetadata
////////////.PUBLIC_STATIC_LONG_TOTAL_SAMPLES_FOUND___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
////////////==
////////////WavMetadata
////////////.PUBLIC_STATIC_LONG_NUMBER_OF_SAMPLES_PROCESSED___TO_CHECK_IF_ALL_SAMPLES_PROCESSING_COMPLETE_OR_NOT
////////////)
////// }//using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
////// }//public static void WriteMonoPcmWav(string path, float[] samples, int sampleRate, int bits)
////// /// THERE WAS ERRORS WHILE HANDLING HEAVY FILES
////// //////public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
////// //////{
////// ////// sampleRate = 8000;
////// ////// using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
////// ////// {
////// ////// br.BaseStream.Seek(0, SeekOrigin.Begin);
////// ////// br.ReadBytes(12);
////// ////// int channels = 1, bits = 16;
////// ////// while (br.BaseStream.Position < br.BaseStream.Length)
////// ////// {
////// ////// string chunkID = new string(br.ReadChars(4));
////// ////// int chunkSize = br.ReadInt32();
////// ////// if (chunkID == "fmt ")
////// ////// {
////// ////// br.ReadInt16();
////// ////// channels = br.ReadInt16();
////// ////// sampleRate = br.ReadInt32();
////// ////// br.ReadInt32(); br.ReadInt16();
////// ////// bits = br.ReadInt16();
////// ////// if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
////// ////// }
////// ////// else if (chunkID == "data")
////// ////// {
////// ////// int totalSamples = chunkSize / (bits / 8);
////// ////// float[] samples = new float[totalSamples / channels];
////// ////// for (int i = 0, j = 0; i < totalSamples; i++)
////// ////// {
////// ////// short sample = br.ReadInt16();
////// ////// if (channels == 1 || i % channels == 0)
////// ////// samples[j++] = sample / 32768f;
////// ////// if (channels == 2) br.ReadInt16(); // skip right
////// ////// }//for (int i = 0, j = 0; i < totalSamples; i++)
////// ////// return samples;
////// ////// }//END OF ELSE OF if (chunkID == "fmt ")
////// ////// else br.BaseStream.Position += chunkSize;
////// ////// }//while (br.BaseStream.Position < br.BaseStream.Length)
////// ////// }//using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
////// ////// return new float[0];
////// //////}//public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
////// // ref System.Windows.Forms.ProgressBar progressbartotrack
////// public static float[] ReadWavMonoAsFloats(string path, out int sampleRate, ref System.Windows.Forms.ProgressBar progressbartotrack)
////// {
////// sampleRate = 8000;
////// using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
////// {
////// br.BaseStream.Seek(0, SeekOrigin.Begin);
////// br.ReadBytes(12);// Skip RIFF header
////// int channels = 1, bits = 16;
////// while (br.BaseStream.Position < br.BaseStream.Length)
////// {
////// string chunkID = new string(br.ReadChars(4));
////// int chunkSize = br.ReadInt32();
////// if (chunkID == "fmt ")
////// {
////// br.ReadInt16(); // Audio format
////// channels = br.ReadInt16();
////// sampleRate = br.ReadInt32();
////// br.ReadInt32(); // Byte rate
////// br.ReadInt16(); // Block align
////// bits = br.ReadInt16();
////// if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
////// }//END OF if (chunkID == "fmt ")
////// else if (chunkID == "data")
////// {
////// int bytesPerSample = bits / 8;
////// int totalBytes = chunkSize;
////// int totalSamples = totalBytes / bytesPerSample;
////// float[] samples = new float[totalSamples / channels];
////// int j = 0;
////// for (int i = 0; i < totalSamples; i++)
////// {
////// if (br.BaseStream.Position + 2 > br.BaseStream.Length)
////// break;
////// short sample = br.ReadInt16();
////// if (channels == 1 || i % channels == 0)
////// {
////// samples[j++] = sample / 32768f;
////// }//END OF if (channels == 1 || i % channels == 0)
////// if (channels == 2)
////// {
////// if (br.BaseStream.Position + 2 > br.BaseStream.Length)
////// break;
////// br.ReadInt16(); // skip right
////// }//END OF if (channels == 2)
////// }//for (int i = 0; i < totalSamples; i++)
////// return samples;
////// }//END OF else if (chunkID == "data")
////// else
////// {
////// br.BaseStream.Position += chunkSize;
////// }//END OF ELSE OF chunkID checks
////// }//while (br.BaseStream.Position < br.BaseStream.Length)
////// }//using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
////// return new float[0];
////// }//public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
////// }//public static class WavResampler
}//namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
///////////////////////////////////////////// COMPLETES namespace SAAN_IS_TRYING_TO_DO_WAVS_ANALYSIS_WITH_1800_BUCKETS
///////////////////////////////////////////// STARTS namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
{
//////////////////////////////////////////////////////////////////////////
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
public class special___180_wav_files_generator___to__check_______theta_rotations_transitions___ShrutiTheta180WavExporter
{
public static void Export180ThetaWavs(string inputWavPath)
{
string outputFolder = Path.GetDirectoryName(Path.GetFullPath(inputWavPath));
float[] samples = ReadWavMonoAsFloats(inputWavPath, out int sampleRate);
double dtMs = 1000.0 / sampleRate;
int totalSamples = samples.Length;
List<int>[] thetaSampleBins = new List<int>[180];
for (int i = 0; i < 180; i++)
thetaSampleBins[i] = new List<int>();
for (int i = 1; i < samples.Length; i++)
{
float amp1 = samples[i - 1];
float amp2 = samples[i];
double dAmp = amp2 - amp1;
double thetaRad = Math.Atan2(dAmp, dtMs);
double thetaDeg = thetaRad * 180.0 / Math.PI;
if (thetaDeg < 0) thetaDeg += 180;
int bin = (int)Math.Floor(thetaDeg);
if (bin >= 0 && bin < 180)
thetaSampleBins[bin].Add(i);
}
Directory.CreateDirectory(outputFolder);
for (int i = 0; i < 180; i++)
{
string outPath = Path.Combine(outputFolder, $"theta_{i:D3}.wav");
using (FileStream fs = new FileStream(outPath, FileMode.Create))
using (BinaryWriter bw = new BinaryWriter(fs))
{
WriteWavHeaderPlaceholder(bw, sampleRate, 1);
HashSet<int> binIndices = new HashSet<int>(thetaSampleBins[i]);
for (int s = 0; s < totalSamples; s++)
{
float val = binIndices.Contains(s) ? samples[s] : 0f;
short sampleVal = (short)(Math.Max(-1f, Math.Min(1f, val)) * 32767);
bw.Write(sampleVal);
}
long dataSize = fs.Position - 44;
PatchWavHeader(bw, sampleRate, 1, (int)dataSize);
}
}
Console.WriteLine("180 theta-based full-length WAVs (with silence elsewhere) exported.");
}
public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
br.BaseStream.Seek(0, SeekOrigin.Begin);
br.ReadBytes(12);
int channels = 1;
sampleRate = 44100;
int bitsPerSample = 16;
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16();
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32();
br.ReadInt16();
bitsPerSample = br.ReadInt16();
if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
}
else if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || i % channels == 0)
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16();
}
return samples;
}
else br.ReadBytes(chunkSize);
}
}
sampleRate = 44100;
return new float[0];
}
public static void WriteWavHeaderPlaceholder(BinaryWriter bw, int sampleRate, int channels)
{
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(0);
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(sampleRate);
int byteRate = sampleRate * channels * 2;
short blockAlign = (short)(channels * 2);
bw.Write(byteRate);
bw.Write(blockAlign);
bw.Write((short)16);
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(0);
}
public static void PatchWavHeader(BinaryWriter bw, int sampleRate, int channels, int dataSize)
{
bw.Seek(4, SeekOrigin.Begin);
bw.Write(36 + dataSize);
bw.Seek(40, SeekOrigin.Begin);
bw.Write(dataSize);
}
}//public class special___180_wav_files_generator___to__check_______theta_rotations_transitions___ShrutiTheta180WavExporter
public class DISCARDED_SINCE_IT_WAS_SELECTING_ONLY_ONE_AMPLITUDE_AT_THE_LOCATIONS___special___180_wav_files_generator___to__check_______theta_rotations_transitions___ShrutiTheta180WavExporter
{
// public static void Export180ThetaWavs(string inputWavPath, string outputFolder)
public static void Export180ThetaWavs(string inputWavPath)
{
string outputFolder = Path.GetDirectoryName(Path.GetFullPath(inputWavPath));
float[] samples = ReadWavMonoAsFloats(inputWavPath, out int sampleRate);
double dtMs = 1000.0 / sampleRate;
List<int>[] thetaSampleBins = new List<int>[180];
for (int i = 0; i < 180; i++)
thetaSampleBins[i] = new List<int>();
for (int i = 1; i < samples.Length; i++)
{
float amp1 = samples[i - 1];
float amp2 = samples[i];
double dAmp = amp2 - amp1;
double thetaRad = Math.Atan2(dAmp, dtMs);
double thetaDeg = thetaRad * 180.0 / Math.PI;
if (thetaDeg < 0) thetaDeg += 180;
int bin = (int)Math.Floor(thetaDeg);
if (bin >= 0 && bin < 180)
thetaSampleBins[bin].Add(i);
}
Directory.CreateDirectory(outputFolder);
for (int i = 0; i < 180; i++)
{
string outPath = Path.Combine(outputFolder, $"theta_{i:D3}.wav");
using (FileStream fs = new FileStream(outPath, FileMode.Create))
using (BinaryWriter bw = new BinaryWriter(fs))
{
WriteWavHeaderPlaceholder(bw, sampleRate, 1);
foreach (int index in thetaSampleBins[i])
{
float sample = samples[index];
short s = (short)(Math.Max(-1f, Math.Min(1f, sample)) * 32767);
bw.Write(s);
}
long dataSize = fs.Position - 44;
PatchWavHeader(bw, sampleRate, 1, (int)dataSize);
}
}
Console.WriteLine("180 theta-based filtered WAV files exported.");
}
public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
br.BaseStream.Seek(0, SeekOrigin.Begin);
br.ReadBytes(12);
int channels = 1;
sampleRate = 44100;
int bitsPerSample = 16;
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16();
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32();
br.ReadInt16();
bitsPerSample = br.ReadInt16();
if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
}
else if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || i % channels == 0)
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16();
}
return samples;
}
else br.ReadBytes(chunkSize);
}
}
sampleRate = 44100;
return new float[0];
}//public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
public static void WriteWavHeaderPlaceholder(BinaryWriter bw, int sampleRate, int channels)
{
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(0);
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(sampleRate);
int byteRate = sampleRate * channels * 2;
short blockAlign = (short)(channels * 2);
bw.Write(byteRate);
bw.Write(blockAlign);
bw.Write((short)16);
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(0);
}//public static void WriteWavHeaderPlaceholder(BinaryWriter bw, int sampleRate, int channels)
public static void PatchWavHeader(BinaryWriter bw, int sampleRate, int channels, int dataSize)
{
bw.Seek(4, SeekOrigin.Begin);
bw.Write(36 + dataSize);
bw.Seek(40, SeekOrigin.Begin);
bw.Write(dataSize);
}
}//public class special___180_wav_files_generator___to__check_______theta_rotations_transitions___ShrutiTheta180WavExporter
//specially written SAAN to generate the singles samples 80000 sps 16 bits input to PAN with preaccumulated odd even zero crossings
public static class WavWriter_with_left_right_samples_pan_list_supplied
{
public static void WriteStereoWav(string outputPath, List<float> left, List<float> right, int sampleRate, int bitsPerSample)
{
if (left.Count != right.Count)
{
Console.WriteLine("Left and right channel sample counts do not match. Padding shorter list.");
int minLength = Math.Min(left.Count, right.Count);
while (left.Count < minLength) left.Add(0);
while (right.Count < minLength) right.Add(0);
}//if (left.Count != right.Count)
int numSamples = left.Count;
int numChannels = 2;
// int byteRate = sampleRate * numChannels * bitsPerSample / 8;
//saan checking
int byteRate = (sampleRate/2) * numChannels * bitsPerSample / 8;
int blockAlign = numChannels * bitsPerSample / 8;
int dataSize = numSamples * blockAlign;
int fileSize = 44 + dataSize;
using (BinaryWriter writer = new BinaryWriter(File.Create(outputPath)))
{
// Write RIFF header
writer.Write(System.Text.Encoding.ASCII.GetBytes("RIFF"));
writer.Write(fileSize - 8); // File size minus RIFF and size fields
writer.Write(System.Text.Encoding.ASCII.GetBytes("WAVE"));
// Format chunk
writer.Write(System.Text.Encoding.ASCII.GetBytes("fmt "));
writer.Write(16); // PCM header size
writer.Write((short)1); // PCM format
writer.Write((short)numChannels);
writer.Write(sampleRate);
writer.Write(byteRate);
writer.Write((short)blockAlign);
writer.Write((short)bitsPerSample);
// Data chunk
writer.Write(System.Text.Encoding.ASCII.GetBytes("data"));
writer.Write(dataSize);
//////for (int i = 0; i < numSamples; i++)
//////{
////// short leftSample = ConvertToPcmSample(left[i], bitsPerSample);
////// short rightSample = ConvertToPcmSample(right[i], bitsPerSample);
////// writer.Write(leftSample);
////// writer.Write(rightSample);
//////}//for (int i = 0; i < numSamples; i++)
///
//////for (int i = 0; i < numSamples; i++)
//////{
////// WriteSample(writer, left[i], bitsPerSample);
////// WriteSample(writer, right[i], bitsPerSample);
//////}//for (int i = 0; i < numSamples; i++)
//this is also bad output
int numSamples_Mins_Taken = Math.Min(left.Count, right.Count); // Prevent index out of bounds
for (int i = 0; i < numSamples_Mins_Taken; i++)
{
WriteSample(writer, left[i], bitsPerSample);
WriteSample(writer, right[i], bitsPerSample);
}//for (int i = 0; i < numSamples_Mins_Taken; i++)
// Optional: Balance lists
//If you want to pad the shorter list with silence, you can also do this:
////////very bad output no output
//////int maxSamples = Math.Max(left.Count, right.Count);
//////while (left.Count < maxSamples) left.Add(0f);
//////while (right.Count < maxSamples) right.Add(0f);
// Then loop using maxSamples.
// But if preserving your original logic is critical, prefer Math.Min.
////////very bad output
//////for (int i = 0; i < maxSamples; i++)
//////{
////// WriteSample(writer, left[i], bitsPerSample);
////// WriteSample(writer, right[i], bitsPerSample);
//////}//for (int i = 0; i < maxSamples; i++)
}//using (BinaryWriter writer = new BinaryWriter(File.Create(outputPath)))
}//public static void WriteStereoWav(string outputPath, List<float> left, List<float> right, int sampleRate, int bitsPerSample)
private static void WriteSample(BinaryWriter writer, float sample, int bitsPerSample)
{
sample = Math.Max(-1f, Math.Min(1f, sample)); // Clamp to [-1,1]
switch (bitsPerSample)
{
case 8:
byte val8 = (byte)((sample + 1f) * 127.5f); // 0 to 255
writer.Write(val8);
break;
case 16:
short val16 = (short)(sample * short.MaxValue);
writer.Write(val16);
break;
case 24:
int val24 = (int)(sample * 8388607); // 2^23 - 1
writer.Write((byte)(val24 & 0xFF));
writer.Write((byte)((val24 >> 8) & 0xFF));
writer.Write((byte)((val24 >> 16) & 0xFF));
break;
case 32:
int val32 = (int)(sample * int.MaxValue);
writer.Write(val32);
break;
default:
throw new NotSupportedException($"Bit depth {bitsPerSample} not supported.");
}//switch (bitsPerSample)
}//private static void WriteSample(BinaryWriter writer, float sample, int bitsPerSample)
private static short ConvertToPcmSample(float sample, int bitsPerSample)
{
// Clamp [-1, 1] and scale to 16-bit PCM range
sample = Math.Max(-1f, Math.Min(1f, sample));
if (bitsPerSample == 16)
{
return (short)(sample * short.MaxValue);
}
else
{
throw new NotSupportedException("Only 16-bit PCM supported in this implementation.");
}
}//private static short ConvertToPcmSample(float sample, int bitsPerSample)
}//public static class WavWriter_with_left_right_samples_pan_list_supplied
/// <summary>
/// //////////////////////////////////////////////////////////////////////////////////////////////////////
/// </summary>
public class StereoWavWriter___READS_TEXT_FILES___TWO_COLUMNS_THE_LEFT_RIGHT_ODD_EVEN_GTAMPS
{
public static void process_text_file_with___StereoWavWriter___READS_TEXT_FILES___TWO_COLUMNS_THE_LEFT_RIGHT_ODD_EVEN_GTAMPS___Main(string filename___TWO_COLUMNS_THE_LEFT_RIGHT_ODD_EVEN_GTAMPS)
{
string inputPath = filename___TWO_COLUMNS_THE_LEFT_RIGHT_ODD_EVEN_GTAMPS;//"input_samples.txt"; // Update this path as needed
string outputWavPath = filename___TWO_COLUMNS_THE_LEFT_RIGHT_ODD_EVEN_GTAMPS + "_saans_left_right_odd_even_zero_crossings_pan.wav";//"output.wav";
List<float> leftSamples = new List<float>();
List<float> rightSamples = new List<float>();
foreach (string line in File.ReadLines(inputPath))
{
if (string.IsNullOrWhiteSpace(line)) continue;
string[] parts = line.Split(new[] { ',', '\t' }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length < 2) continue;
if (float.TryParse(parts[0], NumberStyles.Float, CultureInfo.InvariantCulture, out float left) &&
float.TryParse(parts[1], NumberStyles.Float, CultureInfo.InvariantCulture, out float right))
{
leftSamples.Add(left);
rightSamples.Add(right);
}
}//foreach (string line in File.ReadLines(inputPath))
if (leftSamples.Count != rightSamples.Count)
{
Console.WriteLine("Mismatch in sample count between left and right channels.");
return;
}//if (leftSamples.Count != rightSamples.Count)
// WriteStereoWav(outputWavPath, leftSamples, rightSamples, 44100, 16);
//actual is 8000
WriteStereoWav(outputWavPath, leftSamples, rightSamples, 8000, 16);
Console.WriteLine("Stereo WAV written to: " + outputWavPath);
}
public static void WriteStereoWav(string path, List<float> left, List<float> right, int sampleRate, int bitsPerSample)
{
int bytesPerSample = bitsPerSample / 8;
int numChannels = 2;
int blockAlign = bytesPerSample * numChannels;
int byteRate = sampleRate * blockAlign;
// int byteRate = (sampleRate/2) * blockAlign;
int dataSize = left.Count * blockAlign;
int fileSize = 44 + dataSize - 8;
using (BinaryWriter writer = new BinaryWriter(File.Create(path)))
{
// RIFF header
writer.Write(Encoding.ASCII.GetBytes("RIFF"));
writer.Write(fileSize);
writer.Write(Encoding.ASCII.GetBytes("WAVE"));
// fmt chunk
writer.Write(Encoding.ASCII.GetBytes("fmt "));
writer.Write(16); // Subchunk1Size for PCM
writer.Write((short)1); // AudioFormat = PCM
writer.Write((short)numChannels);
writer.Write(sampleRate);
writer.Write(byteRate);
writer.Write((short)blockAlign);
writer.Write((short)bitsPerSample);
// data chunk
writer.Write(Encoding.ASCII.GetBytes("data"));
writer.Write(dataSize);
for (int i = 0; i < left.Count; i++)
{
short leftSample = ConvertFloatToPcm16(left[i]);
short rightSample = ConvertFloatToPcm16(right[i]);
writer.Write(leftSample);
writer.Write(rightSample);
}//for (int i = 0; i < left.Count; i++)
}//using (BinaryWriter writer = new BinaryWriter(File.Create(path)))
}//public static void WriteStereoWav(string path, List<float> left, List<float> right, int sampleRate, int bitsPerSample)
public static short ConvertFloatToPcm16(float value)
{
// Clamp to [-1.0f, 1.0f]
if (value > 1.0f) value = 1.0f;
if (value < -1.0f) value = -1.0f;
return (short)(value * 32767);
}//public static short ConvertFloatToPcm16(float value)
}//public class StereoWavWriter___READS_TEXT_FILES___TWO_COLUMNS_THE_LEFT_RIGHT_ODD_EVEN_GTAMPS
/////////////////////////////////////////////////////////////////////////////
public class ShrutiResamplerAnalyzer___WITH_BITMAPS____DETAILED_SWINGS_OF______DEEP___PANNING__________RECALCULATED___66_COPIES_SHRUTIS_PANNED_WITH_STATISTICS
{
public static Dictionary<int, int> ThetaCounts = new Dictionary<int, int>();
public static int ThetaCountMedian = 0;
public static double PUBLIC_STATIC_DOUBLES_ZERO_CROSSING_NEGATIVES_TO_POSITIVES_COUNTER = 0;
public static double PUBLIC_STATIC_DOUBLES_ZERO_CROSSING_POSITIVES_TO_NEGATIVES_COUNTER = 0;
public static double PUBLIC_STATIC_DOUBLES_ZERO_CROSSING_ANY_KIND_OF_ZERO_CROSSINGS_COUNTER = 0;
public static List<float> PUBLIC_STATIC_LIST_OF_FLOATS_TO_STORE_LEFT_PANS_SAMPLES = new List<float>();
public static List<float> PUBLIC_STATIC_LIST_OF_FLOATS_TO_STORE_RIGHT_PANS_SAMPLES = new List<float>();
public static void FirstScanThetaBinning(string inputWavPath)
{
StringBuilder ___temp_StringBuilder_for_leftPan_right_pan = new StringBuilder();
___temp_StringBuilder_for_leftPan_right_pan.Clear();
PUBLIC_STATIC_LIST_OF_FLOATS_TO_STORE_LEFT_PANS_SAMPLES.Clear();
PUBLIC_STATIC_LIST_OF_FLOATS_TO_STORE_RIGHT_PANS_SAMPLES.Clear();
float[] samples = ReadWavMonoAsFloats(inputWavPath, out int sampleRate);
double dtMs = 1000.0 / sampleRate;
List<double>[] thetaBins = new List<double>[180];
for (int i = 0; i < 180; i++)
{
thetaBins[i] = new List<double>();
ThetaCounts[i] = 0;
}
for (int i = 1; i < samples.Length; i++)
{
float amp1 = samples[i - 1];
float amp2 = samples[i];
double dAmp = amp2 - amp1;
if(amp2>0 && amp1 <=0)
{
PUBLIC_STATIC_DOUBLES_ZERO_CROSSING_NEGATIVES_TO_POSITIVES_COUNTER ++;
PUBLIC_STATIC_DOUBLES_ZERO_CROSSING_ANY_KIND_OF_ZERO_CROSSINGS_COUNTER++;
}// if(amp2>0 && amp1 <=0)
else if (amp2 <= 0 && amp1 > 0)
{
PUBLIC_STATIC_DOUBLES_ZERO_CROSSING_POSITIVES_TO_NEGATIVES_COUNTER++;
PUBLIC_STATIC_DOUBLES_ZERO_CROSSING_ANY_KIND_OF_ZERO_CROSSINGS_COUNTER++;
}//if (amp2 <= 0 && amp1 >= 0)
else
{
// i was getting sufficient less number of samples
// PUBLIC_STATIC_DOUBLES_ZERO_CROSSING_NEGATIVES_TO_POSITIVES_COUNTER++;
PUBLIC_STATIC_DOUBLES_ZERO_CROSSING_ANY_KIND_OF_ZERO_CROSSINGS_COUNTER++;
}//i had to add this to accumulate all the samples
if(PUBLIC_STATIC_DOUBLES_ZERO_CROSSING_ANY_KIND_OF_ZERO_CROSSINGS_COUNTER%2 ==0)
{
PUBLIC_STATIC_LIST_OF_FLOATS_TO_STORE_RIGHT_PANS_SAMPLES.Add(amp2);
___temp_StringBuilder_for_leftPan_right_pan
.AppendLine("0.000000 , " + amp2.ToString("F8"));
}
else
{
PUBLIC_STATIC_LIST_OF_FLOATS_TO_STORE_LEFT_PANS_SAMPLES.Add(amp1);
___temp_StringBuilder_for_leftPan_right_pan
.AppendLine( amp1.ToString("F8")+",0.000000");
}//end of else of if(PUBLIC_STATIC_DOUBLES_ZERO_CROSSING_ANY_KIND_OF_ZERO_CROSSINGS_COUNTER%2 ==0)
double thetaRad = Math.Atan2(dAmp, dtMs);
double thetaDeg = thetaRad * 180.0 / Math.PI;
if (thetaDeg < 0) thetaDeg += 180;
int bin = (int)Math.Floor(thetaDeg);
if (bin >= 0 && bin < 180)
{
double timeMs = i * dtMs;
thetaBins[bin].Add(timeMs);
ThetaCounts[bin]++;
}
}//for (int i = 1; i < samples.Length; i++)
ThetaCountMedian = ThetaCounts.Values.OrderBy(x => x).ElementAt(ThetaCounts.Count / 2);
SaveBitmapAndDxf(thetaBins, samples.Length, dtMs, inputWavPath);
ExportThetaStats(thetaBins, inputWavPath);
try
{
//////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
inputWavPath + "_saans_RAW_GRABBINGS_FILTERED_left_pan_right_pan_odd_even_zero_count.THE_LEFT_RIGHT_ODD_EVEN_GTAMPS"
,
___temp_StringBuilder_for_leftPan_right_pan.ToString()
);
//////////////////////////////////////////////////////////////////////////////
WavWriter_with_left_right_samples_pan_list_supplied
.WriteStereoWav
(
outputPath: inputWavPath.Replace(".wav", "_saans_pan_accumulated_from_the_odd_evens_listsstereo.wav"),
left: PUBLIC_STATIC_LIST_OF_FLOATS_TO_STORE_LEFT_PANS_SAMPLES,
right: PUBLIC_STATIC_LIST_OF_FLOATS_TO_STORE_RIGHT_PANS_SAMPLES,
sampleRate: sampleRate,
bitsPerSample: 16 // Assuming 16-bit input. Update if different.
);
/////////////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("Wait\r\n\r\n\r\n writing the double columns odds evens left pans right pans GTAMS FILES FIRST THEN WE WILL READ \r\n\r\n\r\n\r\n\r\n\r\n\r\n StereoWavWriter___READS_TEXT_FILES___TWO_COLUMNS_THE_LEFT_RIGHT_ODD_EVEN_GTAMPS");
//tricky calls
WaitUntilFileIsReady(inputWavPath + "_saans_RAW_GRABBINGS_FILTERED_left_pan_right_pan_odd_even_zero_count.THE_LEFT_RIGHT_ODD_EVEN_GTAMPS");
System.Windows.Forms.MessageBox.Show("FILE IS READY\r\n\r\n\r\n writing the double columns odds evens left pans right pans GTAMS FILES FIRST THEN WE WILL READ \r\n\r\n\r\n\r\n\r\n\r\n\r\n StereoWavWriter___READS_TEXT_FILES___TWO_COLUMNS_THE_LEFT_RIGHT_ODD_EVEN_GTAMPS");
StereoWavWriter___READS_TEXT_FILES___TWO_COLUMNS_THE_LEFT_RIGHT_ODD_EVEN_GTAMPS
.process_text_file_with___StereoWavWriter___READS_TEXT_FILES___TWO_COLUMNS_THE_LEFT_RIGHT_ODD_EVEN_GTAMPS___Main
(
inputWavPath + "_saans_RAW_GRABBINGS_FILTERED_left_pan_right_pan_odd_even_zero_count.THE_LEFT_RIGHT_ODD_EVEN_GTAMPS"
);
}
catch (Exception ___excp___saan_styles_leftpans_right_pans_files_writings)
{
System.Windows.Forms.MessageBox.Show("___excp___saan_styles_leftpans_right_pans_files_writings = " + ___excp___saan_styles_leftpans_right_pans_files_writings.Message + " " + ___excp___saan_styles_leftpans_right_pans_files_writings.StackTrace.ToString());
}//catch(Exception ___excp___saan_styles_leftpans_right_pans_files_writings)
}//public static void FirstScanThetaBinning(string inputWavPath)
public static void WaitUntilFileIsReady(string path, int timeoutMs = 5000)
{
DateTime start = DateTime.Now;
while (true)
{
try
{
using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
{
if (fs.Length > 0)
return; // File is ready
}//using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
}
catch (IOException)
{
// File is still locked or being written
}
if ((DateTime.Now - start).TotalMilliseconds > timeoutMs)
throw new TimeoutException("File was not ready within timeout.");
System.Threading.Thread.Sleep(100); // small wait before retrying
}//while (true)
}//public static void WaitUntilFileIsReady(string path, int timeoutMs = 5000)
public static double GetPanningFactorFromThetaStats(int bin)
{
if (!ThetaCounts.ContainsKey(bin)) return 0.5;
int count = ThetaCounts[bin];
return Math.Min(1.0, count / (double)(ThetaCountMedian * 2));
}
public static void GenerateShrutiVariants___GPT(string inputWavPath, string outputWavPath)
{
float[] sourceSamples = ReadWavMonoAsFloats(inputWavPath, out int sourceRate);
int outputRate = 8000;
double originalFrequency = 440.0;
double durationSec = sourceSamples.Length / (double)sourceRate;
double totalCycleProduct = originalFrequency * durationSec;
using (FileStream fs = new FileStream(outputWavPath, FileMode.Create))
using (BinaryWriter bw = new BinaryWriter(fs))
{
WriteWavHeaderPlaceholder(bw, outputRate, 2);
for (int i = -33; i <= 32; i++)
{
double semitoneShift = i * (1.0 / 3);
double freqMultiplier = Math.Pow(2, semitoneShift / 12.0);
double newFreq = originalFrequency * freqMultiplier;
double newDuration = totalCycleProduct / newFreq;
int newSampleCount = (int)(newDuration * outputRate);
float[] resampled = ResampleWithFactor(sourceSamples, newSampleCount);
int start = 0;
for (int j = 1; j < resampled.Length; j++)
{
if ((resampled[j - 1] >= 0 && resampled[j] < 0) || (resampled[j - 1] < 0 && resampled[j] >= 0))
{
float amp1 = resampled[Math.Max(start, j - 2)];
float amp2 = resampled[Math.Max(start + 1, j - 1)];
double dAmp = amp2 - amp1;
double dt = 1.0 / outputRate * 1000.0;
double thetaRad = Math.Atan2(dAmp, dt);
double thetaDeg = thetaRad * 180.0 / Math.PI;
if (thetaDeg < 0) thetaDeg += 180;
int bin = (int)Math.Floor(thetaDeg);
double panFactor = GetPanningFactorFromThetaStats(bin);
for (int k = start; k < j; k++)
{
float amp = resampled[k];
float l = (float)((1.0 - panFactor) * amp * 1.2f); // increase gain to avoid suppression
float r = (float)(panFactor * amp * 1.2f);
WriteStereoSample(bw, l, r);
}
start = j;
}
}
for (int k = start; k < resampled.Length; k++)
{
float amp = resampled[k];
float l = amp * 0.7f;
float r = amp * 0.7f;
WriteStereoSample(bw, l, r);
}
}
long fileLength = fs.Position;
PatchWavHeader(bw, outputRate, 2, (int)(fileLength - 44));
}
}
public static void SaveBitmapAndDxf(List<double>[] thetaBins, int totalSamples, double dtMs, string basePath)
{
int maxX = (int)(totalSamples * dtMs);
double ___double___dxf_width_is_actiual_millis = maxX;
double ___double___y_scale_for_dxf = maxX / 180; ;
int maxBitmapWidth = 10000;
double scale = 1.0;
if (maxX > maxBitmapWidth)
{
scale = (double)maxBitmapWidth / maxX;
maxX = maxBitmapWidth;
}
int height = 1800;
Bitmap bmp = new Bitmap(maxX, height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.White);
for (int i = 0; i < 180; i++)
{
int y = i * height / 180;
Brush brush = new SolidBrush(GetHeatmapColor(ThetaCounts[i], 0, 1000));
foreach (double t in thetaBins[i])
{
int x = (int)(t * scale);
if (x >= 0 && x < maxX) g.FillEllipse(brush, x, y, 2, 2);
}
}
}
bmp.Save(Path.ChangeExtension(basePath, "_STATISTIKALLY_COLORED_rotations_colored.bmp"));
using (StreamWriter sw = new StreamWriter(Path.ChangeExtension(basePath, ".STATISTIKALLY_COLORED_colored.dxf")))
{
sw.WriteLine("0\nSECTION\n2\nENTITIES");
int durationInSeconds = (int)Math.Ceiling(totalSamples * dtMs / 1000.0);
for (int sec = 0; sec <= durationInSeconds; sec++)
{
double x = sec * 1000.0; // time in milliseconds
// Vertical green line (color index 3 = green)
sw.WriteLine("0\nLINE");
sw.WriteLine("8\nTimeMarkers");
sw.WriteLine("62\n3"); // green
sw.WriteLine($"10\n{x:F3}");
sw.WriteLine("20\n0.0");
sw.WriteLine("30\n0.0");
sw.WriteLine($"11\n{x:F3}");
sw.WriteLine($"21\n{180 * ___double___y_scale_for_dxf:F3}");
sw.WriteLine("31\n0.0");
// Text on top of the line
sw.WriteLine("0\nTEXT");
sw.WriteLine("8\nTimeLabels");
sw.WriteLine("62\n3"); // green
sw.WriteLine($"10\n{x + 2:F3}"); // small offset to the right
sw.WriteLine($"20\n{(180 * ___double___y_scale_for_dxf) + 2:F3}"); // small offset above
sw.WriteLine("30\n0.0");
sw.WriteLine("40\n5"); // height of text
sw.WriteLine("1\n" + sec.ToString() + "s");
}//for (int sec = 0; sec <= durationInSeconds; sec++)
for (int i = 0; i < 180; i++)
{
double y = i* ___double___y_scale_for_dxf;
string layer = $"Theta_{i:D3}_Count_{ThetaCounts[i]}";
foreach (double t in thetaBins[i])
{
int colorIndex = i % 30;
sw.WriteLine("0\nCIRCLE");
sw.WriteLine($"8\n{layer}");
sw.WriteLine($"62\n{colorIndex}"); // DXF color
sw.WriteLine("10\n" + t.ToString("F3"));//true scales
sw.WriteLine("20\n" + (y ).ToString("F3"));//true scales
sw.WriteLine("30\n0.0\n40\n0.1");
}//foreach (double t in thetaBins[i])
}//for (int i = 0; i < 180; i++)
sw.WriteLine("0\nENDSEC\n0\nEOF");
}
}
//////sw.WriteLine("0\nCIRCLE");
//////sw.WriteLine($"8\n{layer}");
//////sw.WriteLine($"62\n{colorIndex}"); // DXF color
//////sw.WriteLine($"10\n{t:F3}");
//////sw.WriteLine($"20\n{y:F3}");
//////sw.WriteLine("30\n0.0");
//////sw.WriteLine("40\n0.1"); // radius
public static Color GetHeatmapColor(int value, int min, int max)
{
double ratio = Math.Min(1.0, Math.Max(0.0, (value - min) / (double)(max - min)));
int r = (int)(255 * ratio);
int b = 255 - r;
return Color.FromArgb(r, 0, b);
}
public static void ExportThetaStats(List<double>[] thetaBins, string basePath)
{
using (StreamWriter sw = new StreamWriter(Path.ChangeExtension(basePath, ".theta_analysis.txt")))
{
for (int i = 0; i < 180; i++)
{
var times = thetaBins[i];
sw.WriteLine($"Theta {i}° ({times.Count} entries)");
if (times.Count > 0)
{
double percentile25 = times[(int)(0.25 * times.Count)];
double percentile50 = times[(int)(0.50 * times.Count)];
double percentile75 = times[(int)(0.75 * times.Count)];
sw.WriteLine($"25th %ile: {percentile25} ms, 50th: {percentile50} ms, 75th: {percentile75} ms");
}
}
}
}
public static float[] ResampleWithFactor(float[] input, int targetLength)
{
float[] result = new float[targetLength];
double step = (double)(input.Length - 1) / (targetLength - 1);
for (int i = 0; i < targetLength; i++)
{
double pos = i * step;
int idx = (int)pos;
double frac = pos - idx;
result[i] = (idx + 1 < input.Length)
? (float)((1 - frac) * input[idx] + frac * input[idx + 1])
: input[idx];
}
return result;
}
public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
br.BaseStream.Seek(0, SeekOrigin.Begin);
br.ReadBytes(12);
int channels = 1;
sampleRate = 8000;// 44100;
int bitsPerSample = 16;
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16();
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32();
br.ReadInt16();
bitsPerSample = br.ReadInt16();
if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
}
else if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || i % channels == 0)
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16();
}
return samples;
}
else br.ReadBytes(chunkSize);
}
}
sampleRate = 44100;
return new float[0];
}
public static void WriteStereoSample(BinaryWriter bw, float left, float right)
{
short l = (short)(Math.Max(-1f, Math.Min(1f, left)) * 32767);
short r = (short)(Math.Max(-1f, Math.Min(1f, right)) * 32767);
bw.Write(l);
bw.Write(r);
}
public static void WriteWavHeaderPlaceholder(BinaryWriter bw, int sampleRate, int channels)
{
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(0);
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(sampleRate);
int byteRate = sampleRate * channels * 2;
short blockAlign = (short)(channels * 2);
bw.Write(byteRate);
bw.Write(blockAlign);
bw.Write((short)16);
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(0);
}
public static void PatchWavHeader(BinaryWriter bw, int sampleRate, int channels, int dataSize)
{
bw.Seek(4, SeekOrigin.Begin);
bw.Write(36 + dataSize);
bw.Seek(40, SeekOrigin.Begin);
bw.Write(dataSize);
}
}//public class ShrutiResamplerAnalyzer___WITH_BITMAPS____DETAILED_SWINGS_OF______DEEP___PANNING__________RECALCULATED___66_COPIES_SHRUTIS_PANNED_WITH_STATISTICS
public class VOLUMES__SUPPRESSED____ShrutiResamplerAnalyzer___WITH_BITMAPS____DETAILED_SWINGS_OF______DEEP___PANNING__________RECALCULATED___66_COPIES_SHRUTIS_PANNED_WITH_STATISTICS
{
public static Dictionary<int, int> ThetaCounts = new Dictionary<int, int>();
public static int ThetaCountMedian = 0;
public static void FirstScanThetaBinning(string inputWavPath)
{
float[] samples = ReadWavMonoAsFloats(inputWavPath, out int sampleRate);
double dtMs = 1000.0 / sampleRate;
List<double>[] thetaBins = new List<double>[180];
for (int i = 0; i < 180; i++)
{
thetaBins[i] = new List<double>(); // I NEED THE (STRICTKY ADDITIONAL 180 FILES) 8000 SAMPLES PER SECOND PCM RIFF 16 BITS DEPTH WAV FILES KEEPING THE SAME SAMPLES PER SECOND AS ORIGINAL INPUT FILE AND NO CHANGE IN FREQUENCIES ) FILTERED ONLY WITH THESE LIST VALUES AMPLITUDES CASES TO UNDERSTAND HOW THESE PLAYS ) I NEED TO EXAMINE ALL THESE 180 DIFFERENT WAV FILES SUCH THAT IT WILL HELP ME TO UNDERSTAND THE LISTENING OF WAVE FORMS BEHAVIORS DUE TO 180 DIFFERENT WAV FILES (NOT 66 COPIES FOR THESE 180 CASES OF SAME SAMPLES
ThetaCounts[i] = 0;
}
for (int i = 1; i < samples.Length; i++)
{
float amp1 = samples[i - 1];
float amp2 = samples[i];
double dAmp = amp2 - amp1;
double thetaRad = Math.Atan2(dAmp, dtMs);
double thetaDeg = (thetaRad * 180.0 / Math.PI);
if (thetaDeg < 0) thetaDeg += 180;
int bin = (int)Math.Floor(thetaDeg);
if (bin >= 0 && bin < 180)
{
double timeMs = i * dtMs;
thetaBins[bin].Add(timeMs);
ThetaCounts[bin]++;
}
}
ThetaCountMedian = ThetaCounts.Values.OrderBy(x => x).ElementAt(ThetaCounts.Count / 2);
SaveBitmapAndDxf(thetaBins, samples.Length, dtMs, inputWavPath);
ExportThetaStats(thetaBins, inputWavPath);
}
public static double GetPanningFactorFromThetaStats(int bin)
{
if (!ThetaCounts.ContainsKey(bin)) return 0.5;
int count = ThetaCounts[bin];
return Math.Min(1.0, count / (double)(ThetaCountMedian * 2));
}//public static double GetPanningFactorFromThetaStats(int bin)
public static void GenerateShrutiVariants___GPT(string inputWavPath, string outputWavPath)
{
float[] sourceSamples = ReadWavMonoAsFloats(inputWavPath, out int sourceRate);
int outputRate = 8000;
double originalFrequency = 440.0;
double durationSec = sourceSamples.Length / (double)sourceRate;
double totalCycleProduct = originalFrequency * durationSec;
using (FileStream fs = new FileStream(outputWavPath, FileMode.Create))
using (BinaryWriter bw = new BinaryWriter(fs))
{
WriteWavHeaderPlaceholder(bw, outputRate, 2);
for (int i = -33; i <= 32; i++)
{
double semitoneShift = i * (1.0 / 3);
double freqMultiplier = Math.Pow(2, semitoneShift / 12.0);
double newFreq = originalFrequency * freqMultiplier;
double newDuration = totalCycleProduct / newFreq;
int newSampleCount = (int)(newDuration * outputRate);
float[] resampled = ResampleWithFactor(sourceSamples, newSampleCount);
int start = 0;
for (int j = 1; j < resampled.Length; j++)
{
if ((resampled[j - 1] >= 0 && resampled[j] < 0) || (resampled[j - 1] < 0 && resampled[j] >= 0))
{
float amp1 = resampled[Math.Max(start, j - 2)];
float amp2 = resampled[Math.Max(start + 1, j - 1)];
double dAmp = amp2 - amp1;
double dt = 1.0 / outputRate * 1000.0;
double thetaRad = Math.Atan2(dAmp, dt);
double thetaDeg = thetaRad * 180.0 / Math.PI;
if (thetaDeg < 0) thetaDeg += 180;
int bin = (int)Math.Floor(thetaDeg);
double panFactor = GetPanningFactorFromThetaStats(bin);
for (int k = start; k < j; k++)
{
float l = (float)((1.0 - panFactor) * resampled[k]);
float r = (float)(panFactor * resampled[k]);
WriteStereoSample(bw, l, r);
}
start = j;
}
}
for (int k = start; k < resampled.Length; k++)
{
float l = resampled[k] * 0.5f;
float r = resampled[k] * 0.5f;
WriteStereoSample(bw, l, r);
}
}
long fileLength = fs.Position;
PatchWavHeader(bw, outputRate, 2, (int)(fileLength - 44));
}
}
public static void SaveBitmapAndDxf(List<double>[] thetaBins, int totalSamples, double dtMs, string basePath)
{
int maxX = (int)(totalSamples * dtMs);
int maxBitmapWidth = 10000;
double scale = 1.0;
if (maxX > maxBitmapWidth)
{
scale = (double)maxBitmapWidth / maxX;
maxX = maxBitmapWidth;
}
int height = 1800;
Bitmap bmp = new Bitmap(maxX, height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.White);
for (int i = 0; i < 180; i++)
{
int y = i * height / 180;
Brush brush = new SolidBrush(GetHeatmapColor(ThetaCounts[i], 0, 1000));
foreach (double t in thetaBins[i])
{
int x = (int)(t * scale);
if (x >= 0 && x < maxX) g.FillEllipse(brush, x, y, 2, 2);
}
}
}
bmp.Save(Path.ChangeExtension(basePath, "_STATISTIKALLY_COLORED_rotations_colored.bmp"));
using (StreamWriter sw = new StreamWriter(Path.ChangeExtension(basePath, ".STATISTIKALLY_COLORED_colored.dxf")))
{
sw.WriteLine("0\nSECTION\n2\nENTITIES");
for (int i = 0; i < 180; i++)
{
double y = i;
string layer = $"Theta_{i:D3}_Count_{ThetaCounts[i]}";
foreach (double t in thetaBins[i])
{
sw.WriteLine("0\nCIRCLE");
sw.WriteLine($"8\n{layer}");
sw.WriteLine("10\n" + t.ToString("F3"));
sw.WriteLine("20\n" + y.ToString("F3"));
sw.WriteLine("30\n0.0\n40\n0.1");
}
}
sw.WriteLine("0\nENDSEC\n0\nEOF");
}
}
public static Color GetHeatmapColor(int value, int min, int max)
{
double ratio = Math.Min(1.0, Math.Max(0.0, (value - min) / (double)(max - min)));
int r = (int)(255 * ratio);
int b = 255 - r;
return Color.FromArgb(r, 0, b);
}
public static void ExportThetaStats(List<double>[] thetaBins, string basePath)
{
using (StreamWriter sw = new StreamWriter(Path.ChangeExtension(basePath, ".theta_analysis.txt")))
{
for (int i = 0; i < 180; i++)
{
var times = thetaBins[i];
sw.WriteLine($"Theta {i}° ({times.Count} entries)");
if (times.Count > 0)
{
double percentile25 = times[(int)(0.25 * times.Count)];
double percentile50 = times[(int)(0.50 * times.Count)];
double percentile75 = times[(int)(0.75 * times.Count)];
sw.WriteLine($"25th %ile: {percentile25} ms, 50th: {percentile50} ms, 75th: {percentile75} ms");
}
}
}
}
public static float[] ResampleWithFactor(float[] input, int targetLength)
{
float[] result = new float[targetLength];
double step = (double)(input.Length - 1) / (targetLength - 1);
for (int i = 0; i < targetLength; i++)
{
double pos = i * step;
int idx = (int)pos;
double frac = pos - idx;
result[i] = (idx + 1 < input.Length)
? (float)((1 - frac) * input[idx] + frac * input[idx + 1])
: input[idx];
}
return result;
}
public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
br.BaseStream.Seek(0, SeekOrigin.Begin);
br.ReadBytes(12);
int channels = 1;
sampleRate = 44100;
int bitsPerSample = 16;
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16();
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32();
br.ReadInt16();
bitsPerSample = br.ReadInt16();
if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
}
else if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || i % channels == 0)
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16();
}
return samples;
}
else br.ReadBytes(chunkSize);
}
}
sampleRate = 44100;
return new float[0];
}
public static void WriteStereoSample(BinaryWriter bw, float left, float right)
{
short l = (short)(Math.Max(-1f, Math.Min(1f, left)) * 32767);
short r = (short)(Math.Max(-1f, Math.Min(1f, right)) * 32767);
bw.Write(l);
bw.Write(r);
}
public static void WriteWavHeaderPlaceholder(BinaryWriter bw, int sampleRate, int channels)
{
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(0);
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(sampleRate);
int byteRate = sampleRate * channels * 2;
short blockAlign = (short)(channels * 2);
bw.Write(byteRate);
bw.Write(blockAlign);
bw.Write((short)16);
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(0);
}
public static void PatchWavHeader(BinaryWriter bw, int sampleRate, int channels, int dataSize)
{
bw.Seek(4, SeekOrigin.Begin);
bw.Write(36 + dataSize);
bw.Seek(40, SeekOrigin.Begin);
bw.Write(dataSize);
}
}// public class ShrutiResamplerAnalyzer___WITH_BITMAPS____DETAILED_SWINGS_OF______DEEP___PANNING__________RECALCULATED___66_COPIES_SHRUTIS_PANNED_WITH_STATISTICS
public class ShrutiResamplerAnalyzer___WITH_BITMAPS____PANNING__________RECALCULATED___66_COPIES_SHRUTIS_PANNED_WITH_STATISTICS
{
public static Dictionary<int, int> ThetaCounts = new Dictionary<int, int>();
public static int ThetaCountMedian = 0;
public static void FirstScanThetaBinning(string inputWavPath)
{
float[] samples = ReadWavMonoAsFloats(inputWavPath, out int sampleRate);
double dtMs = 1000.0 / sampleRate;
List<double>[] thetaBins = new List<double>[180];
for (int i = 0; i < 180; i++)
{
thetaBins[i] = new List<double>();
ThetaCounts[i] = 0;
}
for (int i = 1; i < samples.Length; i++)
{
float amp1 = samples[i - 1];
float amp2 = samples[i];
double dAmp = amp2 - amp1;
double thetaRad = Math.Atan2(dAmp, dtMs);
double thetaDeg = (thetaRad * 180.0 / Math.PI);
if (thetaDeg < 0) thetaDeg += 180;
int bin = (int)Math.Floor(thetaDeg);
if (bin >= 0 && bin < 180)
{
double timeMs = i * dtMs;
thetaBins[bin].Add(timeMs);
ThetaCounts[bin]++;
}//if (bin >= 0 && bin < 180)
}//for (int i = 1; i < samples.Length; i++)
ThetaCountMedian = ThetaCounts.Values.OrderBy(x => x).ElementAt(ThetaCounts.Count / 2);
SaveBitmapAndDxf(thetaBins, samples.Length, dtMs, inputWavPath);
ExportThetaStats(thetaBins, inputWavPath);
// no need to call heres (double copies generates) GenerateShrutiVariants___GPT(inputWavPath, inputWavPath + "_STATISTIKALLY_COLORED_66_COPIES_PANNED.WAV");
}//public static void FirstScanThetaBinning(string inputWavPath)
public static void GenerateShrutiVariants___GPT(string inputWavPath, string outputWavPath)
{
//_STATISTIKALLY_COLORED_
float[] sourceSamples = ReadWavMonoAsFloats(inputWavPath, out int sourceRate);
int outputRate = 8000;
double originalFrequency = 440.0;
double durationSec = sourceSamples.Length / (double)sourceRate;
double totalCycleProduct = originalFrequency * durationSec;
using (FileStream fs = new FileStream(outputWavPath, FileMode.Create))
using (BinaryWriter bw = new BinaryWriter(fs))
{
WriteWavHeaderPlaceholder(bw, outputRate, 2);
for (int i = -33; i <= 32; i++)
{
double semitoneShift = i * (1.0 / 3);
double freqMultiplier = Math.Pow(2, semitoneShift / 12.0);
double newFreq = originalFrequency * freqMultiplier;
double newDuration = totalCycleProduct / newFreq;
int newSampleCount = (int)(newDuration * outputRate);
float[] resampled = ResampleWithFactor(sourceSamples, newSampleCount);
int start = 0;
for (int j = 1; j < resampled.Length; j++)
{
if ((resampled[j - 1] >= 0 && resampled[j] < 0) || (resampled[j - 1] < 0 && resampled[j] >= 0))
{
float amp1 = resampled[Math.Max(start, j - 2)];
float amp2 = resampled[Math.Max(start + 1, j - 1)];
double dAmp = amp2 - amp1;
double dt = 1.0 / outputRate * 1000.0;
double thetaRad = Math.Atan2(dAmp, dt);
double thetaDeg = thetaRad * 180.0 / Math.PI;
if (thetaDeg < 0) thetaDeg += 180;
int bin = (int)Math.Floor(thetaDeg);
int pan = (ThetaCounts.ContainsKey(bin) && ThetaCounts[bin] > ThetaCountMedian) ? 1 : 0;
for (int k = start; k < j; k++)
{
float l = pan == 0 ? resampled[k] : 0;
float r = pan == 1 ? resampled[k] : 0;
WriteStereoSample(bw, l, r);
}
start = j;
}
}
for (int k = start; k < resampled.Length; k++)
{
WriteStereoSample(bw, resampled[k], resampled[k]);
}
}
long fileLength = fs.Position;
PatchWavHeader(bw, outputRate, 2, (int)(fileLength - 44));
}
}
public static void SaveBitmapAndDxf(List<double>[] thetaBins, int totalSamples, double dtMs, string basePath)
{
int maxX = (int)(totalSamples * dtMs);
int maxBitmapWidth = 10000;
double scale = 1.0;
if (maxX > maxBitmapWidth)
{
scale = (double)maxBitmapWidth / maxX;
maxX = maxBitmapWidth;
}
int height = 1800;
Bitmap bmp = new Bitmap(maxX, height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.White);
for (int i = 0; i < 180; i++)
{
int y = i * height / 180;
Brush brush = new SolidBrush(GetHeatmapColor(ThetaCounts[i], 0, 1000));
foreach (double t in thetaBins[i])
{
int x = (int)(t * scale);
if (x >= 0 && x < maxX) g.FillEllipse(brush, x, y, 2, 2);
}
}
}
bmp.Save(Path.ChangeExtension(basePath, "_STATISTIKALLY_COLORED_rotations_colored.bmp"));
using (StreamWriter sw = new StreamWriter(Path.ChangeExtension(basePath, "._STATISTIKALLY_COLORED_colored.dxf")))
{
sw.WriteLine("0\nSECTION\n2\nENTITIES");
for (int i = 0; i < 180; i++)
{
double y = i;
string layer = $"Theta_{i:D3}_Count_{ThetaCounts[i]}";
foreach (double t in thetaBins[i])
{
sw.WriteLine("0\nCIRCLE");
sw.WriteLine($"8\n{layer}");
sw.WriteLine("10\n" + t.ToString("F3"));
sw.WriteLine("20\n" + y.ToString("F3"));
sw.WriteLine("30\n0.0\n40\n0.1");
}
}
sw.WriteLine("0\nENDSEC\n0\nEOF");
}
}
public static Color GetHeatmapColor(int value, int min, int max)
{
double ratio = Math.Min(1.0, Math.Max(0.0, (value - min) / (double)(max - min)));
int r = (int)(255 * ratio);
int b = 255 - r;
return Color.FromArgb(r, 0, b);
}
public static void ExportThetaStats(List<double>[] thetaBins, string basePath)
{
using (StreamWriter sw = new StreamWriter(Path.ChangeExtension(basePath, ".theta_analysis.txt")))
{
for (int i = 0; i < 180; i++)
{
var times = thetaBins[i];
sw.WriteLine($"Theta {i}° ({times.Count} entries)");
if (times.Count > 0)
{
double percentile25 = times[(int)(0.25 * times.Count)];
double percentile50 = times[(int)(0.50 * times.Count)];
double percentile75 = times[(int)(0.75 * times.Count)];
sw.WriteLine($"25th %ile: {percentile25} ms, 50th: {percentile50} ms, 75th: {percentile75} ms");
}
}
}
}
public static float[] ResampleWithFactor(float[] input, int targetLength)
{
float[] result = new float[targetLength];
double step = (double)(input.Length - 1) / (targetLength - 1);
for (int i = 0; i < targetLength; i++)
{
double pos = i * step;
int idx = (int)pos;
double frac = pos - idx;
result[i] = (idx + 1 < input.Length)
? (float)((1 - frac) * input[idx] + frac * input[idx + 1])
: input[idx];
}
return result;
}
public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
br.BaseStream.Seek(0, SeekOrigin.Begin);
br.ReadBytes(12);
int channels = 1;
sampleRate = 44100;
int bitsPerSample = 16;
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16();
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32();
br.ReadInt16();
bitsPerSample = br.ReadInt16();
if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
}
else if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || i % channels == 0)
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16();
}
return samples;
}
else br.ReadBytes(chunkSize);
}
}
sampleRate = 44100;
return new float[0];
}
public static void WriteStereoSample(BinaryWriter bw, float left, float right)
{
short l = (short)(Math.Max(-1f, Math.Min(1f, left)) * 32767);
short r = (short)(Math.Max(-1f, Math.Min(1f, right)) * 32767);
bw.Write(l);
bw.Write(r);
}
public static void WriteWavHeaderPlaceholder(BinaryWriter bw, int sampleRate, int channels)
{
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(0);
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(sampleRate);
int byteRate = sampleRate * channels * 2;
short blockAlign = (short)(channels * 2);
bw.Write(byteRate);
bw.Write(blockAlign);
bw.Write((short)16);
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(0);
}
public static void PatchWavHeader(BinaryWriter bw, int sampleRate, int channels, int dataSize)
{
bw.Seek(4, SeekOrigin.Begin);
bw.Write(36 + dataSize);
bw.Seek(40, SeekOrigin.Begin);
bw.Write(dataSize);
}
}//public class ShrutiResamplerAnalyzer___WITH_BITMAPS____PANNING__________RECALCULATED___66_COPIES_SHRUTIS_PANNED_WITH_STATISTICS
//////////////////////////////////////////////////////////////////////////
public class TO_DO_THE_MULTIPLE_SCANNING_ON_SUPPLIED_SAMPLES_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
{
public static void FirstScanThetaBinning(string inputWavPath)
{
float[] samples = ReadWavMonoAsFloats(inputWavPath, out int sampleRate);
double dtMs = 1000.0 / sampleRate;
List<double>[] thetaBins = new List<double>[180];
for (int i = 0; i < 180; i++) thetaBins[i] = new List<double>();
for (int i = 1; i < samples.Length; i++)
{
float amp1 = samples[i - 1];
float amp2 = samples[i];
double dAmp = amp2 - amp1;
double thetaRad = Math.Atan2(dAmp, dtMs);
double thetaDeg = (thetaRad * 180.0 / Math.PI);
if (thetaDeg < 0) thetaDeg += 180;
int bin = (int)Math.Floor(thetaDeg);
if (bin >= 0 && bin < 180)
{
double timeMs = i * dtMs;
thetaBins[bin].Add(timeMs);
}
}
SaveBitmapAndDxf(thetaBins, samples.Length, dtMs, inputWavPath);
ExportThetaStats(thetaBins, inputWavPath);
}
public static void SaveBitmapAndDxf(List<double>[] thetaBins, int totalSamples, double dtMs, string basePath)
{
int maxX = (int)(totalSamples * dtMs);
int maxBitmapWidth = 10000;
double scale = 1.0;
if (maxX > maxBitmapWidth)
{
scale = (double)maxBitmapWidth / maxX;
maxX = maxBitmapWidth;
}
int height = 1800; // 10 px per degree
Bitmap bmp = new Bitmap(maxX, height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.White);
for (int i = 0; i < 180; i++)
{
int y = i * height / 180;
foreach (double t in thetaBins[i])
{
int x = (int)(t * scale);
if (x >= 0 && x < maxX) g.FillEllipse(Brushes.Black, x, y, 2, 2);
}
}
}
string bmpPath = Path.ChangeExtension(basePath, "_180_degrees_rotations_arrays_with_Lists.bmp");
bmp.Save(bmpPath);
Console.WriteLine("Bitmap saved to: " + bmpPath);
// Also generate DXF
string dxfPath = Path.ChangeExtension(basePath, ".rotations.dxf");
using (StreamWriter sw = new StreamWriter(dxfPath))
{
sw.WriteLine("0\nSECTION\n2\nENTITIES");
for (int i = 0; i < 180; i++)
{
double y = i; // preserve true theta scale
foreach (double t in thetaBins[i])
{
sw.WriteLine("0\nCIRCLE");
sw.WriteLine("8\n0");
sw.WriteLine("10\n" + t.ToString("F3"));
sw.WriteLine("20\n" + y.ToString("F3"));
sw.WriteLine("30\n0.0");
sw.WriteLine("40\n0.1");
}
}
sw.WriteLine("0\nENDSEC\n0\nEOF");
}
Console.WriteLine("DXF saved to: " + dxfPath);
}
public static void ExportThetaStats(List<double>[] thetaBins, string basePath)
{
string txtPath = Path.ChangeExtension(basePath, ".theta_analysis.txt");
using (StreamWriter sw = new StreamWriter(txtPath))
{
for (int i = 0; i < 180; i++)
{
var times = thetaBins[i];
sw.WriteLine($"Theta {i}° ({times.Count} entries)");
if (times.Count > 0)
{
double percentile25 = times[(int)(0.25 * times.Count)];
double percentile50 = times[(int)(0.50 * times.Count)];
double percentile75 = times[(int)(0.75 * times.Count)];
sw.WriteLine($"25th %ile: {percentile25} ms, 50th: {percentile50} ms, 75th: {percentile75} ms");
}
}
}
Console.WriteLine("Theta statistics exported to: " + txtPath);
}
public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
br.BaseStream.Seek(0, SeekOrigin.Begin);
br.ReadBytes(12);
int channels = 1;
sampleRate = 44100;
int bitsPerSample = 16;
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16();
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32();
br.ReadInt16();
bitsPerSample = br.ReadInt16();
if (chunkSize > 16)
br.ReadBytes(chunkSize - 16);
}
else if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || i % channels == 0)
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16();
}
return samples;
}
else
{
br.ReadBytes(chunkSize);
}
}
}
sampleRate = 44100;
return new float[0];
}
}//public class TO_DO_THE_MULTIPLE_SCANNING_ON_SUPPLIED_SAMPLES_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
//////public class TO_DO_THE_BMP_SAVING_MULTIPLE_SCANNING_ON_SUPPLIED_SAMPLES_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
//////{
////// public static void FirstScanThetaBinning(string inputWavPath)
////// {
////// float[] samples = ReadWavMonoAsFloats(inputWavPath, out int sampleRate);
////// double dtMs = 1000.0 / sampleRate;
////// List<double>[] thetaBins = new List<double>[180];
////// for (int i = 0; i < 180; i++) thetaBins[i] = new List<double>();
////// for (int i = 1; i < samples.Length; i++)
////// {
////// float amp1 = samples[i - 1];
////// float amp2 = samples[i];
////// double dAmp = amp2 - amp1;
////// double thetaRad = Math.Atan2(dAmp, dtMs);
////// double thetaDeg = (thetaRad * 180.0 / Math.PI);
////// if (thetaDeg < 0) thetaDeg += 180;
////// int bin = (int)Math.Floor(thetaDeg);
////// if (bin >= 0 && bin < 180)
////// {
////// double timeMs = i * dtMs;
////// thetaBins[bin].Add(timeMs);
////// }//if (bin >= 0 && bin < 180)
////// }//for (int i = 1; i < samples.Length; i++)
////// SaveBitmap(thetaBins, samples.Length, dtMs, inputWavPath);
////// ExportThetaStats(thetaBins, inputWavPath);
////// }//public static void FirstScanThetaBinning(string inputWavPath)
////// public static void SaveBitmap(List<double>[] thetaBins, int totalSamples, double dtMs, string basePath)
////// {
////// // int size = (int)Math.Ceiling(totalSamples * dtMs);
////// int size = (int)Math.Ceiling(totalSamples * dtMs * 0.001);//saan changed this to avoid the parameters errors
////// Bitmap bmp = new Bitmap(size, size);
////// using (Graphics g = Graphics.FromImage(bmp))
////// {
////// g.Clear(Color.White);
////// for (int i = 0; i < 180; i++)
////// {
////// int y = i * size / 180;
////// foreach (double t in thetaBins[i])
////// {
////// // int x = (int)t;
////// int x = (int)(t * 0.001 ); // there is some bitmaps parameters errors
////// if (x >= 0 && x < size) g.FillEllipse(Brushes.Black, x, y, 2, 2);
////// }//foreach (double t in thetaBins[i])
////// }//for (int i = 0; i < 180; i++)
////// }//using (Graphics g = Graphics.FromImage(bmp))
////// string bmpPath = Path.ChangeExtension(basePath, "_180_degrees_rotations_arrays_with_Lists.bmp");
////// bmp.Save(bmpPath);
////// Console.WriteLine("Bitmap saved to: " + bmpPath);
////// }//public static void SaveBitmap(List<double>[] thetaBins, int totalSamples, double dtMs, string basePath)
////// public static void ExportThetaStats(List<double>[] thetaBins, string basePath)
////// {
////// string txtPath = Path.ChangeExtension(basePath, "._180_degrees_rotations_arrays_with_Lists_theta_analysis.txt");
////// using (StreamWriter sw = new StreamWriter(txtPath))
////// {
////// for (int i = 0; i < 180; i++)
////// {
////// var times = thetaBins[i];
////// sw.WriteLine($"Theta {i}° ({times.Count} entries)");
////// if (times.Count > 0)
////// {
////// double percentile25 = times[(int)(0.25 * times.Count)];
////// double percentile50 = times[(int)(0.50 * times.Count)];
////// double percentile75 = times[(int)(0.75 * times.Count)];
////// sw.WriteLine($"25th %ile: {percentile25} ms, 50th: {percentile50} ms, 75th: {percentile75} ms");
////// }
////// }
////// }
////// Console.WriteLine("Theta statistics exported to: " + txtPath);
////// }// public static void ExportThetaStats(List<double>[] thetaBins, string basePath)
////// public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
////// {
////// using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
////// {
////// br.BaseStream.Seek(0, SeekOrigin.Begin);
////// br.ReadBytes(12);
////// int channels = 1;
////// sampleRate = 44100;
////// int bitsPerSample = 16;
////// while (br.BaseStream.Position < br.BaseStream.Length)
////// {
////// string chunkID = new string(br.ReadChars(4));
////// int chunkSize = br.ReadInt32();
////// if (chunkID == "fmt ")
////// {
////// br.ReadInt16();
////// channels = br.ReadInt16();
////// sampleRate = br.ReadInt32();
////// br.ReadInt32();
////// br.ReadInt16();
////// bitsPerSample = br.ReadInt16();
////// if (chunkSize > 16)
////// br.ReadBytes(chunkSize - 16);
////// }
////// else if (chunkID == "data")
////// {
////// int bytesPerSample = bitsPerSample / 8;
////// int totalSamples = chunkSize / bytesPerSample;
////// float[] samples = new float[totalSamples / channels];
////// for (int i = 0, j = 0; i < totalSamples; i++)
////// {
////// short sample = br.ReadInt16();
////// if (channels == 1 || i % channels == 0)
////// samples[j++] = sample / 32768f;
////// if (channels == 2) br.ReadInt16();
////// }
////// return samples;
////// }
////// else
////// {
////// br.ReadBytes(chunkSize);
////// }
////// }
////// }
////// sampleRate = 44100;
////// return new float[0];
////// }//public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
//////}//public class TO_DO_THE_BMP_SAVING_MULTIPLE_SCANNING_ON_SUPPLIED_SAMPLES_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
public class TO_DO_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
{
public static void GenerateShrutiVariants___GPT(string inputWavPath, string outputWavPath)
{
float[] sourceSamples = ReadWavMonoAsFloats(inputWavPath, out int sourceRate);
int outputRate = 8000;//THE OUTPUT IS OK BUT TOO HEAVY FILES 44100;
double originalFrequency = 440.0;
double durationSec = sourceSamples.Length / (double)sourceRate;
double totalCycleProduct = originalFrequency * durationSec;
using (FileStream fs = new FileStream(outputWavPath, FileMode.Create))
using (BinaryWriter bw = new BinaryWriter(fs))
{
WriteWavHeaderPlaceholder(bw, outputRate, 2);
for (int i = -33; i <= 32; i++)
{
double semitoneShift = i * (1.0 / 3);
double freqMultiplier = Math.Pow(2, semitoneShift / 12.0);
double newFreq = originalFrequency * freqMultiplier;
double newDuration = totalCycleProduct / newFreq;
int newSampleCount = (int)(newDuration * outputRate);
float[] resampled = ResampleWithFactor(sourceSamples, newSampleCount);
int lastPan = 0;
int start = 0;
for (int j = 1; j < resampled.Length; j++)
{
if ((resampled[j - 1] >= 0 && resampled[j] < 0) || (resampled[j - 1] < 0 && resampled[j] >= 0))
{
for (int k = start; k < j; k++)
{
float l = lastPan == 0 ? resampled[k] : 0;
float r = lastPan == 1 ? resampled[k] : 0;
WriteStereoSample(bw, l, r);
}
lastPan = 1 - lastPan;
start = j;
}
}
for (int k = start; k < resampled.Length; k++)
{
float l = lastPan == 0 ? resampled[k] : 0;
float r = lastPan == 1 ? resampled[k] : 0;
WriteStereoSample(bw, l, r);
}
}
long fileLength = fs.Position;
PatchWavHeader(bw, outputRate, 2, (int)(fileLength - 44));
}
Console.WriteLine("Stereo 66 shruti-pitched variants with ear-swing effect generated.");
MessageBox.Show("Done: Stereo shruti variants created\n" + outputWavPath);
}
public static float[] ResampleWithFactor(float[] input, int targetLength)
{
float[] result = new float[targetLength];
double step = (double)(input.Length - 1) / (targetLength - 1);
for (int i = 0; i < targetLength; i++)
{
double pos = i * step;
int idx = (int)pos;
double frac = pos - idx;
result[i] = (idx + 1 < input.Length)
? (float)((1 - frac) * input[idx] + frac * input[idx + 1])
: input[idx];
}
return result;
}
public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
br.BaseStream.Seek(0, SeekOrigin.Begin);
br.ReadBytes(12);
int channels = 1;
sampleRate = 44100;
int bitsPerSample = 16;
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16();
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32();
br.ReadInt16();
bitsPerSample = br.ReadInt16();
if (chunkSize > 16)
br.ReadBytes(chunkSize - 16);
}
else if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || i % channels == 0)
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16();
}
return samples;
}
else
{
br.ReadBytes(chunkSize);
}
}
}
sampleRate = 44100;
return new float[0];
}
public static void WriteStereoSample(BinaryWriter bw, float left, float right)
{
short l = (short)(Math.Max(-1f, Math.Min(1f, left)) * 32767);
short r = (short)(Math.Max(-1f, Math.Min(1f, right)) * 32767);
bw.Write(l);
bw.Write(r);
}
public static void WriteWavHeaderPlaceholder(BinaryWriter bw, int sampleRate, int channels)
{
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(0); // Placeholder for file size
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(sampleRate);
int byteRate = sampleRate * channels * 2;
short blockAlign = (short)(channels * 2);
bw.Write(byteRate);
bw.Write(blockAlign);
bw.Write((short)16);
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(0); // Placeholder for data chunk size
}
public static void PatchWavHeader(BinaryWriter bw, int sampleRate, int channels, int dataSize)
{
bw.Seek(4, SeekOrigin.Begin);
bw.Write(36 + dataSize);
bw.Seek(40, SeekOrigin.Begin);
bw.Write(dataSize);
}
public static float[] StretchToLength(float[] input, int targetLength)
{
return ResampleWithFactor(input, targetLength);
}
}//public class TO_DO_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
//////using System;
//////using System.Collections.Generic;
//////using System.IO;
//////using System.Text;
//////using System.Windows.Forms;
////////////namespace ShrutiResampler
////////////{
////// public class TO_DO_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
////// {
////// public static void GenerateShrutiVariants___GPT(string inputWavPath, string outputWavPath)
////// {
////// float[] sourceSamples = ReadWavMonoAsFloats(inputWavPath, out int sourceRate);
////// int outputRate = 44100;
////// double originalFrequency = 440.0;
////// double durationSec = sourceSamples.Length / (double)sourceRate;
////// double totalCycleProduct = originalFrequency * durationSec;
////// List<float> stereoSamples = new List<float>();
////// Random rand = new Random();
////// for (int i = -33; i <= 32; i++)
////// {
////// double semitoneShift = i * (1.0 / 3);
////// double freqMultiplier = Math.Pow(2, semitoneShift / 12.0);
////// double newFreq = originalFrequency * freqMultiplier;
////// double newDuration = totalCycleProduct / newFreq;
////// int newSampleCount = (int)(newDuration * outputRate);
////// float[] resampled = ResampleWithFactor(sourceSamples, newSampleCount);
////// // Stereo panning: swing left/right on zero-crossings
////// int lastPan = 0; // 0 = left, 1 = right
////// int start = 0;
////// for (int j = 1; j < resampled.Length; j++)
////// {
////// if ((resampled[j - 1] >= 0 && resampled[j] < 0) || (resampled[j - 1] < 0 && resampled[j] >= 0))
////// {
////// for (int k = start; k < j; k++)
////// {
////// float l = lastPan == 0 ? resampled[k] : 0;
////// float r = lastPan == 1 ? resampled[k] : 0;
////// stereoSamples.Add(l);
////// stereoSamples.Add(r);
////// }
////// lastPan = 1 - lastPan;
////// start = j;
////// }
////// }
////// // Copy remaining samples
////// for (int k = start; k < resampled.Length; k++)
////// {
////// float l = lastPan == 0 ? resampled[k] : 0;
////// float r = lastPan == 1 ? resampled[k] : 0;
////// stereoSamples.Add(l);
////// stereoSamples.Add(r);
////// }
////// }
////// SaveWav(outputWavPath, stereoSamples.ToArray(), outputRate, 2);
////// Console.WriteLine("Stereo 66 shruti-pitched variants with ear-swing effect generated.");
////// MessageBox.Show("Done: Stereo shruti variants created\n" + outputWavPath);
////// }
////// public static float[] ResampleWithFactor(float[] input, int targetLength)
////// {
////// float[] result = new float[targetLength];
////// double step = (double)(input.Length - 1) / (targetLength - 1);
////// for (int i = 0; i < targetLength; i++)
////// {
////// double pos = i * step;
////// int idx = (int)pos;
////// double frac = pos - idx;
////// result[i] = (idx + 1 < input.Length)
////// ? (float)((1 - frac) * input[idx] + frac * input[idx + 1])
////// : input[idx];
////// }
////// return result;
////// }
////// public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
////// {
////// using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
////// {
////// br.BaseStream.Seek(0, SeekOrigin.Begin);
////// br.ReadBytes(12);
////// int channels = 1;
////// sampleRate = 44100;
////// int bitsPerSample = 16;
////// while (br.BaseStream.Position < br.BaseStream.Length)
////// {
////// string chunkID = new string(br.ReadChars(4));
////// int chunkSize = br.ReadInt32();
////// if (chunkID == "fmt ")
////// {
////// br.ReadInt16();
////// channels = br.ReadInt16();
////// sampleRate = br.ReadInt32();
////// br.ReadInt32();
////// br.ReadInt16();
////// bitsPerSample = br.ReadInt16();
////// if (chunkSize > 16)
////// br.ReadBytes(chunkSize - 16);
////// }
////// else if (chunkID == "data")
////// {
////// int bytesPerSample = bitsPerSample / 8;
////// int totalSamples = chunkSize / bytesPerSample;
////// float[] samples = new float[totalSamples / channels];
////// for (int i = 0, j = 0; i < totalSamples; i++)
////// {
////// short sample = br.ReadInt16();
////// if (channels == 1 || i % channels == 0)
////// samples[j++] = sample / 32768f;
////// if (channels == 2) br.ReadInt16();
////// }
////// return samples;
////// }
////// else
////// {
////// br.ReadBytes(chunkSize);
////// }
////// }
////// }
////// sampleRate = 44100;
////// return new float[0];
////// }
////// public static void SaveWav(string path, float[] samples, int sampleRate, int channels)
////// {
////// int bitsPerSample = 16;
////// int byteRate = sampleRate * channels * bitsPerSample / 8;
////// int blockAlign = channels * bitsPerSample / 8;
////// int dataSize = samples.Length * 2;
////// using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
////// {
////// bw.Write(Encoding.ASCII.GetBytes("RIFF"));
////// bw.Write(36 + dataSize);
////// bw.Write(Encoding.ASCII.GetBytes("WAVE"));
////// bw.Write(Encoding.ASCII.GetBytes("fmt "));
////// bw.Write(16);
////// bw.Write((short)1);
////// bw.Write((short)channels);
////// bw.Write(sampleRate);
////// bw.Write(byteRate);
////// bw.Write((short)blockAlign);
////// bw.Write((short)bitsPerSample);
////// bw.Write(Encoding.ASCII.GetBytes("data"));
////// bw.Write(dataSize);
////// foreach (float sample in samples)
////// {
////// short s = (short)(sample * 32767);
////// bw.Write(s);
////// }
////// }
////// }
////// public static float[] StretchToLength(float[] input, int targetLength)
////// {
////// return ResampleWithFactor(input, targetLength);
////// }
////// }
/////////////////////// }//NAMESPACES
//THE MEMORY OVERFLOW ARRAY SIZES
//////public class TO_DO_PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
//////{
////// public static void GenerateShrutiVariants___GPT(string inputWavPath, string outputWavPath)
////// {
////// float[] sourceSamples = ReadWavMonoAsFloats(inputWavPath, out int sourceRate);
////// int outputRate = 44100;
////// double originalFrequency = 440.0;
////// double durationSec = sourceSamples.Length / (double)sourceRate;
////// double totalCycleProduct = originalFrequency * durationSec;
////// List<float> stereoSamples = new List<float>();
////// Random rand = new Random();
////// for (int i = -33; i <= 32; i++)
////// {
////// double semitoneShift = i * (1.0 / 3);
////// double freqMultiplier = Math.Pow(2, semitoneShift / 12.0);
////// double newFreq = originalFrequency * freqMultiplier;
////// double newDuration = totalCycleProduct / newFreq;
////// int newSampleCount = (int)(newDuration * outputRate);
////// float[] resampled = ResampleWithFactor(sourceSamples, newSampleCount);
////// // Stereo panning: swing left/right on zero-crossings
////// int lastPan = 0; // 0 = left, 1 = right
////// int start = 0;
////// for (int j = 1; j < resampled.Length; j++)
////// {
////// if ((resampled[j - 1] >= 0 && resampled[j] < 0) || (resampled[j - 1] < 0 && resampled[j] >= 0))
////// {
////// for (int k = start; k < j; k++)
////// {
////// float l = lastPan == 0 ? resampled[k] : 0;
////// float r = lastPan == 1 ? resampled[k] : 0;
////// stereoSamples.Add(l);
////// stereoSamples.Add(r);
////// }
////// lastPan = 1 - lastPan;
////// start = j;
////// }
////// }
////// // Copy remaining samples
////// for (int k = start; k < resampled.Length; k++)
////// {
////// float l = lastPan == 0 ? resampled[k] : 0;
////// float r = lastPan == 1 ? resampled[k] : 0;
////// stereoSamples.Add(l);
////// stereoSamples.Add(r);
////// }
////// }
////// SaveWav(outputWavPath, stereoSamples.ToArray(), outputRate, 2);
////// Console.WriteLine("Stereo 66 shruti-pitched variants with ear-swing effect generated.");
////// MessageBox.Show("Done: Stereo shruti variants created\n" + outputWavPath);
////// }
////// public static float[] ResampleWithFactor(float[] input, int targetLength)
////// {
////// float[] result = new float[targetLength];
////// double step = (double)(input.Length - 1) / (targetLength - 1);
////// for (int i = 0; i < targetLength; i++)
////// {
////// double pos = i * step;
////// int idx = (int)pos;
////// double frac = pos - idx;
////// result[i] = (idx + 1 < input.Length)
////// ? (float)((1 - frac) * input[idx] + frac * input[idx + 1])
////// : input[idx];
////// }
////// return result;
////// }
////// public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
////// {
////// using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
////// {
////// br.BaseStream.Seek(0, SeekOrigin.Begin);
////// br.ReadBytes(12);
////// int channels = 1;
////// sampleRate = 44100;
////// int bitsPerSample = 16;
////// while (br.BaseStream.Position < br.BaseStream.Length)
////// {
////// string chunkID = new string(br.ReadChars(4));
////// int chunkSize = br.ReadInt32();
////// if (chunkID == "fmt ")
////// {
////// br.ReadInt16();
////// channels = br.ReadInt16();
////// sampleRate = br.ReadInt32();
////// br.ReadInt32();
////// br.ReadInt16();
////// bitsPerSample = br.ReadInt16();
////// if (chunkSize > 16)
////// br.ReadBytes(chunkSize - 16);
////// }
////// else if (chunkID == "data")
////// {
////// int bytesPerSample = bitsPerSample / 8;
////// int totalSamples = chunkSize / bytesPerSample;
////// float[] samples = new float[totalSamples / channels];
////// for (int i = 0, j = 0; i < totalSamples; i++)
////// {
////// short sample = br.ReadInt16();
////// if (channels == 1 || i % channels == 0)
////// samples[j++] = sample / 32768f;
////// if (channels == 2) br.ReadInt16();
////// }
////// return samples;
////// }
////// else
////// {
////// br.ReadBytes(chunkSize);
////// }
////// }
////// }
////// sampleRate = 44100;
////// return new float[0];
////// }
////// public static void SaveWav(string path, float[] samples, int sampleRate, int channels)
////// {
////// int bitsPerSample = 16;
////// int byteRate = sampleRate * channels * bitsPerSample / 8;
////// int blockAlign = channels * bitsPerSample / 8;
////// int dataSize = samples.Length * 2;
////// using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
////// {
////// bw.Write(Encoding.ASCII.GetBytes("RIFF"));
////// bw.Write(36 + dataSize);
////// bw.Write(Encoding.ASCII.GetBytes("WAVE"));
////// bw.Write(Encoding.ASCII.GetBytes("fmt "));
////// bw.Write(16);
////// bw.Write((short)1);
////// bw.Write((short)channels);
////// bw.Write(sampleRate);
////// bw.Write(byteRate);
////// bw.Write((short)blockAlign);
////// bw.Write((short)bitsPerSample);
////// bw.Write(Encoding.ASCII.GetBytes("data"));
////// bw.Write(dataSize);
////// foreach (float sample in samples)
////// {
////// short s = (short)(sample * 32767);
////// bw.Write(s);
////// }
////// }
////// }
////// public static float[] StretchToLength(float[] input, int targetLength)
////// {
////// return ResampleWithFactor(input, targetLength);
////// }
//////}//public class PAN_WITH_FREQUENCY_CHANGES_44100_SPS_2_CHANNELS___NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
public class ShrutiResampler___Revised_GPT_NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
{
public static void GenerateShrutiVariants___GPT___YESSSSSS_PROPER_66_ShrutiResampler___66_DIFFERENT_FREQUENCIES_NO_TRUNCATIONS(string inputWavPath, string outputWavPath)
{
float[] sourceSamples = ReadWavMonoAsFloats(inputWavPath, out int sourceRate);
int outputRate = 8000;
double originalFrequency = 440.0; // Assume input sample is A4 (for calculation)
double durationSec = sourceSamples.Length / (double)sourceRate;
double totalCycleProduct = originalFrequency * durationSec;
List<float> allVariants = new List<float>();
for (int i = -33; i <= 32; i++) // 66 shrutis: -33 to +32
{
double semitoneShift = i * (1.0 / 3);
double freqMultiplier = Math.Pow(2, semitoneShift / 12.0);
double newFreq = originalFrequency * freqMultiplier;
double newDuration = totalCycleProduct / newFreq;
int newSampleCount = (int)(newDuration * outputRate);
float[] pitchShifted = ResampleWithFactor(sourceSamples, newSampleCount);
allVariants.AddRange(pitchShifted);
}
SaveWav(outputWavPath, allVariants.ToArray(), outputRate, 1);
Console.WriteLine("66 shruti-pitched variants generated with frequency-duration relationship preserved.");
MessageBox.Show("Generated 66 shruti-pitched variants: \n" + outputWavPath);
}
public static float[] ResampleWithFactor(float[] input, int targetLength)
{
float[] result = new float[targetLength];
double step = (double)(input.Length - 1) / (targetLength - 1);
for (int i = 0; i < targetLength; i++)
{
double pos = i * step;
int idx = (int)pos;
double frac = pos - idx;
result[i] = (idx + 1 < input.Length)
? (float)((1 - frac) * input[idx] + frac * input[idx + 1])
: input[idx];
}
return result;
}
public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
br.BaseStream.Seek(0, SeekOrigin.Begin);
br.ReadBytes(12);
int channels = 1;
sampleRate = 8000;
int bitsPerSample = 16;
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16();
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32();
br.ReadInt16();
bitsPerSample = br.ReadInt16();
if (chunkSize > 16)
br.ReadBytes(chunkSize - 16);
}
else if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || i % channels == 0)
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16();
}
return samples;
}
else
{
br.ReadBytes(chunkSize);
}
}
}
sampleRate = 8000;
return new float[0];
}
public static void SaveWav(string path, float[] samples, int sampleRate, int channels)
{
int bitsPerSample = 16;
int byteRate = sampleRate * channels * bitsPerSample / 8;
int blockAlign = channels * bitsPerSample / 8;
int dataSize = samples.Length * channels * 2;
using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
{
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(36 + dataSize);
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(sampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)bitsPerSample);
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
foreach (float sample in samples)
{
short s = (short)(sample * 32767);
for (int c = 0; c < channels; c++)
bw.Write(s);
}
}
}
public static float[] StretchToLength(float[] input, int targetLength)
{
return ResampleWithFactor(input, targetLength);
}
}//public class ShrutiResampler___Revised_GPT_NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
/////////////////////////////////////////////////////////////////////////////////////
public class NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES___GPT
{
public static void GenerateShrutiVariants___GPT(string inputWavPath, string outputWavPath)
{
float[] sourceSamples = ReadWavMonoAsFloats(inputWavPath, out int sourceRate);
int outputRate = 8000;
double durationSec = sourceSamples.Length / (double)sourceRate;
int targetSamplesPerVariant = (int)(durationSec * outputRate);
List<float> allVariants = new List<float>();
for (int i = -33; i <= 32; i++) // 66 shrutis: -33 to +32
{
double semitoneShift = i * (1.0 / 3); // 22 shrutis per octave
double resampleFactor = Math.Pow(2, semitoneShift / 12.0);
int resampledLength = (int)(sourceSamples.Length / resampleFactor);
float[] pitchShifted = ResampleWithFactor(sourceSamples, resampledLength);
float[] durationMatched = StretchToLength(pitchShifted, targetSamplesPerVariant);
allVariants.AddRange(durationMatched);
}//for (int i = -33; i <= 32; i++) // 66 shrutis: -33 to +32
SaveWav(outputWavPath, allVariants.ToArray(), outputRate, 1);
Console.WriteLine("66 shruti-pitched variants generated.");
MessageBox.Show("Generated 66 shruti-pitched variants: \n" + outputWavPath);
}//public static void GenerateShrutiVariants(string inputWavPath, string outputWavPath)
public static float[] ResampleWithFactor(float[] input, int targetLength)
{
// after doing this all the samples are getting same durations and same frequencies exact copies
// we know when the frequency changes then the duration for the sample also change because the total samples are fixed
// we need the resampling logic to change Total_Frequency * Total_Duration = fixed which means F1*T1 = F2*T2=Sample_Count fixed
// We need the sample count to vary as per necessary conditions and interpolate the samples (as required) in the 66 copies of samples in same file where these copies are all having different frequencies and different durations because the frequencies in every copy and durations are also changing in every copy but all the copies are on same file (the output file has same sample rate 8000 samples per second while playing the ear will listen different frequencies for different copies
//all copies are changing the frequencies and durations so all copies dont have same number of samples now after resampling but the current program is not doing that (current program is doing the resampling for frequency and then resetting that to fixed durations and so the whole effect nullifies at the end of double transformations)
// say the original sample has n1 samples s1 samples per second f1 frequency T1 duration then the next copy will have n2 samples f2 frequency T2 time s2 samples per second and the total things are stored in a single file with fixed samples per second so we need proper calculations for these readjustments but different number of samples but whole
float[] result = new float[targetLength];
double step = (double)(input.Length - 1) / (targetLength - 1);
for (int i = 0; i < targetLength; i++)
{
double pos = i * step;
int idx = (int)pos;
double frac = pos - idx;
result[i] = (idx + 1 < input.Length)
? (float)((1 - frac) * input[idx] + frac * input[idx + 1])
: input[idx];
}//for (int i = 0; i < targetLength; i++)
return result;
}//public static float[] ResampleWithFactor(float[] input, int targetLength)
public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
br.BaseStream.Seek(0, SeekOrigin.Begin);
br.ReadBytes(12); // Skip RIFF header
int channels = 1;
sampleRate = 8000;
int bitsPerSample = 16;
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16(); // audio format
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32(); // byte rate
br.ReadInt16(); // block align
bitsPerSample = br.ReadInt16();
if (chunkSize > 16)
br.ReadBytes(chunkSize - 16);
}
else if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || i % channels == 0)
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16();
}
return samples;
}
else
{
br.ReadBytes(chunkSize);
}
}//while (br.BaseStream.Position < br.BaseStream.Length)
}//using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
sampleRate = 8000;
return new float[0];
}//public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
public static void SaveWav(string path, float[] samples, int sampleRate, int channels)
{
int bitsPerSample = 16;
int byteRate = sampleRate * channels * bitsPerSample / 8;
int blockAlign = channels * bitsPerSample / 8;
int dataSize = samples.Length * channels * 2;
using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
{
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(36 + dataSize);
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(sampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)bitsPerSample);
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
foreach (float sample in samples)
{
short s = (short)(sample * 32767);
for (int c = 0; c < channels; c++)
bw.Write(s);
}
}
}//public static void SaveWav(string path, float[] samples, int sampleRate, int channels)
public static float[] StretchToLength(float[] input, int targetLength)
{
return ResampleWithFactor(input, targetLength);
}//public static float[] StretchToLength(float[] input, int targetLength)
}//public class NEW_KIND_OF_ShrutiResamplerGenerator___33_PLUS_33_66_COPIES_PLAYING_ALL_SAMPLES
/// <summary>
/// //////////////////////////////////////////////////////////////////////////////////////////
/// </summary>
public class SwaralipiConcatenator_ResampleAware
{
public static void SwaralipiConcatenator___Main(string swaralipiFile)
{
int durationMs = 220;//default
string wavFolder = Path.GetDirectoryName(swaralipiFile);
int outputSampleRate = 8000;
string outputStereo = swaralipiFile + "_(yesssss)_merged_trimmed_RESAMPLED_8000_stereo.wav";
string outputMono = swaralipiFile + "_(yesssss)_merged_trimmed_RESAMPLED_8000_mono.wav";
var lines = File.ReadAllLines(swaralipiFile)
.Where(l => !string.IsNullOrWhiteSpace(l)).ToList();
var allSegments = new List<float>();
foreach (var line in lines)
{
var parts = line.Split(new[] { ' ', '\t', ',' }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length < 2) { durationMs = 220; continue; }
string symbol = parts[0].Trim()
.Replace(".", "_DOT_")
.Replace("-", "dash")
.Replace("#", "hash");
// if (!int.TryParse(parts[1], out int durationMs)) continue;
if (!int.TryParse(parts[1], out durationMs)) { continue; }
if(durationMs==0)
{
durationMs = 220;//default
}//if(durationMs==0)
string wavPath = Path.Combine(wavFolder, symbol + ".wav");
float[] originalSamples = ReadWavMonoAsFloats(wavPath, out int originalSampleRate);
// Step 1: Resample from originalSampleRate → outputSampleRate
float[] resampled = ResampleToRate(originalSamples, originalSampleRate, outputSampleRate);
// Step 2: Extract only as many samples as needed for desired duration
int neededSamples = (int)((durationMs / 1000.0) * outputSampleRate);
neededSamples = Math.Min(neededSamples, resampled.Length);
float[] trimmed = new float[neededSamples];
Array.Copy(resampled, trimmed, neededSamples);
allSegments.AddRange(trimmed);
}// foreach (var line in lines)
float[] final = allSegments.ToArray();
SaveWav(outputStereo, final, outputSampleRate, 2);
SaveWav(outputMono, final, outputSampleRate, 1);
Console.WriteLine("Done writing merged WAV with preserved pitches.");
System.Windows.Forms.MessageBox.Show("Done writing WAV:\n" + outputStereo + "\n" + outputMono);
}//public static void SwaralipiConcatenator___Main(string swaralipiFile)
public static float[] ResampleToRate(float[] input, int fromRate, int toRate)
{
if (fromRate == toRate) return input;
int newLength = (int)(input.Length * (toRate / (double)fromRate));
float[] result = new float[newLength];
Array.Clear(result, 0, result.Length);
double step = (double)(input.Length - 1) / (newLength - 1);
for (int i = 0; i < newLength; i++)
{
double idx = i * step;
int index = (int)idx;
double frac = idx - index;
float interpolated = ( (index + 1) < input.Length)
? (float)((1 - frac) * input[index] + frac * input[index + 1])
: input[index];
result[i] = interpolated;
}//for (int i = 0; i < newLength; i++)
return result;
}// public static float[] ResampleToRate(float[] input, int fromRate, int toRate)
static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
string riff = new string(br.ReadChars(4));
br.ReadInt32();
string wave = new string(br.ReadChars(4));
int channels = 1;
sampleRate = 8000;
int bitsPerSample = 16;
while (true)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16(); // format
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32();
br.ReadInt16();
bitsPerSample = br.ReadInt16();
if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
break;
}
else br.ReadBytes(chunkSize);
}// while (true)
while (true)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short s = br.ReadInt16();
if (channels == 1 || (i % channels == 0))
samples[j++] = s / 32768f;
if (channels == 2) br.ReadInt16(); // skip right
}// for (int i = 0, j = 0; i < totalSamples; i++)
return samples;
}
else br.ReadBytes(chunkSize);
}// while (true)
}// using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
}//static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
//need to try to implement this also
public static float[] ResampleWithPitchBend
(
float[] input, int fromRate, int toRate, int targetLength, double bendSemitones
)
{
float[] output = new float[targetLength];
// Compute shift range
double shiftStart = 1.0;
double shiftEnd = Math.Pow(2, bendSemitones / 12.0);
// Resample with time-varying rate
double inputPos = 0.0;
for (int i = 0; i < targetLength; i++)
{
double t = i / (double)(targetLength - 1); // [0,1]
double currentShift = shiftStart + t * (shiftEnd - shiftStart);
double step = (fromRate * currentShift) / toRate;
int idx = (int)inputPos;
double frac = inputPos - idx;
float sample = 0;
if (idx + 1 < input.Length)
sample = (float)((1 - frac) * input[idx] + frac * input[idx + 1]);
else if (idx < input.Length)
sample = input[idx];
output[i] = sample;
inputPos += step;
if (inputPos >= input.Length - 1) break; // stop if overshoot
}//for (int i = 0; i < targetLength; i++)
return output;
}// public static float[] ResampleWithPitchBend
static void SaveWav(string path, float[] samples, int sampleRate, int channels)
{
int bitsPerSample = 16;
int byteRate = sampleRate * channels * bitsPerSample / 8;
int blockAlign = channels * bitsPerSample / 8;
int dataSize = samples.Length * channels * 2;
using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
{
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(36 + dataSize);
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(sampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)bitsPerSample);
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
foreach (float sample in samples)
{
short s = (short)(sample * 32767);
for (int c = 0; c < channels; c++) bw.Write(s);
}//foreach (float sample in samples)
}// using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
}// static void SaveWav(string path, float[] samples, int sampleRate, int channels)
}// public class SwaralipiConcatenator_ResampleAware
/// <summary>
/// ////////////////////////////////////////// the above resampler code looks like it is working properly
/// </summary>
public class SwaralipiConcatenator_DurationAware
{
public static void SwaralipiConcatenator___Main(string swaralipiFile)
{
string wavFolder = Path.GetDirectoryName(swaralipiFile);
string outputStereo = swaralipiFile + "_(durationwise)_NOT_GOOD_output_8000_stereo.wav"; ;// "_output_44100_stereo.wav";
string outputMono = swaralipiFile + "_(durationwise)_NOT_GOOD_output_8000_mono.wav";
var lines = File.ReadAllLines(swaralipiFile)
.Where(l => !string.IsNullOrWhiteSpace(l)).ToList();
var allSegments = new List<float>();
foreach (var line in lines)
{
int durationMs = 220;
var parts = line.Split(new[] { ' ', '\t', ',' }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length < 2) { durationMs = 220; continue; }
string symbol = parts[0].Trim();
// if (!int.TryParse(parts[1], out int durationMs)) continue;
if (!int.TryParse(parts[1], out durationMs)) continue;
symbol = symbol.Replace(".", "_DOT_").Replace("-", "dash").Replace("#", "hash");
//.Replace("#", "hash").Replace(".", "_DOT_");
string wavPath = Path.Combine(wavFolder, symbol + ".wav");
float[] fullSamples = { };
Array.Clear(fullSamples, 0, fullSamples.Length);
fullSamples = ReadWavMonoAsFloats(wavPath, out int sampleRate);
int requiredSamples = (int)((durationMs / 1000.0) * sampleRate);
requiredSamples = Math.Min(requiredSamples, fullSamples.Length);
float[] trimmed = new float[requiredSamples];
Array.Copy(fullSamples, trimmed, requiredSamples);
allSegments.AddRange(trimmed);
}
float[] final = allSegments.ToArray();
SaveWav(outputStereo, final, 44100, 2);
SaveWav(outputStereo, final, 8000, 2);
SaveWav(outputMono, final, 8000, 1);
Console.WriteLine("WAVs written with trimmed durations.");
System.Windows.Forms.MessageBox.Show("Done writing WAVs with duration control:\n" + outputStereo + "\n" + outputMono);
}
static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
string riff = new string(br.ReadChars(4));
br.ReadInt32();
string wave = new string(br.ReadChars(4));
int channels = 1;
sampleRate = 8000;// 44100;
int bitsPerSample = 16;
while (true)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16(); // format
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32(); // byte rate
br.ReadInt16(); // block align
bitsPerSample = br.ReadInt16();
if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
break;
}
else
{
br.ReadBytes(chunkSize);
}
}
while (true)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = { };
samples =
new float[totalSamples / channels];
Array.Clear(samples, 0, samples.Length);
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || (i % channels == 0))
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16(); // skip R
}
return samples;
}
else
{
br.ReadBytes(chunkSize);
}
}
}
}
static void SaveWav(string path, float[] samples, int sampleRate, int channels)
{
int bitsPerSample = 16;
int byteRate = sampleRate * channels * bitsPerSample / 8;
int blockAlign = channels * bitsPerSample / 8;
int dataSize = samples.Length * channels * 2;
using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
{
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(36 + dataSize);
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16);
bw.Write((short)1);
bw.Write((short)channels);
bw.Write(sampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)bitsPerSample);
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
foreach (float sample in samples)
{
short s = (short)(sample * 32767);
for (int c = 0; c < channels; c++)
{
bw.Write(s);
}//for (int c = 0; c < channels; c++)
}//foreach (float sample in samples)
}//using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
}
}
/// <summary>
/// //////////////////////////////////////////////////////////////////////////////////////////////////
/// </summary>
public class SwaralipiConcatenator___all_same_durations
{
public static void SwaralipiConcatenator___Main(string swaralipifile)
{
string swaralipiFile = swaralipifile;// "swaralipi.txt"; // path to your text file
string wavFolder
//= string folderPath =
=Path.GetDirectoryName(swaralipifile); ;// "."; // directory containing all the 66 wavs
string outputStereo = swaralipiFile + "_all_sames_durs_NOT_GOOD_output_8000_stereo.wav";// "_output_44100_stereo.wav";
string outputMono = swaralipiFile + "_all_sames_durs_NOT_GOOD_output_8000_mono.wav";
var symbols = File.ReadAllLines(swaralipiFile).Where(l => !string.IsNullOrWhiteSpace(l)).ToList();
var allSamples = new List<float[]>();
int maxSamples = 0;
// Step 1: Load all WAVs and store sample data
foreach (var symbol in symbols)
{
// var parts = line.Split(new[] { ' ', '\t', ',' }, StringSplitOptions.RemoveEmptyEntries);
string[] splitted_durations_notes= symbol.Split(new[] { ' ', '\t', ',' }, StringSplitOptions.RemoveEmptyEntries);
// splitted_durations_notes
string newsymbol = splitted_durations_notes[0].Replace(".", "_DOT_").Replace("-", "dash").Replace("#", "hash");
// string wavPath = Path.Combine(wavFolder, $"{symbol}.wav");
string wavPath = "";
wavPath= Path.Combine(wavFolder, $"{newsymbol}.wav");
// List<float> samples = new List<float>();// null;
float[] samples = { };// new List<float>();// null;
//samples.Clear();
Array.Clear(samples, 0, samples.Length);
samples
=
ReadWavMonoAsFloats(wavPath, out int sourceRate);
if (samples.Length > maxSamples) maxSamples = samples.Length;
allSamples.Add(samples);
}//foreach (var symbol in symbols)
// Step 2: Resample all to maxSamples length
var normalized = allSamples.Select(s => StretchToLength(s, maxSamples)).ToList();
// Step 3: Concatenate all
var finalFloat = normalized.SelectMany(s => s).ToList();
// Step 4a: Save as 44100Hz stereo
// SaveWav(outputStereo+"_output_44100_stereo.wav", finalFloat.ToArray(), 44100, 2);
SaveWav(outputStereo + "_output_8000_stereo.wav", finalFloat.ToArray(), 8000, 2);
//SwaralipiConcatenator___all_same_durations
// Step 4b: Save as 8000Hz mono
SaveWav(outputMono+"_output_8000_mono.wav", finalFloat.ToArray(), 8000, 1);
Console.WriteLine("Done writing output WAVs.");
System.Windows.Forms.MessageBox.Show("Done writing output WAVs." + outputStereo +" " + outputMono);
}//public static void SwaralipiConcatenator___Main(string swaralipifile)
static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
{
string riff = new string(br.ReadChars(4));
br.ReadInt32(); // file size
string wave = new string(br.ReadChars(4));
int channels = 1;
sampleRate = 8000;// 44100;
int bitsPerSample = 16;
// Read fmt chunk
while (true)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16(); // audio format
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32(); // byte rate
br.ReadInt16(); // block align
bitsPerSample = br.ReadInt16();
if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
break;
}
else
{
br.ReadBytes(chunkSize); // skip unknown chunk
}
}
// Read data chunk
while (true)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || (i % channels == 0))
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16(); // skip right channel
}
return samples;
}
else
{
br.ReadBytes(chunkSize); // skip unknown chunk
}
}
} // using BinaryReader
}// static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
static float[] StretchToLength(float[] original, int targetLength)
{
float[] result = new float[targetLength];
double step = (double)(original.Length - 1) / (targetLength - 1);
for (int i = 0; i < targetLength; i++)
{
double index = i * step;
int idx = (int)index;
double frac = index - idx;
result[i] = (idx + 1 < original.Length)
? (float)((1 - frac) * original[idx] + frac * original[idx + 1])
: original[idx];
}
return result;
}//static float[] StretchToLength(float[] original, int targetLength)
static void SaveWav(string path, float[] samples, int sampleRate, int channels)
{
int bitsPerSample = 16;
int byteRate = sampleRate * channels * bitsPerSample / 8;
int blockAlign = channels * bitsPerSample / 8;
int dataSize = samples.Length * channels * 2;
using (BinaryWriter bw = new BinaryWriter(File.Create(path)))
{
// RIFF header
bw.Write(Encoding.ASCII.GetBytes("RIFF"));
bw.Write(36 + dataSize);
bw.Write(Encoding.ASCII.GetBytes("WAVE"));
// fmt chunk
bw.Write(Encoding.ASCII.GetBytes("fmt "));
bw.Write(16); // Subchunk1Size for PCM
bw.Write((short)1); // Audio format = PCM
bw.Write((short)channels);
bw.Write(sampleRate);
bw.Write(byteRate);
bw.Write((short)blockAlign);
bw.Write((short)bitsPerSample);
// data chunk
bw.Write(Encoding.ASCII.GetBytes("data"));
bw.Write(dataSize);
foreach (float sample in samples)
{
short s = (short)(sample * 32767);
for (int c = 0; c < channels; c++)
{
bw.Write(s);
}
}
} // end using
}//static void SaveWav(string path, float[] samples, int sampleRate, int channels)
}//public class SwaralipiConcatenator
public class CLUBBING_CONTINUOUS_SAME_NOTES_AND_DURATIONS___PitchMidiExtractor_YinLegacyCompatible
{
public static void ExtractNotes(string wavPath)
{
float[] samples = ReadWavMonoAsFloats(wavPath, out int sampleRate);
double frameDurationMs = 10;
int frameSize = (int)(sampleRate * frameDurationMs / 1000);
List<double> freqs = YinDetect(samples, sampleRate, frameSize);
using (StreamWriter sw = new StreamWriter(wavPath + ".SEPERATES_NON_CLUBBED_raw_notes.csv"))
{
sw.WriteLine("Time(ms),Freq,Note,Bend");
for (int i = 0; i < freqs.Count; i++)
{
double freq = freqs[i];
if (freq <= 0) continue;
int midiNote = (int)Math.Round(69 + 12 * Math.Log(freq / 440.0, 2));
double exactMidi = 69 + 12 * Math.Log(freq / 440.0, 2);
double pitchBend = exactMidi - midiNote;
double timeMs = i * frameDurationMs;
sw.WriteLine($"{timeMs:F1},{freq:F2},{midiNote},{pitchBend:F3}");
}
}
using (StreamWriter sw = new StreamWriter(wavPath + ".SEPERATES_clubbed.csv"))
{
sw.WriteLine("Note,Start(ms),Duration(ms),PitchBend");
int? prevNote = null;
double prevTime = 0;
double duration = 0;
double bend = 0;
for (int i = 0; i < freqs.Count; i++)
{
double freq = freqs[i];
if (freq <= 0) continue;
int midiNote = (int)Math.Round(69 + 12 * Math.Log(freq / 440.0, 2));
double exactMidi = 69 + 12 * Math.Log(freq / 440.0, 2);
double pitchBend = exactMidi - midiNote;
double time = i * frameDurationMs;
if (prevNote == null)
{
prevNote = midiNote;
prevTime = time;
duration = frameDurationMs;
bend = pitchBend;
}
else if (prevNote == midiNote)
{
duration += frameDurationMs;
}
else
{
sw.WriteLine($"{prevNote},{prevTime:F1},{duration:F1},{bend:F3}");
prevNote = midiNote;
prevTime = time;
duration = frameDurationMs;
bend = pitchBend;
}
}
if (prevNote != null)
sw.WriteLine($"{prevNote},{prevTime:F1},{duration:F1},{bend:F3}");
}
}
public static List<double> YinDetect(float[] samples, int sampleRate, int frameSize)
{
List<double> freqs = new List<double>();
for (int i = 0; i + frameSize < samples.Length; i += frameSize)
{
double freq = DetectPitchYinFrame(samples, i, frameSize, sampleRate);
freqs.Add(freq);
}
return freqs;
}
public static double DetectPitchYinFrame(float[] buffer, int start, int size, int sampleRate)
{
int tauMax = size / 2;
double[] diff = new double[tauMax];
for (int tau = 1; tau < tauMax; tau++)
{
double sum = 0;
for (int i = 0; i < tauMax; i++)
{
double d = buffer[start + i] - buffer[start + i + tau];
sum += d * d;
}
diff[tau] = sum;
}
double[] cmnd = new double[tauMax];
cmnd[0] = 1;
double runningSum = 0;
for (int tau = 1; tau < tauMax; tau++)
{
runningSum += diff[tau];
cmnd[tau] = diff[tau] / ((runningSum / tau) + 1e-6);
}
for (int tau = 2; tau < tauMax - 1; tau++)
{
if (cmnd[tau] < 0.1 && cmnd[tau] < cmnd[tau - 1] && cmnd[tau] <= cmnd[tau + 1])
{
return sampleRate / (double)tau;
}
}
return -1;
}
public static float[] ReadWavMonoAsFloats(string path, out int sampleRate)
{
using (var br = new BinaryReader(File.OpenRead(path)))
{
br.BaseStream.Seek(0, SeekOrigin.Begin);
br.ReadBytes(12);
int channels = 1;
sampleRate = 44100;
int bitsPerSample = 16;
while (br.BaseStream.Position < br.BaseStream.Length)
{
string chunkID = new string(br.ReadChars(4));
int chunkSize = br.ReadInt32();
if (chunkID == "fmt ")
{
br.ReadInt16();
channels = br.ReadInt16();
sampleRate = br.ReadInt32();
br.ReadInt32();
br.ReadInt16();
bitsPerSample = br.ReadInt16();
if (chunkSize > 16) br.ReadBytes(chunkSize - 16);
}
else if (chunkID == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
float[] samples = new float[totalSamples / channels];
for (int i = 0, j = 0; i < totalSamples; i++)
{
short sample = br.ReadInt16();
if (channels == 1 || i % channels == 0)
samples[j++] = sample / 32768f;
if (channels == 2) br.ReadInt16();
}
return samples;
}
else
{
br.ReadBytes(chunkSize);
}
}
}
sampleRate = 44100;
return new float[0];
}
}//public class CLUBBING_CONTINUOUS_SAME_NOTES_AND_DURATIONS___PitchMidiExtractor_YinLegacyCompatible
public class WAVS_TO_MIDS_DYNAMIK_THRESHOLDS_YinPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files
{
const int SampleRate = 8000;
const int FrameSize = 1024;
const int StepSize = 512;
public static List<FrameStats> public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches = new List<FrameStats>();
public static List<FrameStats> public_static___List_of___CLUBBED_CONTIGUOUS_NOTES___DURATIONS_SUMMED___FrameStats__stats__pure_notes_nonzero_pitches = new List<FrameStats>();
public class FrameStats
{
public double TimeMs;
public double RMS;
public double MinCMND;
public double Frequency;
public double ThresholdUsed;
public int midsnotesnum;
public double durations_millis;
public int velocity;
public List<double> public_list_of_doubles_simples_durations_gaps_millis_for_for_pitchbends = new List<double>();
public List<int> public_list_of_ints_0_8192_16384_vals_for_pitchbends = new List<int>();
public List<double> public_list_of_percentages_of_doubles_simples_durations_gaps_0_to_100_for_for_pitchbends = new List<double>();
public string leftsideof_slash_in_indinotes_found = "";
public bool ALREADY_DONES_DURATIONS_CLUBBED_FOR_CONTINUOUS_SAMES_NOTES = false;
}//public class FrameStats
public static int FrequencyToMidiNote(double frequency)
{
if (frequency <= 0) return 0;
// return (int)Math.Round(69 + 12 * Math.Log(frequency / 440.0, 2));
int note_number_found_from_the_nearest_frequency_Hertz
=
SAANAUDS.PUBLIC_STATIC_CLASS_TO_GENERATE_CSVMIDI_LIKE_SAANDATA
// . PUBLIC_STATIC_STRING_ARRAY_FOR_SAAN_NOTES_MAPPER
// .public_static_global_list______ACCUMULATED_AFTER_ALL_DATA_READING_DONE___INSIDE___FUNCTION___SAAN_Log_tracks_channels_events_______BETTER_SCALES____STILL___NOT_GETTING_PROPER_PATCH_NUMBERS___SAAN_CLASS_FOR_MIDI_DATA_TO_LINE_SEGMENT_DATA_HOLDING
// .public_static_int_get_note_number_from_frequency_Hertz
.public_static_int_get_note_number_from_frequency_Hertz
(
frequency
);
return note_number_found_from_the_nearest_frequency_Hertz;
}// public static int FrequencyToMidiNote(double frequency)
public static void ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files___Main(string wav_filename)
{
////string _returned_notes_number_string
//// =
////// SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
//////.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
//////.
//DO_POPULATE_INDIANIZED_NOTES___AND_RETURN_NOTENUMBER_FROM_THE_FILLED_NOTES_NAMES("");
var samples = ReadWavFile(wav_filename);
var frameStats = DetectPitchWithStats(samples);
string csvPath = wav_filename + "_dynamik_thresholds_YinPitchDetector___Deep_Stats___csv";
ExportDeepCsv(frameStats, csvPath);
Console.WriteLine("Pitch + Stats saved to: " + csvPath);
MessageBox.Show("Pitch + Stats saved to: " + csvPath);
}//public static void ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files___Main(string wav_filename)
public static List<double> ReadWavFile(string filePath)
{
var samples = new List<double>();
using (var reader = new BinaryReader(File.OpenRead(filePath)))
{
reader.BaseStream.Seek(44, SeekOrigin.Begin);
while (reader.BaseStream.Position < reader.BaseStream.Length)
{
short s = reader.ReadInt16();
samples.Add(s / 32768.0);
}//while (reader.BaseStream.Position < reader.BaseStream.Length)
}//using (var reader = new BinaryReader(File.OpenRead(filePath)))
return samples;
}//public static List<double> ReadWavFile(string filePath)
public static List<FrameStats> DetectPitchWithStats(List<double> samples)
{
List<FrameStats> stats = new List<FrameStats>();
stats.Clear();
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.Clear();
public_static___List_of___CLUBBED_CONTIGUOUS_NOTES___DURATIONS_SUMMED___FrameStats__stats__pure_notes_nonzero_pitches.Clear();
for (int i = 0; i + FrameSize < samples.Count; i += StepSize)
{
double[] frame = samples.GetRange(i, FrameSize).ToArray();
double rms = Math.Sqrt(frame.Sum(x => x * x) / frame.Length);
double threshold = EstimateDynamicThreshold(rms);
double pitch = YinWithStats(frame, SampleRate, threshold, out double minCMND);
int notes_number = FrequencyToMidiNote(pitch);
//CALLING CONVENTIONS SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_STRING_INDIAN_NOTES_NAME___________PUBLIC_STATIC_STRING_FOR_GLOBAL_ACCESS
//CALLING CONVENTIONS SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_INT_INDIAN_NOTES_NUMBER___________PUBLIC_STATIC_INT_FOR_GLOBAL_ACCESS
/// THESE WILL GET FILLED SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_STRING_INDIAN_NOTES_NAME___________PUBLIC_STATIC_STRING_FOR_GLOBAL_ACCESS = ___TEMP_STRING_INDIAN_NOTES_NAME;
/// THESE WILL GET FILLED SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_INT_INDIAN_NOTES_NUMBER___________PUBLIC_STATIC_INT_FOR_GLOBAL_ACCESS = ___TEMP_INT_INDIAN_NOTES_NUMBER;
string ___TEMP_STRING_INDIAN_NOTES_NAME
= SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_STRING_INDIAN_NOTES_NAME___________PUBLIC_STATIC_STRING_FOR_GLOBAL_ACCESS;
int ___TEMP_INT_INDIAN_NOTES_NUMBER
= SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING.___TEMP_INT_INDIAN_NOTES_NUMBER___________PUBLIC_STATIC_INT_FOR_GLOBAL_ACCESS;
string filled_notes_name = "";
string ___report_for_populations
=
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.PUBLIC_STATIC_STRING___return_NOTES_NUMBER_STRING_FROM_PRECONFIGURED_KEY_NAMES_TO_NUMBER______FROM___PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3
(___TEMP_STRING_INDIAN_NOTES_NAME, ___TEMP_INT_INDIAN_NOTES_NUMBER, notes_number.ToString());//saan has changed this code with notes number checking also includes
//////returned_note_number = ___report_for_populations;
string found_leftsidepart_of_indinote_slash =
SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
.PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
.
//PUBLIC_STATIC_STRING_GET_INDINOTESNAME_FIRST_OCCURANCES___from_____PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3____FOR_GIVENS_MIDSNOTESNUMBER
PUBLIC_STATIC_STRING_GET_INDINOTESNAME_ONLY_LEFT_SIDES___FIRST_OCCURANCES___from_____PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3____FOR_GIVENS_MIDSNOTESNUMBER
(notes_number);
found_leftsidepart_of_indinote_slash
=
found_leftsidepart_of_indinote_slash
.Replace("-", "dash")
.Replace("(", "dhin")
.Replace(")", "dhoom")
;
if (pitch > 0)
{
//to take care for the pitch>0 cases seperately
stats.Add
(new FrameStats
{
TimeMs = i * 1000.0 / SampleRate,
RMS = rms,
MinCMND = minCMND,
Frequency = pitch,
ThresholdUsed = threshold,
midsnotesnum = notes_number,
velocity = 127,
leftsideof_slash_in_indinotes_found = found_leftsidepart_of_indinote_slash
}
);
}else
{
try
{
stats.Last().velocity = 0;
/////////////////////////////////////////////////////////////////////////////////////
stats.Last()
.public_list_of_ints_0_8192_16384_vals_for_pitchbends
.Add
(
8192 + (int)((Math.Max(stats.Last().MinCMND, stats.Last().RMS)) * 16384)
);
//
stats.Last()
.public_list_of_doubles_simples_durations_gaps_millis_for_for_pitchbends
.Add
(
(i * 1000.0 / SampleRate) - (stats.Last().TimeMs)
);
}
catch (Exception ___excp_to_fill_pitchbends)
{
}//catch(Exception ___excp_to_fill_pitchbends)
}//end of else of if (pitch > 0)
if (pitch > 0)
{
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.Add
(new FrameStats
{
TimeMs = i * 1000.0 / SampleRate,
RMS = rms,
MinCMND = minCMND,
Frequency = pitch,
ThresholdUsed = threshold,
midsnotesnum = notes_number,
velocity=127,
leftsideof_slash_in_indinotes_found = found_leftsidepart_of_indinote_slash
}
);
}// if(pitch > 0)
else
{
try
{
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.Last()
.public_list_of_ints_0_8192_16384_vals_for_pitchbends
.Add
(
8192 + (int)((Math.Max(stats.Last().MinCMND, stats.Last().RMS)) * 16384)
);
//
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.Last()
.public_list_of_doubles_simples_durations_gaps_millis_for_for_pitchbends
.Add
(
(i * 1000.0 / SampleRate) - (stats.Last().TimeMs)
);
}
catch (Exception ___excp_to_fill_pitchbends)
{
}//catch(Exception ___excp_to_fill_pitchbends)
}//end of else of if (pitch > 0)
}//for (int i = 0; i + FrameSize < samples.Count; i += StepSize)
//WE WILL NOW CLUB THE DURATIONS FOR CONTIGUOUS NOTES
//////public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.Reverse();
//////for(int reversecrawler = 0; reversecrawler<public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches)
//////public_static___List_of___CLUBBED_CONTIGUOUS_NOTES___DURATIONS_SUMMED___FrameStats__stats__pure_notes_nonzero_pitches
////// //DOING THE REVERSING AGAIN TO KEEP THAT STRAIGHT
////// public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.Reverse();
///
public_static___List_of___CLUBBED_CONTIGUOUS_NOTES___DURATIONS_SUMMED___FrameStats__stats__pure_notes_nonzero_pitches
.
Add
(public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.First());
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.First()
.ALREADY_DONES_DURATIONS_CLUBBED_FOR_CONTINUOUS_SAMES_NOTES = true;
///////////////////////////////////////////////////////////////////////////////////////////////////////
for (int durations_clubbing_Crawler=1; durations_clubbing_Crawler< public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.Count; durations_clubbing_Crawler++)
{
for(int lookforwardcrawler= durations_clubbing_Crawler+1; lookforwardcrawler< public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.Count; lookforwardcrawler++)
{
if
(
( !
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.ElementAt(lookforwardcrawler).ALREADY_DONES_DURATIONS_CLUBBED_FOR_CONTINUOUS_SAMES_NOTES
)
&&
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.ElementAt(lookforwardcrawler).midsnotesnum
==
public_static___List_of___CLUBBED_CONTIGUOUS_NOTES___DURATIONS_SUMMED___FrameStats__stats__pure_notes_nonzero_pitches
.Last().midsnotesnum
)
{
public_static___List_of___CLUBBED_CONTIGUOUS_NOTES___DURATIONS_SUMMED___FrameStats__stats__pure_notes_nonzero_pitches
.Last()
.durations_millis
=
public_static___List_of___CLUBBED_CONTIGUOUS_NOTES___DURATIONS_SUMMED___FrameStats__stats__pure_notes_nonzero_pitches
.Last()
.durations_millis
+
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.ElementAt(lookforwardcrawler)
.durations_millis;
/////////////////////////////////////////////////////////////////////////////////////
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.ElementAt(lookforwardcrawler)
.ALREADY_DONES_DURATIONS_CLUBBED_FOR_CONTINUOUS_SAMES_NOTES
= true;
}
else
{
public_static___List_of___CLUBBED_CONTIGUOUS_NOTES___DURATIONS_SUMMED___FrameStats__stats__pure_notes_nonzero_pitches
.
Add
(
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.ElementAt(lookforwardcrawler)
);
///////////////////////////////////////////////////////////////////////////////////////////////
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.ElementAt(lookforwardcrawler)
.ALREADY_DONES_DURATIONS_CLUBBED_FOR_CONTINUOUS_SAMES_NOTES
= true;
public_static___List_of___CLUBBED_CONTIGUOUS_NOTES___DURATIONS_SUMMED___FrameStats__stats__pure_notes_nonzero_pitches
.Last()
.TimeMs
=
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.ElementAt(lookforwardcrawler)
.TimeMs;
durations_clubbing_Crawler = lookforwardcrawler;
// goto gotohere_since_new_notes_number_found;
}/////////////////////////////// else case completes
}//for(int lookforwardcrawler= durations_clubbing_Crawler; lookforwardcrawler< public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.Count; lookforwardcrawler++)
gotohere_since_new_notes_number_found:;
}//for(int durations_clubbing_Crawler=0; durations_clubbing_Crawler< public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.Count; durations_clubbing_Crawler++)
return stats;
}//public static List<FrameStats> DetectPitchWithStats(List<double> samples)
public static double EstimateDynamicThreshold(double rms)
{
if (rms < 0.02) return 0.30;
if (rms < 0.05) return 0.20;
return 0.10;
}//public static double EstimateDynamicThreshold(double rms)
public static double YinWithStats(double[] buffer, int sampleRate, double threshold, out double minCMND)
{
int tauMax = buffer.Length / 2;
double[] difference = new double[tauMax];
double[] cmnd = new double[tauMax];
for (int tau = 1; tau < tauMax; tau++)
{
double sum = 0;
for (int i = 0; i < tauMax; i++)
{
double delta = buffer[i] - buffer[i + tau];
sum += delta * delta;
}//for (int i = 0; i < tauMax; i++)
difference[tau] = sum;
}//for (int tau = 1; tau < tauMax; tau++)
cmnd[0] = 1;
double runningSum = 0;
minCMND = 1.0;
for (int tau = 1; tau < tauMax; tau++)
{
runningSum += difference[tau];
cmnd[tau] = difference[tau] / ((runningSum / tau) + 1e-10);
if (cmnd[tau] < minCMND) minCMND = cmnd[tau];
}//for (int tau = 1; tau < tauMax; tau++)
int tauEstimate = -1;
for (int tau = 2; tau < tauMax; tau++)
{
if (cmnd[tau] < threshold)
{
while (tau + 1 < tauMax && cmnd[tau + 1] < cmnd[tau])
tau++;
tauEstimate = tau;
break;
}//if (cmnd[tau] < threshold)
}//for (int tau = 2; tau < tauMax; tau++)
if (tauEstimate != -1)
{
double betterTau = tauEstimate;
if (tauEstimate > 0 && tauEstimate < tauMax - 1)
{
double s0 = cmnd[tauEstimate - 1];
double s1 = cmnd[tauEstimate];
double s2 = cmnd[tauEstimate + 1];
betterTau = tauEstimate + (s2 - s0) / (2 * (2 * s1 - s2 - s0));
}//if (tauEstimate > 0 && tauEstimate < tauMax - 1)
return sampleRate / betterTau;
}//if (tauEstimate != -1)
return 0;
}// public static double YinWithStats(double[] buffer, int sampleRate, double threshold, out double minCMND)
public static void ExportDeepCsv(List<FrameStats> stats, string csvPath)
{
StringBuilder _strbldr = new StringBuilder();
_strbldr.Clear();
StringBuilder strbld______for_dot_dataGridView___COMPOSER = new StringBuilder();
strbld______for_dot_dataGridView___COMPOSER.Clear();
StringBuilder strbld______for_CLUBBED_DURATIONS___dot_dataGridView___COMPOSER = new StringBuilder();
strbld______for_CLUBBED_DURATIONS___dot_dataGridView___COMPOSER.Clear();
////// LYRSYLLS ###### INDINOTES ###### TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ###### JERK_MILLIS_GAP ###### JERK_UP_PITCHBEND ###### JERK_DOWN_PITCH_BEND ###### FORCED_DECORATIONS_START_TIMES_MILLIS ###### START_MILLIS_PERCUSSIONS ###### START_MILLIS_FOR_PUREMELODYNOTES ###### REFERENCE_CUMULATIVE_START_MILLIS ###### PITCHBENDRANGE_2X2_DEFAULT ###### PAN_0_TO_127 ######
////// ###### S ###### 56 ###### 220 ###### 127 ###### ###### 0;100 ###### 8192;8192 ###### ###### ###### ###### ###### 30 ###### 30 ###### 30 ###### ###### ###### 220 ###### 220 ###### ###### ###### ROW_NUMBER=0
////// ###### r ###### 57 ###### 220 ###### 127 ###### ###### 0;100 ###### 8192;8192 ###### ###### ###### ###### ###### 30 ###### 30 ###### 30 ###### ###### ###### 440 ###### 440 ###### ###### ###### ROW_NUMBER=1
////// ###### g ###### 58 ###### 220 ###### 127 ###### ###### 0;100 ###### 8192;8192 ###### ###### ###### ###### ###### 30 ###### 30 ###### 30 ###### ###### ###### 660 ###### 660 ###### ###### ###### ROW_NUMBER=2
strbld______for_dot_dataGridView___COMPOSER
.AppendLine
(
"LYRSYLLS ###### INDINOTES ###### TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ###### JERK_MILLIS_GAP ###### JERK_UP_PITCHBEND ###### JERK_DOWN_PITCH_BEND ###### FORCED_DECORATIONS_START_TIMES_MILLIS ###### START_MILLIS_PERCUSSIONS ###### START_MILLIS_FOR_PUREMELODYNOTES ###### REFERENCE_CUMULATIVE_START_MILLIS ###### PITCHBENDRANGE_2X2_DEFAULT ###### PAN_0_TO_127 ###### "
);
strbld______for_CLUBBED_DURATIONS___dot_dataGridView___COMPOSER
.AppendLine
(
"LYRSYLLS ###### INDINOTES ###### TRYS_NOTES_NOS ###### MILLISECOND ###### CURR_NOTES_VELOCITY ###### CURR_NOTES_PATCH ###### PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS ###### WITHIN_NOTES_PTCHBENDS_VALUES ###### CHANNEL ###### TRACK ###### NOTES_NUMBERS ###### NOTES_FREQUENCYS ###### JERK_MILLIS_GAP ###### JERK_UP_PITCHBEND ###### JERK_DOWN_PITCH_BEND ###### FORCED_DECORATIONS_START_TIMES_MILLIS ###### START_MILLIS_PERCUSSIONS ###### START_MILLIS_FOR_PUREMELODYNOTES ###### REFERENCE_CUMULATIVE_START_MILLIS ###### PITCHBENDRANGE_2X2_DEFAULT ###### PAN_0_TO_127 ###### "
);
StringBuilder ___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
= new StringBuilder();
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.Clear();
StringBuilder ___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
= new StringBuilder();
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.Clear();
using (var writer = new StreamWriter(csvPath))
{
// writer.WriteLine("Time (ms),Frequency (Hz),RMS,MinCMND,ThresholdUsed");
// writer.WriteLine($"{s.TimeMs:F2},{s.Frequency:F2},{s.midsnotesnum:F2},{ s.durations_millis:F2},{s.velocity:F2},{s.RMS:F4},{s.MinCMND:F4},{s.ThresholdUsed:F3}");
writer.WriteLine("Time (ms),Frequency (Hz),Midsnotes ,Indinotes, dursmillis , velocity , RMS,MinCMND,ThresholdUsed");
_strbldr.AppendLine("Time (ms),Frequency (Hz),Midsnotes ,IndiNotes, dursmillis , velocity , RMS,MinCMND,ThresholdUsed");
for (int rrr=0;rrr< (stats.Count-1);rrr++)
{
stats.ElementAt(rrr).durations_millis
=
(stats.ElementAt(rrr + 1).TimeMs
-
stats.ElementAt(rrr ).TimeMs
);
/////////////////////////////// to avoid divisions with zeros for pitch bends ///////////////////////////////////////////
stats.ElementAt(rrr).durations_millis = Math.Max(1, stats.ElementAt(rrr).durations_millis);
/////////////////////////////// to avoid divisions with zeros for pitch bends ///////////////////////////////////////////
// stats.ElementAt(rrr).midsnotesnum =
stats.ElementAt(rrr).velocity = 127;// (int)((stats.ElementAt(rrr).MinCMND) * 127); //(int)((stats.ElementAt(rrr).RMS) * 127);
//////////////////////////////////////////////////////////////////
//////StringBuilder ___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// = new StringBuilder();
//////___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// .Clear();
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.AppendLine
(
// LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
stats.ElementAt(rrr).TimeMs
+ "######" +
// durationtoassigns_inmiditiks
stats.ElementAt(rrr).durations_millis
+ "######" +
// ___temp_note_freq_found
stats.ElementAt(rrr).Frequency
);
//////StringBuilder ___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// = new StringBuilder();
//////___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// .Clear();
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.AppendLine
(
// LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
stats.ElementAt(rrr).TimeMs
+ "######" +
// durationtoassigns_inmiditiks
stats.ElementAt(rrr).durations_millis
+ "######" +
// ___temp_note_freq_found
stats.ElementAt(rrr).Frequency
+ "######" +
//////Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
//////.INT_CURRENT_NOTES_VELOCITY_0_TO_127
stats.ElementAt(rrr).velocity
/
127
);
//////////////////////////////////////////////////////////////////
try
{
//////////////////////////////////////////////////////////////////////
///
for (int countptchbnds=0; countptchbnds < stats.ElementAt(rrr).public_list_of_ints_0_8192_16384_vals_for_pitchbends.Count; countptchbnds++)
{
stats.ElementAt(rrr)
.public_list_of_percentages_of_doubles_simples_durations_gaps_0_to_100_for_for_pitchbends
.
Add
(
(
(
stats.ElementAt(rrr).public_list_of_ints_0_8192_16384_vals_for_pitchbends.ElementAt(countptchbnds)
-
stats.ElementAt(rrr).TimeMs
)
/ stats.ElementAt(rrr).durations_millis
)*100
);
}// for(int countptchbnds=0; countptchbnds < stats.ElementAt(rrr).public_list_of_ints_0_8192_16384_vals_for_pitchbends.Count; countptchbnds++)
}
catch (Exception ___excp_to_fill_pitchbends)
{
}//catch(Exception ___excp_to_fill_pitchbends)
}// for(int rrr=0;rrr< (stats.Count-1);rrr++)
for (int ggg = 0; ggg < (public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.Count - 1); ggg++)
{
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.ElementAt(ggg).durations_millis
=
(public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.ElementAt(ggg + 1).TimeMs
-
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.ElementAt(ggg).TimeMs
);
/////////////////////////////// to avoid divisions with zeros for pitch bends ///////////////////////////////////////////
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.ElementAt(ggg).durations_millis
= Math.Max(1, public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.ElementAt(ggg).durations_millis);
/////////////////////////////// to avoid divisions with zeros for pitch bends ///////////////////////////////////////////
// public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.ElementAt(ggg).midsnotesnum = midsnotesnum
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.ElementAt(ggg).velocity = 127;// (int)((public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.ElementAt(ggg).MinCMND) * 127); //(int)((stats.ElementAt(rrr).RMS) * 127);
try
{
for (int countptchbnds = 0; countptchbnds < public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.ElementAt(ggg).public_list_of_ints_0_8192_16384_vals_for_pitchbends.Count; countptchbnds++)
{
stats.ElementAt(ggg)
.public_list_of_percentages_of_doubles_simples_durations_gaps_0_to_100_for_for_pitchbends
.
Add
(
(
(
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.ElementAt(ggg).public_list_of_ints_0_8192_16384_vals_for_pitchbends.ElementAt(countptchbnds)
-
public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.ElementAt(ggg).TimeMs
)
/ public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches
.ElementAt(ggg).durations_millis
)*100
);
}// for (int countptchbnds = 0; countptchbnds < public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.ElementAt(ggg).public_list_of_ints_0_8192_16384_vals_for_pitchbends.Count; countptchbnds++)
}
catch (Exception ___excp_to_fill_pitchbends)
{
}//catch(Exception ___excp_to_fill_pitchbends)
}// for(int ggg=0;ggg< (public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches.Count-1);ggg++)
/////////////////////////////////////////////////////////////////////////////
foreach (var s in stats)
{
writer.WriteLine($"{s.TimeMs:F2},{s.Frequency:F2},{s.midsnotesnum:F2},{s.leftsideof_slash_in_indinotes_found},{ s.durations_millis:F2},{s.velocity:F2},{s.RMS:F4},{s.MinCMND:F4},{s.ThresholdUsed:F3}");
}//foreach (var s in stats)
string PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS = "";
string WITHIN_NOTES_PTCHBENDS_VALUES = "";
string ___indinotefound___firstoccurances_before_slash
= "";
foreach (var s_mids in public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches)
{
_strbldr.AppendLine($"{s_mids.TimeMs:F2},{s_mids.Frequency:F2},{s_mids.midsnotesnum:F2},{s_mids.leftsideof_slash_in_indinotes_found},{ s_mids.durations_millis:F2},{s_mids.velocity:F2},{s_mids.RMS:F4},{s_mids.MinCMND:F4},{s_mids.ThresholdUsed:F3}");
//////___indinotefound___firstoccurances_before_slash
////// =
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
////// .
//////PUBLIC_STATIC_STRING_GET_INDINOTESNAME_FIRST_OCCURANCES___from_____PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3____FOR_GIVENS_MIDSNOTESNUMBER
//////(s_mids.midsnotesnum);
if (s_mids.public_list_of_percentages_of_doubles_simples_durations_gaps_0_to_100_for_for_pitchbends.Count== s_mids.public_list_of_ints_0_8192_16384_vals_for_pitchbends.Count)
{
PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS = "0";
WITHIN_NOTES_PTCHBENDS_VALUES = "8192";
foreach (double perc in s_mids.public_list_of_percentages_of_doubles_simples_durations_gaps_0_to_100_for_for_pitchbends)
{
PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS
=
PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS
+
";"+ perc.ToString("F2");
}//foreach (double perc in s_mids.public_list_of_percentages_of_doubles_simples_durations_gaps_0_to_100_for_for_pitchbends)
foreach(int ptchbnd in s_mids.public_list_of_ints_0_8192_16384_vals_for_pitchbends)
{
WITHIN_NOTES_PTCHBENDS_VALUES
=
WITHIN_NOTES_PTCHBENDS_VALUES
+ ";" + ((int)ptchbnd).ToString();
}//foreach(int ptchbnd in s_mids.public_list_of_ints_0_8192_16384_vals_for_pitchbends)
}//if(s_mids.public_list_of_percentages_of_doubles_simples_durations_gaps_0_to_100_for_for_pitchbends.Count== s_mids.public_list_of_ints_0_8192_16384_vals_for_pitchbends.Count)
else
{
PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS = "0;100";
WITHIN_NOTES_PTCHBENDS_VALUES = "8192;8192";
}//filling the lists
///////////////////////////////////////////////////////////////////////////////////////////
strbld______for_dot_dataGridView___COMPOSER
.AppendLine
(
// "######"
// +
"LYRSYLLS "
+ " ###### "+
// INDINOTES
// ""
s_mids.leftsideof_slash_in_indinotes_found
+ " ###### " +
// TRYS_NOTES_NOS
s_mids.midsnotesnum
+ " ###### " +
// MILLISECOND
s_mids.durations_millis
+ " ###### " +
// CURR_NOTES_VELOCITY
+s_mids.velocity
+ " ###### " +
// CURR_NOTES_PATCH
"73"
+ " ###### " +
// PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS
//"0;100"
PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS
+ " ###### " +
// WITHIN_NOTES_PTCHBENDS_VALUES
//"8192;8192"
WITHIN_NOTES_PTCHBENDS_VALUES
+ " ###### " +
// CHANNEL
6
+ " ###### " +
// TRACK
6
+ " ###### " +
// NOTES_NUMBERS names
"to_fill"
+ " ###### " +
// NOTES_FREQUENCYS
s_mids.Frequency
+ " ###### " +
// JERK_MILLIS_GAP
6
+ " ###### " +
// JERK_UP_PITCHBEND
6
+ " ###### " +
// JERK_DOWN_PITCH_BEND
6
+ " ###### " +
// FORCED_DECORATIONS_START_TIMES_MILLIS
s_mids.TimeMs
+ " ###### " +
// START_MILLIS_PERCUSSIONS
s_mids.TimeMs
+ " ###### " +
// START_MILLIS_FOR_PUREMELODYNOTES
s_mids.TimeMs
+ " ###### " +
// REFERENCE_CUMULATIVE_START_MILLIS
+s_mids.TimeMs
+" ###### " +
// PITCHBENDRANGE_2X2_DEFAULT
"6"
+ " ###### " +
// PAN_0_TO_127
"64"
+ " ###### "
);
}// foreach (var s_mids in public_static___List_of___FrameStats__stats__pure_notes_nonzero_pitches)
}//using (var writer = new StreamWriter(csvPath))
////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
csvPath
+ "(DYNAMIK_THRESHOLDS_YIN).no_velocity_flutes_melody_data"
,
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.ToString()
);
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
csvPath
+ "(DYNAMIK_THRESHOLDS_YIN).with_velocity_flutes_melody_data"
,
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.ToString()
);
////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
csvPath+"_midsnotesfromwavs.csvs_dat"
,
_strbldr.ToString()
);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
csvPath + "___combined_wavstomids.dataGridView___COMPOSER"
,
strbld______for_dot_dataGridView___COMPOSER.ToString()
);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
foreach (var s_CONTINUED in public_static___List_of___CLUBBED_CONTIGUOUS_NOTES___DURATIONS_SUMMED___FrameStats__stats__pure_notes_nonzero_pitches)
{
//outside the writer streams
string PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS = "0";
string WITHIN_NOTES_PTCHBENDS_VALUES = "8192";
//_strbldr.AppendLine($"{s_mids.TimeMs:F2},{s_mids.Frequency:F2},{s_mids.midsnotesnum:F2},{s_mids.leftsideof_slash_in_indinotes_found},{ s_mids.durations_millis:F2},{s_mids.velocity:F2},{s_mids.RMS:F4},{s_mids.MinCMND:F4},{s_mids.ThresholdUsed:F3}");
//////___indinotefound___firstoccurances_before_slash
////// =
//////SAANS_ROUGH_BEATS_COMPOSER_FOR_ON_SELECTIONS_LOOP_CYCLES
////// .PUBLIC_STATIC_CLASS_TO_PRELISTEN_HANDLING
////// .
//////PUBLIC_STATIC_STRING_GET_INDINOTESNAME_FIRST_OCCURANCES___from_____PUBLIC_STATIC_STRING_ARRAY_FOR_36_NOTES___50_X_3____FOR_GIVENS_MIDSNOTESNUMBER
//////(s_mids.midsnotesnum);
if (s_CONTINUED.public_list_of_percentages_of_doubles_simples_durations_gaps_0_to_100_for_for_pitchbends.Count == s_CONTINUED.public_list_of_ints_0_8192_16384_vals_for_pitchbends.Count)
{
PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS = "0";
WITHIN_NOTES_PTCHBENDS_VALUES = "8192";
foreach (double perc in s_CONTINUED.public_list_of_percentages_of_doubles_simples_durations_gaps_0_to_100_for_for_pitchbends)
{
PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS
=
PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS
+
";" + perc.ToString("F2");
}//foreach (double perc in s_CONTINUED.public_list_of_percentages_of_doubles_simples_durations_gaps_0_to_100_for_for_pitchbends)
foreach (int ptchbnd in s_CONTINUED.public_list_of_ints_0_8192_16384_vals_for_pitchbends)
{
WITHIN_NOTES_PTCHBENDS_VALUES
=
WITHIN_NOTES_PTCHBENDS_VALUES
+ ";" + ((int)ptchbnd).ToString();
}//foreach(int ptchbnd in s_CONTINUED.public_list_of_ints_0_8192_16384_vals_for_pitchbends)
}//if(s_CONTINUED.public_list_of_percentages_of_doubles_simples_durations_gaps_0_to_100_for_for_pitchbends.Count== s_CONTINUED.public_list_of_ints_0_8192_16384_vals_for_pitchbends.Count)
else
{
PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS = "0;100";
WITHIN_NOTES_PTCHBENDS_VALUES = "8192;8192";
}//filling the lists
///////////////////////////////////////////////////////////////////////////////////////////
strbld______for_CLUBBED_DURATIONS___dot_dataGridView___COMPOSER
.AppendLine
(
// "######"
// +
"LYRSYLLS "
+ " ###### " +
// INDINOTES
// ""
s_CONTINUED.leftsideof_slash_in_indinotes_found
+ " ###### " +
// TRYS_NOTES_NOS
s_CONTINUED.midsnotesnum
+ " ###### " +
// MILLISECOND
s_CONTINUED.durations_millis
+ " ###### " +
// CURR_NOTES_VELOCITY
+s_CONTINUED.velocity
+ " ###### " +
// CURR_NOTES_PATCH
"73"
+ " ###### " +
// PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS
//"0;100"
PERCENTAGES_DURATIONS_COMMASEPS_PTCHBNDS
+ " ###### " +
// WITHIN_NOTES_PTCHBENDS_VALUES
//"8192;8192"
WITHIN_NOTES_PTCHBENDS_VALUES
+ " ###### " +
// CHANNEL
6
+ " ###### " +
// TRACK
6
+ " ###### " +
// NOTES_NUMBERS names
"to_fill"
+ " ###### " +
// NOTES_FREQUENCYS
s_CONTINUED.Frequency
+ " ###### " +
// JERK_MILLIS_GAP
6
+ " ###### " +
// JERK_UP_PITCHBEND
6
+ " ###### " +
// JERK_DOWN_PITCH_BEND
6
+ " ###### " +
// FORCED_DECORATIONS_START_TIMES_MILLIS
s_CONTINUED.TimeMs
+ " ###### " +
// START_MILLIS_PERCUSSIONS
s_CONTINUED.TimeMs
+ " ###### " +
// START_MILLIS_FOR_PUREMELODYNOTES
s_CONTINUED.TimeMs
+ " ###### " +
// REFERENCE_CUMULATIVE_START_MILLIS
+s_CONTINUED.TimeMs
+ " ###### " +
// PITCHBENDRANGE_2X2_DEFAULT
"6"
+ " ###### " +
// PAN_0_TO_127
"64"
+ " ###### "
);
}// foreach (var s_CONTINUED in public_static___List_of___CLUBBED_CONTIGUOUS_NOTES___DURATIONS_SUMMED___FrameStats__stats__pure_notes_nonzero_pitches)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
csvPath + "___CLUBBED_DURATIONS_FOR_SAMES_NOTES_combined_wavstomids.dataGridView___COMPOSER"
,
strbld______for_CLUBBED_DURATIONS___dot_dataGridView___COMPOSER.ToString()
);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}//public static void ExportDeepCsv(List<FrameStats> stats, string csvPath)
}//public class WAVS_TO_MIDS_DYNAMIK_THRESHOLDS_YinPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files
//////using System;
//////using System.IO;
//////using System.Text;
public struct Complex
{
public double Real;
public double Imag;
public Complex(double real, double imag)
{
Real = real;
Imag = imag;
}//public Complex(double real, double imag)
public double Magnitude => Math.Sqrt(Real * Real + Imag * Imag);
public static Complex operator +(Complex a, Complex b) => new Complex(a.Real + b.Real, a.Imag + b.Imag);
public static Complex operator -(Complex a, Complex b) => new Complex(a.Real - b.Real, a.Imag - b.Imag);
public static Complex operator *(Complex a, Complex b) =>
new Complex(a.Real * b.Real - a.Imag * b.Imag, a.Real * b.Imag + a.Imag * b.Real);
}//public struct Complex
public class FourierCodeGenerator
{
//////int nextPowerOfTwo = 1;
//////while (nextPowerOfTwo<N) nextPowerOfTwo <<= 1;
//////if (nextPowerOfTwo != N)
//////{
//////Complex[] padded = new Complex[nextPowerOfTwo];
//////for (int i = 0; i<N; i++)
//////padded[i] = x[i];
//////for (int i = N; i<nextPowerOfTwo; i++)
//////padded[i] = new Complex(0, 0);
//////x = padded;
//////N = nextPowerOfTwo;
//////}//if (nextPowerOfTwo != N)
public static void FFT(ref Complex[] buffer)
{
int originalLength = buffer.Length;
// Pad to next power of two
int N = 1;
while (N < originalLength) N <<= 1;
if (N != originalLength)
{
Complex[] padded = new Complex[N];
for (int i = 0; i < originalLength; i++)
padded[i] = buffer[i];
for (int i = originalLength; i < N; i++)
padded[i] = new Complex(0, 0);
buffer = padded;
}// if (N != originalLength)
// Bit-reversal permutation
int bits = (int)Math.Log(N, 2);
for (int j = 1, i = 0; j < N; j++)
{
int bit = N >> 1;
while ((i & bit) != 0)
{
i ^= bit;
bit >>= 1;
}//while ((i & bit) != 0)
i ^= bit;
if (j < i)
{
var temp = buffer[j];
buffer[j] = buffer[i];
buffer[i] = temp;
}//if (j < i)
}//for (int j = 1, i = 0; j < N; j++)
// Cooley-Tukey FFT
for (int len = 2; len <= N; len <<= 1)
{
double angle = -2 * Math.PI / len;
Complex wlen = new Complex(Math.Cos(angle), Math.Sin(angle));
for (int i = 0; i < N; i += len)
{
Complex w = new Complex(1, 0);
for (int j = 0; j < len / 2; j++)
{
Complex u = buffer[i + j];
Complex v = buffer[i + j + len / 2] * w;
buffer[i + j] = u + v;
buffer[i + j + len / 2] = u - v;
w = w * wlen;
}
}
}
}// public static void FFT(ref Complex[] buffer)
//////public static void FFT(Complex[] buffer)
////// {
////// Complex[] x = { };
////// int N = buffer.Length;
////// int nextPowerOfTwo = 1;
////// while (nextPowerOfTwo < N) nextPowerOfTwo <<= 1;
////// if (nextPowerOfTwo != N)
////// {
////// Complex[] padded = new Complex[nextPowerOfTwo];
////// for (int i = 0; i < N; i++)
////// padded[i] = x[i];
////// for (int i = N; i < nextPowerOfTwo; i++)
////// padded[i] = new Complex(0, 0);
////// x = padded;
////// N = nextPowerOfTwo;
////// }//if (nextPowerOfTwo != N)
////// int bits = (int)Math.Log(N, 2);
////// for (int j = 1, i = 0; j < N - 1; j++)
////// {
////// int bit = N >> 1;
////// while ((i ^= bit) < bit) bit >>= 1;
////// if (j < i)
////// {
////// var temp = buffer[j];
////// buffer[j] = buffer[i];
////// buffer[i] = temp;
////// }//if (j < i)
////// }//for (int j = 1, i = 0; j < N - 1; j++)
////// for (int len = 2; len <= N; len <<= 1)
////// {
////// double angle = -2 * Math.PI / len;
////// Complex wlen = new Complex(Math.Cos(angle), Math.Sin(angle));
////// for (int i = 0; i < N; i += len)
////// {
////// Complex w = new Complex(1, 0);
////// for (int j = 0; j < len / 2; j++)
////// {
////// Complex u = buffer[i + j];
////// Complex v = buffer[i + j + len / 2] * w;
////// buffer[i + j] = u + v;
////// buffer[i + j + len / 2] = u - v;
////// w = w * wlen;
////// }//for (int j = 0; j < len / 2; j++)
////// }//for (int i = 0; i < N; i += len)
////// }//for (int len = 2; len <= N; len <<= 1)
////// }//public static void FFT(Complex[] buffer)
////// //////public static void FourierCodeGenerator___MainFOR_TOP_HARMONICS(string GTAMPLS_FILES)
//////{
////// string inputPath = GTAMPLS_FILES;
////// string[] lines = File.ReadAllLines(inputPath);
////// double[] samples = Array.ConvertAll(lines, double.Parse);
////// int N = samples.Length;
////// // Compute FFT
////// Complex[] fft = new Complex[N];
////// for (int i = 0; i < N; i++)
////// fft[i] = new Complex(samples[i], 0);
////// // FourierTransform.FFT(fft, FourierTransform.Direction.Forward);
public static void FourierCodeGenerator___Main_TOP_HARMONIKS(string GTAMPLS_FILES)
{
string[] lines = File.ReadAllLines(GTAMPLS_FILES);
int N = lines.Length;
Complex[] x = new Complex[N];
for (int i = 0; i < N; i++)
x[i] = new Complex(double.Parse(lines[i]), 0);
// FFT(x);
int sampleCount = N;
Complex[] buffer = new Complex[sampleCount];
// fill buffer with your samples
FFT(ref buffer);
// Compute magnitudes and sort top harmonics
var harmonics = new (int Index, double Magnitude, double Real, double Imag)[N / 2];
for (int i = 1; i < N / 2; i++) // skip DC
{
harmonics[i] = (i, x[i].Magnitude, x[i].Real / N, -x[i].Imag / N);
}
Array.Sort(harmonics, (a, b) => b.Magnitude.CompareTo(a.Magnitude));
StringBuilder sb = new StringBuilder();
sb.AppendLine("// Top Harmonics by Energy");
sb.AppendLine("double waveform = 0.0;");
for (int i = 0; i < 10; i++)
{
int n = harmonics[i].Index;
double a = harmonics[i].Real * 2;
double b = harmonics[i].Imag * 2;
sb.AppendLine($"waveform += {a:+0.00000000;-0.00000000} * Math.Cos({2 * n} * Math.PI * freq * s / SampleRate);");
sb.AppendLine($"waveform += {b:+0.00000000;-0.00000000} * Math.Sin({2 * n} * Math.PI * freq * s / SampleRate);");
}//for (int i = 0; i < 10; i++)
string outputPath = GTAMPLS_FILES + "_TopHarmonicsReport.txt";
File.WriteAllText(outputPath, sb.ToString());
Console.WriteLine("Report saved to " + outputPath);
System.Diagnostics.Process.Start("notepad.exe", outputPath);
}//public static void FourierCodeGenerator___Main_TOP_HARMONIKS(string GTAMPLS_FILES)
////// FourierCodeGenerator.FFT(fft, FourierCodeGenerator.Direction.Forward);
////// // Compute magnitudes and sort by energy
////// var harmonics = fft.Select((c, i) => new {
////// Index = i,
////// Magnitude = c.Magnitude,
////// Real = c.Real / N,
////// Imag = -c.Imaginary / N
////// })
////// .Skip(1) // skip DC
////// .Take(N / 2)
////// .OrderByDescending(h => h.Magnitude)
////// .Take(10)
////// .ToList();
////// // Generate C# code
////// StringBuilder sb = new StringBuilder();
////// sb.AppendLine("// Top Harmonics by Energy");
////// sb.AppendLine("double waveform = 0.0;");
////// foreach (var h in harmonics)
////// {
////// int n = h.Index;
////// sb.AppendLine($"waveform += {h.Real * 2:+0.00000000;-0.00000000} * Math.Cos({2 * n} * Math.PI * freq * s / SampleRate);");
////// sb.AppendLine($"waveform += {h.Imag * 2:+0.00000000;-0.00000000} * Math.Sin({2 * n} * Math.PI * freq * s / SampleRate);");
////// }//foreach (var h in harmonics)
////// string outputPath = GTAMPLS_FILES + "_TopHarmonicsReport.txt";
////// File.WriteAllText(outputPath, sb.ToString());
////// Console.WriteLine("Report saved to " + outputPath);
////// System.Diagnostics.Process.Start("notepad.exe", outputPath);
//////}//public static void FourierCodeGenerator___MainFOR_TOP_HARMONICS(string GTAMPLS_FILES)
public static void FourierCodeGenerator___Main(string GTAMPLS_FILES)
{
string inputPath = GTAMPLS_FILES;// "amplitudes.txt"; // Your input file
string[] lines = File.ReadAllLines(inputPath);
double[] samples = Array.ConvertAll(lines, double.Parse);
int N = samples.Length;
double[] t = new double[N];
for (int i = 0; i < N; i++)
{ t[i] = (double)i / N; }
// N IS NUMBER OF SAMPLES SUPPLIED
string report = GenerateFourierReport(samples, t, N, 3) + "\r\n" + GenerateFourierReport(samples, t, N, 6) + "\r\n" +GenerateFourierReport(samples, t, N, 20) + "\r\n" + GenerateFourierReport(samples, t, N, 60);
File.WriteAllText(GTAMPLS_FILES+"_FourierWaveformCodeReport.txt", report);
Console.WriteLine("Report generated and saved to FourierWaveformCodeReport.txt");
System.Windows.Forms.MessageBox.Show("Report generated and saved to FourierWaveformCodeReport.txt \r\n"+ GTAMPLS_FILES + "_FourierWaveformCodeReport.txt");
System.Diagnostics.Process.Start("notepad.exe",
GTAMPLS_FILES + "_FourierWaveformCodeReport.txt"
);
}//public static void FourierCodeGenerator___Main(string GTAMPLS_FILES)
public static string GenerateFourierReport(double[] samples, double[] t, int N, int terms)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine($"// Fourier Expansion with {terms} Terms");
double ___saans_found_max = -60000;
double a0 = 0;
foreach (var s in samples)
{
a0 += s;
a0 /= N;
___saans_found_max = (Math.Max(Math.Abs(s), ___saans_found_max));
}//foreach (var s in samples)
// sb.AppendLine($"double waveform = {a0:F8};");
double ___saans_multiplier_to_get_0_point_8_atleast = 1;
a0 = Math.Min(0.00000000001, a0);
___saans_multiplier_to_get_0_point_8_atleast = 0.8 / a0;
// sb.AppendLine($"double waveform = {a0:F8}");
sb.AppendLine($"double waveform = {a0* ___saans_multiplier_to_get_0_point_8_atleast:F8}");
// ___saans_multiplier_to_get_0_point_8_atleast
for (int n = 1; n <= terms; n++)
{
double an = 0, bn = 0;
for (int i = 0; i < N; i++)
{
an += samples[i] * Math.Cos(2 * Math.PI * n * t[i]);
bn += samples[i] * Math.Sin(2 * Math.PI * n * t[i]);
}//for (int i = 0; i < N; i++)
an *= 2.0 / N;
bn *= 2.0 / N;
sb.AppendLine($" + {an* ___saans_multiplier_to_get_0_point_8_atleast:+0.00000000;-0.00000000} * Math.Cos({2 * n} * Math.PI * freq * s / SampleRate)");
sb.AppendLine($" + {bn* ___saans_multiplier_to_get_0_point_8_atleast:+0.00000000;-0.00000000} * Math.Sin({2 * n} * Math.PI * freq * s / SampleRate)");
}//for (int n = 1; n <= terms; n++)
sb.AppendLine(";");
return sb.ToString();
}//public static string GenerateFourierReport(double[] samples, double[] t, int N, int terms)
}//public class FourierCodeGenerator
public class YinPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files
{
const int SampleRate = 8000;
const int FrameSize = 1024;
const int StepSize = 512;
const double Threshold = 0.15;
public static int FrequencyToMidiNote(double frequency)
{
if (frequency <= 0) return 0;
return (int)Math.Round(69 + 12 * Math.Log(frequency / 440.0, 2));
}
public static void ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files___Main(string wav_filename)
{
StringBuilder ___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
= new StringBuilder();
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.Clear();
StringBuilder ___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
= new StringBuilder();
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.Clear();
string filePath = wav_filename;//"your_file.wav";
var samples = ReadWavFile(filePath);
var pitchTrack = DetectPitch(samples);
////Console.WriteLine("Time (ms) | Frequency (Hz)");
////for (int i = 0; i < pitchTrack.Count; i++)
////{
//// double timeMs = i * StepSize * 1000.0 / SampleRate;
//// Console.WriteLine($"{timeMs:F1}\t| {pitchTrack[i]:F2}");
////}//for (int i = 0; i < pitchTrack.Count; i++)
string csvPath = filePath + "_YinPitchDetector_pitch.times_freqs___csv";
using (var writer = new StreamWriter(csvPath))
{
writer.WriteLine("Time (ms),Frequency (Hz)");
for (int i = 0; i < pitchTrack.Count; i++)
{
double timeMs = i * StepSize * 1000.0 / SampleRate;
double frequency = pitchTrack[i];
writer.WriteLine($"{timeMs:F2},{frequency:F2}");
//////////////////////////////////////////////////////////////////
//////StringBuilder ___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// = new StringBuilder();
//////___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// .Clear();
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.AppendLine
(
//LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
timeMs
+ "######" +
// durationtoassigns_inmiditiks
StepSize
+ "######" +
//___temp_note_freq_found
frequency
);
//////StringBuilder ___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// = new StringBuilder();
//////___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
////// .Clear();
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.AppendLine
(
//////LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
//////+ "######" +
//////durationtoassigns_inmiditiks
//////+ "######" +
//////___temp_note_freq_found
//////+ "######" +
////// Object_of_PUBLIC_CLASS_TO_LOAD_FOR_PRELISTENS_SINGLE_ROWS_NOTE_DATA_DETAILS
////// .INT_CURRENT_NOTES_VELOCITY_0_TO_127
////// /
////// 127
///
//LONG_OVERALL_CUMULATIVE_START_TIMES_ABSOLUTE_TIMER_CALCULATIONS
timeMs
+ "######" +
// durationtoassigns_inmiditiks
StepSize
+ "######" +
//___temp_note_freq_found
frequency
+ "######" +
1.00
);
//////////////////////////////////////////////////////////////////
}//for (int i = 0; i < pitchTrack.Count; i++)
}//using (var writer = new StreamWriter(csvPath))
Console.WriteLine("Pitch data saved to: " + csvPath);
////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
wav_filename
+ "_fixed_thresholds_YIN.no_velocity_flutes_melody_data"
,
___strbldr_for____velocity_free______dot_no_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.ToString()
);
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
wav_filename
+ "_fixed_thresholds_YIN.with_velocity_flutes_melody_data"
,
___strbldr_for____with_velocity______dot_velocity_flutes_melody_data___start_millis_six_hash_durations_millis_six_hash_freq_to_play
.ToString()
);
////////////////////////////////////////////////////////////
System.Windows.Forms.MessageBox.Show("Times Freqs_Pitch data saved to: " + csvPath);
}//public static void ToProcess_with___inPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth+pcm_riff_files___Main(string wav_filename)
// Reads 16-bit PCM mono WAV
public static List<double> ReadWavFile(string filePath)
{
var samples = new List<double>();
using (var reader = new BinaryReader(File.OpenRead(filePath)))
{
// Skip header (44 bytes)
reader.BaseStream.Seek(44, SeekOrigin.Begin);
while (reader.BaseStream.Position < reader.BaseStream.Length)
{
short s = reader.ReadInt16();
samples.Add(s / 32768.0);
}//while (reader.BaseStream.Position < reader.BaseStream.Length)
}//using (var reader = new BinaryReader(File.OpenRead(filePath)))
return samples;
}//public static List<double> ReadWavFile(string filePath)
// Main YIN pitch detection
public static List<double> DetectPitch(List<double> samples)
{
var pitchList = new List<double>();
for (int i = 0; i + FrameSize < samples.Count; i += StepSize)
{
double[] frame = samples.GetRange(i, FrameSize).ToArray();
double pitch = Yin(frame, SampleRate, Threshold);
pitchList.Add(pitch);
}//for (int i = 0; i + FrameSize < samples.Count; i += StepSize)
return pitchList;
}//public static List<double> DetectPitch(List<double> samples)
// YIN algorithm implementation
public static double Yin(double[] buffer, int sampleRate, double threshold)
{
int tauMax = buffer.Length / 2;
double[] difference = new double[tauMax];
double[] cumulativeMeanNormalizedDifference = new double[tauMax];
// Step 1: Difference function
for (int tau = 1; tau < tauMax; tau++)
{
double sum = 0;
for (int i = 0; i < tauMax; i++)
{
double delta = buffer[i] - buffer[i + tau];
sum += delta * delta;
}//for (int i = 0; i < tauMax; i++)
difference[tau] = sum;
}//for (int tau = 1; tau < tauMax; tau++)
// Step 2: Cumulative mean normalized difference
cumulativeMeanNormalizedDifference[0] = 1;
double runningSum = 0;
for (int tau = 1; tau < tauMax; tau++)
{
runningSum += difference[tau];
cumulativeMeanNormalizedDifference[tau] = difference[tau] / ((runningSum / tau) + 1e-10); // avoid divide by zero
}//for (int tau = 1; tau < tauMax; tau++)
// Step 3: Absolute threshold
int tauEstimate = -1;
for (int tau = 2; tau < tauMax; tau++)
{
if (cumulativeMeanNormalizedDifference[tau] < threshold)
{
while (tau + 1 < tauMax && cumulativeMeanNormalizedDifference[tau + 1] < cumulativeMeanNormalizedDifference[tau])
{
tau++;
}//while (tau + 1 < tauMax && cumulativeMeanNormalizedDifference[tau + 1] < cumulativeMeanNormalizedDifference[tau])
tauEstimate = tau;
break;
}//if (cumulativeMeanNormalizedDifference[tau] < threshold)
}//for (int tau = 2; tau < tauMax; tau++)
// Step 4: Parabolic interpolation
if (tauEstimate != -1)
{
double betterTau = tauEstimate;
if (tauEstimate > 0 && tauEstimate < tauMax - 1)
{
double s0 = cumulativeMeanNormalizedDifference[tauEstimate - 1];
double s1 = cumulativeMeanNormalizedDifference[tauEstimate];
double s2 = cumulativeMeanNormalizedDifference[tauEstimate + 1];
betterTau = tauEstimate + (s2 - s0) / (2 * (2 * s1 - s2 - s0));
}//if (tauEstimate > 0 && tauEstimate < tauMax - 1)
return sampleRate / betterTau;
}
else
{
return 0; // unvoiced or no pitch detected
}//end of else of if (tauEstimate != -1)
} // public static double Yin(double[] buffer, int sampleRate, double threshold)
}//YinPitchDetector___from_wav_files_8000_samples_per_seconds_16_bitsdepth_pcm_riff_files
/// <summary>
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// </summary>
public class SAANS_NO_3RD_PARTY_GPT_STYLES_WAV_FILES_READER_TO_GENERATE_8000_HZ_16_BIT_PCMS_GTAMPS
{
//////public static void Write_SPLITTED_WavFile(string path, List<float> normalizedSamples, int sampleRate)
//////{
////// short bitsPerSample = 16;
////// short channels = 1;
////// int byteRate = sampleRate * channels * bitsPerSample / 8;
////// int dataSize = normalizedSamples.Count * 2;
////// using (var writer = new BinaryWriter(File.Create(path)))
////// {
////// writer.Write(Encoding.ASCII.GetBytes("RIFF"));
////// writer.Write(36 + dataSize);
////// writer.Write(Encoding.ASCII.GetBytes("WAVE"));
////// writer.Write(Encoding.ASCII.GetBytes("fmt "));
////// writer.Write(16);
////// writer.Write((short)1); // PCM
////// writer.Write((short)channels);
////// writer.Write(sampleRate);
////// writer.Write(byteRate);
////// writer.Write((short)(channels * bitsPerSample / 8));
////// writer.Write(bitsPerSample);
////// writer.Write(Encoding.ASCII.GetBytes("data"));
////// writer.Write(dataSize);
////// foreach (float sample in normalizedSamples)
////// writer.Write((short)(sample * 32767));
////// }//using (var writer = new BinaryWriter(File.Create(path)))
//////}//public static void Write_SPLITTED_WavFile(string path, List<float> normalizedSamples, int sampleRate)
public static double PUBLIC_STATIC_DOUBLE___CLASS_LEVEL_VARIABLE_TO_STORE_TOTAL_SAMPLES_FOUND = 0;
public static void SplitWavByAmplitudePercentilewith_dynamik_thresholds(string wavPath)
{
string fileNameOnly = Path.GetFileNameWithoutExtension(wavPath);
string folder = Path.GetDirectoryName(wavPath);
short channels = 1;
int sampleRate = 8000;
short bitsPerSample = 16;
List<float> amplitudes = new List<float>();
// ---- Read WAV and extract normalized amplitudes ----
using (var reader = new BinaryReader(File.OpenRead(wavPath)))
{
if (new string(reader.ReadChars(4)) != "RIFF") throw new Exception("Invalid RIFF");
reader.ReadInt32(); // size
if (new string(reader.ReadChars(4)) != "WAVE") throw new Exception("Invalid WAVE");
while (reader.BaseStream.Position < reader.BaseStream.Length)
{
string chunkId = new string(reader.ReadChars(4));
int chunkSize = reader.ReadInt32();
if (chunkId == "fmt ")
{
reader.ReadInt16(); // audioFormat
channels = reader.ReadInt16();
sampleRate = reader.ReadInt32();
reader.ReadInt32(); // byteRate
reader.ReadInt16(); // blockAlign
bitsPerSample = reader.ReadInt16();
if (chunkSize > 16) reader.ReadBytes(chunkSize - 16);
}
else if (chunkId == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
for (int i = 0; i < totalSamples; i++)
{
if (reader.BaseStream.Position + bytesPerSample > reader.BaseStream.Length)
break;
short sample = reader.ReadInt16();
float norm = sample / 32768f;
amplitudes.Add(norm);
if (channels == 2) reader.ReadInt16(); // skip right channel
}
break;
}
else reader.ReadBytes(chunkSize); // skip unknown
}
}
// ---- Calculate 20th percentile of absolute amplitudes ----
var absSorted = amplitudes.Select(Math.Abs).OrderBy(v => v).ToList();
float percentile20 = absSorted[(int)(absSorted.Count * 0.2)];
Console.WriteLine($"Using 20th Percentile Amplitude as Threshold: {percentile20:F6}");
// ---- Detect rising/falling threshold crossings ----
List<(int Start, int End)> regions = new List<(int, int)>();
bool inRegion = false;
int regionStart = 0;
int minSegmentSamples = 800; // ~100 ms
for (int i = 0; i < amplitudes.Count; i++)
{
float absAmp = Math.Abs(amplitudes[i]);
if (!inRegion && absAmp >= percentile20)
{
inRegion = true;
regionStart = i;
}
else if (inRegion && absAmp < percentile20)
{
int regionEnd = i;
if (regionEnd - regionStart >= minSegmentSamples)
regions.Add((regionStart, regionEnd));
inRegion = false;
}
}
// Handle edge case if region reaches file end
if (inRegion && amplitudes.Count - regionStart >= minSegmentSamples)
regions.Add((regionStart, amplitudes.Count - 1));
// ---- Save split WAVs ----
for (int i = 0; i < regions.Count; i++)
{
int start = regions[i].Start;
int end = regions[i].End;
var segment = amplitudes.GetRange(start, end - start);
string outputFile = Path.Combine(folder,
$"{fileNameOnly}_piece_{i + 1}_samples_{segment.Count}_ms_{(int)(segment.Count / (float)sampleRate * 1000)}.wav");
Write_SPLITTED_WavFile(outputFile, segment, sampleRate);
Console.WriteLine($"Saved: {outputFile}");
}
if (regions.Count == 0)
Console.WriteLine("No regions above the 20th percentile threshold were long enough to save.");
}//public static void SplitWavByAmplitudePercentilewith_dynamik_thresholds(string wavPath)
public static void SplitWavByRisingAbove20dBRegions(string wavPath)
{
string fileNameOnly = Path.GetFileNameWithoutExtension(wavPath);
string folder = Path.GetDirectoryName(wavPath);
short channels = 1;
int sampleRate = 8000;
short bitsPerSample = 16;
List<float> amplitudes = new List<float>();
// ---- Read WAV and extract normalized amplitudes ----
using (var reader = new BinaryReader(File.OpenRead(wavPath)))
{
// Read RIFF/WAVE
if (new string(reader.ReadChars(4)) != "RIFF") throw new Exception("Invalid RIFF");
reader.ReadInt32(); // size
if (new string(reader.ReadChars(4)) != "WAVE") throw new Exception("Invalid WAVE");
while (reader.BaseStream.Position < reader.BaseStream.Length)
{
string chunkId = new string(reader.ReadChars(4));
int chunkSize = reader.ReadInt32();
if (chunkId == "fmt ")
{
reader.ReadInt16(); // audioFormat
channels = reader.ReadInt16();
sampleRate = reader.ReadInt32();
reader.ReadInt32(); // byteRate
reader.ReadInt16(); // blockAlign
bitsPerSample = reader.ReadInt16();
if (chunkSize > 16) reader.ReadBytes(chunkSize - 16);
}
else if (chunkId == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
for (int i = 0; i < totalSamples; i++)
{
if (reader.BaseStream.Position + bytesPerSample > reader.BaseStream.Length)
break;
short sample = reader.ReadInt16();
float norm = sample / 32768f;
amplitudes.Add(norm);
if (channels == 2) reader.ReadInt16(); // skip right
}
break;
}
else reader.ReadBytes(chunkSize);
}
}
// ---- SPLITTING BASED ON AMPLITUDE THRESHOLD ----
float threshold = 0.1f; // ~ -20 dB
bool inRegion = false;
int regionStart = 0;
int minSegmentSamples = 800; // = 100ms worth (8000Hz)
List<(int Start, int End)> regions = new List<(int, int)>();
for (int i = 0; i < amplitudes.Count; i++)
{
float absAmp = Math.Abs(amplitudes[i]);
if (!inRegion && absAmp >= threshold)
{
inRegion = true;
regionStart = i;
}
else if (inRegion && absAmp < threshold)
{
// End of region
int regionEnd = i;
if (regionEnd - regionStart >= minSegmentSamples)
regions.Add((regionStart, regionEnd));
inRegion = false;
}
}//for (int i = 0; i < amplitudes.Count; i++)
// Edge case: still in region at end
if (inRegion && amplitudes.Count - regionStart >= minSegmentSamples)
regions.Add((regionStart, amplitudes.Count - 1));
// ---- SAVE SPLIT WAVS ----
for (int i = 0; i < regions.Count; i++)
{
int start = regions[i].Start;
int end = regions[i].End;
var segment = amplitudes.GetRange(start, end - start);
string outputFile = Path.Combine(folder,
$"{fileNameOnly}_piece_{i + 1}_samples_{segment.Count}_ms_{(int)(segment.Count / (float)sampleRate * 1000)}.wav");
Write_SPLITTED_WavFile(outputFile, segment, sampleRate);
Console.WriteLine($"Saved: {outputFile}");
}//for (int i = 0; i < regions.Count; i++)
}//public static void SplitWavByRisingAbove20dBRegions(string wavPath)
public static void DISCARDING___THIS_GENERATES_LARGE_NUMBER_OF_SPLITTED_FILES______SplitWavByLocalMinimals_Of_Amplitudes(string wavPath)
{
string fileNameOnly = Path.GetFileNameWithoutExtension(wavPath);
string folder = Path.GetDirectoryName(wavPath);
short channels = 1;
int sampleRate = 8000;
short bitsPerSample = 16;
List<float> amplitudes = new List<float>();
// ---- Read WAV and extract normalized amplitudes ----
using (var reader = new BinaryReader(File.OpenRead(wavPath)))
{
// Validate RIFF and WAVE
if (new string(reader.ReadChars(4)) != "RIFF") throw new Exception("Invalid RIFF");
reader.ReadInt32(); // size
if (new string(reader.ReadChars(4)) != "WAVE") throw new Exception("Invalid WAVE");
while (reader.BaseStream.Position < reader.BaseStream.Length)
{
string chunkId = new string(reader.ReadChars(4));
int chunkSize = reader.ReadInt32();
if (chunkId == "fmt ")
{
reader.ReadInt16(); // audioFormat
channels = reader.ReadInt16();
sampleRate = reader.ReadInt32();
reader.ReadInt32(); // byteRate
reader.ReadInt16(); // blockAlign
bitsPerSample = reader.ReadInt16();
if (chunkSize > 16) reader.ReadBytes(chunkSize - 16);
}
else if (chunkId == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
for (int i = 0; i < totalSamples; i++)
{
if (reader.BaseStream.Position + bytesPerSample > reader.BaseStream.Length)
break;
short sample = reader.ReadInt16();
float norm = sample / 32768f;
amplitudes.Add(norm);
if (channels == 2) reader.ReadInt16(); // skip right
}
break;
}
else reader.ReadBytes(chunkSize); // skip unknown chunk
}
}
// ---- Analyze: average and percentiles ----
float avgAmp = amplitudes.Average(a => Math.Abs(a));
float percentile20 = amplitudes.OrderBy(Math.Abs).ElementAt((int)(amplitudes.Count * 0.2f));
float percentile50 = amplitudes.OrderBy(Math.Abs).ElementAt((int)(amplitudes.Count * 0.5f));
Console.WriteLine($"Average Amplitude: {avgAmp:F4}");
Console.WriteLine($"20th Percentile: {percentile20:F4}, 50th Percentile: {percentile50:F4}");
// ---- Detect local minima ----
List<int> minimaIndexes = new List<int>();
for (int i = 1; i < amplitudes.Count - 1; i++)
{
if (Math.Abs(amplitudes[i]) < Math.Abs(amplitudes[i - 1]) &&
Math.Abs(amplitudes[i]) < Math.Abs(amplitudes[i + 1]))
{
if (Math.Abs(amplitudes[i]) < percentile20)
minimaIndexes.Add(i);
}
}//for (int i = 1; i < amplitudes.Count - 1; i++)
// ---- Extract segments between minima and save WAVs ----
for (int i = 0; i < minimaIndexes.Count - 1; i++)
{
int start = minimaIndexes[i];
int end = minimaIndexes[i + 1];
var segment = amplitudes.GetRange(start, end - start);
string outputFile = Path.Combine(folder,
$"{fileNameOnly}_piece_{i + 1}_samples_{segment.Count}_ms_{(int)(segment.Count / (float)sampleRate * 1000)}.wav");
Write_SPLITTED_WavFile(outputFile, segment, sampleRate);
Console.WriteLine($"Saved: {outputFile}");
}//for (int i = 0; i < minimaIndexes.Count - 1; i++)
}//public static void DISCARDING___THIS_GENERATES_LARGE_NUMBER_OF_SPLITTED_FILES______SplitWavByLocalMinimals_Of_Amplitudes(string wavPath)
public static void Write_SPLITTED_WavFile(string path, List<float> normalizedSamples, int sampleRate)
{
short bitsPerSample = 16;
short channels = 1;
int byteRate = sampleRate * channels * bitsPerSample / 8;
int dataSize = normalizedSamples.Count * 2;
using (var writer = new BinaryWriter(File.Create(path)))
{
// RIFF header
writer.Write(Encoding.ASCII.GetBytes("RIFF"));
writer.Write(36 + dataSize);
writer.Write(Encoding.ASCII.GetBytes("WAVE"));
// fmt chunk
writer.Write(Encoding.ASCII.GetBytes("fmt "));
writer.Write(16);
writer.Write((short)1); // PCM
writer.Write((short)channels);
writer.Write(sampleRate);
writer.Write(byteRate);
writer.Write((short)(channels * bitsPerSample / 8));
writer.Write(bitsPerSample);
// data chunk
writer.Write(Encoding.ASCII.GetBytes("data"));
writer.Write(dataSize);
foreach (float sample in normalizedSamples)
writer.Write((short)(sample * 32767));
}
}//public static void Write_SPLITTED_WavFile(string path, List<float> normalizedSamples, int sampleRate)
public static double PrintWavDurationAndSampleCount(string wavPath)
{
double durationMs = 0;
string ___report = "";
using (var reader = new BinaryReader(File.OpenRead(wavPath)))
{
// Skip RIFF header
reader.ReadChars(4);
reader.ReadInt32();
reader.ReadChars(4);
int sampleRate = 0;
short channels = 1;
short bitsPerSample = 16;
int dataSize = 0;
// Read chunks
while (reader.BaseStream.Position < reader.BaseStream.Length)
{
string chunkId = new string(reader.ReadChars(4));
int chunkSize = reader.ReadInt32();
if (chunkId == "fmt ")
{
short audioFormat = reader.ReadInt16();
channels = reader.ReadInt16();
sampleRate = reader.ReadInt32();
reader.ReadInt32(); // byteRate
reader.ReadInt16(); // blockAlign
bitsPerSample = reader.ReadInt16();
if (chunkSize > 16)
reader.ReadBytes(chunkSize - 16);
}
else if (chunkId == "data")
{
dataSize = chunkSize;
break;
}
else
{
reader.ReadBytes(chunkSize); // skip unknown chunk
}
}//while (reader.BaseStream.Position < reader.BaseStream.Length)
if (sampleRate == 0 || dataSize == 0)
{
Console.WriteLine("Failed to read sample rate or data size.");
return 0;
}//if (sampleRate == 0 || dataSize == 0)
int bytesPerSample = bitsPerSample / 8 * channels;
int totalSamples = dataSize / bytesPerSample;
durationMs = (totalSamples / (double)sampleRate) * 1000;
Console.WriteLine($"Sample Rate : {sampleRate} Hz");
Console.WriteLine($"Channels : {channels}");
Console.WriteLine($"Bits Per Sample : {bitsPerSample}");
Console.WriteLine($"Total Samples : {totalSamples}");
Console.WriteLine($"Total Duration : {durationMs:F2} ms");
___report= ___report + "\r\n"+ ($"Sample Rate : {sampleRate} Hz");
___report = ___report + "\r\n" + ($"Channels : {channels}");
___report = ___report + "\r\n" + ($"Bits Per Sample : {bitsPerSample}");
___report = ___report + "\r\n" + ($"Total Samples : {totalSamples}");
___report = ___report + "\r\n" + ($"Total Duration : {durationMs:F2} ms");
PUBLIC_STATIC_DOUBLE___CLASS_LEVEL_VARIABLE_TO_STORE_TOTAL_SAMPLES_FOUND
= totalSamples;
System.IO.File.WriteAllText(wavPath + "_reportfor_gtsmps.txt", ___report);
}//using (var reader = new BinaryReader(File.OpenRead(wavPath)))
return durationMs;
}//public static void PrintWavDurationAndSampleCount(string wavPath)
public static void ConvertWavToGTAMPS___with_corrections_GPT(string wavPath, string outputGtampsPath)
{
short channels = 1;
int sampleRate = 8000;
short bitsPerSample = 16;
using (var reader = new BinaryReader(File.OpenRead(wavPath)))
{
// 1. Read RIFF header
if (new string(reader.ReadChars(4)) != "RIFF")
throw new Exception("Not a valid RIFF file.");
reader.ReadInt32(); // File size
if (new string(reader.ReadChars(4)) != "WAVE")
throw new Exception("Not a valid WAVE file.");
// 2. Find 'fmt ' subchunk
channels = 1;
sampleRate = 8000;
bitsPerSample = 16;
while (true)
{
string chunkId = new string(reader.ReadChars(4));
int chunkSize = reader.ReadInt32();
if (chunkId == "fmt ")
{
short audioFormat = reader.ReadInt16();
channels = reader.ReadInt16();
sampleRate = reader.ReadInt32();
reader.ReadInt32(); // byteRate
reader.ReadInt16(); // blockAlign
bitsPerSample = reader.ReadInt16();
if (chunkSize > 16)
reader.ReadBytes(chunkSize - 16); // skip extra fmt bytes
break;
}
else
{
reader.ReadBytes(chunkSize); // skip unknown chunk
}
}
// 3. Find 'data' subchunk
while (true)
{
string chunkId = new string(reader.ReadChars(4));
int chunkSize = reader.ReadInt32();
if (chunkId == "data")
{
int bytesPerSample = bitsPerSample / 8;
int totalSamples = chunkSize / bytesPerSample;
// var amplitudes = new List<float>();
List<float> amplitudes = new List<float>();
for (int i = 0; i < totalSamples; i++)
{
if (reader.BaseStream.Position + bytesPerSample > reader.BaseStream.Length)
break;
short sample = reader.ReadInt16();
float norm = sample / 32768f;
amplitudes.Add(norm);
if (channels == 2)
reader.ReadInt16(); // skip right channel
}//for (int i = 0; i < totalSamples; i++)
// 4. Resample if needed
if (sampleRate != 8000)
{
var resampled = new List<float>();
double factor = sampleRate / 8000.0;
for (int i = 0; i < amplitudes.Count / factor; i++)
{
double idx = i * factor;
int i0 = (int)idx;
double frac = idx - i0;
float val = (i0 + 1 < amplitudes.Count)
? (float)((1 - frac) * amplitudes[i0] + frac * amplitudes[i0 + 1])
: amplitudes[i0];
resampled.Add(val);
}//for (int i = 0; i < amplitudes.Count / factor; i++)
amplitudes = resampled;
}//if (sampleRate != 8000)
// 5. Save GTAMPS
File.WriteAllLines(outputGtampsPath, amplitudes.Select(a => a.ToString("F8")));
Console.WriteLine($"Saved GTAMPS: {outputGtampsPath}");
System.Windows.Forms.MessageBox.Show($"Saved GTAMPS: {outputGtampsPath} amplitudes = {amplitudes.Count}");
int necessary_repeats_of_samples_count = 1;
StringBuilder _strbldr = new StringBuilder();
_strbldr.Clear();
//////////////////////////////////////////////////////////// at least 6 seconds data
if ( PUBLIC_STATIC_DOUBLE___CLASS_LEVEL_VARIABLE_TO_STORE_TOTAL_SAMPLES_FOUND < 48000)
{
necessary_repeats_of_samples_count
= (int)(48000 / PUBLIC_STATIC_DOUBLE___CLASS_LEVEL_VARIABLE_TO_STORE_TOTAL_SAMPLES_FOUND) + 1;
for (int repeater=0;repeater<= necessary_repeats_of_samples_count; repeater++)
{
foreach(float fltamps in amplitudes)
{
_strbldr.AppendLine(fltamps.ToString("F8"));
}// foreach(float fltamps in amplitudes)
}// for (int repeater=0;repeater<= necessary_repeats_of_samples_count; repeater++)
}// if( PUBLIC_STATIC_DOUBLE___CLASS_LEVEL_VARIABLE_TO_STORE_TOTAL_SAMPLES_FOUND < 48000)
string outputGtampsPath_generated = wavPath + "_actual_sampleRate=" + sampleRate + "_actual_bps=" + bitsPerSample + "_rpt="+ necessary_repeats_of_samples_count +"_act_numSamples=" + amplitudes.Count + "_readjusted_smpls=" + (amplitudes.Count * necessary_repeats_of_samples_count) + "_8000Hz_16_bits_pcms_" + ".GTAMPS";
System.IO.File.WriteAllText
(
outputGtampsPath_generated
,
_strbldr.ToString()
);
// string outputGtampsPath_generated = wavPath + "_actual_sampleRate=" + sampleRate + "_actual_bps=" + bitsPerSample + "_numSamples=" + numSamples + "_smpls=" + samples + "_8000Hz_16_bits_pcms_" + ".GTAMPS";
//samples
// Save as .GTAMPS
// File.WriteAllLines(outputGtampsPath_generated, samples.Select(s => s.ToString("F8")));
return;
}
else
{
reader.ReadBytes(chunkSize); // skip unknown chunk
}
}
throw new Exception("Data chunk not found.");
}
}//public static void ConvertWavToGTAMPS___with_corrections_GPT(string wavPath, string outputGtampsPath)
////// public static void ConvertWavToGTAMPS___with_corrections_GPT(string wavPath, string outputGtampsPath)
////// {
////// using (var reader = new BinaryReader(File.OpenRead(wavPath)))
////// {
////// // 1. Read RIFF header
////// if (new string(reader.ReadChars(4)) != "RIFF")
////// throw new Exception("Not a valid RIFF file.");
////// reader.ReadInt32(); // File size
////// if (new string(reader.ReadChars(4)) != "WAVE")
////// throw new Exception("Not a valid WAVE file.");
////// // 2. Find 'fmt ' subchunk
////// short channels = 1;
////// int sampleRate = 8000;
////// short bitsPerSample = 16;
////// while (true)
////// {
////// string chunkId = new string(reader.ReadChars(4));
////// int chunkSize = reader.ReadInt32();
////// if (chunkId == "fmt ")
////// {
////// short audioFormat = reader.ReadInt16();
////// channels = reader.ReadInt16();
////// sampleRate = reader.ReadInt32();
////// reader.ReadInt32(); // byteRate
////// reader.ReadInt16(); // blockAlign
////// bitsPerSample = reader.ReadInt16();
////// if (chunkSize > 16)
////// reader.ReadBytes(chunkSize - 16); // skip extra fmt bytes
////// break;
////// }
////// else
////// {
////// reader.ReadBytes(chunkSize); // skip unknown chunk
////// }
////// }
////// // 3. Find 'data' subchunk
////// while (true)
////// {
////// string chunkId = new string(reader.ReadChars(4));
////// int chunkSize = reader.ReadInt32();
////// if (chunkId == "data")
////// {
////// int bytesPerSample = bitsPerSample / 8;
////// int totalSamples = chunkSize / bytesPerSample;
////// var amplitudes = new List<float>();
////// for (int i = 0; i < totalSamples; i++)
////// {
////// if (reader.BaseStream.Position + bytesPerSample > reader.BaseStream.Length)
////// { break; }
////// short sample = reader.ReadInt16();
////// float norm = sample / 32768f;
////// amplitudes.Add(norm);
////// if (channels == 2)
////// {
////// reader.ReadInt16(); // skip right channel}
////// }// for (int i = 0; i < totalSamples; i++)
////// // 4. Resample if needed
////// if (sampleRate != 8000)
////// {
////// var resampled = new List<float>();
////// double factor = sampleRate / 8000.0;
////// for (int rrr = 0; rrr < amplitudes.Count / factor; rrr++)
////// {
////// double idx = rrr * factor;
////// int i0 = (int)idx;
////// double frac = idx - i0;
////// float val = (i0 + 1 < amplitudes.Count)
////// ? (float)((1 - frac) * amplitudes[i0] + frac * amplitudes[i0 + 1])
////// : amplitudes[i0];
////// resampled.Add(val);
////// }//for (int rrr = 0; rrr < amplitudes.Count / factor; rrr++)
////// amplitudes = resampled;
////// }//if (sampleRate != 8000)
////// // 5. Save GTAMPS
////// // File.WriteAllLines(outputGtampsPath, amplitudes.Select(a => a.ToString("F8")));
////// // Console.WriteLine($"Saved GTAMPS: {outputGtampsPath}");
////// string outputGtampsPath_generated = wavPath + "_actual_sampleRate=" + sampleRate + "_actual_bps=" + bitsPerSample + "_numSamples=" + numSamples + "_smpls=" + samples + "_8000Hz_16_bits_pcms_" + ".GTAMPS";
////// //samples
////// // Save as .GTAMPS
////// File.WriteAllLines(outputGtampsPath_generated, samples.Select(s => s.ToString("F8")));
////// return;
////// }
////// else
////// {
////// reader.ReadBytes(chunkSize); // skip unknown chunk
////// }
////// }
////// throw new Exception("Data chunk not found.");
////// }
////// }//public static void ConvertWavToGTAMPS___with_corrections_GPT(string wavPath, string outputGtampsPath)
////// public static void ConvertANY_KIND_OF_WavToGTAMPS(string wavPath, string outputGtampsPath)
////// {
////// using (var reader = new BinaryReader(File.OpenRead(wavPath)))
////// {
////// // Read RIFF header
////// string riff = new string(reader.ReadChars(4));
////// int fileSize = reader.ReadInt32();
////// string wave = new string(reader.ReadChars(4));
////// // Read format chunk
////// string fmt = new string(reader.ReadChars(4));
////// int fmtSize = reader.ReadInt32();
////// short audioFormat = reader.ReadInt16();
////// short channels = reader.ReadInt16();
////// int sampleRate = reader.ReadInt32();
////// int byteRate = reader.ReadInt32();
////// short blockAlign = reader.ReadInt16();
////// short bitsPerSample = reader.ReadInt16();
////// // Skip any extra bytes if fmt chunk > 16
////// if (fmtSize > 16)
////// { reader.ReadBytes(fmtSize - 16); }
////// // Seek to data chunk
////// while (new string(reader.ReadChars(4)) != "data")
////// {
////// reader.BaseStream.Position -= 3;
////// }//while (new string(reader.ReadChars(4)) != "data")
////// int dataSize = reader.ReadInt32();
////// int numSamples = dataSize / (bitsPerSample / 8);
////// var samples = new List<float>(numSamples);
////// for (int i = 0; i < numSamples; i++)
////// {
////// short sample16 = reader.ReadInt16();
////// float normalized = sample16 / 32768f;
////// samples.Add(normalized);
////// if (channels == 2) reader.ReadInt16(); // Skip second channel if stereo
////// }//for (int i = 0; i < numSamples; i++)
////// // Resample if needed (e.g., from 44100Hz to 8000Hz)
////// if (sampleRate != 8000)
////// {
////// var resampled = new List<float>();
////// double factor = sampleRate / 8000.0;
////// for (int i = 0; i < samples.Count / factor; i++)
////// {
////// double index = i * factor;
////// int idx = (int)index;
////// double frac = index - idx;
////// float sample = (idx + 1 < samples.Count)
////// ? (float)((1 - frac) * samples[idx] + frac * samples[idx + 1])
////// : samples[idx];
////// resampled.Add(sample);
////// }//for (int i = 0; i < samples.Count / factor; i++)
////// samples = resampled;
////// }//if (sampleRate != 8000)
////// string outputGtampsPath_generated= wavPath+ "_actual_sampleRate=" + sampleRate + "_actual_bps="+ bitsPerSample + "_numSamples=" + numSamples + "_smpls="+ samples+ "_8000Hz_16_bits_pcms_" + ".GTAMPS";
////// //samples
////// // Save as .GTAMPS
////// File.WriteAllLines(outputGtampsPath_generated, samples.Select(s => s.ToString("F8")));
////// // Console.WriteLine($"Saved GTAMPS to: {outputGtampsPath}");
////// System.Windows.Forms.MessageBox.Show($"Saved GTAMPS to: {outputGtampsPath}");
////// }//using (var reader = new BinaryReader(File.OpenRead(wavPath)))
////// }//public static void ConvertWavToGTAMPS(string wavPath, string outputGtampsPath)
}// public class SAANS_NO_3RD_PARTY_GPT_STYLES_WAV_FILES_READER_TO_GENERATE_8000_HZ_16_BIT_PCMS_GTAMPS
// this changes speed when frequencies changes
public class WavGenerator___44_SHRUTIS_BACKWARD_TO_FORWARDS_Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis
{
const int SampleRate = 8000;
const int BitsPerSample = 16;
const int Channels = 1;
const double Pi = Math.PI;
public static void SAANS___44_SAMPLES_WavGenerator___Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis___Main(string gtamps_filesnames)
{
string inputPath = gtamps_filesnames;// "your_file_path_here.txt";
// Read float samples
var samples = File.ReadLines(inputPath)
.Where(line => double.TryParse(line, out _))
.Select(double.Parse)
.ToList();
var allShifted = new List<short>();
for (int r = 1; r <= 22; r++)
{
double shiftFactor = Math.Pow(2, r / 22.0);
var shifted = ResampleWithFrequencyShift(samples, shiftFactor);
allShifted.AddRange(shifted);
}//for (int r = 1; r <= 22; r++)
for (int r = -22; r <= 0; r++)
{
double shiftFactor = Math.Pow(2, r / 22.0);
var shifted = ResampleWithFrequencyShift(samples, shiftFactor);
allShifted.AddRange(shifted);
}//for (int r = -22; r <= 0; r++)
string outputPath = inputPath + "___44_SCALES_8000hZ_16_BITS_PCMS_" + allShifted.Count.ToString() + "_output.wav";
WriteWavFile(outputPath, allShifted);
Console.WriteLine("WAV file written to: " + outputPath);
}//public static void SAANS___44_SAMPLES_WavGenerator___Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis___Main(STRING gtamps_filesnames)
public static List<short> ResampleWithFrequencyShift(List<double> samples, double shiftFactor)
{
int newLength = (int)(samples.Count / shiftFactor);
var shifted = new List<short>(newLength);
for (int i = 0; i < newLength; i++)
{
double srcIndex = i * shiftFactor;
int idx = (int)srcIndex;
double frac = srcIndex - idx;
double value = 0;
if (idx + 1 < samples.Count)
value = (1 - frac) * samples[idx] + frac * samples[idx + 1];
else if (idx < samples.Count)
value = samples[idx];
short pcmVal = (short)(value * short.MaxValue);
shifted.Add(pcmVal);
}//for (int i = 0; i < newLength; i++)
return shifted;
}//public static List<short> ResampleWithFrequencyShift(List<double> samples, double shiftFactor)
public static void WriteWavFile(string filePath, List<short> samples)
{
using (var stream = new FileStream(filePath, FileMode.Create))
using (var writer = new BinaryWriter(stream))
{
int byteRate = SampleRate * Channels * BitsPerSample / 8;
int dataSize = samples.Count * BitsPerSample / 8;
// RIFF header
writer.Write(Encoding.ASCII.GetBytes("RIFF"));
writer.Write(36 + dataSize);
writer.Write(Encoding.ASCII.GetBytes("WAVE"));
// fmt subchunk
writer.Write(Encoding.ASCII.GetBytes("fmt "));
writer.Write(16); // PCM
writer.Write((short)1); // AudioFormat = PCM
writer.Write((short)Channels);
writer.Write(SampleRate);
writer.Write(byteRate);
writer.Write((short)(Channels * BitsPerSample / 8));
writer.Write((short)BitsPerSample);
// data subchunk
writer.Write(Encoding.ASCII.GetBytes("data"));
writer.Write(dataSize);
foreach (short s in samples)
{ writer.Write(s); }
}//using (var writer = new BinaryWriter(stream))
}//public static void WriteWavFile(string filePath, List<short> samples)
}// public class WavGenerator___44_SHRUTIS_BACKWARD_TO_FORWARDS_Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis
public class WavGeneratorFixedDuration___with_resamplers
{
const int SampleRate = 8000;
const int BitsPerSample = 16;
const int Channels = 1;
public static void Process_WavGeneratorFixedDuration___with_resamplers(string inputFilePath)
{
var samples = File.ReadLines(inputFilePath)
.Where(line => double.TryParse(line, out _))
.Select(double.Parse)
.ToList();
int originalSampleCount = samples.Count;
var allShiftedSamples = new List<short>();
// Positive shrutis (r = 1 to 22)
for (int r = 1; r <= 22; r++)
{
double shiftFactor = Math.Pow(2, r / 22.0); // e.g., r=12 -> pitch up by ~1 semitone
var shifted = PitchShiftPreserveDuration(samples, shiftFactor, originalSampleCount);
allShiftedSamples.AddRange(shifted);
}// for (int r = 1; r <= 22; r++)
// Negative shrutis (r = -22 to 0)
for (int r = -22; r <= 0; r++)
{
double shiftFactor = Math.Pow(2, r / 22.0); // pitch down
var shifted = PitchShiftPreserveDuration(samples, shiftFactor, originalSampleCount);
allShiftedSamples.AddRange(shifted);
}// for (int r = -22; r <= 0; r++)
string outputPath = inputFilePath + "_(44_COPIES_PITCH_CHANGED_)RESAMPLER_USED_FixedDur_ShiftedPitches.wav";
WriteWavFile(outputPath, allShiftedSamples);
Console.WriteLine("WAV file written to: " + outputPath);
MessageBox.Show("WAV file written to: " + outputPath);
}// public static void Process_WavGeneratorFixedDuration___with_resamplers(string inputFilePath)
public static T Clamp<T>(T val, T min, T max) where T : IComparable<T>
{
if (val.CompareTo(min) < 0) return min;
if (val.CompareTo(max) > 0) return max;
return val;
}// public static T Clamp<T>(T val, T min, T max) where T : IComparable<T>
// Pitch shifts and resamples to preserve original duration
public static List<short> PitchShiftPreserveDuration(List<double> samples, double shiftFactor, int targetLength)
{
var output = new List<short>(targetLength);
double position = 0.0;
double step = shiftFactor;
for (int i = 0; i < targetLength; i++)
{
int idx = (int)position;
double frac = position - idx;
double value = 0;
if (idx + 1 < samples.Count)
value = (1 - frac) * samples[idx] + frac * samples[idx + 1];
else if (idx < samples.Count)
value = samples[idx];
// Normalize and convert to 16-bit PCM
// short pcmVal = (short)(Math.Clamp(value, -1.0, 1.0) * short.MaxValue);
short pcmVal = (short)(Clamp(value, -1.0, 1.0) * short.MaxValue);
output.Add(pcmVal);
position += step;
if (position >= samples.Count - 1)
position = 0; // Loop if needed to fill up
}// for (int i = 0; i < targetLength; i++)
return output;
}// public static List<short> PitchShiftPreserveDuration(List<double> samples, double shiftFactor, int targetLength)
public static void WriteWavFile(string filePath, List<short> samples)
{
using (var stream = new FileStream(filePath, FileMode.Create))
{
using (var writer = new BinaryWriter(stream))
{
int byteRate = SampleRate * Channels * BitsPerSample / 8;
int dataSize = samples.Count * BitsPerSample / 8;
// RIFF Header
writer.Write(Encoding.ASCII.GetBytes("RIFF"));
writer.Write(36 + dataSize);
writer.Write(Encoding.ASCII.GetBytes("WAVE"));
// fmt chunk
writer.Write(Encoding.ASCII.GetBytes("fmt "));
writer.Write(16); // Subchunk1Size for PCM
writer.Write((short)1); // AudioFormat = PCM
writer.Write((short)Channels);
writer.Write(SampleRate);
writer.Write(byteRate);
writer.Write((short)(Channels * BitsPerSample / 8)); // BlockAlign
writer.Write((short)BitsPerSample);
// data chunk
writer.Write(Encoding.ASCII.GetBytes("data"));
writer.Write(dataSize);
foreach (short s in samples)
writer.Write(s);
}// using (var writer = new BinaryWriter(stream))
}// using (var stream = new FileStream(filePath, FileMode.Create))
}// public static void WriteWavFile(string filePath, List<short> samples)
}// public class WavGeneratorFixedDuration___with_resamplers
// this dont change speed when frequencies changes
public class WavGenerator___44_KEEPING_SHRUTIS_FIXED_DURATION
{
const int SampleRate = 8000;
const int BitsPerSample = 16;
const int Channels = 1;
public static void function_to___WavGenerator___44_KEEPING_SHRUTIS_FIXED_DURATION___Main(string gtampsFilePath)
{
var samples = File.ReadLines(gtampsFilePath)
.Where(line => double.TryParse(line, out _))
.Select(double.Parse)
.ToList();
int originalLength = samples.Count;
var allShifted = new List<short>();
// Positive shrutis
for (int r = 1; r <= 22; r++)
{
double shiftFactor = Math.Pow(2, r / 22.0);
var shifted = PitchShiftPreserveDuration(samples, shiftFactor, originalLength);
allShifted.AddRange(shifted);
}//for (int r = 1; r <= 22; r++)
// Negative shrutis
for (int r = -22; r <= 0; r++)
{
double shiftFactor = Math.Pow(2, r / 22.0);
var shifted = PitchShiftPreserveDuration(samples, shiftFactor, originalLength);
allShifted.AddRange(shifted);
}//for (int r = -22; r <= 0; r++)
string outputPath = gtampsFilePath + "(speed_intact)___44_FIXEDDUR_SCALES_8000Hz_16bit_" + allShifted.Count + "_output.wav";
// WriteWavFile(outputPath, allShifted);
WriteWavFile___another_keeping_speed_same(outputPath, allShifted);
Console.WriteLine("WAV file written to: " + outputPath);
System.Windows.Forms.MessageBox.Show("(Speeds intact)WAV file written to: " + outputPath);
}//public static void function_to___WavGenerator___44_KEEPING_SHRUTIS_FIXED_DURATION___Main(string gtampsFilePath)
// Shifts pitch and then stretches result back to original duration
//////public static List<short> PitchShiftPreserveDuration(List<double> samples, double shiftFactor, int targetLength)
//////{
////// // Step 1: Resample with frequency shift (changes duration)
////// int shiftedLength = (int)(samples.Count / shiftFactor);
////// var shifted = new List<double>(shiftedLength);
////// for (int i = 0; i < shiftedLength; i++)
////// {
////// double srcIndex = i * shiftFactor;
////// int idx = (int)srcIndex;
////// double frac = srcIndex - idx;
////// double value = 0;
////// if (idx + 1 < samples.Count)
////// { value = (1 - frac) * samples[idx] + frac * samples[idx + 1]; }
////// else if (idx < samples.Count)
////// { value = samples[idx]; }
////// shifted.Add(value);
////// }//for (int i = 0; i < shiftedLength; i++)
////// // Step 2: Time-stretch to match original length
////// var stretched = new List<short>(targetLength);
////// double step = (double)(shifted.Count - 1) / (targetLength - 1);
////// for (int i = 0; i < targetLength; i++)
////// {
////// double index = i * step;
////// int idx = (int)index;
////// double frac = index - idx;
////// double val = 0;
////// if (idx + 1 < shifted.Count)
////// { val = (1 - frac) * shifted[idx] + frac * shifted[idx + 1]; }
////// else if (idx < shifted.Count)
////// { val = shifted[idx]; }
////// short pcmVal = (short)(val * short.MaxValue);
////// stretched.Add(pcmVal);
////// }//for (int i = 0; i < targetLength; i++)
////// return stretched;
//////}//public static List<short> PitchShiftPreserveDuration(List<double> samples, double shiftFactor, int targetLength)
public static List<short> PitchShiftPreserveDuration(List<double> samples, double shiftFactor, int targetLength)
{
var output = new List<short>(targetLength);
double position = 0.0;
double positionStep = shiftFactor;
for (int i = 0; i < targetLength; i++)
{
int idx = (int)position;
double frac = position - idx;
double value = 0;
if (idx + 1 < samples.Count)
value = (1 - frac) * samples[idx] + frac * samples[idx + 1];
else if (idx < samples.Count)
value = samples[idx];
short pcmVal = (short)(value * short.MaxValue);
output.Add(pcmVal);
position += positionStep;
if (position >= samples.Count - 1)
position = 0; // loop back if needed to keep filling output
}//for (int i = 0; i < targetLength; i++)
return output;
}// public static List<short> PitchShiftPreserveDuration(List<double> samples, double shiftFactor, int targetLength)
public static void WriteWavFile___another_keeping_speed_same(string filePath, List<short> samples)
{
using (var stream = new FileStream(filePath, FileMode.Create))
{
using (var writer = new BinaryWriter(stream))
{
int byteRate = SampleRate * Channels * BitsPerSample / 8;
int dataSize = samples.Count * BitsPerSample / 8;
// RIFF header
writer.Write(Encoding.ASCII.GetBytes("RIFF"));
writer.Write(36 + dataSize);
writer.Write(Encoding.ASCII.GetBytes("WAVE"));
// fmt chunk
writer.Write(Encoding.ASCII.GetBytes("fmt "));
writer.Write(16);
writer.Write((short)1); // PCM
writer.Write((short)Channels);
writer.Write(SampleRate);
writer.Write(byteRate);
writer.Write((short)(Channels * BitsPerSample / 8));
writer.Write((short)BitsPerSample);
// data chunk
writer.Write(Encoding.ASCII.GetBytes("data"));
writer.Write(dataSize);
foreach (short s in samples)
{ writer.Write(s); }
}//using (var writer = new BinaryWriter(stream))
}//using (var stream = new FileStream(filePath, FileMode.Create))
}//public static void WriteWavFile___another_keeping_speed_same(string filePath, List<short> samples)
}//public class WavGenerator___44_KEEPING_SHRUTIS_FIXED_DURATION
public class WavGenerator___44_KEEPING_DURATION_VARIABLE_SAMPLE_RATE
{
const int BaseSampleRate = 8000;
const int BitsPerSample = 16;
const int Channels = 1;
public static void function_to___WavGenerator___44_KEEPING_DURATION_VARIABLE_SAMPLE_RATE___Main(string gtampsFilePath)
{
var samples = File.ReadLines(gtampsFilePath)
.Where(line => double.TryParse(line, out _))
.Select(double.Parse)
.ToList();
int totalSamples = samples.Count;
for (int r = 1; r <= 22; r++)
{
double shiftFactor = Math.Pow(2, r / 22.0);
int newSampleRate = (int)(BaseSampleRate * shiftFactor);
string outputPath = gtampsFilePath + $"___shruti_up_{r}_samplerate_{newSampleRate}.wav";
WriteWavFile_WithCustomSampleRate(outputPath, samples, newSampleRate);
}//for (int r = 1; r <= 22; r++)
for (int r = -22; r <= 0; r++)
{
double shiftFactor = Math.Pow(2, r / 22.0);
int newSampleRate = (int)(BaseSampleRate * shiftFactor);
string outputPath = gtampsFilePath + $"___shruti_down_{Math.Abs(r)}_samplerate_{newSampleRate}.wav";
WriteWavFile_WithCustomSampleRate(outputPath, samples, newSampleRate);
}//for (int r = -22; r <= 0; r++)
Console.WriteLine("44 pitch-shifted files written with variable sample rates (durations preserved).");
System.Windows.Forms.MessageBox.Show("WAVs written: duration preserved, pitch changed, sample rates varied.");
}//public static void function_to___WavGenerator___44_KEEPING_DURATION_VARIABLE_SAMPLE_RATE___Main(string gtampsFilePath)
public static void WriteWavFile_WithCustomSampleRate(string filePath, List<double> samples, int sampleRate)
{
using (var stream = new FileStream(filePath, FileMode.Create))
{
using (var writer = new BinaryWriter(stream))
{
int byteRate = sampleRate * Channels * BitsPerSample / 8;
int dataSize = samples.Count * BitsPerSample / 8;
// RIFF header
writer.Write(Encoding.ASCII.GetBytes("RIFF"));
writer.Write(36 + dataSize);
writer.Write(Encoding.ASCII.GetBytes("WAVE"));
// fmt chunk
writer.Write(Encoding.ASCII.GetBytes("fmt "));
writer.Write(16);
writer.Write((short)1); // PCM
writer.Write((short)Channels);
writer.Write(sampleRate); // <-- variable sample rate here
writer.Write(byteRate);
writer.Write((short)(Channels * BitsPerSample / 8));
writer.Write((short)BitsPerSample);
// data chunk
writer.Write(Encoding.ASCII.GetBytes("data"));
writer.Write(dataSize);
foreach (double sample in samples)
{
short s = (short)(sample * short.MaxValue);
writer.Write(s);
}
}//using writer
}//using stream
}//public static void WriteWavFile_WithCustomSampleRate(...)
}//class WavGenerator___44_KEEPING_DURATION_VARIABLE_SAMPLE_RATE
/// <summary>
/// /////////////////////////////////////////////////////////////////////////////////////
/// </summary>
public class WavGenerator___12x3_ChromaticShrutis_From_SAA_GTAMPS
{
const int BaseSampleRate = 8000;
const int BitsPerSample = 16;
const int Channels = 1;
public static StringBuilder ___combined_all_gtamps = new StringBuilder();
public static void function_to___Generate_All_12x3_SemitoneNotes_From_SAA_GTAMPS(string gtampsFilePath)
{
___combined_all_gtamps.Clear();
var samples = File.ReadLines(gtampsFilePath)
.Where(line => double.TryParse(line, out _))
.Select(double.Parse)
.ToList();
// These 36 labels are expected exactly from your shruti table
string[] noteLabels = new string[]
{
".S", ".R", ".R#", ".G", ".G#", ".M", ".M#", ".P", ".D", ".D#", ".N", ".N#",
"S", "R", "R#", "G", "G#", "M", "M#", "P", "D", "D#", "N", "N#",
"S.", "R.", "R#.", "G.", "G#.", "M.", "M#.", "P.", "D.", "D#.", "N.", "N#.","dash"
};
for (int i = 0; i < noteLabels.Length; i++)
{
double semitoneShift = i - 12; // Make "S" (index 12) the base reference (0)
double shiftFactor = Math.Pow(2.0, semitoneShift / 12.0);
int newSampleRate = (int)(BaseSampleRate * shiftFactor);
string fileName = noteLabels[i].Replace("#", "hash").Replace(".", "_DOT_");
string outputPath = Path.Combine(Path.GetDirectoryName(gtampsFilePath), fileName + ".wav");
WriteWavFile_WithCustomSampleRate(outputPath, samples, newSampleRate, fileName);
}//for (int i = 0; i < noteLabels.Length; i++)
// Save the entire concatenated GTAMPS (optional master file)
File.WriteAllText(gtampsFilePath + "_36_notes_combined.gtamps", ___combined_all_gtamps.ToString());
Console.WriteLine("36 chromatic notes across 3 octaves generated.");
System.Windows.Forms.MessageBox.Show("36 chromatic WAVs written from Sa sample.");
}//public static void function_to___Generate_All_12x3_SemitoneNotes_From_SAA_GTAMPS(string gtampsFilePath)
public static void WriteWavFile_WithCustomSampleRate(string filePath, List<double> samples, int sampleRate, string noteLabel)
{
using (var stream = new FileStream(filePath, FileMode.Create))
using (var writer = new BinaryWriter(stream))
{
int byteRate = sampleRate * Channels * BitsPerSample / 8;
int dataSize = samples.Count * BitsPerSample / 8;
// RIFF header
writer.Write(Encoding.ASCII.GetBytes("RIFF"));
writer.Write(36 + dataSize);
writer.Write(Encoding.ASCII.GetBytes("WAVE"));
// fmt chunk
writer.Write(Encoding.ASCII.GetBytes("fmt "));
writer.Write(16);
writer.Write((short)1); // PCM
writer.Write((short)Channels);
writer.Write(sampleRate);
writer.Write(byteRate);
writer.Write((short)(Channels * BitsPerSample / 8));
writer.Write((short)BitsPerSample);
// data chunk
writer.Write(Encoding.ASCII.GetBytes("data"));
writer.Write(dataSize);
var sb = new StringBuilder();
foreach (double sample in samples)
{
short s = (short)(sample * short.MaxValue);
if(filePath.Contains("dash"))
{
writer.Write((short)0.0000001);
string textVal = "0.0000001";// s.ToString("F8");
sb.AppendLine(textVal);
___combined_all_gtamps.AppendLine(textVal);
}
else
{
writer.Write(s);
string textVal = s.ToString("F8");
sb.AppendLine(textVal);
___combined_all_gtamps.AppendLine(textVal);
}//end of else of if(filePath.Contains("dash"))
}//foreach (double sample in samples)
File.WriteAllText(filePath + ".gtamps", sb.ToString());
}//using (var writer = new BinaryWriter(stream))
} //public static void WriteWavFile_WithCustomSampleRate(string filePath, List<double> samples, int sampleRate, string noteLabel)
}//public class WavGenerator___12x3_ChromaticShrutis_From_SAA_GTAMPS
/// <summary>
/// //////////////////////////////////////////////////////////////////////////////
/// </summary>
public class WavGenerator___ShrutiLibrary_From_SAA_Sample
{
const int BaseSampleRate = 8000;
const int BitsPerSample = 16;
const int Channels = 1;
public static StringBuilder ___public_static_combined_for_88_shrutis_in_one_gtamps_stringBuilder = new StringBuilder();
public static void function_to___Generate_All_Shrutis_From_SAA_GTAMPS(string gtampsFilePath)
{
___public_static_combined_for_88_shrutis_in_one_gtamps_stringBuilder = new StringBuilder();
___public_static_combined_for_88_shrutis_in_one_gtamps_stringBuilder.Clear();
var samples = File.ReadLines(gtampsFilePath)
.Where(line => double.TryParse(line, out _))
.Select(double.Parse)
.ToList();
// All shruti names mapped to their shift positions (-22 to +22)
string[] shrutiNames = new string[]
{
"L_Re1", "L_Re2", "L_Ma2S", "L_Pa2", "M_Sa", "M_Re1", "M_Re2", "M_Re", "M_Ga1", "M_Ga2", "M_Ga",
"M_Ma", "M_Ma1", "M_Ma2", "M_Pa", "M_Dha1", "M_Dha2", "L_Re", "L_Ga1", "L_Ga2", "L_Ga", "L_Ma",
"L_Ma1", "L_Ma2", "L_Pa", "L_Dha1", "L_Dha2", "L_Dha", "L_Ni1", "L_Ni2", "L_Ni2", "L_Re2S",
"L_Ga2S", "M_Dha", "M_Ni1", "M_Ni2", "M_Ni", "M_Sa2", "M_Re2S", "M_Ga2S", "M_Ma2S", "M_Pa2",
"U_Sa", "U_Re1", "U_Re2", "U_Re", "L_Ma2S", "L_Pa2", "M_Sa", "M_Re1", "M_Re2", "M_Re", "M_Ga1",
"M_Ga2", "M_Ga", "M_Ma", "M_Ma1", "M_Ma2", "M_Pa", "M_Dha1", "M_Dha2", "L_Re", "L_Ga1", "L_Ga2",
"L_Ga", "L_Ma", "L_Ma1", "L_Ma2", "L_Pa", "L_Dha1", "U_Ga1", "U_Ga2", "U_Ga", "U_Ma", "U_Ma1",
"U_Ma2", "U_Pa", "U_Dha1", "U_Dha2", "U_Dha", "U_Ni1", "U_Ni2", "U_Ni", "U_Sa2", "U_Re2S",
"U_Ga2S", "U_Ma2S", "U_Pa2","dash"
};
int totalShrutis = shrutiNames.Length;
for (int r = 0; r < totalShrutis; r++)
{
int shrutiIndex = r - 22;
double shiftFactor = Math.Pow(2, shrutiIndex / 22.0);
int newSampleRate = (int)(BaseSampleRate * shiftFactor);
string fileName = shrutiNames[r];
//////string outputPath = Path.Combine(Path.GetDirectoryName(gtampsFilePath),
////// fileName + "_shruti.wav");
///
string outputPath = Path.Combine(Path.GetDirectoryName(gtampsFilePath),
fileName + ".wav");
WriteWavFile_WithCustomSampleRate(outputPath, samples, newSampleRate);
}//for (int r = 0; r < totalShrutis; r++)
System.IO.File.WriteAllText
(
gtampsFilePath+"_combined_88_shrutis.GTAMPS"
,
___public_static_combined_for_88_shrutis_in_one_gtamps_stringBuilder.ToString()
);
Console.WriteLine($"{totalShrutis} shruti files written using sample rate modulation.");
System.Windows.Forms.MessageBox.Show($"{totalShrutis} shruti WAVs written from SAA sample.");
}//public static void function_to___Generate_All_Shrutis_From_SAA_GTAMPS
public static void WriteWavFile_WithCustomSampleRate(string filePath, List<double> samples, int sampleRate)
{
using (var stream = new FileStream(filePath, FileMode.Create))
{
using (var writer = new BinaryWriter(stream))
{
int byteRate = sampleRate * Channels * BitsPerSample / 8;
int dataSize = samples.Count * BitsPerSample / 8;
// RIFF header
writer.Write(Encoding.ASCII.GetBytes("RIFF"));
writer.Write(36 + dataSize);
writer.Write(Encoding.ASCII.GetBytes("WAVE"));
// fmt chunk
writer.Write(Encoding.ASCII.GetBytes("fmt "));
writer.Write(16);
writer.Write((short)1); // PCM
writer.Write((short)Channels);
writer.Write(sampleRate);
writer.Write(byteRate);
writer.Write((short)(Channels * BitsPerSample / 8));
writer.Write((short)BitsPerSample);
// data chunk
writer.Write(Encoding.ASCII.GetBytes("data"));
writer.Write(dataSize);
StringBuilder ___temp_stringbuilder_for_current_shrutis_GTAMPS = new StringBuilder();
___temp_stringbuilder_for_current_shrutis_GTAMPS.Clear();
foreach (double sample in samples)
{
short s = (short)(sample * short.MaxValue);
if(filePath.Contains("dash"))
{
writer.Write((short)0.000001);
___public_static_combined_for_88_shrutis_in_one_gtamps_stringBuilder
.AppendLine("0.000001");
___temp_stringbuilder_for_current_shrutis_GTAMPS
.AppendLine("0.000001");
}
else
{
writer.Write(s);
___public_static_combined_for_88_shrutis_in_one_gtamps_stringBuilder
.AppendLine(s.ToString("F8"));
___temp_stringbuilder_for_current_shrutis_GTAMPS
.AppendLine(s.ToString("F8"));
}//endof else of if(filePath.Contains("dash"))
}//foreach (double sample in samples)
///////////////////////////////////////////////////////////////////////////////////////////
System.IO.File.WriteAllText
(
filePath + "_bytrts_" + byteRate+"_sps_"+ sampleRate+ "_dtsizes_"+ dataSize + "_samples_" + samples.Count + "_" + ".gtamps"
,
___temp_stringbuilder_for_current_shrutis_GTAMPS.ToString()
);
}// using (var writer = new BinaryWriter(stream))
}//using (var stream = new FileStream(filePath, FileMode.Create))
}//public static void WriteWavFile_WithCustomSampleRate
}//public class WavGenerator___ShrutiLibrary_From_SAA_Sample
//////public class WavGenerator___MultiPitch_SingleFile_FixedDurations
//////{
////// const int BaseSampleRate = 44100;// 8000; // can be increased for higher resolution
////// const int BitsPerSample = 16;
////// const int Channels = 1;
////// public static void function_to___ApplyPerRegionPitchShift_AND_SaveUnifiedWav(string gtampsFilePath, int numRegions)
////// {
////// var originalSamples = File.ReadLines(gtampsFilePath)
////// .Where(line => double.TryParse(line, out _))
////// .Select(double.Parse)
////// .ToList();
////// // Apply pitch shifts to each region
////// List<short> finalPcm = ApplyPerRegionPitchShift(originalSamples, numRegions);
////// // Save to single WAV
////// string outputPath = gtampsFilePath + $"CONCATENATED____{numRegions}_Regions_MultiPitch_FixedDuration_output.wav";
////// WriteWavFile___SingleFile_ConstantSampleRate(outputPath, finalPcm, BaseSampleRate);
////// Console.WriteLine("Unified WAV written with pitch-shifted segments (duration preserved).");
////// System.Windows.Forms.MessageBox.Show("Unified WAV written with pitch-shifted segments (duration preserved): " + outputPath);
////// }//public static void function_to___ApplyPerRegionPitchShift_AND_SaveUnifiedWav(...)
////// public static List<short> ApplyPerRegionPitchShift(List<double> original, int numRegions)
////// {
////// //////int totalSamples = original.Count;
////// //////int segmentLength = totalSamples / numRegions;
////// //////List<short> output = new List<short>();
////// int totalSamples = original.Count * numRegions;//SAAN CHANGES THIS SINCE I THINK IF I NEED 44 COPIES THEN THERE NEEDS 44 TIMES ORIGINAL DURATION IN CONCATENATED FILES PLAY TIMES
////// int segmentLength = totalSamples / numRegions;
////// List<short> output = new List<short>();// OBVIOUSLY IF I AM GENERATING N NUMBERS OF PITCH CHANGED COPIES THEN ATLEAST N NUMBER OF TIMES ORIGINAL SAMPLES COUNT TO REPEAT
////// Random rnd = new Random();//??? WHY IS THIS??????????
////// for (int region = 0; region < numRegions; region++)
////// {
////// var segment = original.Skip(region * segmentLength).Take(segmentLength).ToList();
////// // Choose a shift factor (shruti-style): use 2^(r/22.0), r from -22 to +22
////// int shrutiStep = -22 + (44 * region / numRegions); // evenly spaced across shruti scale
////// // ALL OF THESE COPIED REGIONS NEED SAME DURATION OF PLAY TIME AS ACTUAL totalSamples PLAY TIME FREQUENCIES ARE TO CHANGE
////// double shiftFactor = Math.Pow(2, shrutiStep / 22.0);
////// var regionPcm = PitchShift_PreserveDuration(segment, shiftFactor, segmentLength);
////// output.AddRange(regionPcm);
////// }
////// return output;
////// }//public static List<short> ApplyPerRegionPitchShift(List<double> original, int numRegions)
////// public static List<short> PitchShift_PreserveDuration(List<double> input, double shiftFactor, int outputLength)
////// {
////// var result = new List<short>(outputLength);
////// double pos = 0.0;
////// double posStep = shiftFactor;
////// for (int i = 0; i < outputLength; i++)
////// {
////// int idx = (int)pos;
////// double frac = pos - idx;
////// double value = 0;
////// if (idx + 1 < input.Count)
////// value = (1 - frac) * input[idx] + frac * input[idx + 1];
////// else if (idx < input.Count)
////// value = input[idx];
////// short pcmVal = (short)(value * short.MaxValue);
////// result.Add(pcmVal);
////// pos += posStep;
////// if (pos >= input.Count - 1)
////// pos = 0; // loop or clamp, depending on preference
////// }
////// return result;
////// }//public static List<short> PitchShift_PreserveDuration(...)
////// public static void WriteWavFile___SingleFile_ConstantSampleRate(string filePath, List<short> samples, int sampleRate)
////// {
////// using (var stream = new FileStream(filePath, FileMode.Create))
////// using (var writer = new BinaryWriter(stream))
////// {
////// int byteRate = sampleRate * Channels * BitsPerSample / 8;
////// int dataSize = samples.Count * BitsPerSample / 8;
////// // RIFF header
////// writer.Write(Encoding.ASCII.GetBytes("RIFF"));
////// writer.Write(36 + dataSize);
////// writer.Write(Encoding.ASCII.GetBytes("WAVE"));
////// // fmt chunk
////// writer.Write(Encoding.ASCII.GetBytes("fmt "));
////// writer.Write(16);
////// writer.Write((short)1); // PCM
////// writer.Write((short)Channels);
////// writer.Write(sampleRate);
////// writer.Write(byteRate);
////// writer.Write((short)(Channels * BitsPerSample / 8));
////// writer.Write((short)BitsPerSample);
////// // data chunk
////// writer.Write(Encoding.ASCII.GetBytes("data"));
////// writer.Write(dataSize);
////// foreach (short s in samples)
////// writer.Write(s);
////// }
////// }//public static void WriteWavFile___SingleFile_ConstantSampleRate(...)
//////}//class WavGenerator___MultiPitch_SingleFile_FixedDurations
//////public class WavGenerator___MultiPitch_SingleFile_FixedDurations
//////{
////// const int BaseSampleRate = 44100;
////// const int BitsPerSample = 16;
////// const int Channels = 1;
////// public static void function_to___ApplyPerRegionPitchShift_AND_SaveUnifiedWav(string gtampsFilePath, int numRegions)
////// {
////// var originalSamples = File.ReadLines(gtampsFilePath)
////// .Where(line => double.TryParse(line, out _))
////// .Select(double.Parse)
////// .ToList();
////// // Generate shifted versions
////// List<short> finalPcm = new List<short>();
////// for (int region = 0; region < numRegions; region++)
////// {
////// // Shruti step evenly from -22 to +22
////// int shrutiStep = -22 + (44 * region / numRegions);
////// double shiftFactor = Math.Pow(2, shrutiStep / 22.0);
////// var pitchShifted = ResamplePitchShift(originalSamples, shiftFactor);
////// // Now stretch/truncate pitch-shifted to same duration as original (i.e., same sample count)
////// var fixedDuration = StretchToLength(pitchShifted, originalSamples.Count);
////// finalPcm.AddRange(fixedDuration);
////// }
////// // Save to WAV
////// string outputPath = gtampsFilePath + $"__{numRegions}_Regions_MultiPitch_FIXED_T_Duration_output.wav";
////// WriteWavFile(outputPath, finalPcm, BaseSampleRate);
////// Console.WriteLine("Saved WAV: pitch-shifted regions, each fixed to original duration.");
////// System.Windows.Forms.MessageBox.Show("Output WAV: multi-pitch, all segments same duration.");
////// }
////// public static List<double> ResamplePitchShift(List<double> input, double shiftFactor)
////// {
////// int newLength = (int)(input.Count / shiftFactor);
////// List<double> result = new List<double>(newLength);
////// for (int i = 0; i < newLength; i++)
////// {
////// double srcIndex = i * shiftFactor;
////// int idx = (int)srcIndex;
////// double frac = srcIndex - idx;
////// double val = 0;
////// if (idx + 1 < input.Count)
////// val = (1 - frac) * input[idx] + frac * input[idx + 1];
////// else if (idx < input.Count)
////// val = input[idx];
////// result.Add(val);
////// }
////// return result;
////// }
////// public static List<short> StretchToLength(List<double> input, int targetLength)
////// {
////// List<short> output = new List<short>(targetLength);
////// double step = (double)(input.Count - 1) / (targetLength - 1);
////// for (int i = 0; i < targetLength; i++)
////// {
////// double srcIndex = i * step;
////// int idx = (int)srcIndex;
////// double frac = srcIndex - idx;
////// double val = 0;
////// if (idx + 1 < input.Count)
////// val = (1 - frac) * input[idx] + frac * input[idx + 1];
////// else if (idx < input.Count)
////// val = input[idx];
////// output.Add((short)(val * short.MaxValue));
////// }
////// return output;
////// }
////// public static void WriteWavFile(string filePath, List<short> samples, int sampleRate)
////// {
////// using (var stream = new FileStream(filePath, FileMode.Create))
////// using (var writer = new BinaryWriter(stream))
////// {
////// int byteRate = sampleRate * Channels * BitsPerSample / 8;
////// int dataSize = samples.Count * BitsPerSample / 8;
////// // RIFF header
////// writer.Write(Encoding.ASCII.GetBytes("RIFF"));
////// writer.Write(36 + dataSize);
////// writer.Write(Encoding.ASCII.GetBytes("WAVE"));
////// // fmt chunk
////// writer.Write(Encoding.ASCII.GetBytes("fmt "));
////// writer.Write(16);
////// writer.Write((short)1); // PCM
////// writer.Write((short)Channels);
////// writer.Write(sampleRate);
////// writer.Write(byteRate);
////// writer.Write((short)(Channels * BitsPerSample / 8));
////// writer.Write((short)BitsPerSample);
////// // data chunk
////// writer.Write(Encoding.ASCII.GetBytes("data"));
////// writer.Write(dataSize);
////// foreach (short s in samples)
////// writer.Write(s);
////// }
////// }
//////}//public class WavGenerator___MultiPitch_SingleFile_FixedDurations
public class WavGenerator___MultiPitch___IT_GENERATES_SAME_PITCH_COPIES_ONLY____SingleFile_FixedDurations
{
//WE CANNOT CHANGE THE SAMPLE RATE FROM THE ORIGINAL GTAMPS SAMPLE RATES
const int BaseSampleRate = 8000;//44100;//8000;// 16000;//8000;//44100; // or 8000, if desired
const int BitsPerSample = 16;
const int Channels = 1;
public static void function_to___ApplyPerRegionPitchShift_AND_SaveUnifiedWav(string gtampsFilePath, int numRegions)
{
var originalSamples = File.ReadLines(gtampsFilePath)
.Where(line => double.TryParse(line, out _))
.Select(double.Parse)
.ToList();
List<short> finalPcm = ApplyPerRegionPitchShift(originalSamples, numRegions);
// string outputPath = gtampsFilePath + $"___{numRegions}_Regions_MultiPitch_FIXED_T_Duration_output.wav";
string outputPath = gtampsFilePath + $"___{numRegions}_Regions_SAMEPitchCOPY_FIXED_T_Duration_output.wav";
WriteWavFile(outputPath, finalPcm, BaseSampleRate);
Console.WriteLine("Unified WAV written with pitch-shifted regions (duration preserved).");
System.Windows.Forms.MessageBox.Show("WAV with multiple pitches and fixed durations saved:\n" + outputPath);
}//public static void function_to___ApplyPerRegionPitchShift_AND_SaveUnifiedWav
public static List<short> ApplyPerRegionPitchShift(List<double> original, int numRegions)
{
// double segmentDurationSec = original.Count / (double)BaseSampleRate;
// double segmentDurationSec = (original.Count* numRegions) / (double)BaseSampleRate;
double segmentDurationSec = original.Count / (double)BaseSampleRate; //WHEN I DO THIS THEN ALL ARE PLAYING WITH SAME FREWQUENCY
List<short> output = new List<short>();
for (int region = 0; region < numRegions; region++)
{
//int shrutiStep = -22 + (44 * region / numRegions);
int shrutiStep = -(int)(numRegions/2) + (44 * region / numRegions);
double shiftFactor = Math.Pow(2, shrutiStep / 22.0);
var pitchShifted = ResamplePitchShift(original, shiftFactor);
int desiredSampleCount = (int)(segmentDurationSec * BaseSampleRate);
var adjusted = StretchToLength(pitchShifted, desiredSampleCount);
output.AddRange(adjusted);
}//for (int region = 0; region < numRegions; region++)
return output;
}//public static List<short> ApplyPerRegionPitchShift
public static List<double> ResamplePitchShift(List<double> input, double shiftFactor)
{
int newLength = (int)(input.Count / shiftFactor);
var result = new List<double>(newLength);
for (int i = 0; i < newLength; i++)
{
double srcIndex = i * shiftFactor;
int idx = (int)srcIndex;
double frac = srcIndex - idx;
double val = 0;
if (idx + 1 < input.Count)
val = (1 - frac) * input[idx] + frac * input[idx + 1];
else if (idx < input.Count)
val = input[idx];
result.Add(val);
}//for (int i = 0; i < newLength; i++)
return result;
}//public static List<double> ResamplePitchShift
public static List<short> StretchToLength(List<double> input, int targetLength)
{
var output = new List<short>(targetLength);
double step = (double)(input.Count - 1) / (targetLength - 1);
for (int i = 0; i < targetLength; i++)
{
double srcIndex = i * step;
int idx = (int)srcIndex;
double frac = srcIndex - idx;
double val = 0;
if (idx + 1 < input.Count)
{
val = (1 - frac) * input[idx] + frac * input[idx + 1];
}
else if (idx < input.Count)
{
val = input[idx];
}
short pcm = (short)(val * short.MaxValue);
output.Add(pcm);
}
return output;
}//public static List<short> StretchToLength
public static void WriteWavFile(string filePath, List<short> samples, int sampleRate)
{
using (var stream = new FileStream(filePath, FileMode.Create))
using (var writer = new BinaryWriter(stream))
{
int byteRate = sampleRate * Channels * BitsPerSample / 8;
int dataSize = samples.Count * BitsPerSample / 8;
// RIFF header
writer.Write(Encoding.ASCII.GetBytes("RIFF"));
writer.Write(36 + dataSize);
writer.Write(Encoding.ASCII.GetBytes("WAVE"));
// fmt chunk
writer.Write(Encoding.ASCII.GetBytes("fmt "));
writer.Write(16);
writer.Write((short)1); // PCM
writer.Write((short)Channels);
writer.Write(sampleRate);
writer.Write(byteRate);
writer.Write((short)(Channels * BitsPerSample / 8));
writer.Write((short)BitsPerSample);
// data chunk
writer.Write(Encoding.ASCII.GetBytes("data"));
writer.Write(dataSize);
foreach (short s in samples)
writer.Write(s);
}
}//public static void WriteWavFile
}//public class WavGenerator___MultiPitch_SingleFile_FixedDurations
public class WavGenerator___Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis
{
const int SampleRate = 8000;
const int BitsPerSample = 16;
const int Channels = 1;
const double Pi = Math.PI;
public static void SAANS___WavGenerator___Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis___Main(string gtamps_filesnames)
{
string inputPath = gtamps_filesnames;// "your_file_path_here.txt";
// Read float samples
var samples = File.ReadLines(inputPath)
.Where(line => double.TryParse(line, out _))
.Select(double.Parse)
.ToList();
var allShifted = new List<short>();
for (int r = 1; r <= 22; r++)
{
double shiftFactor = Math.Pow(2, r / 22.0);
var shifted = ResampleWithFrequencyShift(samples, shiftFactor);
allShifted.AddRange(shifted);
}//for (int r = 1; r <= 22; r++)
string outputPath = inputPath + "___22_times_8000hZ_16_BITS_PCMS_"+allShifted.Count.ToString() + "_output.wav";
WriteWavFile(outputPath, allShifted);
Console.WriteLine("WAV file written to: " + outputPath);
}//public static void SAANS___WavGenerator___Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis___Main(STRING gtamps_filesnames)
public static List<short> ResampleWithFrequencyShift(List<double> samples, double shiftFactor)
{
int newLength = (int)(samples.Count / shiftFactor);
var shifted = new List<short>(newLength);
for (int i = 0; i < newLength; i++)
{
double srcIndex = i * shiftFactor;
int idx = (int)srcIndex;
double frac = srcIndex - idx;
double value = 0;
if (idx + 1 < samples.Count)
value = (1 - frac) * samples[idx] + frac * samples[idx + 1];
else if (idx < samples.Count)
value = samples[idx];
short pcmVal = (short)(value * short.MaxValue);
shifted.Add(pcmVal);
}//for (int i = 0; i < newLength; i++)
return shifted;
}//public static List<short> ResampleWithFrequencyShift(List<double> samples, double shiftFactor)
public static void WriteWavFile(string filePath, List<short> samples)
{
using (var stream = new FileStream(filePath, FileMode.Create))
using (var writer = new BinaryWriter(stream))
{
int byteRate = SampleRate * Channels * BitsPerSample / 8;
int dataSize = samples.Count * BitsPerSample / 8;
// RIFF header
writer.Write(Encoding.ASCII.GetBytes("RIFF"));
writer.Write(36 + dataSize);
writer.Write(Encoding.ASCII.GetBytes("WAVE"));
// fmt subchunk
writer.Write(Encoding.ASCII.GetBytes("fmt "));
writer.Write(16); // PCM
writer.Write((short)1); // AudioFormat = PCM
writer.Write((short)Channels);
writer.Write(SampleRate);
writer.Write(byteRate);
writer.Write((short)(Channels * BitsPerSample / 8));
writer.Write((short)BitsPerSample);
// data subchunk
writer.Write(Encoding.ASCII.GetBytes("data"));
writer.Write(dataSize);
foreach (short s in samples)
{ writer.Write(s); }
}//using (var writer = new BinaryWriter(stream))
}//public static void WriteWavFile(string filePath, List<short> samples)
}//public class WavGenerator___Reads_GTAMPS_MONO_8000_Hz_Samples_16_bits_no_3rd_party_apis
}//namespace SAAN_FRESH___RAW_NON_APIS_WAVES_TO_SHRUTIES_COPIER_GPTS
namespace bards_wavshandlingsdontuse
{
/// <summary>
/// Contains utility methods for reading and writing WAV files.
/// </summary>
public static class WavUtils___ShrutiPitchShifterApp___BARDS___66_SHRUTIS_COPIER
{
// Represents the WAV file header structure.
public struct WavHeader
{
public byte[] RiffId; // "RIFF"
public uint FileSize; // Total file size minus 8 bytes
public byte[] WaveId; // "WAVE"
public byte[] FmtId; // "fmt "
public uint FmtSize; // Size of the format chunk (usually 16)
public ushort AudioFormat; // Audio format (1 for PCM)
public ushort NumChannels; // Number of channels (1 for mono, 2 for stereo)
public uint SampleRate; // Samples per second (e.g., 44100, 8000)
public uint ByteRate; // SampleRate * NumChannels * BitsPerSample / 8
public ushort BlockAlign; // NumChannels * BitsPerSample / 8
public ushort BitsPerSample; // Bits per sample (e.g., 8, 16, 24)
public byte[] DataId; // "data"
public uint DataSize; // Size of the data chunk
}
/// <summary>
/// Reads a WAV file and returns its audio data as mono float samples [-1.0, 1.0].
/// </summary>
/// <param name="filePath">Path to the WAV file.</param>
/// <param name="header">Output: The read WAV header.</param>
/// <returns>A float array of mono samples, or null if an error occurs.</returns>
public static float[] ReadWav(string filePath, out WavHeader header)
{
header = new WavHeader();
byte[] wavBytes = File.ReadAllBytes(filePath);
using (MemoryStream ms = new MemoryStream(wavBytes))
using (BinaryReader reader = new BinaryReader(ms))
{
try
{
// Read RIFF Chunk
header.RiffId = reader.ReadBytes(4);
if (Encoding.ASCII.GetString(header.RiffId) != "RIFF") throw new FormatException("Not a RIFF file.");
header.FileSize = reader.ReadUInt32();
header.WaveId = reader.ReadBytes(4);
if (Encoding.ASCII.GetString(header.WaveId) != "WAVE") throw new FormatException("Not a WAVE file.");
// Find and Read "fmt " Chunk
bool fmtChunkFound = false;
while (reader.BaseStream.Position < reader.BaseStream.Length)
{
byte[] chunkIdBytes = reader.ReadBytes(4);
string chunkId = Encoding.ASCII.GetString(chunkIdBytes);
uint chunkSize = reader.ReadUInt32();
if (chunkId == "fmt ")
{
header.FmtId = chunkIdBytes;
header.FmtSize = chunkSize;
header.AudioFormat = reader.ReadUInt16();
header.NumChannels = reader.ReadUInt16();
header.SampleRate = reader.ReadUInt32();
header.ByteRate = reader.ReadUInt32();
header.BlockAlign = reader.ReadUInt16();
header.BitsPerSample = reader.ReadUInt16();
if (header.FmtSize > 16) // Skip extra format bytes
{
reader.ReadBytes((int)(header.FmtSize - 16));
}
fmtChunkFound = true;
break;
}
else
{
reader.BaseStream.Seek(chunkSize, SeekOrigin.Current); // Skip other chunks
}
}
if (!fmtChunkFound) throw new FormatException("fmt chunk not found.");
if (header.AudioFormat != 1) throw new NotSupportedException("Only PCM audio format is supported.");
// Find and Read "data" Chunk
bool dataChunkFound = false;
while (reader.BaseStream.Position < reader.BaseStream.Length)
{
byte[] chunkIdBytes = reader.ReadBytes(4);
string chunkId = Encoding.ASCII.GetString(chunkIdBytes);
uint chunkSize = reader.ReadUInt32();
if (chunkId == "data")
{
header.DataId = chunkIdBytes;
header.DataSize = chunkSize;
int numSamples = (int)(header.DataSize / header.BlockAlign);
List<float> monoSamples = new List<float>(numSamples);
for (int i = 0; i < numSamples; i++)
{
float leftSample = 0;
float rightSample = 0;
if (header.BitsPerSample == 16)
{
leftSample = reader.ReadInt16() / 32768.0f;
if (header.NumChannels == 2)
rightSample = reader.ReadInt16() / 32768.0f;
}
else if (header.BitsPerSample == 8)
{
leftSample = (reader.ReadByte() - 128) / 128.0f;
if (header.NumChannels == 2)
rightSample = (reader.ReadByte() - 128) / 128.0f;
}
else if (header.BitsPerSample == 24)
{
byte[] sampleBytes = reader.ReadBytes(3);
int val = (sampleBytes[2] << 16) | (sampleBytes[1] << 8) | sampleBytes[0];
if ((val & 0x800000) > 0) val |= ~0xFFFFFF; // Sign extend
leftSample = val / 8388608.0f; // 2^23
if (header.NumChannels == 2)
{
sampleBytes = reader.ReadBytes(3);
val = (sampleBytes[2] << 16) | (sampleBytes[1] << 8) | sampleBytes[0];
if ((val & 0x800000) > 0) val |= ~0xFFFFFF;
rightSample = val / 8388608.0f;
}
}
else if (header.BitsPerSample == 32 && header.AudioFormat == 1) // PCM 32-bit int
{
leftSample = reader.ReadInt32() / 2147483648.0f; // 2^31
if (header.NumChannels == 2)
rightSample = reader.ReadInt32() / 2147483648.0f;
}
else if (header.BitsPerSample == 32 && header.AudioFormat == 3) // PCM 32-bit float
{
leftSample = reader.ReadSingle();
if (header.NumChannels == 2)
rightSample = reader.ReadSingle();
}
else
{
throw new NotSupportedException($"BitsPerSample {header.BitsPerSample} not supported for PCM.");
}
monoSamples.Add(header.NumChannels == 2 ? (leftSample + rightSample) * 0.5f : leftSample);
}
dataChunkFound = true;
return monoSamples.ToArray();
}
else
{
// Ensure we don't read past the end of the stream if chunkSize is too large
if (reader.BaseStream.Position + chunkSize > reader.BaseStream.Length)
{
break;
}
reader.BaseStream.Seek(chunkSize, SeekOrigin.Current);
}
}
if (!dataChunkFound) throw new FormatException("data chunk not found.");
return null; // Should be unreachable if logic is correct
}
catch (Exception ex)
{
Console.WriteLine($"Error reading WAV: {ex.Message}");
return null;
}
}
}
/// <summary>
/// Writes a list of float samples to a WAV file.
/// </summary>
/// <param name="filePath">Path to save the WAV file.</param>
/// <param name="samples">List of float samples (expected to be mono for this application).</param>
/// <param name="sampleRate">The sample rate for the output WAV.</param>
/// <param name="bitsPerSample">The bit depth for the output WAV (typically 16).</param>
public static void WriteWav(string filePath, IEnumerable<float> samples, uint sampleRate, ushort bitsPerSample)
{
using (FileStream fs = new FileStream(filePath, FileMode.Create))
using (BinaryWriter writer = new BinaryWriter(fs))
{
ushort numChannels = 1; // Output is always mono
int dataLength = samples.Count() * numChannels * (bitsPerSample / 8);
// RIFF Header
writer.Write(Encoding.ASCII.GetBytes("RIFF"));
writer.Write(36 + dataLength); // FileSize
writer.Write(Encoding.ASCII.GetBytes("WAVE"));
// Format Chunk ("fmt ")
writer.Write(Encoding.ASCII.GetBytes("fmt "));
writer.Write(16); // FmtSize (PCM)
writer.Write((ushort)1); // AudioFormat (PCM)
writer.Write(numChannels);
writer.Write(sampleRate);
writer.Write(sampleRate * numChannels * (bitsPerSample / 8)); // ByteRate
writer.Write((ushort)(numChannels * (bitsPerSample / 8))); // BlockAlign
writer.Write(bitsPerSample);
// Data Chunk ("data")
writer.Write(Encoding.ASCII.GetBytes("data"));
writer.Write(dataLength);
// Write audio data
foreach (float sampleFloat in samples)
{
// Clamp sample to [-1.0, 1.0] before conversion
float clampedSample = Math.Max(-1.0f, Math.Min(1.0f, sampleFloat));
if (bitsPerSample == 16)
{
short pcmSample = (short)(clampedSample * short.MaxValue);
writer.Write(pcmSample);
}
else if (bitsPerSample == 8)
{
byte pcmSample = (byte)((clampedSample * 127.0f) + 128);
writer.Write(pcmSample);
}
// Add other bit depths if necessary
}
}
}
}
/// <summary>
/// Handles the core logic of pitch shifting and resampling.
/// </summary>
public class ShrutiPitchProcessor___bards_copier_66
{
private const int OutputSampleRate = 8000;
private const ushort OutputBitsPerSample = 16; // As per requirement
/// <summary>
/// Processes the input WAV file to generate 66 pitch-shifted versions,
/// concatenated into a single output WAV file.
/// </summary>
/// <param name="inputWavPath">Path to the input WAV file.</param>
/// <param name="outputWavPath">Path to save the resulting WAV file.</param>
public static void CreateShrutiVariations(string inputWavPath, string outputWavPath)
{
Console.WriteLine($"Reading input WAV: {inputWavPath}");
WavUtils___ShrutiPitchShifterApp___BARDS___66_SHRUTIS_COPIER.WavHeader inputHeader;
float[] monoInputSamples = WavUtils___ShrutiPitchShifterApp___BARDS___66_SHRUTIS_COPIER.ReadWav(inputWavPath, out inputHeader);
if (monoInputSamples == null || monoInputSamples.Length == 0)
{
Console.WriteLine("Failed to read input WAV file or the file is empty.");
return;
}
Console.WriteLine($"Input WAV: {inputHeader.SampleRate} Hz, {inputHeader.BitsPerSample}-bit, {(inputHeader.NumChannels == 1 ? "Mono" : "Stereo")}, Length: {monoInputSamples.Length} samples.");
// Calculate the original duration of the input audio.
// This duration will be maintained for each pitch-shifted segment.
double originalDurationSeconds = (double)monoInputSamples.Length / inputHeader.SampleRate;
// Calculate the number of samples each shifted segment should have to maintain the original duration at the OutputSampleRate.
int targetSegmentLengthSamples = (int)(originalDurationSeconds * OutputSampleRate);
if (targetSegmentLengthSamples == 0 && originalDurationSeconds > 0)
{
Console.WriteLine("Warning: Target segment length is 0, possibly due to very short input or rounding. Output might be empty or unexpected.");
}
else if (targetSegmentLengthSamples == 0 && originalDurationSeconds == 0)
{
Console.WriteLine("Input audio has zero duration. Output will be empty.");
WavUtils___ShrutiPitchShifterApp___BARDS___66_SHRUTIS_COPIER.WriteWav(outputWavPath, new List<float>(), OutputSampleRate, OutputBitsPerSample);
Console.WriteLine($"Empty output WAV file created at: {outputWavPath}");
return;
}
List<float> allShiftedAudioSamples = new List<float>();
Console.WriteLine($"Original duration: {originalDurationSeconds:F3} seconds.");
Console.WriteLine($"Target segment length for each shruti: {targetSegmentLengthSamples} samples at {OutputSampleRate} Hz.");
// Generate 66 shruti versions.
// We'll iterate shruti offsets from -33 to +32 (inclusive), giving 66 distinct shifts.
// shrutiOffset = -33 will be the lowest pitch (most "up" in user's description of lower frequency).
// shrutiOffset = +32 will be the highest pitch (most "down" in user's description of higher frequency).
int totalShrutisGenerated = 0;
for (int shrutiOffset = -33; shrutiOffset <= 32; shrutiOffset++)
{
// Calculate the pitch shift factor.
// 22.0 represents the number of shrutis in one octave.
double pitchShiftFactor = Math.Pow(2.0, (double)shrutiOffset / 22.0);
Console.WriteLine($"Processing shruti offset: {shrutiOffset,3} (Factor: {pitchShiftFactor:F4})...");
// Perform resampling to achieve pitch shift while preserving duration.
float[] shiftedSegment = ResampleAndShiftPitch(
monoInputSamples,
(int)inputHeader.SampleRate,
pitchShiftFactor,
targetSegmentLengthSamples
);
allShiftedAudioSamples.AddRange(shiftedSegment);
totalShrutisGenerated++;
}
Console.WriteLine($"Total {totalShrutisGenerated} shruti versions generated.");
Console.WriteLine($"Writing concatenated output WAV: {outputWavPath}");
WavUtils___ShrutiPitchShifterApp___BARDS___66_SHRUTIS_COPIER.WriteWav(outputWavPath, allShiftedAudioSamples, OutputSampleRate, OutputBitsPerSample);
Console.WriteLine("Processing complete.");
}
/// <summary>
/// Resamples the input audio to a new pitch while attempting to preserve its original perceived duration.
/// The output will have 'targetOutputLengthSamples' samples.
/// </summary>
/// <param name="inputSamples">The original mono audio samples (float -1.0 to 1.0).</param>
/// <param name="inputSampleRate">Sample rate of the inputSamples.</param>
/// <param name="pitchShiftFactor">Factor to shift pitch by (>1.0 higher, <1.0 lower).</param>
/// <param name="targetOutputLengthSamples">The desired number of samples for the output segment.</param>
/// <returns>A new float array containing the pitch-shifted and resampled audio.</returns>
private static float[] ResampleAndShiftPitch(
float[] inputSamples,
int inputSampleRate,
double pitchShiftFactor,
int targetOutputLengthSamples)
{
if (inputSamples == null || inputSamples.Length == 0) return new float[0];
if (targetOutputLengthSamples == 0) return new float[0];
float[] outputSamples = new float[targetOutputLengthSamples];
// Calculate the step for advancing through the input samples for each output sample.
// This 'readStep' determines how quickly we "read" through the input audio.
// If pitchShiftFactor > 1 (higher pitch), readStep is larger, so we move through input faster.
// If pitchShiftFactor < 1 (lower pitch), readStep is smaller, so we move through input slower.
// The ratio (inputSampleRate / OutputSampleRate) accounts for any difference in native sample rates.
double readStep = pitchShiftFactor * ((double)inputSampleRate / OutputSampleRate);
for (int i = 0; i < targetOutputLengthSamples; i++)
{
// Calculate the floating-point index in the input samples array.
double currentInputIndexFloat = i * readStep;
// Handle looping: if currentInputIndexFloat exceeds input length, it should wrap around.
// This ensures that the output segment is filled to its targetOutputLengthSamples,
// effectively looping the input if it's "consumed" too quickly (e.g., high pitch shift).
currentInputIndexFloat = currentInputIndexFloat % inputSamples.Length;
// Ensure positivity if modulo result is negative (can happen if readStep or i is negative, though not in this loop)
if (currentInputIndexFloat < 0)
{
currentInputIndexFloat += inputSamples.Length;
}
// Get integer indices for interpolation.
int indexBefore = (int)Math.Floor(currentInputIndexFloat);
int indexAfter = (indexBefore + 1);
// Ensure indexAfter also wraps around correctly.
if (indexAfter >= inputSamples.Length)
{
indexAfter = indexAfter % inputSamples.Length;
}
// Handle edge case for single sample input to avoid out of bounds with indexAfter
if (inputSamples.Length == 1)
{
indexBefore = 0;
indexAfter = 0;
}
// Get the fraction for linear interpolation.
double fraction = currentInputIndexFloat - indexBefore;
float sampleBefore = inputSamples[indexBefore];
// If input has only one sample, sampleAfter is the same as sampleBefore.
float sampleAfter = (inputSamples.Length > 1) ? inputSamples[indexAfter] : sampleBefore;
// Linear interpolation.
outputSamples[i] = (float)(sampleBefore * (1.0 - fraction) + sampleAfter * fraction);
}
return outputSamples;
}
}//public class ShrutiPitchProcessor___bards_copier_66
/// <summary>
/// Main program class.
/// </summary>
public class Program_bards_66_copier_for_shrutis
{
public static void CreateShrutiVariations___Main(string wavfilesnames)
{
Console.WriteLine("Shruti Pitch Shifter Application");
Console.WriteLine("---------------------------------");
//////if (args.Length < 2)
//////{
////// Console.WriteLine("Usage: ShrutiPitchShifterApp.exe <input_wav_file> <output_wav_file>");
////// Console.WriteLine("Example: ShrutiPitchShifterApp.exe input.wav output_shrutis.wav");
////// return;
//////}
string inputFilePath = wavfilesnames;// args[0];
string outputFilePath = wavfilesnames + "_66_copies_bards_shrutis_copier.wav";// args[1];
if (!File.Exists(inputFilePath))
{
Console.WriteLine($"Error: Input file not found: {inputFilePath}");
return;
}
try
{
ShrutiPitchProcessor___bards_copier_66.CreateShrutiVariations(inputFilePath, outputFilePath);
}
catch (Exception ex)
{
Console.WriteLine($"An unexpected error occurred: {ex.Message}");
Console.WriteLine($"Stack Trace: {ex.StackTrace}");
}
}
}//public static class WavUtils___ShrutiPitchShifterApp___BARDS___66_SHRUTIS_COPIER
///
/////////////////////////////////////////////////////////////////////////////////////////////
///
}//namespace bards_wavshandlingsdontuse
//////namespace SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
//////{
////// public class CrestTroughSegment
////// {
////// public int StartIndex;
////// public int EndIndex;
////// public float PeakValue;
////// public double AngleChange;
////// }
////// public class FrequencyInfo
////// {
////// public int StartMs;
////// public int DurationMs;
////// public double Frequency;
////// }
////// public class WaveProcessor
////// {
////// public List<CrestTroughSegment> Start(string wavPath, ref System.Windows.Forms.ProgressBar progressBar)
////// {
////// float[] samples = WavLoader.LoadMonoPcmWav(wavPath, out int sampleRate);
////// return CrestTroughDetector.DetectSegments(samples, sampleRate, ref progressBar);
////// }
////// }
////// public static class WavLoader
////// {
////// public static float[] LoadMonoPcmWav(string path, out int sampleRate)
////// {
////// byte[] bytes = File.ReadAllBytes(path);
////// sampleRate = BitConverter.ToInt32(bytes, 24);
////// int dataIndex = Array.IndexOf(bytes, (byte)'d');
////// while (dataIndex < bytes.Length - 4 && Encoding.ASCII.GetString(bytes, dataIndex, 4) != "data")
////// dataIndex++;
////// dataIndex += 8;
////// int sampleCount = (bytes.Length - dataIndex) / 2;
////// float[] samples = new float[sampleCount];
////// for (int i = 0; i < sampleCount; i++)
////// {
////// short s = BitConverter.ToInt16(bytes, dataIndex + i * 2);
////// samples[i] = s / 32768f;
////// }
////// return samples;
////// }
////// }
////// public static class CrestTroughDetector
////// {
////// public static List<CrestTroughSegment> DetectSegments(float[] samples, int sampleRate, ref System.Windows.Forms.ProgressBar progressBar)
////// {
////// var segments = new List<CrestTroughSegment>();
////// for (int i = 1; i < samples.Length - 1; i++)
////// {
////// if ((samples[i] > samples[i - 1] && samples[i] > samples[i + 1]) ||
////// (samples[i] < samples[i - 1] && samples[i] < samples[i + 1]))
////// {
////// segments.Add(new CrestTroughSegment
////// {
////// StartIndex = i - 1,
////// EndIndex = i + 1,
////// PeakValue = samples[i],
////// AngleChange = Math.Atan(samples[i + 1] - samples[i]) - Math.Atan(samples[i] - samples[i - 1])
////// });
////// }
////// }
////// return segments;
////// }
////// }
////// public static class CrestTroughFilter
////// {
////// public static List<CrestTroughSegment> FilterSmoothSegments(List<CrestTroughSegment> segments, float[] samples)
////// {
////// return segments.FindAll(s => Math.Abs(s.AngleChange) < 0.2);
////// }
////// }
////// public static class WavFilterSaver
////// {
////// public static void SaveFilteredWav(string path, float[] samples, List<CrestTroughSegment> segments, int sampleRate)
////// {
////// short[] intSamples = new short[samples.Length];
////// for (int i = 0; i < samples.Length; i++)
////// intSamples[i] = (short)(samples[i] * 32767);
////// byte[] wavBytes = new byte[44 + intSamples.Length * 2];
////// Encoding.ASCII.GetBytes("RIFF").CopyTo(wavBytes, 0);
////// BitConverter.GetBytes(36 + intSamples.Length * 2).CopyTo(wavBytes, 4);
////// Encoding.ASCII.GetBytes("WAVEfmt ").CopyTo(wavBytes, 8);
////// BitConverter.GetBytes(16).CopyTo(wavBytes, 16);
////// BitConverter.GetBytes((short)1).CopyTo(wavBytes, 20);
////// BitConverter.GetBytes((short)1).CopyTo(wavBytes, 22);
////// BitConverter.GetBytes(sampleRate).CopyTo(wavBytes, 24);
////// BitConverter.GetBytes(sampleRate * 2).CopyTo(wavBytes, 28);
////// BitConverter.GetBytes((short)2).CopyTo(wavBytes, 32);
////// BitConverter.GetBytes((short)16).CopyTo(wavBytes, 34);
////// Encoding.ASCII.GetBytes("data").CopyTo(wavBytes, 36);
////// BitConverter.GetBytes(intSamples.Length * 2).CopyTo(wavBytes, 40);
////// Buffer.BlockCopy(intSamples, 0, wavBytes, 44, intSamples.Length * 2);
////// File.WriteAllBytes(path, wavBytes);
////// }
////// }
////// public static class DxfVisualizer
////// {
////// public static void DrawDxf(string path, List<CrestTroughSegment> segments, int sampleRate)
////// {
////// using (StreamWriter sw = new StreamWriter(path))
////// {
////// sw.WriteLine("0\nSECTION\n2\nENTITIES");
////// foreach (var seg in segments)
////// {
////// double x1 = seg.StartIndex / (double)sampleRate;
////// double x2 = seg.EndIndex / (double)sampleRate;
////// double y = seg.PeakValue;
////// sw.WriteLine("0\nLINE\n8\n0");
////// sw.WriteLine($"10\n{x1}\n20\n{y}\n30\n0.0");
////// sw.WriteLine($"11\n{x2}\n21\n{y}\n31\n0.0");
////// }
////// sw.WriteLine("0\nENDSEC\n0\nEOF");
////// }
////// }
////// }
//////}//namespace SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
//////namespace SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
//////{
////// public class CrestTroughSegment
////// {
////// public int StartIndex;
////// public int EndIndex;
////// public float PeakValue;
////// public double AngleChange;
////// }
////// public class FrequencyInfo
////// {
////// public int StartMs;
////// public int DurationMs;
////// public double Frequency;
////// }
////// public class WaveProcessor
////// {
////// public List<CrestTroughSegment> Start(string wavPath, ref System.Windows.Forms.ProgressBar progressBar)
////// {
////// float[] samples = WavLoader.LoadMonoPcmWav(wavPath, out int sampleRate);
////// return CrestTroughDetector.DetectSegments(samples, sampleRate, ref progressBar);
////// }
////// }
////// public static class WavLoader
////// {
////// public static float[] LoadMonoPcmWav(string path, out int sampleRate)
////// {
////// byte[] bytes = File.ReadAllBytes(path);
////// sampleRate = BitConverter.ToInt32(bytes, 24);
////// int dataIndex = Array.IndexOf(bytes, (byte)'d');
////// while (dataIndex < bytes.Length - 4 && Encoding.ASCII.GetString(bytes, dataIndex, 4) != "data")
////// dataIndex++;
////// dataIndex += 8;
////// int sampleCount = (bytes.Length - dataIndex) / 2;
////// float[] samples = new float[sampleCount];
////// for (int i = 0; i < sampleCount; i++)
////// {
////// short s = BitConverter.ToInt16(bytes, dataIndex + i * 2);
////// samples[i] = s / 32768f;
////// }
////// return samples;
////// }
////// }
////// public static class CrestTroughDetector
////// {
////// public static List<CrestTroughSegment> DetectSegments(float[] samples, int sampleRate, ref System.Windows.Forms.ProgressBar progressBar)
////// {
////// var segments = new List<CrestTroughSegment>();
////// for (int i = 1; i < samples.Length - 1; i++)
////// {
////// if ((samples[i] > samples[i - 1] && samples[i] > samples[i + 1]) ||
////// (samples[i] < samples[i - 1] && samples[i] < samples[i + 1]))
////// {
////// segments.Add(new CrestTroughSegment
////// {
////// StartIndex = i - 1,
////// EndIndex = i + 1,
////// PeakValue = samples[i],
////// AngleChange = Math.Atan(samples[i + 1] - samples[i]) - Math.Atan(samples[i] - samples[i - 1])
////// });
////// }
////// }
////// return segments;
////// }
////// }
////// public static class CrestTroughFilter
////// {
////// public static List<CrestTroughSegment> FilterSmoothSegments(List<CrestTroughSegment> segments, float[] samples)
////// {
////// return segments.FindAll(s => Math.Abs(s.AngleChange) < 0.2);
////// }
////// }
////// public static class WavFilterSaver
////// {
////// public static void SaveFilteredWav(string path, float[] samples, List<CrestTroughSegment> segments, int sampleRate)
////// {
////// short[] intSamples = new short[samples.Length];
////// for (int i = 0; i < samples.Length; i++)
////// intSamples[i] = (short)(samples[i] * 32767);
////// byte[] wavBytes = new byte[44 + intSamples.Length * 2];
////// Encoding.ASCII.GetBytes("RIFF").CopyTo(wavBytes, 0);
////// BitConverter.GetBytes(36 + intSamples.Length * 2).CopyTo(wavBytes, 4);
////// Encoding.ASCII.GetBytes("WAVEfmt ").CopyTo(wavBytes, 8);
////// BitConverter.GetBytes(16).CopyTo(wavBytes, 16);
////// BitConverter.GetBytes((short)1).CopyTo(wavBytes, 20);
////// BitConverter.GetBytes((short)1).CopyTo(wavBytes, 22);
////// BitConverter.GetBytes(sampleRate).CopyTo(wavBytes, 24);
////// BitConverter.GetBytes(sampleRate * 2).CopyTo(wavBytes, 28);
////// BitConverter.GetBytes((short)2).CopyTo(wavBytes, 32);
////// BitConverter.GetBytes((short)16).CopyTo(wavBytes, 34);
////// Encoding.ASCII.GetBytes("data").CopyTo(wavBytes, 36);
////// BitConverter.GetBytes(intSamples.Length * 2).CopyTo(wavBytes, 40);
////// Buffer.BlockCopy(intSamples, 0, wavBytes, 44, intSamples.Length * 2);
////// File.WriteAllBytes(path, wavBytes);
////// }
////// }
////// public static class DxfVisualizer
////// {
////// public static void DrawDxf(string path, List<CrestTroughSegment> segments, int sampleRate)
////// {
////// using (StreamWriter sw = new StreamWriter(path))
////// {
////// sw.WriteLine("0\nSECTION\n2\nENTITIES");
////// foreach (var seg in segments)
////// {
////// double x1 = seg.StartIndex / (double)sampleRate;
////// double x2 = seg.EndIndex / (double)sampleRate;
////// double y = seg.PeakValue;
////// sw.WriteLine("0\nLINE\n8\n0");
////// sw.WriteLine($"10\n{x1}\n20\n{y}\n30\n0.0");
////// sw.WriteLine($"11\n{x2}\n21\n{y}\n31\n0.0");
////// }
////// sw.WriteLine("0\nENDSEC\n0\nEOF");
////// }
////// }
////// }
////// public static class CsvExporter
////// {
////// public static void ExportSegments(string path, List<CrestTroughSegment> segments)
////// {
////// using (StreamWriter sw = new StreamWriter(path))
////// {
////// sw.WriteLine("StartIndex,EndIndex,PeakValue,AngleChange");
////// foreach (var seg in segments)
////// sw.WriteLine($"{seg.StartIndex},{seg.EndIndex},{seg.PeakValue},{seg.AngleChange}");
////// }
////// }
////// }
////// public static class WaveformPatternComparer
////// {
////// public static int CountSimilarSegments(List<CrestTroughSegment> a, List<CrestTroughSegment> b)
////// {
////// return a.Intersect(b, new CrestTroughSegmentComparer()).Count();
////// }
////// private class CrestTroughSegmentComparer : IEqualityComparer<CrestTroughSegment>
////// {
////// public bool Equals(CrestTroughSegment x, CrestTroughSegment y)
////// {
////// return x.StartIndex == y.StartIndex && x.EndIndex == y.EndIndex;
////// }
////// public int GetHashCode(CrestTroughSegment obj)
////// {
////// return obj.StartIndex ^ obj.EndIndex;
////// }
////// }
////// }
////// public static class WaveformFrequencyEstimator
////// {
////// public class FrequencyPoint
////// {
////// public int TimeMs;
////// public double Frequency;
////// }
////// public static List<FrequencyPoint> EstimateFrequencies(List<CrestTroughSegment> segments, int sampleRate)
////// {
////// var list = new List<FrequencyPoint>();
////// foreach (var seg in segments)
////// {
////// int start = seg.StartIndex;
////// int end = seg.EndIndex;
////// int durationSamples = end - start;
////// double durationSeconds = durationSamples / (double)sampleRate;
////// double frequency = 1.0 / (2 * durationSeconds);
////// int timeMs = (int)((start + end) / 2.0 / sampleRate * 1000);
////// list.Add(new FrequencyPoint { TimeMs = timeMs, Frequency = frequency });
////// }
////// return list;
////// }
////// }
//////} //namespace SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
namespace SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
{
public class CrestTroughSegment
{
public int StartIndex;
public int EndIndex;
public float PeakValue;
public double AngleChange;
}
public class FrequencyInfo
{
public int StartMs;
public int DurationMs;
public double Frequency;
}
public class WaveProcessor
{
public List<CrestTroughSegment> Start(string wavPath, ref System.Windows.Forms.ProgressBar progressBar)
{
float[] samples = WavLoader.LoadMonoPcmWav(wavPath, out int sampleRate);
return CrestTroughDetector.DetectSegments(samples, sampleRate, ref progressBar);
}
}
public static class WavLoader
{
public static float[] LoadMonoPcmWav(string path, out int sampleRate)
{
byte[] bytes = File.ReadAllBytes(path);
sampleRate = BitConverter.ToInt32(bytes, 24);
int dataIndex = Array.IndexOf(bytes, (byte)'d');
while (dataIndex < bytes.Length - 4 && Encoding.ASCII.GetString(bytes, dataIndex, 4) != "data")
dataIndex++;
dataIndex += 8;
int sampleCount = (bytes.Length - dataIndex) / 2;
float[] samples = new float[sampleCount];
for (int i = 0; i < sampleCount; i++)
{
short s = BitConverter.ToInt16(bytes, dataIndex + i * 2);
samples[i] = s / 32768f;
}
return samples;
}
}
public static class CrestTroughDetector
{
public static List<CrestTroughSegment> DetectSegments(float[] samples, int sampleRate, ref System.Windows.Forms.ProgressBar progressBar)
{
var segments = new List<CrestTroughSegment>();
for (int i = 1; i < samples.Length - 1; i++)
{
if ((samples[i] > samples[i - 1] && samples[i] > samples[i + 1]) ||
(samples[i] < samples[i - 1] && samples[i] < samples[i + 1]))
{
segments.Add(new CrestTroughSegment
{
StartIndex = i - 1,
EndIndex = i + 1,
PeakValue = samples[i],
AngleChange = Math.Atan(samples[i + 1] - samples[i]) - Math.Atan(samples[i] - samples[i - 1])
});
}
}
return segments;
}
}
public static class CrestTroughFilter
{
public static List<CrestTroughSegment> FilterSmoothSegments(List<CrestTroughSegment> segments, float[] samples)
{
return segments.FindAll(s => Math.Abs(s.AngleChange) < 0.2);
}
}
public static class WavFilterSaver
{
public static void SaveFilteredWav(string path, float[] samples, List<CrestTroughSegment> segments, int sampleRate)
{
short[] intSamples = new short[samples.Length];
for (int i = 0; i < samples.Length; i++)
intSamples[i] = (short)(samples[i] * 32767);
byte[] wavBytes = new byte[44 + intSamples.Length * 2];
Encoding.ASCII.GetBytes("RIFF").CopyTo(wavBytes, 0);
BitConverter.GetBytes(36 + intSamples.Length * 2).CopyTo(wavBytes, 4);
Encoding.ASCII.GetBytes("WAVEfmt ").CopyTo(wavBytes, 8);
BitConverter.GetBytes(16).CopyTo(wavBytes, 16);
BitConverter.GetBytes((short)1).CopyTo(wavBytes, 20);
BitConverter.GetBytes((short)1).CopyTo(wavBytes, 22);
BitConverter.GetBytes(sampleRate).CopyTo(wavBytes, 24);
BitConverter.GetBytes(sampleRate * 2).CopyTo(wavBytes, 28);
BitConverter.GetBytes((short)2).CopyTo(wavBytes, 32);
BitConverter.GetBytes((short)16).CopyTo(wavBytes, 34);
Encoding.ASCII.GetBytes("data").CopyTo(wavBytes, 36);
BitConverter.GetBytes(intSamples.Length * 2).CopyTo(wavBytes, 40);
Buffer.BlockCopy(intSamples, 0, wavBytes, 44, intSamples.Length * 2);
File.WriteAllBytes(path, wavBytes);
}
}
public static class DxfVisualizer
{
public static void DrawDxf(string path, List<CrestTroughSegment> segments, int sampleRate)
{
using (StreamWriter sw = new StreamWriter(path))
{
sw.WriteLine("0\nSECTION\n2\nENTITIES");
foreach (var seg in segments)
{
double x1 = seg.StartIndex / (double)sampleRate;
double x2 = seg.EndIndex / (double)sampleRate;
double y = seg.PeakValue;
sw.WriteLine("0\nLINE\n8\n0");
sw.WriteLine($"10\n{x1}\n20\n{y}\n30\n0.0");
sw.WriteLine($"11\n{x2}\n21\n{y}\n31\n0.0");
}
sw.WriteLine("0\nENDSEC\n0\nEOF");
}
}
}
public static class CsvExporter
{
public static void ExportSegments(string path, List<CrestTroughSegment> segments)
{
using (StreamWriter sw = new StreamWriter(path))
{
sw.WriteLine("StartIndex,EndIndex,PeakValue,AngleChange");
foreach (var seg in segments)
sw.WriteLine($"{seg.StartIndex},{seg.EndIndex},{seg.PeakValue},{seg.AngleChange}");
}
}
public static void ExportPerMillisecond(string path, List<WaveformFrequencyEstimator.FrequencyPoint> freqPoints)
{
using (StreamWriter sw = new StreamWriter(path))
{
sw.WriteLine("TimeMs,Frequency");
foreach (var fp in freqPoints)
sw.WriteLine($"{fp.TimeMs},{fp.Frequency}");
}
}
public static void ExportFrequencies(string path, List<FrequencyInfo> freqInfos)
{
using (StreamWriter sw = new StreamWriter(path))
{
sw.WriteLine("StartMs,DurationMs,Frequency");
foreach (var info in freqInfos)
sw.WriteLine($"{info.StartMs},{info.DurationMs},{info.Frequency}");
}
}
public static void ExportFilteredSegments(string path, List<CrestTroughSegment> segments)
{
ExportSegments(path, segments);
}
public static void ExportSimilarSegmentCount(string path, int count)
{
File.WriteAllText(path, "Similar Segment Count: " + count);
}
}
public static class WaveformPatternComparer
{
public static int CountSimilarSegments(List<CrestTroughSegment> listof___CrestTroughSegment, List<CrestTroughSegment> ListofCrestTroughSegment)
{
return listof___CrestTroughSegment.Intersect(ListofCrestTroughSegment, new CrestTroughSegmentComparer()).Count();
}
private class CrestTroughSegmentComparer : IEqualityComparer<CrestTroughSegment>
{
public bool Equals(CrestTroughSegment x, CrestTroughSegment y)
{
return x.StartIndex == y.StartIndex && x.EndIndex == y.EndIndex;
}
public int GetHashCode(CrestTroughSegment obj)
{
return obj.StartIndex ^ obj.EndIndex;
}
}
}
public static class WaveformFrequencyEstimator
{
public class FrequencyPoint
{
public int TimeMs;
public double Frequency;
}
public static List<FrequencyPoint> EstimateFrequencies(List<CrestTroughSegment> segments, int sampleRate)
{
var list = new List<FrequencyPoint>();
foreach (var seg in segments)
{
int start = seg.StartIndex;
int end = seg.EndIndex;
int durationSamples = end - start;
double durationSeconds = durationSamples / (double)sampleRate;
double frequency = 1.0 / (2 * durationSeconds);
int timeMs = (int)((start + end) / 2.0 / sampleRate * 1000);
list.Add(new FrequencyPoint { TimeMs = timeMs, Frequency = frequency });
}
return list;
}//public static List<FrequencyPoint> EstimateFrequencies(List<CrestTroughSegment> segments, int sampleRate)
}
}//namespace SAANS_WAVEFILES_CREST_TROUGHS_ANALYSISWaveform
No comments:
Post a Comment