12 unstable releases (3 breaking)
0.103.0 | Mar 20, 2025 |
---|---|
0.2.8 | Dec 23, 2024 |
0.2.7 | Nov 17, 2024 |
0.1.12 | Feb 12, 2024 |
0.1.3 | Nov 8, 2023 |
#223 in Audio
144 downloads per month
29KB
606 lines
๐ต nu_plugin_audio_hook
A Nushell plugin for generating and playing sounds. Supports beeping, tone generation, metadata manipulation, and playback for multiple audio formats.
โจ Features
sound beep
โ Play a simple beep sound.sound make
โ Generate a noise with a given frequency and duration.sound meta
โ Retrieve metadata (duration, artist, album, etc.) from an audio file.sound meta set
โ Modify ID3 metadata frames in an audio file. More about ID3.sound play
โ Play an audio file. By default, supports FLAC, WAV, MP3, and OGG. Use theall-decoders
feature to enable AAC and MP4 playback.
๐ Usage
Generate a simple noise
sound make 1000 200ms
Generate a noise sequence
[ 300.0, 500.0, 1000.0, 400.0, 600.0 ] | each { |it| sound make $it 150ms }
Play an audio file (first 3 seconds only)
sound play audio.mp3 -d 3sec
Retrieve metadata from an audio file
sound meta audio.mp4
Example Output:
โญโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ duration โ 4min 5sec 551ms 20ยตs 408ns โ
โ artist โ SINGER โ
โ title โ TITLE โ
โ album โ ALBUM โ
โ album_artist โ SINGER โ
โ track_no โ 1 โ
โ total_tracks โ 1 โ
โฐโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Modify ID3 metadata (change the artist tag)
sound meta set audio.mp3 -k TPE1 -v new-artist
Play an MP3 file using its metadata duration
sound meta audio.mp4 | sound play audio.mp3 -d $in.duration
List all available ID3 frame names
sound meta list
๐ง Installation
๐ Recommended: Using nupm
git clone https://github.com/FMotalleb/nu_plugin_audio_hook.git
nupm install --path nu_plugin_audio_hook -f
๐ ๏ธ Manual Compilation
git clone https://github.com/FMotalleb/nu_plugin_audio_hook.git
cd nu_plugin_audio_hook
cargo build -r --features=all-decoders
plugin add target/release/nu_plugin_audio_hook
๐ฆ Install via Cargo (using git)
cargo install --git https://github.com/FMotalleb/nu_plugin_audio_hook.git --features=all-decoders
plugin add ~/.cargo/bin/nu_plugin_audio_hook
๐ฆ Install via Cargo (crates.io) Not Recommended
Since I live in Iran and crates.io often restricts package updates, the version there might be outdated.
cargo install nu_plugin_audio_hook --features=all-decoders
plugin add ~/.cargo/bin/nu_plugin_audio_hook
๐ Supported Features
You can enable specific features when compiling or installing:
full
โ Enables all features below.flac
(default) โ FLAC format support.vorbis
(default) โ OGG Vorbis support.wav
(default) โ WAV format support.minimp3
โ MP3 decoding.symphonia-all
โ Enables all Symphonia-based decoders:symphonia-aac
โ AAC decoding.symphonia-flac
โ FLAC decoding.symphonia-isomp4
โ MP4 (audio) decoding.symphonia-mp3
(default) โ MP3 decoding.symphonia-vorbis
โ OGG Vorbis decoding.symphonia-wav
โ WAV decoding.
Dependencies
~25โ61MB
~1M SLoC