This project has moved. For the latest updates, please go here.

File Update

Jan 16, 2016 at 6:25 AM
I would like to add functionality to update (or create) the file defined in the path property of the Track class. Is there a reason this would not fit into the context of this library?
Coordinator
Jan 16, 2016 at 4:47 PM
Edited Jan 16, 2016 at 4:47 PM
Hello ddarras,


Thanks for your message. As far as I'm concerned, there can be two answers to your question, since "udpate (or create) the file" can be understood in two ways :


1- Editing tags/metadata (e.g. changing the artist's name, adding a composer)

That is a central issue indeed, since the original ATL (the version maintained by Jürgen Faul) did include such features.

So far, my initial goal for the library has been to implement reading features on a broad scope of popular file formats.

As I'm coming closer to this goal, I'm currently considering the next steps of the roadmap. And guess what ? Tag editing could be among them ! I'll let everyone know by editing the Roadmap section of the welcome page as soon as I've decided.

Of course, dont wait for me if you want to submit your own contributions !


2- Editing audio data (e.g. signal processing, recording, converting between audio formats)

These features are clearly not planned for the near or distant future of ATL, for two reasons :
  • Understanding how to process audio data requires in-depth technical knowledge that I don't currently have
  • Many audio formats currently supported by ATL have a proprietary compression algorithm. If I wanted to allow ATL to compress audio data, the formats would be limited to a couple of open formats, or would require to link external proprietary/semi-open libraries, thus breaking the vow of having 100% native .NET code.
I hope this answers to your question.

Cheers,

-Z440
Jan 16, 2016 at 8:00 PM
Hi Z440

Thanks for the reply. Yes number one is definitely the direction I was thinking. In my particular case I had a need to update properties like album & artist in files that do not have these items defined. I wrote a program to clean up my collection which did things like update properties based on the file path if they were not defined in the content. Conversely I update file names and artist folders based on the tags in the file content.

With regard to number two: I was not thinking of that aspect of editing but it sounds like fun. Even though I have extensive abilities with digital signal processing, that would be a puzzle to figure out what capabilities people would want. I could think of applying frequency filters or perhaps matching music time signatures for playlist creation. Many possibilities. Maybe I'll give it some thought for the future.

In the meantime I'll see what I can come up with for file updating or file creation from the Track object.

I also wanted to tell you that your project has a lovely architecture from which I have learned a few things. I recently landed a position with a fitness company for developing .NET web applications and like to think studying your project helped with that. Thanks!

Cheers,
David
Coordinator
Jan 17, 2016 at 7:43 AM
Edited Jan 17, 2016 at 7:43 AM
In the meantime I'll see what I can come up with for file updating or file creation from the Track object.
Please keep in mind that such features will alter files. To avoid bad suprises, it is essential to build (and test) robust code that keeps perfectly intact :
  • The other areas of the original file which are not metadata
  • Metadata that are not handled by ATL (e.g. Performer, Encoder, embedded pictures other than front cover)
  • Non-ASCII characters that might be in original or modified/added metadata, especially on tagging standards that do not require default Unicode/UTF-8 encoding (ID3v2 I'm looking at you...)
I also wanted to tell you that your project has a lovely architecture from which I have learned a few things. I recently landed a position with a fitness company for developing .NET web applications and like to think studying your project helped with that. Thanks!
Well, congrats David ! However, you have to know that most of what I've done has been built around software design best practices called design patterns. I highly recommend the book "Design Patterns : Elements of Reusable Object-Oriented Software" by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. It contains hands-on illustrations on various software design principles aimed at producing clean and reusable code.