33#include <math.h>
44
55int64_t Quantize_GetNearestBeatMs (TrackState * track , int64_t currentMs ) {
6- if (!track || track -> BeatGridCount == 0 ) return currentMs ;
6+ if (!track || track -> BeatGridCount == 0 || ! track -> BeatGrid ) return currentMs ;
77
88 // Find closest beat in BeatGrid array
99 int64_t closestBeatMs = (int64_t )track -> BeatGrid [0 ].Time ;
@@ -24,13 +24,13 @@ int64_t Quantize_GetNearestBeatMs(TrackState *track, int64_t currentMs) {
2424}
2525
2626int32_t Quantize_GetPhaseErrorMs (TrackState * track , int64_t currentMs ) {
27- if (!track || track -> BeatGridCount == 0 ) return 0 ;
27+ if (!track || track -> BeatGridCount == 0 || ! track -> BeatGrid ) return 0 ;
2828 int64_t nearest = Quantize_GetNearestBeatMs (track , currentMs );
2929 return (int32_t )(currentMs - nearest );
3030}
3131
3232int32_t Quantize_GetWaitMs (TrackState * track , int64_t currentMs ) {
33- if (!track || track -> BeatGridCount == 0 ) return 0 ;
33+ if (!track || track -> BeatGridCount == 0 || ! track -> BeatGrid ) return 0 ;
3434
3535 // Look forward for the *next* or *current* beat grid marker
3636 for (int i = 0 ; i < track -> BeatGridCount ; i ++ ) {
@@ -42,7 +42,7 @@ int32_t Quantize_GetWaitMs(TrackState *track, int64_t currentMs) {
4242}
4343
4444double Quantize_GetBeatDistance (TrackState * track , int64_t currentMs ) {
45- if (!track || track -> BeatGridCount < 2 ) return 0.0 ;
45+ if (!track || track -> BeatGridCount < 2 || ! track -> BeatGrid ) return 0.0 ;
4646
4747 for (int i = 0 ; i < track -> BeatGridCount - 1 ; i ++ ) {
4848 if (currentMs >= (int64_t )track -> BeatGrid [i ].Time && currentMs < (int64_t )track -> BeatGrid [i + 1 ].Time ) {
@@ -57,7 +57,7 @@ double Quantize_GetBeatDistance(TrackState *track, int64_t currentMs) {
5757}
5858
5959int Quantize_GetCurrentBeat (TrackState * track , int64_t currentMs ) {
60- if (!track || track -> BeatGridCount == 0 ) return 1 ;
60+ if (!track || track -> BeatGridCount == 0 || ! track -> BeatGrid ) return 1 ;
6161 for (int i = 0 ; i < track -> BeatGridCount ; i ++ ) {
6262 if ((int64_t )track -> BeatGrid [i ].Time > currentMs ) {
6363 if (i == 0 ) return track -> BeatGrid [0 ].BeatNumber ;
@@ -68,7 +68,7 @@ int Quantize_GetCurrentBeat(TrackState *track, int64_t currentMs) {
6868}
6969
7070float Quantize_GetBeatFXLengthMs (TrackState * track , float targetRatio ) {
71- if (!track || track -> BeatGridCount < 2 ) return 0.0f ;
71+ if (!track || track -> BeatGridCount < 2 || ! track -> BeatGrid ) return 0.0f ;
7272
7373 // Calculate average ms per beat from the grid
7474 int count = track -> BeatGridCount ;
0 commit comments