Skip to content

DJLoopAnalyzer

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:24

Complete DJ Loop Analyzer Class Provides intelligent loop analysis, similarity matching, and organization

new DJLoopAnalyzer(): DJLoopAnalyzer

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:25

DJLoopAnalyzer

analysisCache: Map<any, any>

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:29


clusters: any

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:28


loops: Map<any, any>

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:26


similarityMatrix: any[]

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:27

analyzeClusterCharacteristics(members): any

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:418

Analyze cluster characteristics — every value is measured from the member loops (no fabricated defaults).

any[]

Cluster member loop objects

any

Cluster characteristics


analyzeLoop(audioBuffer, metadata?): Promise<any>

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:38

Analyze a loop and extract all features

AudioBuffer

Audio buffer to analyze

any = {}

Additional metadata

Promise<any>

Complete loop analysis


analyzeStructure(onsetEnv, beatTimes): object

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:763

any

any

object

beatCount: any = beatTimes.length

hasBreakdown: any

hasDrop: any

structuralComplexity: number


calculateChromaSimilarity(loop1, loop2): number

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:229

Calculate chroma similarity using DTW

any

First loop

any

Second loop

number

Similarity score (0-1)


calculateComplexity(features): number

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:617

any

number


calculateEnergySimilarity(loop1, loop2): number

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:306

Calculate energy similarity

any

First loop

any

Second loop

number

Similarity score (0-1)


calculateKeyCompatibility(key1, key2): number

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:320

Calculate key compatibility using Camelot Wheel

any

First key

any

Second key

number

Compatibility score (0-1)


calculateOverallEnergy(features): number

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:605

any

number


calculateTempoSimilarity(loop1, loop2, tolerance): number

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:276

Calculate tempo similarity

any

First loop

any

Second loop

number

BPM tolerance

number

Similarity score (0-1)


clusterLoops(nClusters?): any[]

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:379

Cluster loops into similar groups

number = 5

Number of clusters

any[]

Cluster results


computeChromaMean(chroma): Float32Array<ArrayBuffer>

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:590

any

Float32Array<ArrayBuffer>


computeStructuralComplexity(onsetEnv): number

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:799

Structural complexity measured from the onset envelope. The envelope is split into up to 16 equal segments; the coefficient of variation of the per-segment mean energy is soft-squashed to [0, 1) via cv / (1 + cv). A steady loop has near-uniform segment energy (low value); breakdowns, drops and build-ups raise the segment-to-segment variance (high value). Measured from the signal — never a fabricated constant, never NaN.

ArrayLike<number>

Onset strength envelope

number

Complexity in [0, 1)


estimateKey(chroma): object

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:635

Krumhansl-Schmuckler key estimation: Pearson correlation between the mean chroma vector and each rotated key profile. Confidence is the best correlation clamped to [0, 1] — a normalized figure, not the raw (scale-dependent) profile dot product.

any

object

confidence: number

key: string = bestKey

mode: string

tonic: string


extractAllFeatures(audioData, sampleRate): Promise<any>

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:90

Extract comprehensive audio features

Float32Array<ArrayBufferLike>

Audio time series

number

Sample rate

Promise<any>

Extracted features


extractEnergyFeatures(audioData, onsetEnv): object

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:741

any

any

object

crest_factor: number = crestFactor

dynamic_range: number = crestFactor

onset_density: number

peak: number

rms: number


extractTimbralFeatures(audioData, sampleRate): object

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:724

Timbral descriptors, measured from the signal (documented proxies):

  • brightness: mean spectral centroid normalized by Nyquist (0..1)
  • roughness: mean spectral flatness (0 tonal .. 1 noisy)
  • warmth: 1 − mean spectral rolloff (85%) / Nyquist (0..1)

Float32Array<ArrayBufferLike>

number

object

brightness: number

roughness: number

warmth: number


fallbackChromaSimilarity(loop1, loop2): number

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:251

Fallback chroma similarity using mean vectors

any

First loop

any

Second loop

number

Similarity score


fallbackClustering(nClusters): any[]

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:462

Fallback clustering by tempo

number

Number of clusters

any[]

Tempo-based clusters


findSimilarLoops(loopId, options?): any[]

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:155

Find similar loops using DTW and multiple feature comparison

string

Target loop ID

any = {}

Search options

any[]

Similar loops ranked by similarity


generateCacheKey(audioData): string

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:581

Helper methods

any

string


generateTags(features): any[]

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:545

Generate automatic tags based on features

any

Extracted features

any[]

Generated tags


getHarmonicMixingOptions(currentLoopId): any[]

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:499

Get harmonic mixing suggestions

string

Currently playing loop

any[]

Harmonically compatible loops


updateSimilarityMatrix(): void

Defined in: packages/pleco-xa/src/scripts/dj-loop-analyzer.js:826

void