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
/////////////////////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/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;
/////////////////////////////////////////////////////////////////////////////////////
///
/// 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;
//////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
///
///
///////////////////////////////////////////////////////// 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
//////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
{
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 ///////////////////////////////////////////
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;
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.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)
No comments:
Post a Comment