Announcing BPM (beats per minute) and key analysis.
FastMusicalAnalysis
and FullScaleMusicalAnalysis
are deprecated as of June 15 2021. Please use the AudioAnalysisV6
.
It is now possible to extract BPM and key from audio files using FastMusicalAnalysis
and FullScaleMusicalAnalysis
.
We added the new GraphQL fields fastMusicalAnalysis
and fullScaleAnalysis
on the InDepthAnalysis
interface type.
Both return a union type that represents the status of the analysis as well as the data available on that stage of analysis.
The FullScaleMusical
analysis and FastMusicalAnalysis
will be enqueued automatically by using the inDepthAnalysisEnqueueAnalysis
mutation.
For songs that have been analyzed prior, the analysis can be manually re-enqueued with the inDepthAnalysisEnqueueAnalysis
mutation.
Webhook events are both sent for the FullScaleMusical
and FastMusicalAnalysis
.
New GraphQL types:
interface InDepthAnalysis {
fastMusicalAnalysis: FastMusicalAnalysis!
fullScaleMusicalAnalysis: FullScaleMusicalAnalysis!
}
type InvalidAudioFileError implements Error {
message: String!
}
union FastMusicalAnalysisError = InvalidAudioFileError
union FullScaleMusicalAnalysisError = InvalidAudioFileError
type KeyPrediction {
values: [String!]!
confidences: [Float!]!
}
type FastMusicalAnalysisResult {
bpm: Float!
key: KeyPrediction!
}
type FastMusicalAnalysisNotStarted {
_: Boolean
}
type FastMusicalAnalysisEnqueued {
_: Boolean
}
type FastMusicalAnalysisProcessing {
_: Boolean
}
type FastMusicalAnalysisFinished {
result: FastMusicalAnalysisResult!
}
type FastMusicalAnalysisFailed {
error: FastMusicalAnalysisError!
}
union FastMusicalAnalysis =
FastMusicalAnalysisNotStarted
| FastMusicalAnalysisEnqueued
| FastMusicalAnalysisProcessing
| FastMusicalAnalysisFinished
| FastMusicalAnalysisFailed
type FullScaleMusicalAnalysisResult {
bpm: Float!
key: KeyPrediction!
}
type FullScaleMusicalAnalysisNotStarted {
_: Boolean
}
type FullScaleMusicalAnalysisEnqueued {
_: Boolean
}
type FullScaleMusicalAnalysisProcessing {
_: Boolean
}
type FullScaleMusicalAnalysisFinished {
result: FullScaleMusicalAnalysisResult!
}
type FullScaleMusicalAnalysisFailed {
error: FullScaleMusicalAnalysisError!
}
union FullScaleMusicalAnalysis =
FullScaleMusicalAnalysisNotStarted
| FullScaleMusicalAnalysisEnqueued
| FullScaleMusicalAnalysisProcessing
| FullScaleMusicalAnalysisFinished
| FullScaleMusicalAnalysisFailed