Audio Editor
This report summarizes scanner evidence for audacity/audacity, a C++ project with 18,891 GitHub stars. SynthScan examined 657,517 lines of code across 3602 source files, recording 1231 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 1.9 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 1202 finding(s).
Are imports declared and package/API names verified? 12 finding(s).
Are wrappers, guards, and repeated structures necessary? 24 finding(s).
Which changes need focused human review? 1231 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1231 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/translations/process_source_ts_files.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | tools/translations/run_lupdate.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/translations/au3-au4-migration/migrate_xo.py | 501 | COMMENT | |
| LOW | buildscripts/ci/tools/list_testflow_scripts.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | buildscripts/ci/translation/s3_packandsend.sh | 1 | #!/bin/bash | COMMENT |
| LOW | buildscripts/ci/linux/make_appimage.sh | 201 | # ADDITIONAL LIBRARIES | COMMENT |
| LOW | au3/include/audacity/Types.h | 41 | COMMENT | |
| LOW | au3/include/audacity/Types.h | 61 | // ---------------------------------------------------------------------------- | COMMENT |
| LOW | au3/tests/Catch2Main.cpp | 1 | // Copyright Catch2 Authors | COMMENT |
| LOW | au3/libraries/CMakeLists.txt | 1 | #[[ | COMMENT |
| LOW | au3/libraries/au3-basic-ui/BasicUI.cpp | 21 | #include <sys/types.h> | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 61 | #include "AudioIO.h" | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 81 | #endif | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 101 | #if defined(__WXMAC__) || defined(__WXMSW__) | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 181 | }; | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 521 | // software playthrough options are enabled. | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 721 | mRecordingSchedule.mLatencyCompensation = -stream->inputLatency - outputLatency; | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 1181 | // the first audio sample. | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 1301 | COMMENT | |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 1601 | } | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 1621 | // machine docs). | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 1701 | if (mCaptureSequences.size() > 0) { | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 2021 | // To keep things simple, we write no more data than is vacant in | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 2401 | if (mTrackChannelSourceMap.empty() && mNumCaptureChannels > 0) { | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 2821 | return false; | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.cpp | 2861 | // supply from SequenceBufferExchange fails to keep up with the | COMMENT |
| LOW | au3/libraries/au3-audio-io/PlaybackSchedule.h | 161 | /// Playback ends at offset of mT1, which is measured in seconds. Note that mT1 may be less than mT0 during scrubbi | COMMENT |
| LOW | au3/libraries/au3-audio-io/AudioIO.h | 21 | COMMENT | |
| LOW | au3/libraries/au3-nyquist-effects/NyquistBase.cpp | 1 | /********************************************************************** | COMMENT |
| LOW | au3/libraries/au3-nyquist-effects/NyquistBase.cpp | 21 | #include "au3-module-manager/PluginManager.h" | COMMENT |
| LOW | au3/libraries/au3-nyquist-effects/LoadNyquist.cpp | 61 | // Module registration entry point | COMMENT |
| LOW | au3/libraries/au3-project-history/UndoManager.cpp | 381 | //void UndoManager::Debug() | COMMENT |
| LOW | au3/libraries/au3-shuttlegui/ShuttleGui.cpp | 101 | #include "au3-theme/Theme.h" | COMMENT |
| LOW | au3/libraries/au3-shuttlegui/ShuttleGui.cpp | 2161 | } | COMMENT |
| LOW | au3/libraries/au3-uuid/Uuid.cpp | 21 | #include <cstring> | COMMENT |
| LOW | au3/libraries/au3-project-file-io/SqliteSampleBlock.cpp | 341 | // The block object was constructed but failed to Load() or Commit(). | COMMENT |
| LOW | au3/libraries/au3-project-file-io/DBConnection.cpp | 461 | // TODO: Look into why this causes an access violation | COMMENT |
| LOW | au3/libraries/au3-project-file-io/ProjectFileIO.cpp | 21 | #include <io.h> | COMMENT |
| LOW | au3/libraries/au3-project-file-io/ProjectFileIO.cpp | 41 | #include "au3-project-history/ProjectHistory.h" | COMMENT |
| LOW | au3/libraries/au3-project-file-io/ProjectFileIO.cpp | 61 | #include "au3-string-utils/FromChars.h" | COMMENT |
| LOW | au3/libraries/au3-project-file-io/ProjectFileIO.cpp | 81 | COMMENT | |
| LOW | au3/libraries/au3-project-file-io/ProjectFileIO.cpp | 101 | // static const int ProjectFileVersion = PACK(3, 0, 0, 0); | COMMENT |
| LOW | au3/libraries/au3-project-file-io/ProjectFileIO.cpp | 121 | "" | COMMENT |
| LOW | au3/libraries/au3-project-file-io/ProjectFileIO.cpp | 141 | // CREATE SQL autosave | COMMENT |
| LOW | au3/libraries/au3-project-file-io/ProjectFileIO.cpp | 161 | // CREATE SQL sampleblocks | COMMENT |
| LOW | au3/libraries/au3-project-file-io/ProjectFileIO.cpp | 1581 | // the file to be compacted the next time it's saved. | COMMENT |
| LOW | au3/libraries/au3-project-file-io/ProjectSerializer.cpp | 21 | #include <wx/ustring.h> | COMMENT |
| LOW | au3/libraries/au3-project-file-io/ProjectSerializer.cpp | 41 | // during recovery. | COMMENT |
| LOW | au3/libraries/au3-ladspa/LadspaEffectsModule.cpp | 21 | #ifndef RTLD_DEEPBIND | COMMENT |
| LOW | au3/libraries/au3-ladspa/LadspaEffectsModule.cpp | 41 | COMMENT | |
| LOW | au3/libraries/au3-ladspa/ladspa.h | 301 | COMMENT | |
| LOW | au3/libraries/au3-track/Track.h | 21 | #include <wx/longlong.h> | COMMENT |
| LOW | au3/libraries/au3-track/Track.cpp | 21 | #include <numeric> | COMMENT |
| LOW | au3/libraries/au3-components/EffectInterface.h | 41 | COMMENT | |
| LOW | au3/libraries/au3-components/PluginProvider.h | 61 | // ============================================================================ | COMMENT |
| LOW | au3/libraries/au3-components/PluginProvider.h | 201 | // Since there may be multiple embedded providers, the entry function will | COMMENT |
| LOW | au3/libraries/au3-wx-wrappers/WindowAccessible.h | 41 | // Gets the number of children. | COMMENT |
| LOW | au3/libraries/au3-wx-wrappers/wxPanelWrapper.h | 1 | // | COMMENT |
| LOW | au3/libraries/au3-wx-wrappers/wxPanelWrapper.cpp | 1 | // | COMMENT |
| LOW | au3/libraries/au3-wx-wrappers/FileDialog/FileDialog.cpp | 41 | } | COMMENT |
| 1073 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | au3/linux/ldd_recursive.pl | 85 | # ---------------- | COMMENT |
| MEDIUM | au3/linux/create_appimage.sh | 10 | #============================================================================ | COMMENT |
| MEDIUM | au3/linux/create_appimage.sh | 12 | #============================================================================ | COMMENT |
| MEDIUM | au3/linux/create_appimage.sh | 55 | #============================================================================ | COMMENT |
| MEDIUM | au3/linux/create_appimage.sh | 57 | #============================================================================ | COMMENT |
| MEDIUM⚡ | au3/linux/create_appimage.sh | 80 | #============================================================================ | COMMENT |
| MEDIUM⚡ | au3/linux/create_appimage.sh | 82 | #============================================================================ | COMMENT |
| MEDIUM⚡ | au3/linux/create_appimage.sh | 90 | #============================================================================ | COMMENT |
| MEDIUM⚡ | au3/linux/create_appimage.sh | 92 | #============================================================================ | COMMENT |
| MEDIUM | au3/linux/create_appimage.sh | 187 | #============================================================================ | COMMENT |
| MEDIUM | au3/linux/create_appimage.sh | 189 | #============================================================================ | COMMENT |
| MEDIUM | src/au3wrap/CMakeLists.txt | 59 | # ================================== | COMMENT |
| MEDIUM | src/au3wrap/CMakeLists.txt | 61 | # ================================== | COMMENT |
| MEDIUM | src/au3wrap/CMakeLists.txt | 91 | # ================================== | COMMENT |
| MEDIUM | src/au3wrap/CMakeLists.txt | 93 | # ================================== | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/translations/extract_nyquist_strings.py | 97 | CODE | |
| LOW | …ols/translations/muse-migration/import_musescore_ts.py | 124 | CODE | |
| LOW | tools/translations/au3-au4-migration/import_po_to_ts.py | 111 | CODE | |
| LOW | tools/translations/au3-au4-migration/import_po_to_ts.py | 151 | CODE | |
| LOW | tools/translations/au3-au4-migration/import_po_to_ts.py | 269 | CODE | |
| LOW | tools/translations/au3-au4-migration/migrate_xo.py | 83 | CODE | |
| LOW | tools/translations/au3-au4-migration/migrate_xo.py | 108 | CODE | |
| LOW | tools/translations/au3-au4-migration/migrate_xo.py | 169 | CODE | |
| LOW | tools/translations/au3-au4-migration/migrate_xo.py | 215 | CODE | |
| LOW | tools/translations/au3-au4-migration/migrate_xo.py | 412 | CODE | |
| LOW | tools/translations/au3-au4-migration/migrate_xo.py | 466 | CODE | |
| LOW | tools/translations/au3-au4-migration/migrate_xo.py | 633 | CODE | |
| LOW | tools/translations/au3-au4-migration/migrate_xo.py | 924 | CODE | |
| LOW | …ranslations/au3-au4-migration/reuse_po_translations.py | 134 | CODE | |
| LOW | …ranslations/au3-au4-migration/reuse_po_translations.py | 235 | CODE | |
| LOW | …ols/translations/au3-au4-migration/build_scan_paths.py | 43 | CODE | |
| LOW | …ols/translations/au3-au4-migration/build_scan_paths.py | 121 | CODE | |
| LOW | …ols/translations/au3-au4-migration/build_scan_paths.py | 127 | CODE | |
| LOW | au3/locale/msgfmt.py | 100 | CODE | |
| LOW | au3/locale/msgfmt.py | 219 | CODE | |
| LOW | au3/scripts/piped-work/pipeclient.py | 262 | CODE | |
| LOW | …fmpeg/lib-ffmpeg-support/generator/generate_headers.py | 93 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …libraries/au3-builtin-effects/LegacyCompressorBase.cpp | 235 | the AVG function. The purpose of this function is to | CODE |
| LOW | au3/scripts/graph.pl | 32 | # Step 1: collect short names and paths to .cpp files | COMMENT |
| LOW | au3/scripts/graph.pl | 55 | # Step 2: collect inclusions in each .cpp/.h pair, and folder information, | COMMENT |
| LOW | au3/scripts/graph.pl | 110 | # Step 3: compute an acyclic quotient graph | COMMENT |
| LOW | au3/scripts/graph.pl | 293 | # Step 4: output the graph in dot language | COMMENT |
| LOW | au3/scripts/graph.pl | 383 | # Step 5: generate image | COMMENT |
| LOW | src/project/internal/audacityproject.cpp | 440 | // // Step 1: check writable | COMMENT |
| LOW | src/project/internal/audacityproject.cpp | 457 | // // Step 2: write project | COMMENT |
| LOW⚡ | src/project/internal/audacityproject.cpp | 482 | // // Step 3: create backup if need | COMMENT |
| LOW⚡ | src/project/internal/audacityproject.cpp | 489 | // // Step 4: replace to saved file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | au3/scripts/graph.pl | 32 | # Step 1: collect short names and paths to .cpp files | COMMENT |
| LOW | au3/scripts/graph.pl | 55 | # Step 2: collect inclusions in each .cpp/.h pair, and folder information, | COMMENT |
| LOW | au3/scripts/graph.pl | 110 | # Step 3: compute an acyclic quotient graph | COMMENT |
| LOW | au3/scripts/graph.pl | 293 | # Step 4: output the graph in dot language | COMMENT |
| LOW | au3/scripts/graph.pl | 383 | # Step 5: generate image | COMMENT |
| LOW | src/project/internal/audacityproject.cpp | 440 | // // Step 1: check writable | COMMENT |
| LOW | src/project/internal/audacityproject.cpp | 457 | // // Step 2: write project | COMMENT |
| LOW⚡ | src/project/internal/audacityproject.cpp | 482 | // // Step 3: create backup if need | COMMENT |
| LOW⚡ | src/project/internal/audacityproject.cpp | 489 | // // Step 4: replace to saved file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | au3/libraries/au3-time-track/TimeTrack.cpp | 259 | // TODO: implement TimeTrack::TrackEmptyCopy | COMMENT |
| LOW⚡ | au3/libraries/au3-time-track/TimeTrack.h | 53 | Track::Holder Cut(double t0, double t1, bool moveClips) override; // TODO: implement moveClips | CODE |
| LOW⚡ | au3/libraries/au3-time-track/TimeTrack.h | 55 | void Clear(double t0, double t1, bool moveClips) override; // TODO: implement moveClips | CODE |
| LOW⚡ | au3/libraries/au3-time-track/TimeTrack.h | 56 | void Paste(double t, const Track& src, bool moveClips) override; // TODO: implement moveClips | CODE |
| LOW | au3/libraries/au3-time-track/TimeTrack.h | 122 | Track::Holder TrackEmptyCopy() const override; // TODO: implement TimeTrack::TrackEmptyCopy | CODE |
| LOW | au3/modules/import-export/mod-pcm/ImportPCM.cpp | 155 | // TODO: Handle error | COMMENT |
| LOW | au3/modules/import-export/mod-mp3/ExportMP3.cpp | 1714 | // TODO: implement AskResample | COMMENT |
| LOW | au3/src/widgets/LogarithmicUpdater.cpp | 47 | tickSizes.mDigits = 2; //TODO: implement dynamic digit computation | CODE |
| LOW | src/importexport/export/internal/au3/au3exporter.cpp | 395 | // TODO: implement other ExportProcessType's selections | COMMENT |
| LOW | …/audio_unit/qml/Audacity/AudioUnit/audiounitcontrol.mm | 146 | // TODO: implement when effect windows are resizable | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | au3/src/widgets/AttachableScrollBar.cpp | 54 | // Essentially a float to int conversion. | COMMENT |
| MEDIUM | au3/src/widgets/AttachableScrollBar.cpp | 70 | // Essentially an int to float conversion. | COMMENT |
| MEDIUM | src/spectrogram/internal/au3/SpectrumCache.cpp | 532 | // All situations do not occur, but it is nice to make robust code | COMMENT |
| MEDIUM | src/effects/lv2/view/lv2viewmodel.cpp | 420 | // Is there a robust way of preventing the user from interacting with the UI | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/translations/extract_nyquist_strings.py | 6 | CODE | |
| LOW | …ols/translations/muse-migration/import_musescore_ts.py | 20 | CODE | |
| LOW | …ranslations/au3-au4-migration/salvage_case_mismatch.py | 6 | CODE | |
| LOW | tools/translations/au3-au4-migration/import_po_to_ts.py | 10 | CODE | |
| LOW | tools/translations/au3-au4-migration/import_po_to_ts.py | 18 | CODE | |
| LOW | tools/translations/au3-au4-migration/migrate_xo.py | 6 | CODE | |
| LOW | …ranslations/au3-au4-migration/reuse_po_translations.py | 11 | CODE | |
| LOW | …ols/translations/au3-au4-migration/build_scan_paths.py | 7 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | au3/libraries/au3-wave-track/Sequence.cpp | 1005 | // I have added code in ConsistencyCheck that should abort the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | au3/libraries/au3-builtin-effects/TruncSilenceBase.cpp | 371 | // Find NEW silence length as requested | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/translations/au3-au4-migration/import_po_to_ts.py | 81 | def normalize_translation_placeholders(translation: str) -> str: | CODE |
| LOW | tools/translations/au3-au4-migration/migrate_xo.py | 466 | def rewrite_pass_b_standalone(content: str, file_rel: str, | CODE |
| LOW | …ranslations/au3-au4-migration/reuse_po_translations.py | 63 | def _strip_trailing_punct_runs(s: str) -> str: | CODE |
| LOW | au3/src/SpectralDataManager.cpp | 11 | \class SpectralDataManager | CODE |
| LOW | au3/src/SpectralDataManager.h | 11 | \class SpectralDataManager | CODE |
| LOW | au3/src/SpectralDataManager.h | 22 | class SpectralDataManager | CODE |
| LOW | au3/src/SpectralDataManager.h | 37 | class SpectralDataManager::Worker : public TrackSpectrumTransformer | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | au3/linux/ldd_recursive.pl | 20 | # This file is provided under a dual BSD/GPLv2 license. When using or | COMMENT |
| MEDIUM | au3/scripts/piped-work/pipeclient.py | 52 | # Create a client instance: | STRING |
| MEDIUM | au3/scripts/piped-work/pipe_test.pl | 425 | # Create a chirp for an effect to be applied to. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ibraries/au3-preferences/tests/SettingsTestsCommon.cpp | 78 | REQUIRE(settings.Write("pineapple", "Lorem Ipsum")); | CODE |
| LOW | …ibraries/au3-preferences/tests/SettingsTestsCommon.cpp | 80 | REQUIRE(pineappleValue == "Lorem Ipsum"); | CODE |
| LOW | …ibraries/au3-preferences/tests/SettingsTestsCommon.cpp | 96 | REQUIRE(pineappleValue == "Lorem Ipsum"); | CODE |
| LOW | au3/libraries/au3-wave-track/WaveTrack.h | 407 | // will contain a "placeholder" clip whose only purpose is to make | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/translations/process_source_ts_files.py | 81 | eprint(f'Error in translatable string: "{message.find("source").text}"') | CODE |
| LOW | au3/scripts/utils/files.py | 24 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/translations/run_lupdate.sh | 22 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | au3/linux/ldd_recursive.pl | 115 | # Print messages for debug purposes | COMMENT |