# cranish07/wavewright architecture

> Architecture diagram of the GitHub repository cranish07/wavewright, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cranish07/wavewright
- Repository: https://github.com/cranish07/wavewright

## Overview

Wavewright currently implements an audio-dataset checker, not the broader cleaning and review toolkit described as planned. Its user workflow is to provide a directory or ZIP, inspect supported audio files, optionally match metadata, and generate quality reports. The sampled source supports separate hashing, FFprobe metadata inspection, FFmpeg signal analysis, and per-file checks; the excerpts do not show enough of the main routine to map its full dispatch or report-writing calls. Planned noise reduction, transcription review, and export are not implemented.

Main entry points: [`checker.py`](https://github.com/cranish07/wavewright/blob/main/checker.py) (Per-file checks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inspection["Audio inspection"]
  node_hash["SHA-256 hashing<br/>[checker.py]"]
  node_probe["Audio probing<br/>[checker.py]"]
  node_signal["Signal analysis<br/>[checker.py]"]
end

subgraph group_dataset["Dataset checks"]
  node_metadata["Metadata loading<br/>[checker.py]"]
  node_filecheck["Per-file checks<br/>[checker.py]"]
end

subgraph group_runtime["Runtime services"]
  node_runner["Checker workflow<br/>[checker.py]"]
  node_reports["Quality reports<br/>[checker.py]"]
end

node_user(("Dataset user"))
node_ffmpeg["FFmpeg tools"]

node_user -->|"provides dataset"| node_runner
node_runner -->|"generates reports"| node_reports
node_filecheck -->|"hashes files"| node_hash
node_filecheck -->|"probes audio"| node_probe
node_filecheck -->|"analyzes samples"| node_signal
node_filecheck -->|"matches metadata"| node_metadata
node_probe -->|"runs ffprobe"| node_ffmpeg
node_signal -->|"decodes with"| node_ffmpeg

click node_runner "https://github.com/cranish07/wavewright/blob/main/checker.py"
click node_metadata "https://github.com/cranish07/wavewright/blob/main/checker.py"
click node_filecheck "https://github.com/cranish07/wavewright/blob/main/checker.py"
click node_hash "https://github.com/cranish07/wavewright/blob/main/checker.py"
click node_probe "https://github.com/cranish07/wavewright/blob/main/checker.py"
click node_signal "https://github.com/cranish07/wavewright/blob/main/checker.py"
click node_reports "https://github.com/cranish07/wavewright/blob/main/checker.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_hash,node_probe,node_signal,node_user toneBlue
class node_metadata,node_filecheck toneAmber
class node_runner,node_reports toneMint
class node_ffmpeg toneIndigo
```

## Components

### Audio inspection

- [SHA-256 hashing](https://github.com/cranish07/wavewright/blob/main/checker.py): `checker.py`
- [Audio probing](https://github.com/cranish07/wavewright/blob/main/checker.py): `checker.py`
- [Signal analysis](https://github.com/cranish07/wavewright/blob/main/checker.py): `checker.py`

### Dataset checks

- [Metadata loading](https://github.com/cranish07/wavewright/blob/main/checker.py): `checker.py`
- [Per-file checks](https://github.com/cranish07/wavewright/blob/main/checker.py): `checker.py`

### Runtime services

- [Checker workflow](https://github.com/cranish07/wavewright/blob/main/checker.py): `checker.py`
- [Quality reports](https://github.com/cranish07/wavewright/blob/main/checker.py): `checker.py`

### Other components

- **Dataset user**
- **FFmpeg tools**

## Connections

- Dataset user → Checker workflow: provides dataset (evidence: `README.md`)
- Checker workflow → Quality reports: generates reports (evidence: `checker.py`)
- Per-file checks → SHA-256 hashing: hashes files (evidence: `checker.py`)
- Per-file checks → Audio probing: probes audio (evidence: `checker.py`)
- Per-file checks → Signal analysis: analyzes samples (evidence: `checker.py`)
- Per-file checks → Metadata loading: matches metadata (evidence: `checker.py`)
- Audio probing → FFmpeg tools: runs ffprobe (evidence: `checker.py`)
- Signal analysis → FFmpeg tools: decodes with (evidence: `checker.py`)
