void conversion(caracter){ char op,op1,op2; int i; switch(op){ case +: op1 = sacarS(); op2 = sacarS(); meterS(atoi(op1) + atoi(op2)); break; case -: op1 = sacarS(); op2 = sacarS(); meterS(atoi(op1) - atoi(op2)); break; case *: op1 = sacarS(); op2 = sacarS(); meterS(atoi(op1) * atoi(op2)); break; case /: op1 = sacarS(); op2 = sacarS(); meterS(atoi(op1) / atoi(op2)); break; case ^: op1 = sacarS(); op2 = sacarS(); meterS(atoi(op1) ^ atoi(op2)); break; default: meterS(op); break; } }
void CGuidoCreator::empty(int numerator, int denominator,int dots) { clefS(); keyS(); meterS(); fprintf(file,"empty"); if( (numerator!=lastNoteNumerator) || (denominator!=lastNoteDenominator) || (dots!=lastNoteDots) ){ fprintf(file,"*%i/%i",numerator,denominator); lastNoteDenominator=denominator; lastNoteNumerator=numerator; lastNoteDots=dots; } for(int i=0;i<dots;i++){fprintf(file,".");} fprintf(file," "); }
void CGuidoCreator::note(char pitch, int chromatic, int octave, int durNumerator, int durDenominator, int dispNumerator, int dispDenominator, int dispDots) { clefS(); keyS(); meterS(); //calculate durations float realDuration= (float(durNumerator))/(float(durDenominator)); float dispDuration= (float(dispNumerator))/(float(dispDenominator)); if(dispDots==1){dispDuration*=1.5;} if(dispDots==2){dispDuration*=1.75;} //now we can decide, how the note tag is created if(realDuration==dispDuration){ //the printed duration is the real duration: note(pitch,chromatic,octave,dispNumerator,dispDenominator,dispDots); } else { //the printed duration differs from the real duratioon fprintf(file,"\\dispDur<%i,%i,%i>( ",dispNumerator,dispDenominator,dispDots); note(pitch,chromatic,octave,durNumerator,durDenominator,0); fprintf(file,") "); } }//note
void CGuidoCreator::note(char pitch, int chromatic, int octave, int numerator, int denominator, int dots) { clefS(); keyS(); meterS(); if(inChord){ notesInChord++; if(notesInChord>1){ fprintf(file,","); } } if(pitch=='_'){ fprintf(file,"_"); } else { fprintf(file,"%c",pitch); switch(chromatic){ case -2:fprintf(file,"&&");break; case -1:fprintf(file,"&"); break; case 1:fprintf(file,"#"); break; case 2:fprintf(file,"##");break; } if(lastNoteOctave!=octave){ fprintf(file,"%i",octave); lastNoteOctave=octave; } } if( (numerator!=lastNoteNumerator) || (denominator!=lastNoteDenominator) || (dots!=lastNoteDots) ){ fprintf(file,"*%i/%i",numerator,denominator); lastNoteDenominator=denominator; lastNoteNumerator=numerator; lastNoteDots=dots; } for(int i=0;i<dots;i++){fprintf(file,".");} fprintf(file," "); }//note