Saxophone Player’s Friend

Sax­o­phone Play­er’s Friend is an appli­ca­tion that grew out of the Com­poser’s Friend JavaScript library. As the name sug­gests, it aims at help­ing begin­ner sax­o­phone play­ers to learn to play the notes on their instru­ment. Present­ly the only type of sax­o­phone sup­port­ed is Alto sax. How­ev­er, more lay­outs can eas­i­ly be imple­ment­ed on demand. Below I touch upon the fea­tures of this tool.

Per­ma­nent link to appli­ca­tion: (you will be redi­rect­ed to GitHub pages when you fol­low the link)


Fingering Chart Visualization

At the core of the appli­ca­tion lies the fin­ger­ing chart visu­al­iz­er which also sep­a­rates left and right hand fin­ger­ings using col­or dif­fer­en­ti­a­tion. Under the fin­ger­ing dia­gram the dis­played note will also be dis­played on a stan­dard stave in alto sax­o­phone pitch. By default, three fin­ger­ing charts are dis­played: in the mid­dle, the cur­rent note, the past note to the left, and the next note to the right. This makes it easy to prac­tice progressions.

Overall Interaction Mechanics

The appli­ca­tion was intend­ed pri­mar­i­ly to sim­pli­fy trans­fer of song mate­r­i­al from the con­cert pitch to alto sax­o­phone pitch11The con­cert pitch is the key of C, while the sax­o­phone as a trans­pos­ing instru­ment is in the key of Ab. Note names will be writ­ten the same, but they will dif­fer by a major sixth in pitch.. Since it is based on this con­cept, note entry is by default achieved in three ways:

  1. Using the Cir­cle of Fifths in alto sax pitch;
  2. Using a piano key­board in con­cert pitch;
  3. Using a gui­tar fret­board in con­cert pitch.

Only the first case needs a bit of expla­na­tion as oth­ers are intu­itive. When the user selects a scale, notes on the note rela­tion­ship dia­gram are auto­mat­i­cal­ly gen­er­at­ed. The user can then click one the notes in any order and they will be imme­di­ate­ly trans­ferred to the note play­er (read below). Thus, one can prac­tice scales, enter notes, or even com­pose a melody using the rela­tion­ship diagram.

The Note Player

The note play­er is a com­pre­hen­sive tool with play­back and record­ing fea­tures and sup­port for song parts. All notes are treat­ed as first class cit­i­zens and get their own con­tain­er that can be dragged around to rearrange the com­po­si­tion and mod­i­fied in var­i­ous ways:

  1. The dura­tion can be changed22Sax­o­phone play­er’s friend cur­rent­ly sup­ports more note dura­tion types than the library it’s based upon;
  2. Note dura­tion can be extend­ed via con­sec­u­tive sus­tained notes;
  3. Any note can be con­vert­ed to a rest and eas­i­ly con­vert­ed back as need­ed. Rests can also be extend­ed using the sus­tain approach.

There­fore, the play­er can be used to com­pose pro­gres­sions in sev­er­al parts. Whole com­po­si­tions may be export­ed or import­ed as plain text.

The record fea­ture cur­rent­ly only sup­ports one source, which is MIDI input that can be cho­sen from the options. When the song is record­ed, the MIDI note lengths are stored in a tem­po­rary buffer and notes are entered as usual—note by note with a fixed dura­tion. But when the record but­ton is depressed, all the notes are auto­mat­i­cal­ly updat­ed tak­ing into account their com­plete dura­tion with the cur­rent tem­po set­ting. This can be use­ful for trans­fer­ring com­po­si­tions into the play­er via MIDI files.

Note, that dur­ing MIDI entry, only the cur­rent note is shown across all fin­ger­ing charts in the visu­al­iz­er tab.

MIDI I/O Interface

The tool brings full MIDI fea­ture set if used in sup­port­ed browsers (like Chrome, for example):

  1. MIDI input can be used to enter notes one-by-one. If record­ing is enabled at the same time, note lengths will be tak­en into account after the record but­ton is depressed.
  2. MIDI out­put can be used to play the song in a dif­fer­ent MIDI appli­ca­tion33Use a vir­tu­al MIDI dri­ver to con­nect those. or MIDI device. By default, the alto sax­o­phone patch pro­gram change mes­sage is sent out on ini­tial­iza­tion, so the cor­rect instru­ment should be select­ed auto­mat­i­cal­ly if using, e.g., an appli­ca­tion with soundfonts.

This fea­ture is a work-in-progress and will be grad­u­al­ly updated.