Skip to content
/ MP3.jl Public
forked from JuliaAudio/MP3.jl

MP3 codec for Julia using JuliaAudio idioms. LAME and mpg123 working under the hood

License

Notifications You must be signed in to change notification settings

ginkulv/MP3.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MP3

Build Status Build status codecov.io

MP3 is a Julia library for reading and writing MP3 files.

Usage

The API follows the idioms of FileIO, and uses SampleBuf type to store audio samples. This should supplement LibSndFile which does not support MP3 for patent issues.

Loading MP3

julia> using MP3

julia> audio = load("Sour_Tennessee_Red_Sting.mp3")
245376-frame, 2-channel SampleBuf{FixedPointNumbers.Fixed{Int16,15}, 2, SIUnits.SIQuantity{Int64,0,0,-1,0,0,0,0,0,0}}
5.564081632653061 s at 44100 s⁻¹
▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▆▆▆▇▇▇▇▆▆▅▄▄▄▄▄▄▇▇▇▇▇▆▇▇▇▇▇▆▅▅▄▄▃▃▃▃▃▂▂▂▁▂▁▁▁
▇▇▇▆▇▇▇▆▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▆▆▅▇▇▆▆▆▅▅▄▄▄▅▄▃▇▇▇▇▇▆▇▇▇▇▆▆▅▄▄▄▄▃▃▃▃▂▂▂▁▂▁▁▁

Saving MP3

Various options for encoding MP3 files can be specified using keyword arguments to save() function. An ID3v2 block will be added in front of the file, and the following tags can be optionally given as keyword arguments: title, artist, album, year, comment.

julia> save("mono.mp3", audio; nchannels = 1)           # save as mono audio

julia> save("small.mp3", audio; bitrate = 128)          # set bitrate to 128kbps

julia> save("vbr.mp3", audio; VBR = true, quality = 0)  # encode as highest-quality VBR

julia> save("down.mp3", audio; samplerate = 8kHz)       # downsample to 8 kHz

License

This Julia library is distributed under MIT license. It uses LAME for encoding and mpg123 for decoding mp3, which are dynamically linked, binding to the terms of their LGPL.

About

MP3 codec for Julia using JuliaAudio idioms. LAME and mpg123 working under the hood

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Julia 100.0%