Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zoomoid/waveman2
waveman2 is the successor of waveman, rewritten in Golang and made more consistent, extensible, and also more testable
https://github.com/zoomoid/waveman2
cli golang mp3 svg
Last synced: 27 days ago
JSON representation
waveman2 is the successor of waveman, rewritten in Golang and made more consistent, extensible, and also more testable
- Host: GitHub
- URL: https://github.com/zoomoid/waveman2
- Owner: zoomoid
- Created: 2022-07-04T21:39:29.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-10T10:21:21.000Z (10 months ago)
- Last Synced: 2024-01-10T11:44:24.906Z (10 months ago)
- Topics: cli, golang, mp3, svg
- Language: Go
- Homepage:
- Size: 276 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# waveman2
![zoomoid - Morgendämmerung waveform](hack/Morgend%C3%A4mmerung.svg)
`waveman2` is the Golang successor the first waveman, built to convert audio files
(later, only mp3), into cool-looking, more abstract audio waveforms, by reducing
the samples to a smaller-sized slice and rendering out SVGs.See for the original project written in
Python. Be warned, decoding is slow, even though the audio file is resampled to
16 times lower sampling rate before processing, and the project depends on
several utilities to decode mp3 files and convert them to PCM before
tranformation.`waveman2` is designed to be both extensible with other painters than the default
ones, and also to be imported into any other Golang project as a dependency.
This way, you can easily realize the original idea of waveman to be combined
with a web server that processes audio files sent to the server with a set of
defaults and/or user-defined properties, without having to implement web server
functionality in the waveman codebase itself.See [./docs](./docs/) for the command manual.
## Building
You can build the project from source by cloning the repository and then running
```bash
# Downloads all the go dependencies needed to build
$ go get -d -v ./...
# Builds a binary named "waveman" in the local directory
$ go build -o waveman
# Run waveman locally
$ ./waveman
```