Repository Analysis

librosa/librosa

Python library for audio and music analysis

16.3 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of librosa/librosa, a Python project with 8,580 GitHub stars. SynthScan v2.0 examined 59,130 lines of code across 129 source files, recording 760 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 16.3 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

16.3
Adjusted Score
16.3
Raw Score
100%
Time Factor
2026-08-22
Last Push
8.6K
Stars
Python
Language
59.1K
Lines of Code
129
Files
760
Pattern Hits
2026-08-29
Scan Date
0.02
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 3MEDIUM 100LOW 657

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 760 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers318 hits · 318 pts
SeverityFileLineSnippetContext
LOWlibrosa/effects.py618def _signal_to_frame_nonsilent(CODE
LOWlibrosa/core/convert.py1551def fourier_tempo_frequencies(CODE
LOWlibrosa/core/convert.py2021def multi_frequency_weighting(CODE
LOWlibrosa/core/pitch.py369def _cumulative_mean_normalized_difference(CODE
LOWlibrosa/util/matching.py53def __match_interval_overlaps(query, intervals_to, candidates): # pragma: no coverCODE
LOWtests/test_sequence.py677def test_trans_local_nstates_fail(n):CODE
LOWtests/test_sequence.py683def test_trans_local_width_fail(width):CODE
LOWtests/test_sequence.py687def test_trans_local_wrap_const():CODE
LOWtests/test_sequence.py45def test_viterbi_multichannel():CODE
LOWtests/test_sequence.py121def test_viterbi_negative_minprob():CODE
LOWtests/test_sequence.py137def test_viterbi_discriminative_negative_minprob():CODE
LOWtests/test_sequence.py210def test_viterbi_bad_transition(trans, rng):CODE
LOWtests/test_sequence.py245def test_viterbi_discriminative_example(transition_min_prob):CODE
LOWtests/test_sequence.py282def test_viterbi_discriminative_multi():CODE
LOWtests/test_sequence.py348def test_viterbi_discriminative_example_init():CODE
LOWtests/test_sequence.py399def test_viterbi_discriminative_bad_transition(x_disc, trans):CODE
LOWtests/test_sequence.py414def test_viterbi_discriminative_bad_init(p_init, trans, x_disc):CODE
LOWtests/test_sequence.py429def test_viterbi_discriminative_bad_marginal(x_disc, trans, p_state):CODE
LOWtests/test_sequence.py444def test_viterbi_discriminative_bad_obs(x, trans):CODE
LOWtests/test_sequence.py449def test_viterbi_binary_example():CODE
LOWtests/test_sequence.py488def test_viterbi_binary_multi():CODE
LOWtests/test_sequence.py525def test_viterbi_binary_example_init():CODE
LOWtests/test_sequence.py567def test_viterbi_binary_bad_transition(x_data, trans):CODE
LOWtests/test_sequence.py578def test_viterbi_binary_bad_init(x_data, trans, p_init):CODE
LOWtests/test_sequence.py589def test_viterbi_binary_bad_marginal(p_state, trans, x_data):CODE
LOWtests/test_sequence.py600def test_viterbi_binary_bad_obs(x, trans):CODE
LOWtests/test_sequence.py614def test_trans_uniform_badshape(n):CODE
LOWtests/test_sequence.py704def test_trans_local_nowrap_const():CODE
LOWtests/test_sequence.py721def test_trans_local_wrap_var():CODE
LOWtests/test_sequence.py738def test_trans_local_nowrap_var():CODE
LOWtests/conftest.py41def pytest_collection_modifyitems(config, items):CODE
LOWtests/test_features.py353def test_spectral_flatness_synthetic(S, flatness_ref):CODE
LOWtests/test_features.py361def test_spectral_flatness_errors(S, amin):CODE
LOWtests/test_features.py367def test_spectral_flatness_badtype(S):CODE
LOWtests/test_features.py737def test_fourier_tempogram_fail_badwin(y, sr, win_length, window):CODE
LOWtests/test_features.py742def test_fourier_tempogram_fail_noinput():CODE
LOWtests/test_features.py750def test_fourier_tempogram_audio(y_chirp, hop_length):CODE
LOWtests/test_features.py1104def test_tempogram_ratio_aggregate(y_clicks, tg_ex):CODE
LOWtests/test_features.py1112def test_tempogram_ratio_with_tg(y_clicks, tg_ex):CODE
LOWtests/test_features.py1122def test_tempogram_ratio_with_bpm(y_clicks, tg_ex):CODE
LOWtests/test_features.py125def test_stack_memory_ndim_badshape(data, delay, n_steps):CODE
LOWtests/test_features.py147def test_spectral_centroid_synthetic(S_ideal, freq):CODE
LOWtests/test_features.py159def test_spectral_centroid_errors(S):CODE
LOWtests/test_features.py167def test_spectral_centroid_empty(y, sr, S):CODE
LOWtests/test_features.py183def test_spectral_bandwidth_synthetic(S_ideal, freq, norm, p):CODE
LOWtests/test_features.py201def test_spectral_bandwidth_onecol(S_ideal, freq):CODE
LOWtests/test_features.py209def test_spectral_bandwidth_flat():CODE
LOWtests/test_features.py229def test_spectral_bandwidth_errors(S):CODE
LOWtests/test_features.py243def test_spectral_rolloff_synthetic(S, freq, pct):CODE
LOWtests/test_features.py266def test_spectral_rolloff_errors(S, pct):CODE
LOWtests/test_features.py284def test_spectral_contrast_log(y_chirp):CODE
LOWtests/test_features.py296def test_spectral_contrast_flat(linear):CODE
LOWtests/test_features.py307def test_spectral_contrast_maximum(linear):CODE
LOWtests/test_features.py338def test_spectral_contrast_errors(S, freq, fmin, n_bands, quantile):CODE
LOWtests/test_features.py502def test_poly_features_synthetic(poly_S, poly_coeffs, poly_freq):CODE
LOWtests/test_features.py583def test_tempogram_fail_noinput():CODE
LOWtests/test_features.py593def test_tempogram_fail_badwin(y, sr, win_length, window):CODE
LOWtests/test_features.py784def test_fourier_tempogram_invert(sr, hop_length, win_length, center, window):CODE
LOWtests/test_features.py831def test_cens_nosmooth_nonorm(cens_cqt):CODE
LOWtests/test_features.py1052def test_chroma_vqt_threshold(y_chirp):CODE
258 more matches not shown…
Decorative Section Separators78 hits · 234 pts
SeverityFileLineSnippetContext
MEDIUMdocs/conf.py103# ----------------------------------STRING
MEDIUMdocs/conf.py105# ----------------------------------STRING
MEDIUMdocs/conf.py108# ------------------------------------------------------------------------------STRING
MEDIUMdocs/conf.py110# ------------------------------------------------------------------------------STRING
MEDIUMdocs/tutorials/01-intro/05-onsets.py163# ---------------COMMENT
MEDIUMdocs/tutorials/01-intro/05-onsets.py227# ------------COMMENT
MEDIUMdocs/tutorials/01-intro/04-harmony.py14# -------------------------COMMENT
MEDIUMdocs/tutorials/01-intro/04-harmony.py54# -------------------COMMENT
MEDIUMdocs/tutorials/01-intro/04-harmony.py149# ----------------------COMMENT
MEDIUMdocs/tutorials/01-intro/03-f0.py14# ---------------------COMMENT
MEDIUMdocs/tutorials/01-intro/03-f0.py41# ----------------------COMMENT
MEDIUMdocs/tutorials/01-intro/03-f0.py117# -----------------------COMMENT
MEDIUMdocs/tutorials/01-intro/07-timbre.py15# ---------------COMMENT
MEDIUMdocs/tutorials/01-intro/07-timbre.py131# ----------COMMENT
MEDIUMdocs/tutorials/01-intro/07-timbre.py286# -----------COMMENT
MEDIUMdocs/tutorials/01-intro/07-timbre.py338# -------------------------------------------COMMENT
MEDIUMdocs/tutorials/01-intro/07-timbre.py401# -----------------------COMMENT
MEDIUMdocs/tutorials/01-intro/06-rhythm.py65# --------------------COMMENT
MEDIUMdocs/tutorials/01-intro/06-rhythm.py135# -------------------COMMENT
MEDIUMdocs/tutorials/01-intro/01-load.py15# ---------------------COMMENT
MEDIUMdocs/tutorials/01-intro/01-load.py60# ----------------------------------COMMENT
MEDIUMdocs/tutorials/01-intro/01-load.py107# -------------------COMMENT
MEDIUMdocs/tutorials/01-intro/01-load.py139# ----------------------COMMENT
MEDIUMdocs/tutorials/01-intro/08-notation.py14# ------------------------------------COMMENT
MEDIUMdocs/tutorials/01-intro/08-notation.py103# ----------------COMMENT
MEDIUMdocs/tutorials/01-intro/08-notation.py159# --------------------------------COMMENT
MEDIUMdocs/tutorials/01-intro/08-notation.py238# ---------------------COMMENT
MEDIUMdocs/tutorials/01-intro/02-frequency.py15# ----------------COMMENT
MEDIUMdocs/tutorials/01-intro/02-frequency.py129# ---------------------COMMENT
MEDIUMdocs/tutorials/01-intro/02-frequency.py200# ------------COMMENT
MEDIUMdocs/tutorials/02-display/01-wave.py14# ------------------------COMMENT
MEDIUMdocs/tutorials/02-display/01-wave.py163# -----------------COMMENT
MEDIUMdocs/tutorials/02-display/01-wave.py186# -----------------------COMMENT
MEDIUMdocs/tutorials/02-display/04-colors.py17# -----------------------------COMMENT
MEDIUMdocs/tutorials/02-display/04-colors.py28# ---------------------------------------COMMENT
MEDIUMdocs/tutorials/02-display/04-colors.py106# ------------------------------COMMENT
MEDIUMdocs/tutorials/02-display/04-colors.py136# -----------------------------COMMENT
MEDIUMdocs/tutorials/02-display/04-colors.py194# ------------COMMENT
MEDIUMdocs/tutorials/02-display/02-spectrogram.py15# ------------COMMENT
MEDIUMdocs/tutorials/02-display/02-spectrogram.py63# ---------------COMMENT
MEDIUMdocs/tutorials/02-display/02-spectrogram.py151# ----------------------COMMENT
MEDIUMdocs/tutorials/02-display/02-spectrogram.py182# ----------------COMMENT
MEDIUMdocs/tutorials/02-display/08-mireval.py23# ----------------COMMENT
MEDIUMdocs/tutorials/02-display/08-mireval.py31# --------------COMMENT
MEDIUMdocs/tutorials/02-display/08-mireval.py91# -------------COMMENT
MEDIUMdocs/tutorials/02-display/08-mireval.py141# -----------------COMMENT
MEDIUMdocs/tutorials/02-display/07-multichannel.py20# -------------------COMMENT
MEDIUMdocs/tutorials/02-display/07-multichannel.py95# --------------------------COMMENT
MEDIUMdocs/tutorials/02-display/07-multichannel.py126# ----------------COMMENT
MEDIUMdocs/tutorials/02-display/07-multichannel.py151# ----------------COMMENT
MEDIUMdocs/tutorials/02-display/03-axes.py15# ----------------COMMENT
MEDIUMdocs/tutorials/02-display/03-axes.py97# ---------------COMMENT
MEDIUMdocs/tutorials/02-display/05-nonspectral.py63# ----------COMMENT
MEDIUMdocs/tutorials/02-display/05-nonspectral.py99# ----------------COMMENT
MEDIUMdocs/tutorials/03-advanced/plot_audio_playback.py29# -------------------------COMMENT
MEDIUMdocs/tutorials/03-advanced/plot_audio_playback.py47# --------------------COMMENT
MEDIUMdocs/tutorials/03-advanced/plot_audio_playback.py68# -------------------------COMMENT
MEDIUMdocs/tutorials/03-advanced/plot_audio_playback.py103# ------------------COMMENT
MEDIUMdocs/tutorials/03-advanced/plot_dynamic_beat.py35# ------------------------------COMMENT
MEDIUMdocs/tutorials/03-advanced/plot_dynamic_beat.py37# ------------------------------COMMENT
18 more matches not shown…
Over-Commented Block143 hits · 142 pts
SeverityFileLineSnippetContext
LOWlibrosa/core/audio.py1501 epsilon: float,COMMENT
LOWlibrosa/core/audio.py1521 # DEN_{M} from eqn 16 of Marple.COMMENT
LOWlibrosa/core/audio.py1561 # SNIP - we are now done with order M and advance. M-1 <- MCOMMENT
LOWtests/test_features.py561 # F#:dim is [0, 6, 9]COMMENT
LOWtests/test_core.py3001 # array([[0, 1, 2],COMMENT
LOWtests/test_filters.py1#!/usr/bin/env pythonCOMMENT
LOWdocs/conf.py1# -*- coding: utf-8 -*-COMMENT
LOWdocs/conf.py281COMMENT
LOWdocs/conf.py401latex_engine = "xelatex"COMMENT
LOWdocs/tutorials/01-intro/05-onsets.py61# sustained F note beginning at around 2.5 seconds, there are no abruptCOMMENT
LOWdocs/tutorials/01-intro/05-onsets.py81# We can put these ideas together as follows.COMMENT
LOWdocs/tutorials/01-intro/05-onsets.py141ax[1].legend()COMMENT
LOWdocs/tutorials/01-intro/05-onsets.py161# %%COMMENT
LOWdocs/tutorials/01-intro/05-onsets.py221COMMENT
LOWdocs/tutorials/01-intro/05-onsets.py241COMMENT
LOWdocs/tutorials/01-intro/05-onsets.py261# floating point numbers, and may be subject to rounding errors.COMMENT
LOWdocs/tutorials/01-intro/04-harmony.py1# coding: utf-8COMMENT
LOWdocs/tutorials/01-intro/04-harmony.py41librosa.display.colorbar_db(img, label="dBFS")COMMENT
LOWdocs/tutorials/01-intro/04-harmony.py61# notions of harmonics, which are spaced **geometrically**.COMMENT
LOWdocs/tutorials/01-intro/04-harmony.py81C = librosa.cqt(y=y, sr=sr)COMMENT
LOWdocs/tutorials/01-intro/04-harmony.py101# 1025.COMMENT
LOWdocs/tutorials/01-intro/04-harmony.py141print(f"CQT shape={C.shape}")COMMENT
LOWdocs/tutorials/01-intro/04-harmony.py181COMMENT
LOWdocs/tutorials/01-intro/04-harmony.py221fig.colorbar(imgchroma, ax=ax[1], aspect=20/3) # aspect compensates for the 3:1 height ratio of these plotsCOMMENT
LOWdocs/tutorials/01-intro/04-harmony.py241# representing harmonic content in musical signals.COMMENT
LOWdocs/tutorials/01-intro/03-f0.py1# coding: utf-8COMMENT
LOWdocs/tutorials/01-intro/03-f0.py21# The discrete Fourier transform implicitly assumes that all signals repeatCOMMENT
LOWdocs/tutorials/01-intro/03-f0.py61# The method that we'll use first is known as `yin`.COMMENT
LOWdocs/tutorials/01-intro/03-f0.py101COMMENT
LOWdocs/tutorials/01-intro/03-f0.py121# 1. `pyin` models continuity in time by using a Markov chain.COMMENT
LOWdocs/tutorials/01-intro/03-f0.py141COMMENT
LOWdocs/tutorials/01-intro/07-timbre.py1# coding: utf-8COMMENT
LOWdocs/tutorials/01-intro/07-timbre.py21# As a result, the analysis in this section will be a bit more exploratory and data-driven thanCOMMENT
LOWdocs/tutorials/01-intro/07-timbre.py121COMMENT
LOWdocs/tutorials/01-intro/07-timbre.py141# directly on the intuition behind our example above.COMMENT
LOWdocs/tutorials/01-intro/07-timbre.py161# %%COMMENT
LOWdocs/tutorials/01-intro/07-timbre.py241# do not contribute visual clutter, and otherwise color-code each frame by its instrument:COMMENT
LOWdocs/tutorials/01-intro/07-timbre.py281# clusters are mostly homogeneous in pitch. This tells us that the STFT similarity is indeed moreCOMMENT
LOWdocs/tutorials/01-intro/07-timbre.py321COMMENT
LOWdocs/tutorials/01-intro/07-timbre.py361 ax[i, 0].set(ylabel=inst)COMMENT
LOWdocs/tutorials/01-intro/07-timbre.py441# %%COMMENT
LOWdocs/tutorials/01-intro/07-timbre.py461knn_eval(mfcc_fit, mfcc_test)COMMENT
LOWdocs/tutorials/01-intro/06-rhythm.py101# %%COMMENT
LOWdocs/tutorials/01-intro/06-rhythm.py121# If we collect these autocorrelation results together, we can visualizeCOMMENT
LOWdocs/tutorials/01-intro/06-rhythm.py141#COMMENT
LOWdocs/tutorials/01-intro/01-load.py1# coding: utf-8COMMENT
LOWdocs/tutorials/01-intro/01-load.py41# :class: sidebarCOMMENT
LOWdocs/tutorials/01-intro/01-load.py61# By default, `librosa.load` will standardize the signal to a sampling rate ofCOMMENT
LOWdocs/tutorials/01-intro/01-load.py81# The sampling rate `sr` tells us how many samples we have every second,COMMENT
LOWdocs/tutorials/01-intro/01-load.py101# sample index, we can use the `librosa.samples_to_time` function:COMMENT
LOWdocs/tutorials/01-intro/01-load.py121# and `librosa.display` to draw the waveform on it.COMMENT
LOWdocs/tutorials/01-intro/01-load.py141# To do this, we'll use the `IPython.display.Audio` class.COMMENT
LOWdocs/tutorials/01-intro/01-load.py161# `IPython.display`, like shown below.COMMENT
LOWdocs/tutorials/01-intro/08-notation.py1# coding: utf-8COMMENT
LOWdocs/tutorials/01-intro/08-notation.py21# second, abbreviated Hz). This is something that we can observe directly in aCOMMENT
LOWdocs/tutorials/01-intro/08-notation.py41# :math:`f = 440 · 2^{(n-69)/12}`. Librosa also supports fractional MIDI noteCOMMENT
LOWdocs/tutorials/01-intro/08-notation.py61# | 62 | D4 | 293.665 |COMMENT
LOWdocs/tutorials/01-intro/08-notation.py101# %%COMMENT
LOWdocs/tutorials/01-intro/08-notation.py121# to pitch class 0 (*C*), the second to pitch class 1 (*C♯* or *D♭*), and so on, regardless of the key.COMMENT
LOWdocs/tutorials/01-intro/08-notation.py141# -------COMMENT
83 more matches not shown…
AI Structural Patterns66 hits · 66 pts
SeverityFileLineSnippetContext
LOWlibrosa/effects.py47CODE
LOWlibrosa/effects.py175CODE
LOWlibrosa/effects.py289CODE
LOWlibrosa/onset.py24CODE
LOWlibrosa/onset.py210CODE
LOWlibrosa/onset.py438CODE
LOWlibrosa/sequence.py46CODE
LOWlibrosa/sequence.py61CODE
LOWlibrosa/sequence.py104CODE
LOWlibrosa/sequence.py119CODE
LOWlibrosa/sequence.py133CODE
LOWlibrosa/sequence.py148CODE
LOWlibrosa/sequence.py161CODE
LOWlibrosa/display.py1331CODE
LOWlibrosa/display.py1956CODE
LOWlibrosa/display.py2564CODE
LOWlibrosa/display.py2883CODE
LOWlibrosa/display.py3067CODE
LOWlibrosa/display.py3833CODE
LOWlibrosa/segment.py345CODE
LOWlibrosa/segment.py360CODE
LOWlibrosa/segment.py375CODE
LOWlibrosa/beat.py37CODE
LOWlibrosa/beat.py52CODE
LOWlibrosa/beat.py67CODE
LOWlibrosa/beat.py81CODE
LOWlibrosa/beat.py312CODE
LOWlibrosa/filters.py560CODE
LOWlibrosa/core/constantq.py42CODE
LOWlibrosa/core/constantq.py209CODE
LOWlibrosa/core/constantq.py415CODE
LOWlibrosa/core/constantq.py594CODE
LOWlibrosa/core/constantq.py820CODE
LOWlibrosa/core/constantq.py1285CODE
LOWlibrosa/core/spectrum.py58CODE
LOWlibrosa/core/spectrum.py395CODE
LOWlibrosa/core/spectrum.py646CODE
LOWlibrosa/core/spectrum.py809CODE
LOWlibrosa/core/spectrum.py990CODE
LOWlibrosa/core/spectrum.py1522CODE
LOWlibrosa/core/spectrum.py2360CODE
LOWlibrosa/core/spectrum.py2379CODE
LOWlibrosa/core/spectrum.py2398CODE
LOWlibrosa/core/spectrum.py2671CODE
LOWlibrosa/core/spectrum.py2922CODE
LOWlibrosa/core/audio.py1731CODE
LOWlibrosa/core/pitch.py182CODE
LOWlibrosa/core/pitch.py631CODE
LOWlibrosa/core/harmonic.py465CODE
LOWlibrosa/feature/spectral.py46CODE
LOWlibrosa/feature/spectral.py195CODE
LOWlibrosa/feature/spectral.py357CODE
LOWlibrosa/feature/spectral.py538CODE
LOWlibrosa/feature/spectral.py691CODE
LOWlibrosa/feature/spectral.py926CODE
LOWlibrosa/feature/spectral.py1145CODE
LOWlibrosa/feature/spectral.py1305CODE
LOWlibrosa/feature/spectral.py1435CODE
LOWlibrosa/feature/spectral.py1585CODE
LOWlibrosa/feature/spectral.py1852CODE
6 more matches not shown…
Unused Imports52 hits · 45 pts
SeverityFileLineSnippetContext
LOWlibrosa/effects.py10CODE
LOWlibrosa/onset.py7CODE
LOWlibrosa/decompose.py10CODE
LOWlibrosa/sequence.py11CODE
LOWlibrosa/__init__.py14CODE
LOWlibrosa/display.py11CODE
LOWlibrosa/segment.py11CODE
LOWlibrosa/beat.py4CODE
LOWlibrosa/filters.py7CODE
LOWlibrosa/core/convert.py4CODE
LOWlibrosa/core/notation.py4CODE
LOWlibrosa/core/intervals.py4CODE
LOWlibrosa/core/constantq.py4CODE
LOWlibrosa/core/spectrum.py4CODE
LOWlibrosa/core/audio.py4CODE
LOWlibrosa/core/pitch.py4CODE
LOWlibrosa/core/harmonic.py5CODE
LOWlibrosa/util/files.py4CODE
LOWlibrosa/util/matching.py4CODE
LOWlibrosa/util/_nnls.py11CODE
LOWlibrosa/util/utils.py5CODE
LOWlibrosa/util/decorators.py5CODE
LOWlibrosa/feature/utils.py4CODE
LOWlibrosa/feature/spectral.py4CODE
LOWlibrosa/feature/inverse.py4CODE
LOWlibrosa/feature/rhythm.py4CODE
LOWtests/test_effects.py4CODE
LOWtests/test_notation.py6CODE
LOWtests/test_notation.py13CODE
LOWtests/test_constantq.py6CODE
LOWtests/test_constantq.py8CODE
LOWtests/test_constantq.py21CODE
LOWtests/test_core.py6CODE
LOWtests/test_core.py21CODE
LOWtests/test_core.py28CODE
LOWtests/test_core.py28CODE
LOWtests/test_core.py28CODE
LOWtests/test_display.py25CODE
LOWtests/test_convert.py6CODE
LOWtests/test_util.py4CODE
LOWtests/test_multichannel.py15CODE
LOWtests/test_multichannel.py19CODE
LOWtests/test_multichannel.py20CODE
LOWtests/test_multichannel.py23CODE
LOWtests/test_onset.py17CODE
LOWtests/test_filters.py23CODE
LOWtests/test_filters.py24CODE
LOWtests/test_intervals.py7CODE
LOWtests/test_intervals.py14CODE
LOWtests/test_segment.py4CODE
LOWtests/test_cache.py8CODE
LOWscripts/audit_docstring_examples.py12CODE
Self-Referential Comments15 hits · 45 pts
SeverityFileLineSnippetContext
MEDIUMlibrosa/_cache.py36 # Initialize the memory objectCOMMENT
MEDIUMlibrosa/display.py2300 # The following code centers the FFT bins at their frequenciesCOMMENT
MEDIUMlibrosa/display.py2407 # The following code centers the FFT bins at their frequenciesCOMMENT
MEDIUMlibrosa/display.py2794 # Create the adaptive drawing objectCOMMENT
MEDIUMlibrosa/display.py3035 # Create a proxy artist if we have a label to setCOMMENT
MEDIUMlibrosa/display.py3242 # Create the adaptive drawing objectCOMMENT
MEDIUMlibrosa/core/audio.py854 # Create an empty stereo output bufferCOMMENT
MEDIUMtests/test_display.py1367 # Create a chirpCOMMENT
MEDIUMdocs/conf.py6# This file is execfile()d with the current directory set to its containing dir.COMMENT
MEDIUMdocs/tutorials/01-intro/03-f0.py57# Create a display object for listeningCOMMENT
MEDIUMdocs/tutorials/02-display/01-wave.py39# Create a figureCOMMENT
MEDIUMdocs/tutorials/03-advanced/plot_pcen_stream.py66# Create a handle for storing the block STFT outputsCOMMENT
MEDIUMdocs/tutorials/03-advanced/plot_music_sync.py159 # Create a connection patch between the aligned time pointsCOMMENT
MEDIUMscripts/audit_docstring_examples.py121 # Create a visitor instance and visit the nodesCOMMENT
MEDIUMscripts/create_author_list.py67 # Create a Request object and add a User-Agent header (GitHub requires it).COMMENT
Deep Nesting34 hits · 33 pts
SeverityFileLineSnippetContext
LOWlibrosa/onset.py24CODE
LOWlibrosa/sequence.py478CODE
LOWlibrosa/sequence.py846CODE
LOWlibrosa/sequence.py1151CODE
LOWlibrosa/display.py1331CODE
LOWlibrosa/display.py1906CODE
LOWlibrosa/display.py1956CODE
LOWlibrosa/display.py2435CODE
LOWlibrosa/display.py3613CODE
LOWlibrosa/display.py216CODE
LOWlibrosa/segment.py1316CODE
LOWlibrosa/beat.py81CODE
LOWlibrosa/beat.py568CODE
LOWlibrosa/filters.py886CODE
LOWlibrosa/core/convert.py2211CODE
LOWlibrosa/core/convert.py2515CODE
LOWlibrosa/core/notation.py200CODE
LOWlibrosa/core/notation.py626CODE
LOWlibrosa/core/intervals.py28CODE
LOWlibrosa/core/intervals.py302CODE
LOWlibrosa/core/spectrum.py58CODE
LOWlibrosa/core/spectrum.py2398CODE
LOWlibrosa/core/audio.py223CODE
LOWlibrosa/core/audio.py1002CODE
LOWlibrosa/util/matching.py66CODE
LOWlibrosa/util/utils.py797CODE
LOWtests/test_features.py961CODE
LOWtests/test_core.py2736CODE
LOWtests/test_onset.py302CODE
LOWtests/test_filters.py169CODE
LOWtests/test_beat.py186CODE
LOWscripts/audit_docstring_examples.py116CODE
LOWscripts/create_author_list.py58CODE
LOWscripts/create_zenodo_json.py75CODE
Modern Structural Boilerplate24 hits · 24 pts
SeverityFileLineSnippetContext
LOWlibrosa/effects.py33__all__ = [CODE
LOWlibrosa/onset.py21__all__ = ["onset_detect", "onset_strength", "onset_strength_multi", "onset_backtrack"]CODE
LOWlibrosa/decompose.py26__all__ = ["decompose", "hpss", "nn_filter"]CODE
LOWlibrosa/sequence.py30__all__ = [CODE
LOWlibrosa/display.py61__all__ = [CODE
LOWlibrosa/segment.py38__all__ = [CODE
LOWlibrosa/beat.py33__all__ = ["beat_track", "plp"]CODE
LOWlibrosa/filters.py28__all__ = [CODE
LOWlibrosa/core/convert.py31__all__ = [CODE
LOWlibrosa/core/notation.py31__all__ = [CODE
LOWlibrosa/core/constantq.py36__all__ = ["cqt", "hybrid_cqt", "pseudo_cqt", "icqt", "griffinlim_cqt", "vqt"]CODE
LOWlibrosa/core/spectrum.py39__all__ = [CODE
LOWlibrosa/core/audio.py35__all__ = [CODE
LOWlibrosa/core/pitch.py25__all__ = ["estimate_tuning", "pitch_tuning", "piptrack", "yin", "pyin"]CODE
LOWlibrosa/core/harmonic.py22__all__ = ["salience", "interp_harmonics", "f0_harmonics"]CODE
LOWlibrosa/util/files.py21__all__ = [CODE
LOWlibrosa/util/matching.py17__all__ = ["match_intervals", "match_events"]CODE
LOWlibrosa/util/_nnls.py22__all__ = ["nnls"]CODE
LOWlibrosa/util/utils.py43__all__ = [CODE
LOWlibrosa/util/decorators.py25__all__ = ["moved", "deprecated", "vectorize"]CODE
LOWlibrosa/feature/utils.py17__all__ = ["delta", "stack_memory"]CODE
LOWlibrosa/feature/spectral.py26__all__ = [CODE
LOWlibrosa/feature/inverse.py25__all__ = ["mel_to_stft", "mel_to_audio", "mfcc_to_mel", "mfcc_to_audio"]CODE
LOWlibrosa/feature/rhythm.py27__all__ = [CODE
AI Response Leakage3 hits · 22 pts
SeverityFileLineSnippetContext
HIGHdocs/tutorials/01-intro/06-rhythm.py57# musical onsets. In this example, the peaks are also regularly spaced in time.COMMENT
HIGHdocs/tutorials/01-intro/06-rhythm.py104# In this example, the first peak occurs at around 0.4 seconds.COMMENT
HIGHdocs/tutorials/03-advanced/plot_dynamic_beat.py108# In this example, the result is not perfect: `tempo_dynamic` contains jagged andCOMMENT
Slop Phrases5 hits · 13 pts
SeverityFileLineSnippetContext
MEDIUMlibrosa/core/audio.py542 .. note:: This function is primarily useful for demonstration purposes,STRING
MEDIUMdocs/tutorials/01-intro/01-load.py160# To force the player to display, you can use the `display` function fromCOMMENT
MEDIUMdocs/tutorials/02-display/08-mireval.py127# hack suffices for demonstration purposes.COMMENT
MEDIUMdocs/tutorials/03-advanced/plot_audio_playback.py60# If you're playing back packaged examples, you can also use the `url` argument to constructCOMMENT
MEDIUMdocs/tutorials/03-advanced/plot_audio_playback.py151# in the same cell, you can useCOMMENT
AI Slop Vocabulary6 hits · 10 pts
SeverityFileLineSnippetContext
LOWlibrosa/beat.py577 # NOTE: when we can bump the minimum numba to 0.58, we can eliminate this branch and just useCOMMENT
LOWlibrosa/beat.py644 # No back-link found, so just use the current scoreCOMMENT
LOWlibrosa/core/intervals.py484 # Otherwise, just return intervals as floatsCOMMENT
LOWlibrosa/core/audio.py1862 # Normally, just add a click hereCOMMENT
MEDIUMdocs/tutorials/01-intro/07-timbre.py341# Essentially, these work by projecting each dB-scaled mel spectrum (frame) onto a set of basisCOMMENT
LOWdocs/tutorials/01-intro/01-load.py65# To use the audio file's native sampling rate, simply set `sr=None`.COMMENT
Verbosity Indicators6 hits · 4 pts
SeverityFileLineSnippetContext
LOWlibrosa/beat.py458 # Step 2: get the fourier tempogramSTRING
LOWlibrosa/beat.py466 # Step 3: pin to the feasible tempo rangeSTRING
LOWlibrosa/beat.py490 # Step 5: invert the Fourier tempogram to get the pulseSTRING
LOWlibrosa/beat.py495 # Step 6: retain only the positive part of the pulse cycleSTRING
LOWlibrosa/beat.py447 # Step 1: get the onset envelopeSTRING
LOWlibrosa/beat.py479 # Step 3: Discard everything below the peakSTRING
Structural Annotation Overuse6 hits · 4 pts
SeverityFileLineSnippetContext
LOWlibrosa/beat.py458 # Step 2: get the fourier tempogramSTRING
LOWlibrosa/beat.py466 # Step 3: pin to the feasible tempo rangeSTRING
LOWlibrosa/beat.py490 # Step 5: invert the Fourier tempogram to get the pulseSTRING
LOWlibrosa/beat.py495 # Step 6: retain only the positive part of the pulse cycleSTRING
LOWlibrosa/beat.py447 # Step 1: get the onset envelopeSTRING
LOWlibrosa/beat.py479 # Step 3: Discard everything below the peakSTRING
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWlibrosa/util/matching.py375 # Check if right should be chosenCOMMENT
LOWlibrosa/util/utils.py1249 # Check if we're a local peakCOMMENT
Excessive Try-Catch Wrapping2 hits · 2 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_util.py1275def test_shear_sparse_1d_raises():CODE
LOWtests/test_util.py1278 except Exception:CODE