topical media & game development 
  
 
 
 
 
  
    
    
  
actionscript-omr-lib-Pitch.ax
actionscript-omr-lib-Pitch.ax
[swf]
 
flex
  package 
  {
          public class @ax-actionscript-omr-lib-Pitch
          {
                  private var octave:int;
                  private var tone:int;
                  public function @ax-actionscript-omr-lib-Pitch(octave:int, tone:int)
                  {
                          
                          this.octave = octave;
                          if (octave==4){
                                  //treble clef
                                  //0-23, 5 = c5, 4 =a4
                                  //0 is F6
                                  
                                  
                          }
                          
                          
                          this.tone=tone;
                          
                  }
                  
                  
                  public function getnoteName():String{
  F6 = 23
                        //done with switch, not very elegant but it does the job, tables of 12 are just as bad
                        switch (tone) {
        case 23:
                return "F6"
                break;
        case 22:
                return "E6"
                break;
        case 21:
                return "DS6"
                break;
        case 20:
                return "D6"
                break;
        case 19:
                return "CS6"
                break;
        case 18:
                return "C6"
                break;
        case 17:
                return "B5"
                break;
        case 16:
                return "AS5"
                break;
        case 15:
                return "A5"
                break;
        case 14:
                return "GS5"
                break;
        case 13:
                return "G5"
                break;
        case 12:
                return "FS5"
                break;
        case 11:
                return "F5"
                break;
        case 10:
                return "E5"
                break;
        case 9:
                return "DS5"
                break;
        case 8:
                return "D5"
                break;
        case 7:
                return "CS5"
                break;
        case 6:
                return "C5"
                break;
        case 5:
                return "B4"
                break;
        case 4:
                return "AS4"
                break;
        case 3:
                return "A4"
                break;
        case 2:
                return "GS4"
                break;
        case 1:
                return "G4"
                break;
        case 0:
                return "AS4"
                break;
        
        default:
                return "";
                trace ( " no case tested true " )
}
                  }
                  public function getFrequency():Number{
                          //returns frequency in Hertz
                          //notes separated by facor 2^12
                          //octave value is the value used for clef indication
                          //Go from 0 = octave+2
                          //F6 = 1396.9hz,  23 in 0-23 scale 
                          var f6:Number = 1396.9;
                          var noteFrequency:Number = f6 * (2^(-tone/12));
                          
                          return noteFrequency;
                  }
  
          }
  }
  
  
(C) Æliens 
27/08/2009
You may not copy or print any of this material without explicit permission of the author or the publisher. 
In case of other copyright issues, contact the author.