Global

Methods

(async) checkAuth(req, res, next)

Middleware that verifies Firebase user and gets their uid using their authentication token in the header.
Parameters:
Name Type Description
req *
Properties
Name Type Description
headers.authorization string The authorization ID token
res *
next callback Next function to call
Source:

(async, inner) choir/get(req, res) → {ChoirGetPackage|string}

Route for getting all choir information
Parameters:
Name Type Description
req *
res *
Source:
Returns:
When successful, returns information about the choirs retrieved. Otherwise an error message
Type
ChoirGetPackage | string

(async, inner) choir/get/members(req, res) → {ChoirGetMembersPackage|string}

Route for getting all the members of a given choir if the user is verified to be in that choir
Parameters:
Name Type Description
req *
Properties
Name Type Description
query.choirId string The choir ID to be accessed
res *
Source:
Returns:
When successful, returns information about the members in the choir. Otherwise an error message
Type
ChoirGetMembersPackage | string

(async, inner) choir/post(req, res) → {ChoirPostPackage|string}

Route for adding a choir and sets the current user as the admin of that choir
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.choirName string The name of the choir to be created
body.description string A description of the choir to be created. Can't be undefined but can be null
body.memberType string The type of the member to be created as the initial member into the choir
body.memberRole string The role of the member to be created as the initial member into the choir
res *
Source:
Returns:
When successful, the access code of the generated choir. Otherwise, an error message
Type
ChoirPostPackage | string

clean(input) → {Array.<CleanedPitchesPackage>}

Cleans the provided performance removing pitches that are too close together and notes the duration of each note
Parameters:
Name Type Description
input PerformancePackage The percieved performance to be analyzed.
Source:
Returns:
The cleaned input data
Type
Array.<CleanedPitchesPackage>

cleanAndAnalyzePerformance(performanceData, sheetMusicData, partName, staffIndex, measureBounds, isDurationExercise) → {Array.<AnalyzedPerformancePackage>}

Cleans provided performance data and analyzes it comparing to the provided sheet music data of the specified track and staff number within the measure bounds provided
Parameters:
Name Type Description
performanceData PerformancePackage The performance object derivied from user performance
sheetMusicData ParsedOutputPackage Internalized object based on alphaTex for sheet music
partName string The name of the part to be analyzed in the sheet music
staffIndex number The number of the staff to be analyzed
measureBounds Array.<int> The bounds of the measures or null for all
isDurationExercise Boolean Whether this was a duration exercise performance
Source:
Returns:
An array of analyzed performance objects with information about each measure analyzed TODO: Make overall score based on duration as well
Type
Array.<AnalyzedPerformancePackage>

createEmptyProgressData(pData, trackName) → {ProgressDataPackage}

Creates an empty progress data array (a collection of scores per measure) and gets the index of the track matching the track name
Parameters:
Name Type Description
pData ParsedOutputPackage The parsed data
trackName string The name of the track to be accessed
Source:
Returns:
A new progress data and the track index for the track matching the requested track name
Type
ProgressDataPackage

(async) devGetUser(req, res, next)

Middleware that verifies Firebase user and gets their uid using email. NOTE: This is only meant for dev purposes. Never use this in production code.
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.email string The email of the user
res *
next callback Next function to call
Source:

differenceChecker(pitches, currentIndex, nextMidi, nextTimePos)

Checks if the pitch at the currentIndex is too close to the next note
Parameters:
Name Type Description
pitches Array.<PitchPackage> Collection of pitches
currentIndex number Current index into pitches
nextMidi number The midi value of the next note
nextTimePos number The start time of the next note
Source:

(async, inner) exercise/get(req, res) → {ExerciseGetPackage|string}

Route for getting an exercise within the given parameters if the user is a member of the choir attached to the given sheet music
Parameters:
Name Type Description
req *
Properties
Name Type Description
query.sheetMusicId string The sheet music ID to be accessed.
query.trackNumber number The track number to be accessed
query.staffNumber number The staff number to be accessed
query.measureStart number The start measure number for the exercise
query.measureEnd number The end measure number for the exercise
query.isDurationExercise boolean Whether the exercise should be a duration exercise or not
res *
Source:
Returns:
On success, a collection of information about the exercise. Otherwise, an error message.
Type
ExerciseGetPackage | string

(async) getAccessCode() → {string}

Generates and returns a unique access code for a Chior
Source:
Returns:
A 6 long unique access code
Type
string

getClefs(pData) → {Array.<Array.<string>>|Array.<string>}

Gets the clefs of each Staff
Parameters:
Name Type Description
pData ParsedOutputPackage The parsed data
Source:
Returns:
Clefs per Staff
Type
Array.<Array.<string>> | Array.<string>

getClient() → {Connection}

Every operation requiring a client should call this function, and not hold on to the resulting client reference.
Source:
Returns:
Type
Connection

getExpectedPerformance(pData, trackIndex, staffIndex, measureBounds, isDurationExercise) → {ExpectedPerformanceAndSizePackage}

Gets the expected performance of within the given bounds of the Staff at the specified index of the Track at the specified index
Parameters:
Name Type Description
pData ParsedOutputPackage The parsed data
trackIndex number The index of the Track to be accessed
staffIndex number The index of the Staff to be accessed
measureBounds Array.<number> The lower and upper bounds of the measures to be accessed. If null, then will retrieve all measures
isDurationExercise boolean If true then this is a duration exercise otherwise if false then it's not
Source:
Returns:
The expected performance and the number of measures returned
Type
ExpectedPerformanceAndSizePackage

getLowerAndUpper(noteStream) → {Array.<number>}

Gets the lower and upper bounds of the given note stream
Parameters:
Name Type Description
noteStream Array.<number> A stream of midi/duration numbers where the ith number is a midi value and the i+1th number is its duration for all i%2==0
Source:
Returns:
A 1D two valued array with the lower and upper midi values
Type
Array.<number>

getNoteStream(pData, partName) → {Array.<number>}

Gets the expected note stream of the part with the provided part name
Parameters:
Name Type Description
pData ParsedOutputPackage The parsed data
partName string The part (i.e. track) name to be accessed
Source:
Returns:
A 1D array of even size with the ith index as the midi value and the i+1 index as the duration of that note for i%2==0
Type
Array.<number>

getPartNames(pData) → {Array.<string>}

Gets the part names of the given data
Parameters:
Name Type Description
pData ParsedOutputPackage The parsed data
Source:
Returns:
The names of the parts (i.e. tracks)
Type
Array.<string>

join(pDataOne, pDataTwo, lyricsOne, lyricsTwo)

Combines two ParserOutput objects storing the result into the first provided argument NOTE: This changes the first object
Parameters:
Name Type Description
pDataOne ParserOutput Copy target. This will be changed by this function
pDataTwo ParserOutput Copy source.
lyricsOne object Lyrics per track. Expected mapping track index number to lyric string. Copy target. This will be changed by this function.
lyricsTwo object Lyrics per track. Expected mapping track index number to lyric string. Copy source.
Source:

(async, inner) member/delete(req, res) → {string}

Route for deleting a member from a choir by an admin
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.memberId string The member ID to be deleted.
res *
Source:
Returns:
An error message if an error occured
Type
string

(async, inner) member/get/all(req, res) → {string}

Route for getting all performance information about the given member
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.sheetMusicId string The sheet music ID to be accessed.
res *
Source:
Returns:
An error message if an error occured
Type
string

(async, inner) member/get/gets-feedback(req, res) → {MemberGetGetsFeedbackPackage|string}

Route for checking if this user gets feedback on sheet music if they are verified to be in the choir attached to the sheet music
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.choirId string The choir ID to be accessed. NOTE: Only need to pass choirId in body or query not both
query.choirId string The choir ID to be accessed. NOTE: Only need to pass choirId in body or query not both
res *
Source:
Returns:
On success, returns whether or not the user should get feedback. Otherwise, an error message.
Type
MemberGetGetsFeedbackPackage | string

(async, inner) member/get/pending(req, res) → {MemberGetPendingPackage|string}

Route for getting all members which are still pending to be added to the choir which this user is an admin to
Parameters:
Name Type Description
req *
Properties
Name Type Description
query.choirId string The choir ID to be accessed.
res *
Source:
Returns:
On success then information about the members who are pending. Otherwise, an error message.
Type
MemberGetPendingPackage | string

(async, inner) member/post(req, res) → {string}

Route for a non-admin attempting to join a choir. They are added as a pending member until an admin approves them
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.memberType string The type of the member to be created
body.memberRole string The role of the member to be created
body.accessCode string The access code of the choir to which to add the member
res *
Source:
Returns:
An error message if an error occured
Type
string

(async, inner) member/post/new/analysis(req, res) → {string}

Route for creating a new record of performance information and analyzing the results
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.sheetMusicId string The sheet music ID to be accessed
body.performanceData string The stringified performance data to be added
body.sheetMusicId string The sheet music that the performance is attached to
body.exerciseId string If not null, gives the ID of the exercise that this performance was based on. Otherwise null
body.isDurationExercise boolean Whether the performance was for a duration exercise
body.measureStart number The start measure number of the performance
body.measureEnd number The end measure number of the performance
res *
Source:
Returns:
An error message if an error occured
Type
string

(async, inner) member/post/new/no-analysis(req, res) → {MemberPostNewNoAnalysisPackage|string}

Route for creating a new record of performance information without analyzing the results
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.sheetMusicId string The sheet music ID to be accessed
body.performanceData string The stringified performance data to be added
body.sheetMusicId string The sheet music that the performance is attached to
body.exerciseId string If not null, gives the ID of the exercise that this performance was based on. Otherwise null
body.isDurationExercise boolean Whether the performance was for a duration exercise
body.measureStart number The start measure number of the performance
body.measureEnd number The end measure number of the performance
res *
Source:
Returns:
On success the ID of the newly generated performance generated. Otherwise, an error message.
Type
MemberPostNewNoAnalysisPackage | string

(async, inner) member/put/accept(req, res) → {string}

Route for an admin approving a pending member to joining a choir
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.choirId string The choir ID to be accessed.
body.memberId string The member ID to be accepted.
res *
Source:
Returns:
An error message if an error occured
Type
string

(async, inner) member/put/analysis(req, res) → {string}

Route for updating performance information and analyzing the results
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.sheetMusicId string The sheet music ID to be accessed
body.performanceData string The stringified performance data to be added
body.performanceId string The ID of the performance to which to append the latest performance data
body.sheetMusicId string The sheet music that the performance is attached to
body.exerciseId string If not null, gives the ID of the exercise that this performance was based on. Otherwise null
body.isDurationExercise boolean Whether the performance was for a duration exercise
body.measureStart number The start measure number of the performance
body.measureEnd number The end measure number of the performance
res *
Source:
Returns:
An error message if an error occured
Type
string

(async, inner) member/put/no-analysis(req, res) → {string}

Route for updating performance information without analyzing the results
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.sheetMusicId string The sheet music ID to be accessed.
body.performanceData string The stringified performance data to be added
body.performanceId string The ID of the performance to which to append the latest performance data
res *
Source:
Returns:
An error message if an error occured
Type
string

(async, inner) member/put/reject(req, res) → {string}

Route for an admin rejecting a pending member to joining a choir. This doesn't remove them from the list of members
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.choirId string The choir ID to be accessed.
body.memberId string The member ID to be rejected.
res *
Source:
Returns:
An error message if an error occured
Type
string

(async, inner) member/put/update(req, res) → {string}

Route for updating a member's information by an admin
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.memberId string The member ID to be accessed.
body.memberType string The new member type for the member
body.memberRole string The new member role for the member
res *
Source:
Returns:
An error message if an error occured
Type
string

(async, inner) performance-progress/get(req, res) → {PerformanceProgressGetPackage|string}

Route for getting the average of the stored graded performance information for the current user of the specified piece of sheet music
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.sheetMusicId string The sheet music ID to be accessed. NOTE: Only need to pass sheetMusicId in body or query not both
query.sheetMusicId string The sheet music ID to be accessed. NOTE: Only need to pass sheetMusicId in body or query not both
res *
Source:
Returns:
On success, the average score on each measure for this user's part in the given piece of sheet music. Otherwise, an error message.
Type
PerformanceProgressGetPackage | string

(async, inner) person/get(req, res) → {PersonGetPackage|string}

Route for getting person information for the current user
Parameters:
Name Type Description
req *
res *
Source:
Returns:
On success, information about the person. Otherwise, an error message.
Type
PersonGetPackage | string

(async, inner) person/post(req, res) → {string}

Route for adding a person
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.firstName string The first name of the Person to be created
body.lastName string The last name of the Person to be created
body.hasPicture boolean Whether the person uploaded a picture to Firebase during account creation
res *
Source:
Returns:
An error message if an error occured
Type
string

(async, inner) person/put(req, res) → {string}

Route for updating a person's information
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.firstName string Optional parameter. If provided, will set the first name of the Person to this value
body.lastName string Optional parameter. If provided, will set the last name of the Person to this value
body.hasPicture boolean Optional parameter. If provided, will set whether the Person has a picture to this value
res *
Source:
Returns:
An error message if an error occured
Type
string

processAlphaTab(input, lyricsPerStaff) → {ParserOutput}

Processes the provided alphaTex and returns the parsed object
Parameters:
Name Type Description
input string AlphaTex to be parsed
lyricsPerStaff object Relates Staff indexes to lyric strings.
Source:
Returns:
The parsed object form of the alphaTex
Type
ParserOutput

query(sql, args) → {Promise}

Performs a query using mysql
Parameters:
Name Type Description
sql string The SQL query to be processed
args Array.<string> The arguments to be passed into the SQL query
Source:
Returns:
Either a resolve with the results and fields or a reject with the error.
Type
Promise

replaceClientOnDisconnect(client)

Setup a client to automatically replace itself if it is disconnected.
Parameters:
Name Type Description
client Connection A MySQL connection instance.
Source:

(async, inner) sheet-music-part/get(req, res) → {SheetMusicPartGetPackage|string}

Route for getting only the user's part from the given sheet music. Creates AlphaTex with their part isolated
Parameters:
Name Type Description
req *
Properties
Name Type Description
query.sheetMusicId string The sheet music ID to be accessed
res *
Source:
Returns:
The created isolated sheet music and information about it. Otherwise, an error message if an error occured
Type
SheetMusicPartGetPackage | string

(async, inner) sheet-music-part/post(req, res) → {string}

Route for assigning a part to a user for a piece of sheet music
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.memberId string The member ID to be accessed
body.sheetMusicId string The sheet music ID for the part
body.part string The part to be assigned to the member
res *
Source:
Returns:
An error message if an error occured
Type
string

(async, inner) sheet-music/get(req, res) → {SheetMusicGetPackage|string}

Route for getting all sheet music for the choir matching the given choir ID
Parameters:
Name Type Description
req *
Properties
Name Type Description
query.choirId string The choir ID to be accessed.
res *
Source:
Returns:
Information about the sheet music retrieved. Otherwise, an error message if an error occured
Type
SheetMusicGetPackage | string

(async, inner) sheet-music/get/part(req, res) → {SheetMusicGetPartPackage|string}

Route for getting performance information about a specific part in a specific piece of sheet music
Parameters:
Name Type Description
req *
Properties
Name Type Description
query.sheetMusicId string The sheet music ID to be accessed.
query.partName string The name of the part to be retrieved
res *
Source:
Returns:
In-depth information about the part in the requested sheet music. Otherwise, an error message if an error occured
Type
SheetMusicGetPartPackage | string

(async, inner) sheet-music/get/specific(req, res) → {SheetMusicGetSpecificPackage|string}

Route for getting performance data and the AlphaTex for a specific piece of sheet music
Parameters:
Name Type Description
req *
Properties
Name Type Description
query.sheetMusicId string The sheet music ID to be accessed
res *
Source:
Returns:
In-depth information about the requested sheet music. Otherwise, an error message if an error occured
Type
SheetMusicGetSpecificPackage | string

(async, inner) sheet-music/post(req, res) → {string}

Route for adding a piece of sheet music
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.choirId string The choir ID to be accessed
body.encoding string The AlphaTex of the sheet music to be added
body.composerNames string Metadata about the creators of the sheet music
body.choirId string The ID of the choir to which to attach the sheet music
body.lyrics object Lyrics per staff as a space separated string for each lyric
res *
Source:
Returns:
An error message if an error occured
Type
string

(async) updateExerciseTable() → {string}

Creates or updates an exercise given the required information
Parameters:
Name Type Description
req.query.sheetMusicId string The sheet music ID to be accessed.
req.query.trackNumber number The track number to be accessed
req.query.staffNumber number The staff number to be accessed
req.query.measureStart number The start measure number for the exercise
req.query.measureEnd number The end measure number for the exercise
req.query.isDurationExercise boolean Whether the exercise should be a duration exercise or not
Source:
Returns:
If successful, the ID of the exercise generated or accessed. Otherwise, if an error occurs then null
Type
string

(async) verifyAdmin(req, res) → {boolean}

Middleware that verifies that the provided user is an admin of the provided choir
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.choirId string The choir ID to be accessed. NOTE: Only need to pass choirId in body or query not both
query.choirId string The choir ID to be accessed. NOTE: Only need to pass choirId in body or query not both
res *
Source:
Returns:
True if the user is an admin of the choir matching the provided choirId false otherwise
Type
boolean

(async) verifyAdminOfMember(req, res) → {string}

Middleware that verifies that the user is an admin of the provided member
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.memberId string The member ID to be accessed. NOTE: Only need to pass memberId in body or query not both
query.memberId string The member ID to be accessed. NOTE: Only need to pass memberId in body or query not both
res *
Source:
Returns:
Either the choir_id that the member is in if the user is an admin otherwise null
Type
string

(async) verifyMemberOfSheetMusic(req, res) → {string}

Middleware that verifies that the user is a member of the provided piece of sheet music and that they are verified
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.sheetMusicId string The sheet music ID to be accessed. NOTE: Only need to pass sheetMusicId in body or query not both
query.sheetMusicId string The sheet music ID to be accessed. NOTE: Only need to pass sheetMusicId in body or query not both
res *
Source:
Returns:
Either the choir_id if the user is a member otherwise null
Type
string

(async) verifyUserIsMember(req, res) → {boolean}

Middleware that verifies that the user's person_id matches the person_id of the member with the provided member's id
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.memberId string The member ID to be accessed. NOTE: Only need to pass memberId in body or query not both
query.memberId string The member ID to be accessed. NOTE: Only need to pass memberId in body or query not both
res *
Source:
Returns:
True if the user's person_id matches false otherwise
Type
boolean

(async) verifyUserIsVerified(req, res) → {boolean}

Middleware that verifies that the user is verified in the given choir
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.choirId string The choir ID to be accessed. NOTE: Only need to pass choirId in body or query not both
query.choirId string The choir ID to be accessed. NOTE: Only need to pass choirId in body or query not both
res *
Source:
Returns:
Whether the user is verified in the given choir
Type
boolean

(async, inner) visualize/get(req, res) → {ParserOutput|string}

Route for getting the parsed object of given AlphaTex. WARNING: This is meant only for development purposes. It is not be enabled during production.
Parameters:
Name Type Description
req *
Properties
Name Type Description
query.tex string The AlphaTex to be processed
query.lyrics object Relates Staff indexes to lyric strings
res *
Source:
Returns:
The parsed object of the AlphaTex. Otherwise, an error message if an error occured
Type
ParserOutput | string

(async, inner) visualize/get/join(req, res) → {VisualizeGetJoinPackage|string}

Route for joining two pieces of sheet music WARNING: This is meant only for development purposes. It is not be enabled during production.
Parameters:
Name Type Description
req *
Properties
Name Type Description
body.pDataArray VisualizeGetJoinInputArray
res *
Source:
Returns:
The joined, parsed AlphaTex and lyrics. Otherwise, an error message if an error occured
Type
VisualizeGetJoinPackage | string

Type Definitions

AnalyzedPerformancePackage

Type:
  • object
Properties:
Name Type Description
durationDifference number The calculated error in duration for that measure (big is bad)
pitchDifference number The calculated score in pitch for the that measure (big is good)
followBadMeasures number The number of measures following this one that are worse than it
overallScore number Scaled overall score for that measure (100 is perfect)
measureNumber number The measure number for this information
Source:

ChoirGetMembersPackage

Information about the retrieved members from the choir
Type:
Source:

ChoirGetMembersReturnPackage

Type:
  • object
Properties:
Name Type Description
first_name string The first name of the member
last_name string The last name of the member
member_role string The role of the member
person_id string The ID of the person attached to the member
has_picture boolean Whether the given member is attached to a person with a profile picture or not
Source:

ChoirGetPackage

Type:
  • object
Properties:
Name Type Description
choirs Array.<ChoirGetReturnPackage> Information on each choir retrieved
Source:

ChoirGetReturnPackage

Type:
  • object
Properties:
Name Type Description
choir_id string The ID of the choir
choir_name string The name of the choir
description string A description of the choir
Source:

ChoirPostPackage

Type:
  • object
Properties:
Name Type Description
accessCode string The access code of the generated choir
Source:

ChordTextPackage

Type:
  • object
Properties:
Name Type Description
chordText string The AlphaTex of the Chord
lyricText string The lyrics that go along with the Chord
lyricArrayIndex number The latest index in the lyricArray
Source:

CleanedPitchesPackage

Type:
  • object
Properties:
Name Type Description
midival number The midi value of the note
duration number The duration of the note
Source:

ExerciseGetPackage

Type:
  • object
Properties:
Name Type Description
sheet_music string The Tex for the exercise
part_list Array.<string> A list of the part names of the AlphaTex
clefs Array.<string> A list of clefs per staff
performance_expectation Array.<number> A 1D array of even size with the ith index as the midi value and the i+1 index as the duration of that note for i%2==0
lower_upper Array.<number> A 1D two valued array with the lower and upper midi values
measure_lengths Array.<number> A collection of the lengths of each Measure. The ith index contains the length in seconds of the i+1 Measure
part string The name of the main exercise to be rendered
Source:

ExpectedNotePackage

Type:
  • object
Properties:
Name Type Description
duration number The duration in seconds of the note
measureNumber number The measure number that this note belongs to
midiValue number The midi value of the note
Source:

ExpectedPerformanceAndSizePackage

Properties:
Name Type Description
expectedPerformance Array.<ExpectedNotePackage> The expected performance of the Track and Staff within the given bounds of the given type
measureSize number The number of measures included in expected performance
Source:

LyricArrayPackage

Type:
  • object
Properties:
Name Type Description
lyricArray Array.<string> Collection of lyrics for a Staff
lyricArrayIndex number The latest index into lyricArray to add lyrics to lyricArray
Source:

LyricPackage

Type:
  • object
Properties:
Name Type Description
tempLyricText string The lyric text for this note or empty string
lyricArrayIndex number The latest lyric index into lyricArray
Source:

MeasureAlphaTexPackage

Type:
  • object
Properties:
Name Type Description
lyricText string The lyrics of the provided AlphaTex
alphaTex string The generated AlphaTex
Source:

MeasureTempoAndTSPackage

Type:
  • object
Properties:
Name Type Description
measureToTempo Array.<number> Array where the element at the ith index is the tempo for the i+1 measure number
ts Array.<number> A 1D 2 element array representing the last time signature read
Source:

MeasureTextPackage

Type:
  • object
Properties:
Name Type Description
measureText string The AlphaTex for the Measure
lyricsText string The lyrics that go along with the Measure
tempLyricIndex number The latest index in the lyricArray
Source:

MemberGetGetsFeedbackPackage

Type:
  • object
Properties:
Name Type Description
gets_feedback boolean Whether the user gets feedback or not
Source:

MemberGetPendingPackage

List of information about the pending members
Type:
Source:

MemberGetPendingReturnPackage

Type:
  • object
Properties:
Name Type Description
member_id string The ID of the member
first_name string The first name of the member
email string The email of the member
member_type string The type of the member
member_role string The role of the member
has_picture boolean Whether the person attached to the member has a profile picture
Source:

MemberPostNewNoAnalysisPackage

Type:
  • object
Properties:
Name Type Description
performance_id string The ID of the newly generated performance data
Source:

NotePackage

Type:
  • Object
Properties:
Name Type Description
tex string The generated AlphaTex
duration number The duration of the note
effects object
Properties
Name Type Description
effectsBefore Map The effects needed to be placed before the "." for the note
effectsAfter Map The effects needed to be placed after the duration for the note
Source:

ParsedOutputChordPackage

Type:
  • object
Properties:
Name Type Description
pitches Array.<ParsedOutputPitchPackage> | ParsedOutputPitchPackage The collection of the Pitches
Source:

ParsedOutputMeasurePackage

Type:
  • object
Properties:
Name Type Description
attributesStr Map Mapping from String attributes to String values
attributesInt Map Mapping from String attributes to number values
chords Array.<ParsedOutputChordPackage> | ParsedOutputChordPackage The collection of the Chords
Source:

ParsedOutputPackage

Type:
  • object
Properties:
Name Type Description
tracks Array.<ParsedOutputTrackPackage> | ParsedOutputTrackPackage The collection of tracks
Source:

ParsedOutputPitchPackage

Type:
  • object
Properties:
Name Type Description
midiValue number The midi value of the Pitch
duration number The duration in seconds of the Pitch
beatEffects Set A collection of String beat effects that affect the Pitch
noteEffects Set A collection of String note effects that affect the Pitch
Source:

ParsedOutputStaffPackage

Type:
  • object
Properties:
Name Type Description
name string The name of the Staff prepended by "staff_"
keySignature string The key signature of the Staff
lyrics Array.<string> Optional. If present, contains the lyrics of the Staff
clef string Optional. If present, contains the clef of the Staff
measures Array.<ParsedOutputMeasurePackage> | ParsedOutputMeasurePackage The collection of the Measures
Source:

ParsedOutputTrackPackage

Type:
  • object
Properties:
Name Type Description
name string The name of the Track
staffs Array.<ParsedOutputStaffPackage> The collection of staffs
Source:

PerformacePackage

Type:
  • object
Properties:
Name Type Description
pitches Array.<CleanedPitchesPackage> The clean pitches from the performance
Source:

PerformancePackage

Type:
  • object
Properties:
Name Type Description
pitches Array.<PitchPackage> Collection of notes heard
Source:

PerformanceProgressGetPackage

Type:
  • object
Properties:
Name Type Description
averagePerformance Array.<number> The average score of each measure of the provided sheet music of the user's part. The ith index is the score for the i+1 measure number
Source:

PersonGetPackage

Type:
  • object
Properties:
Name Type Description
first_name string The first name of the person
last_name string The last name of the person
has_picture boolean Whether the person has a picture on the firebase database
Source:

PitchPackage

Type:
  • Object
Properties:
Name Type Description
midival number The midi value of the note
timepos number The start time of the note
Source:

ProgressDataPackage

Type:
  • object
Properties:
Name Type Description
progressData Array.<number> A score per measure representing how well they are doing with that measure (scale 0-100)
trackIndex number The index of the track for which the progress data applies
Source:

SheetMusicGetPackage

Type:
  • object
Properties:
Name Type Description
sheet_music Array.<SheetMusicGetReturnPackage> Information about each piece of sheet music
Source:

SheetMusicGetPartPackage

Type:
  • object
Properties:
Name Type Description
performance_expectation Array.<number> A 1D array of even size with the ith index as the midi value and the i+1 index as the duration of that note for i%2==0
lower_upper Array.<number> A 1D two valued array with the lower and upper midi values
measure_lengths Array.<number> A collection of the lengths of each Measure. The ith index contains the length in seconds of the i+1 Measure
Source:

SheetMusicGetReturnPackage

Type:
  • object
Properties:
Name Type Description
sheet_music_id string The ID of the sheet music
title string The title of the sheet music
composer_names string Metadata about the creators of the sheet music
Source:

SheetMusicGetSpecificPackage

Type:
  • object
Properties:
Name Type Description
sheet_music string The AlphaTex of the sheet music
part_list Array.<string> A list of the part (i.e. track) names
clefs Array.<string> The clefs per staff
part string If not null, then the part of the current user in the sheet music
Source:

SheetMusicPartGetPackage

Type:
  • object
Properties:
Name Type Description
sheet_music string The created AlphaTex isolating the user's part
part_list Array.<string> A list of part (i.e. track) names in the generated AlphaTex
clefs Array.<string> Clefs per staff
performance_expectation Array.<number> A 1D array of even size with the ith index as the midi value and the i+1 index as the duration of that note for i%2==0
lower_upper Array.<number> A 1D two valued array with the lower and upper midi values
measure_lengths Array.<number> A collection of the lengths of each Measure. The ith index contains the length in seconds of the i+1 Measure
exerciseId string The ID of the exercise created
Source:

TempoTimePackage

Type:
  • object
Properties:
Name Type Description
tempTempo number The last noted tempo
tempTimeFactor number The last noted Measure length
Source:

VisualizeGetJoinInput

Type:
  • object
Properties:
Name Type Description
tex string The AlphaTex of this input
lyrics object Relates Staff indexes to lyric strings.
Source:

VisualizeGetJoinInputArray

Collection of sheet music to be joined
Type:
Source:

VisualizeGetJoinPackage

Type:
  • object
Properties:
Name Type Description
parsedTex string The parsed joined AlphaTex
lyrics object Relates Staff indexes to lyric strings.
Source: