1#ifndef MIDI_PROCESSOR_H
2#define MIDI_PROCESSOR_H
22#include "../external/json.hpp"
28using json = nlohmann::json;
81 int processMidiFile(std::string midi_file_path, std::string json_file_name);
198 bool open_file(std::string midi_file_path);
341 std::vector<std::vector<int>>
notes;
Standalone Class for processing midi files and saving/loading mipi files. Contains various getters to...
Definition midi_processor.h:54
bool filter_trills()
filters trills and staggered chords down to only the first note
Definition midi_processor.cpp:660
std::vector< std::vector< double > > note_durations
current list of note_durations
Definition midi_processor.h:347
bool process_channel_notes_with_timings()
processes and stores all notes and their timings and remove dud channels
Definition midi_processor.cpp:480
std::vector< std::vector< int > > get_channel_notes()
gets all notes
Definition midi_processor.cpp:225
bool load_json_file(std::string json_file_path)
load JSON file
Definition midi_processor.cpp:318
~MidiProcessor()
Destructor.
Definition midi_processor.cpp:79
bool filter_overlapping_notes()
filters overlapping notes down to only the first note
Definition midi_processor.cpp:721
bool open_file(std::string midi_file_path)
opens a selected midi file
Definition midi_processor.cpp:370
std::vector< int > get_instruments()
gets all instruments
Definition midi_processor.cpp:188
double fileDuration
current song duration
Definition midi_processor.h:350
std::vector< std::vector< double > > get_channel_note_durations()
gets all note durations
Definition midi_processor.cpp:251
std::vector< std::vector< int > > notes
current list of notes
Definition midi_processor.h:341
std::vector< int > get_channels()
gets all channels
Definition midi_processor.cpp:175
int processMidiFile(std::string midi_file_path, std::string json_file_name)
processes a midi file by saving all instruments (and their channels) to a set of vectors
Definition midi_processor.cpp:97
double get_song_duration()
gets the song duration
Definition midi_processor.cpp:264
bool filter_chords()
filters chords down to only the root note
Definition midi_processor.cpp:548
std::vector< std::vector< int > > get_assigned_keys()
gets all assigned keys
Definition midi_processor.cpp:277
bool debug_print_data()
prints all data to the console
Definition midi_processor.cpp:1043
std::vector< std::vector< int > > keyboard_indexs
current list of keyboard indexs for each channel
Definition midi_processor.h:359
MidiProcessor()
Constructor that allocates internals.
Definition midi_processor.cpp:40
double min_note_duration_gap
minimum note duration
Definition midi_processor.h:329
MidiFile midi
MidiFile library.
Definition midi_processor.h:323
double min_note_gap
minimum note gap
Definition midi_processor.h:332
const char * homeDir
home directory
Definition midi_processor.h:326
std::vector< int > channels
current list of channels
Definition midi_processor.h:335
std::vector< std::vector< double > > note_timeStamps
current list of note_timeStamps
Definition midi_processor.h:344
bool process_instruments()
processes and stores all instruments/channels
Definition midi_processor.cpp:396
std::vector< std::vector< int > > get_keyboard_values()
get keyboard values
Definition midi_processor.cpp:290
bool assign_keys()
key assignment function
Definition midi_processor.cpp:810
bool save_midi_data(std::string file_name)
stores all data for current midi file in a storage file
Definition midi_processor.cpp:985
bool process_channel_notes(int channel)
processes and stores all notes that correspond to a specific channel
Definition midi_processor.cpp:445
std::vector< std::vector< int > > keyboard_values
current list of keyboard values for each channel
Definition midi_processor.h:356
bool process_song_duration()
process song duration
Definition midi_processor.cpp:784
std::vector< int > instruments
current list of instruments
Definition midi_processor.h:338
std::vector< std::string > get_instrument_names()
gets all instrument names and their channels
Definition midi_processor.cpp:201
std::vector< std::vector< int > > assigned_keys
current list of assigned keys for each channel
Definition midi_processor.h:353
bool trim_note_durations()
note duration trimming function
Definition midi_processor.cpp:932
std::vector< std::vector< int > > get_keyboard_indexs()
get keyboard indexs
Definition midi_processor.cpp:303
std::vector< std::vector< double > > get_channel_note_timings()
gets all note timings
Definition midi_processor.cpp:238
namespace for Niels Lohmann
Definition json.hpp:20337