Oracle_label.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00007
00008 #include "Oracle_label.hpp"
00009
00010
00011
00012 O_label::O_label()
00013 {
00015 statenb = 0;
00016 bufferef = 0;
00017 duration = 0;
00018 section = 0;
00019 phrase = 0;
00020 }
00021
00023 O_label::O_label(int statenbin, int bufferefin, int durationin, int phrasein, int sectionin)
00024 {
00025 statenb = statenbin;
00026 bufferef = bufferefin;
00027 duration = durationin;
00028 phrase = phrasein;
00029 section = sectionin;
00030 }
00031
00032 O_label::O_label(const O_label & labelin)
00033 {
00034 statenb = labelin.statenb;
00035 bufferef = labelin.bufferef;
00036 duration = labelin.duration;
00037 section = labelin.section;
00038 phrase = labelin.phrase;
00039 }
00040
00041 int O_label::get_statenb()
00042 {
00043 return statenb;
00044 }
00045
00046 void O_label::set_statenb(int statnbin)
00047 {
00048 statenb = statnbin;
00049 }
00050
00051 int O_label::get_bufferef()
00052 {
00053 return bufferef;
00054 }
00055
00056 void O_label::set_bufferef(int bufferefin)
00057 {
00058 bufferef = bufferefin;
00059 }
00060
00061 int O_label::get_duration()
00062 {
00063 return duration;
00064 }
00065
00066 void O_label::set_duration(int durationin)
00067 {
00068 duration = durationin;
00069 }
00070
00071 int O_label::get_phrase()
00072 {
00073 return phrase;
00074 }
00075
00076 void O_label::set_phrase(int phrasein)
00077 {
00078 phrase = phrasein;
00079 }
00080
00081 int O_label::get_section()
00082 {
00083 return section;
00084 }
00085
00086 void O_label::set_section(int sectionin)
00087 {
00088 section = sectionin;
00089 }
00090
00091
00092
00095 O_char::O_char() : O_label()
00096 {
00097 letter = ' ';
00098 }
00099
00101 O_char::O_char(char charin) : O_label()
00102 {
00104 duration = 1;
00105 letter = charin;
00106 }
00107
00109 O_char::O_char(const O_char & ocharin) : O_label(ocharin)
00110 {
00111 letter = ocharin.letter;
00112 }
00113
00114 char O_char::get_letter()
00115 {
00116 return letter;
00117 }
00118
00119 bool O_char::operator== (const O_char & other) const
00120 {
00122 return(letter == other.letter);
00123 }
00124
00125 ostream & operator<< (ostream & out, const O_char & charin)
00126 {
00127 out<<charin.letter;
00128 return(out);
00129 }
00130
00131
00132
00135 O_MIDI_mono::O_MIDI_mono() : O_label()
00136 {
00137 pitch = 60;
00138 velocity = 0;
00139 channel = 128;
00140 }
00141
00144 O_MIDI_mono::O_MIDI_mono(int pitchin, int velocityin, int statenbin, int bufferefin, int durationin, int phrasein, int sectionin) : O_label(statenbin, bufferefin, durationin, phrasein, sectionin)
00145 {
00146 pitch = pitchin;
00147 velocity = velocityin;
00148 }
00149
00150 O_MIDI_mono::O_MIDI_mono(const O_MIDI_mono & midin) : O_label(midin)
00151 {
00152 pitch = midin.pitch;
00153 velocity = midin.velocity;
00154 channel = midin.channel;
00155 }
00156
00157 int O_MIDI_mono::get_pitch()
00158 {
00159 return pitch;
00160 }
00161
00162 void O_MIDI_mono::set_pitch(int pitchin)
00163 {
00164 pitch = pitchin;
00165 }
00166
00167 int O_MIDI_mono::get_velocity()
00168 {
00169 return velocity;
00170 }
00171
00172 void O_MIDI_mono::set_velocity(int velocityin)
00173 {
00174 velocity = velocityin;
00175 }
00176
00177
00178 bool O_MIDI_mono::operator== (const O_MIDI_mono & other) const
00179 {
00181 return((pitch % 12) == (other.pitch % 12));
00182 }
00183
00186 ostream & operator<< (ostream & out, const O_MIDI_mono & midin)
00187 {
00188 out<<midin.pitch<<" "<<midin.velocity<<" ";
00189 out<<midin.phrase<<" "<<midin.bufferef<<endl;
00190 return(out);
00191 }
00192
00193
00194
00197 O_spectral::O_spectral() : O_label()
00198 {
00199 pitch = 60;
00200 energy = 0.0;
00201 }
00202
00205 O_spectral::O_spectral(int pitchin, list<float> & coeffin, int statenbin, int bufferefin, int durationin, int phrasein, int sectionin) : O_label(statenbin, bufferefin, durationin, phrasein, sectionin)
00206 {
00207 pitch = pitchin;
00208 if (!coeffin.empty())
00209 {
00210 energy = coeffin.front();
00211 coeffs = coeffin;
00212 }
00213 }
00214
00215 O_spectral::O_spectral(const O_spectral & spectralin) : O_label (spectralin)
00216 {
00217 pitch = spectralin.pitch;
00218 energy = spectralin.pitch;
00219 coeffs = spectralin.coeffs;
00220 }
00221
00222 int O_spectral::get_pitch()
00223 {
00224 return pitch;
00225 }
00226
00227 void O_spectral::set_pitch(int pitchin)
00228 {
00229 pitch = pitchin;
00230 }
00231
00232 float O_spectral::get_energy()
00233 {
00234 return energy;
00235 }
00236
00237 void O_spectral::set_energy(float energin)
00238 {
00239 energy = energin;
00240 }
00241
00242 void O_spectral::set_energy(list<float> & coeffin)
00243 {
00244 energy = coeffin.front();
00245 }
00246
00247 list<float>
00248 O_spectral::get_coeffs()
00249 {
00250 return coeffs;
00251 }
00252
00253 void O_spectral::set_coeffs(list<float> & coeffin)
00254 {
00255 if(!coeffin.empty())
00256 {
00257 energy = coeffin.front();
00258 coeffs = coeffin;
00259 }
00260 }
00261
00262
00263 bool O_spectral::operator== (const O_spectral & other) const
00264 {
00267 bool out = true;
00268 if (coeffs.size()!=other.coeffs.size())
00269 return false;
00270 list<float>::const_iterator it = ++coeffs.begin();
00271 list<float>::const_iterator otherit = ++other.coeffs.begin();
00272 while (out == true && it!=coeffs.end())
00273 {
00274 out = (*it == *otherit);
00275 it++;
00276 otherit++;
00277 }
00278 return out;
00279 }
00280
00281 ostream & operator<< (ostream & out, const O_spectral & spectralin)
00282 {
00283 out<<spectralin.pitch<<" : ";
00284 list<float>::const_iterator it;
00285 for (it = spectralin.coeffs.begin(); it!= spectralin.coeffs.end(); it++)
00286 out<<(*it)<<" ";
00287 out<<" : "<<spectralin.phrase<<" "<<spectralin.bufferef<<endl;
00288 return(out);
00289 }