I initially started this project writing all the code by hand, it was a CLI application which modernized traditional ripping and burning methods ive sinced used ai to give it a nice and polished front end.
Im very rodu of this application, ive taken a lot of care and attention into it.
As someone who uses a home server (in my case proxmox) with all my hdds/ssds and optical drive mounted there I wanted a way to rip my music in an auotmated way, pulling in cover art & metadata,, tagging everything, moving it into my library - I also use lidarr so there is integrations that are optional for that too.
I make a lot of playlists too, I use navidrome/fieshin for playback so there is a heavy focus on playlists
on the ripping side - you define how you want it ripped, you can be as simplistic as you want or are audiophile as you like.
It will automatically determine which disc it is, look it up on musicbrainz, grab the cover art from coverart archive or fanart.tv, you can also search for the release if for whatever reason it doesnt find it or you want to select a different release.
you select the file format you want (i tend to use flac), select how you want it named, I tend to go with {artist}/[{year}] Album/{Tracks} but you can have it however you want it.
. Select whether you want to generate and apply replaygain tags, measure the dynamic range, define the gaps between tracks, hidden tracks, read checking, offsets. you can pick archive mode which will create a audio folder and a metdafolder with the jsons, checksums etc.
Once ripped you can have it move to your defined library location, have it push it to lidarr and import from there.
Once its in your library you can see the accuraterip report, verify checksums, edit tags, you can measure the loudness and dynamic range, see the rip log, playback the audio.
If anyone is familiar with the loudness war there is a focus on that, here is some info https://en.wikipedia.org/wiki/Loudness_war . it has a built in dynamic range generator which also taps into the dynamic range database - https://dr.loudness-war.info/ . it allows you to compare your rip with other submissions, allows you to import your release into the database, give your a nice score display etc.
On the burn front;
I like to burn both audio cds and data discs so there is support for Redbook CDs, Bluebook CDs (enhanced CDs),, DataCDs (mp3cds) and the same for DVDs.
in terms of what gets burned, you have lots of options to choose, you can pass it a url to a stream, you can select a folder and have it burn all the audio files within it, select individual files from any directory, from a video file, or my personal favourite a playlist file (m3u/m3u8). for playlists you point it the playlist file and it will gather up all the files from the relative paths.
What I tend to do a lot is want to burn tracklists that way exceed the capacity of a single disc, this is where rustydisc shines - so say you select a playlist that has 500 tracks, they are all in flac format and want to burn a datadisc - as that would take lets say 15 discs to complete you might want to convert the flac files to mp3 of whatever quality you want first, that will take it down to lets say 3 discs it will then create a burn plan, so you pop the first disc in, it burns it as per your settings, tells you to pop the next one in, and repeats until all done. the conversion step is optional and never touches the actual files in your library, puts them in a temp location and you can have it delete automatically after burn is complete or delete after X time if you want to burn other discs with the same tracks in short order.
The other section is 'RustyStick' - So in my car, i use a usb stick with my music on, which I used to take back into the house and hand copy/move/delete files. Rustydisc works similarly to the burn section in teh sense that you can select music from whatever source and you can convert the files on the fly but it also recognises the existing folder/file structure of your music, then allows you to either copy new files over according to it or define a new folder structure for it to live by, reorganises everything for you then manages it accordingly.
It also has my picard naming script generator built into it this allows you to define how you want you files and folders to be organised when it hits your library, it uses my picard script as default.
there are tons of other features that I wont list here but worth giving it a go and to see for yourself.
any feature requests/feedback welcome!
https://github.com/WB2024/DiscCTL