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
Cleans the provided performance removing pitches that are too close together and notes the duration of each note
Parameters:
- Source:
Returns:
The cleaned input data
-
Type
-
Array.<CleanedPitchesPackage>
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:
- 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
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:
- 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
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
|
res |
*
|
|
- Source:
Returns:
The joined, parsed AlphaTex and lyrics. Otherwise, an error message if an error occured
-
Type
-
VisualizeGetJoinPackage
|
string
Type Definitions
Type:
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:
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:
Properties:
- Source:
ChoirGetReturnPackage
Type:
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:
Properties:
Name |
Type |
Description |
accessCode |
string
|
The access code of the generated choir |
- Source:
ChordTextPackage
Type:
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:
Properties:
Name |
Type |
Description |
midival |
number
|
The midi value of the note |
duration |
number
|
The duration of the note |
- Source:
ExerciseGetPackage
Type:
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:
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:
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:
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:
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:
Properties:
Name |
Type |
Description |
lyricText |
string
|
The lyrics of the provided AlphaTex |
alphaTex |
string
|
The generated AlphaTex |
- Source:
MeasureTempoAndTSPackage
Type:
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:
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:
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:
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:
Properties:
Name |
Type |
Description |
performance_id |
string
|
The ID of the newly generated performance data |
- Source:
NotePackage
Type:
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:
Properties:
- Source:
ParsedOutputMeasurePackage
Type:
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:
Properties:
- Source:
ParsedOutputPitchPackage
Type:
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:
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:
Properties:
Name |
Type |
Description |
name |
string
|
The name of the Track |
staffs |
Array.<ParsedOutputStaffPackage>
|
The collection of staffs |
- Source:
Type:
Properties:
- Source:
Type:
Properties:
Name |
Type |
Description |
pitches |
Array.<PitchPackage>
|
Collection of notes heard |
- Source:
Type:
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:
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:
Properties:
Name |
Type |
Description |
midival |
number
|
The midi value of the note |
timepos |
number
|
The start time of the note |
- Source:
ProgressDataPackage
Type:
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:
Properties:
- Source:
SheetMusicGetPartPackage
Type:
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:
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:
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:
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:
Properties:
Name |
Type |
Description |
tempTempo |
number
|
The last noted tempo |
tempTimeFactor |
number
|
The last noted Measure length |
- Source:
Type:
Properties:
Name |
Type |
Description |
tex |
string
|
The AlphaTex of this input |
lyrics |
object
|
Relates Staff indexes to lyric strings. |
- Source:
Collection of sheet music to be joined
Type:
- Source:
VisualizeGetJoinPackage
Type:
Properties:
Name |
Type |
Description |
parsedTex |
string
|
The parsed joined AlphaTex |
lyrics |
object
|
Relates Staff indexes to lyric strings. |
- Source: