Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
d350238
feat(core): implement audio processing operations with `ffmpeg` integ…
nedanwr Jan 16, 2026
87824a8
feat(core): add audio processing job specifications and corresponding…
nedanwr Jan 16, 2026
2d260e4
feat(core): introduce `ffmpeg` tool adapter for audio processing oper…
nedanwr Jan 16, 2026
dcf6857
feat(core): add `ffmpeg` module to tools and expose `FfmpegTool` for …
nedanwr Jan 16, 2026
8f50e4b
feat(core): add audio format utilities for detection and conversion
nedanwr Jan 16, 2026
c42be64
feat(core): add audio module to utilities for enhanced audio processing
nedanwr Jan 16, 2026
cf35642
feat(cli): implement audio command interface for various audio proces…
nedanwr Jan 16, 2026
8030fa0
feat(cli): add audio module to command interface for audio processing
nedanwr Jan 16, 2026
02d876b
feat(cli): integrate `ffmpeg` tool into check command for audio proce…
nedanwr Jan 16, 2026
b3219c6
feat(cli): add audio command support to CLI for enhanced audio operat…
nedanwr Jan 16, 2026
e53ee07
docs(cli): update audio command description to include trim and join …
nedanwr Jan 16, 2026
e34a80e
fix(cli): correct parsing order of audio stream and format info in `h…
nedanwr Jan 16, 2026
5dff30e
chore(deps): add `glob` dependency for improved file pattern matching
nedanwr Jan 16, 2026
a07fada
feat(cli): enhance audio join command to support glob patterns and na…
nedanwr Jan 16, 2026
af81b95
chore: update version to `0.0.7` for `forgekit` and `forgekit-core`
nedanwr Jan 16, 2026
9bfc4bc
docs(README): add audio operations section with command examples for …
nedanwr Jan 16, 2026
0a01325
chore(ROADMAP): update status and deliverables for v0.0.7, marking au…
nedanwr Jan 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ members = ["crates/core", "crates/cli"]
resolver = "2"

[workspace.package]
version = "0.0.6"
version = "0.0.7"
edition = "2021"
authors = ["ForgeKit Contributors"]
license = "MIT"
Expand Down
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,19 @@ forgekit image compress photo.jpg --quality 60 # photo_compressed.jpg
forgekit image info photo.jpg --exif # show dimensions + EXIF
```

### Audio Operations

```bash
forgekit audio convert song.wav -t mp3 --bitrate 320 # song.mp3
forgekit audio normalize song.wav --target streaming # song_normalized.wav
forgekit audio extract video.mp4 -t mp3 --bitrate 192 # video.mp3
forgekit audio trim song.mp3 --start 0:30 --end 2:00 -o clip.mp3
forgekit audio join intro.mp3 main.mp3 -o podcast.mp3
forgekit audio volume quiet.wav --gain +6dB -o louder.wav
forgekit audio mono stereo.wav # stereo_mono.wav
forgekit audio info song.mp3 # duration, format, bitrate
```

### Global Options

- `--plan` - Show commands without executing
Expand Down
28 changes: 14 additions & 14 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# ForgeKit Beta-MVP Roadmap (CLI-First)

**Last Updated**: January 2026
**Status**: Core foundation complete, PDF operations complete, Image operations complete
**Current Version**: v0.0.6
**Status**: Core foundation complete, PDF operations complete, Image operations complete, Audio operations complete
**Current Version**: v0.0.7

## Versioning Strategy

Expand Down Expand Up @@ -109,19 +109,19 @@
- ✅ PNG compression control (1-9) for conversion
- ✅ RAW format input support (DNG, CR2, NEF, etc.)

#### v0.0.7 - Audio Operations 📋
#### v0.0.7 - Audio Operations

**Status**: Pending
**Status**: Completed

**Deliverables**:

- Audio convert command (`audio convert`) with format/bitrate selection
- Audio normalize command (`audio normalize`) with EBU R128 support
- ffmpeg audio adapter (codec selection, bitrate control)
- Audio presets (Opus 128k, AAC 192k, EBU R128 normalization)
- Loudness normalization support (I=-16 LUFS target)
- Tests for audio operations (duration, bitrate, format)
- Progress reporting for audio processing
- Audio convert command (`audio convert`) with format/bitrate selection
- Audio normalize command (`audio normalize`) with EBU R128 support
- ✅ Audio info command (`audio info`) for file information
- ✅ ffmpeg audio adapter (codec selection, bitrate control)
- Loudness normalization support (EBU R128, Streaming, custom LUFS)
- ✅ Supported formats: MP3, AAC, Opus, FLAC, WAV, OGG, M4A
- ✅ Tests for audio operations (12 new tests)

#### v0.0.8 - Video Operations 📋

Expand Down Expand Up @@ -218,21 +218,21 @@
- **Core Foundation**: Tool trait system, error handling, job specs
- **PDF Operations**: Merge, split, compress, linearize, reorder, extract, OCR, metadata
- **Image Operations**: Convert, resize, strip, compress, info (via libvips)
- **Audio Operations**: Convert, normalize, info (via ffmpeg)
- **Pages Grammar**: Full parser with comprehensive tests (11 tests)
- **Progress Reporting**: NDJSON output with versioned schema
- **CLI Flags**: `--json`, `--plan`, `--dry-run` working
- **Documentation**: Comprehensive inline docs, README, CONTRIBUTING guide
- **Dependency Checking**: `check-deps` command implemented

**Current Version**: v0.0.6 (completed)
**Current Version**: v0.0.7 (completed)

### 🔄 In Progress

- **v0.0.7**: Audio Operations
- **v0.0.8**: Video Operations

### 📋 Pending Features

- Audio: convert, normalize
- Media: transcode
- Preset system (YAML) ✅
- Package creation (deb, rpm, Homebrew, winget)
Expand Down
1 change: 1 addition & 0 deletions crates/cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ forgekit-core = { path = "../core" }
clap = { workspace = true }
anyhow = { workspace = true }
serde_json = { workspace = true }
glob = "0.3"

Loading