Joshua Kraunelis
December 10, 2008


As you may know, ID3 is a popular data tagging format, commonly used in MP3 files. This program will display a list of mp3 files in a given directory, display the tag data in graphical form, and will allow the user to make changes to the tag data.


Concepts Demonstrated

  • Data abstraction and the functional programming paradigm are widely used in this program.
  • Most of the file parsing is done using recursion.
  • Tagged-data is prevalent in this implementation.

External Technology

The back-end of this program uses Scheme's file port and byte manipulation libraries to work with the mp3 files. The front-end is a GUI built using Scheme's GUI library.


Scheme is known for being strong at searching and sorting. Together with this program, powerful ways to organize one's music collection could be built.

Technology Used Block Diagram

Additional Remarks

I tried to stay true to Scheme and use as little state-modifying functions as I could, which was practically suicide.