• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Plugins
  • Assigned To No-one
  • Operating System
  • Severity Low
  • Priority Very Low
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by jzoss - 2003-03-04
Last edited by hbacke - 2005-11-29

FS#1008 - Edit ID3 Tags


- allows editing of title, artist, album, year,
tracknum, genre tags in existing mp3 files
- allows setting ID3 tags for recordings
- writes both id3v1 and id3v2 tags


- relatively untested (esp. on player), so make sure
you have backups of critical files before editing!
- will overwrite any unsupported existing tags
(lyrics, comments, etc)
- due to write-from-even-offset limitation (and my
coding laziness), resizing id3v2 tags may not be
byte-perfect for last byte of id3v2 tag (usually just
padding) and last byte of mp3 data.
- only “remembers” last id3 tag used for
recording-tagging. Would be nice to have a short
history of prev-5 entries for each tag.
- no batch ID3 edit (would be quite slow)

Files Modified:

- apps/settings.c – load/save_rec_settings (last
ID3 tags),

                            set_genre  UI for

selecting ID3 genre
- apps/settings.h – set_genre prototype
- apps/sound_menu.c – add “Edit ID3 Tags” entry to
recsettings menu
- apps/tree.c – quickMenu entry for “Edit ID3 Tags”

                      get_dirBrowse_currFile so

external code can read currently selected filename
- apps/tree.h – get_dirBrowse_currFile prototype
- apps/wps-display.c – moved genre definitions to id3.c
- apps/wps-display.h – removed wps_get_genre
- apps/wps.c – edit_id3_tags UI + wrapper function

                      replaced browse_id3 w/ above UI

- apps/wps.h – edit_id3_tags prototype
- apps/lang/english.lang – add LANG_EDIT_ID3 entry
- apps/recorder/recording.c – interface for external
code to edit recording’s ID3 tags


space for id3v2 tags before recording starts

                                          move src to

F2 quickmenu, edit ID3 tags on F3 quickmenu
- apps/recorder/recording.h – rec_edit_id3() prototype
- firmware/id3.c – macros to take int → SYNC (or
not) bytes

                         added genre definitions from




                         resize_id3v2 to shfft mp3

data to make room for id3v2 header


- firmware/mpeg.c – moved recording file creation to

                            write_id3_tags on

recording STOP
- firmware/export/id3.h – resize_id3v2,
write_id3_tags, id3_get_genre prototypes

Whew! Sorry if that was a little wordy. Lemme know,
and I’ll trim out all those modified-file descriptions. =)

Closed by  bagder
2007-05-19 15:24
Reason for closing:  Out of Date

great patch – just played around with it a bit, and I love it!

Where did the files go?

jzoss commented on 2003-03-04 17:46

I dunno…I didn’t delete them. :S And the originals are
at home, so I can’t re-upload them

WOW!!! Can’t wait to see this in the daily builds! Looks

Anonymous Submitter commented on 2003-03-04 22:26

sounds excellent !!!

can’t wait to see this feature blend in the daily build !


there are a few things I think could improve it considerably:

–the option to choose between writing ID3v1 and ID3v2 tags
or both. Not remove ID3v1 support but make it an option in
the options menu. Tag editing /ID3v1/ID3v2/ID3v1&2

–do not erase already written tags

–and last but not least… remember already used tags.
like for artists save the last 5 . that way if you record an
entire album onto the recorder, you do not have to type the
same information in again and again.

jzoss commented on 2003-03-07 04:50

Seems I can’t delete my old patch … Arrrr.

Anyway, use the new (030306) patch. This patch doesn’t
apply cleanly on top of the custom recFilename patch (or
vice-versa), so I uploaded a combined patch too.

Anonymous Submitter commented on 2003-06-04 16:07

Major revision in the works. Cleaned up, preserves
existing unsupported tags, removed recording-ID3-tag
functionality (kinda a screwy idea anyway) and any
dependency on recFilename patch. Allows editing (as
long as no file-resize) while playing. Will be out as
soon as I find a free weekend to tie up loose ends. =)

Project Manager
zagor commented on 2003-07-04 08:34

Will you make this a plugin? I will add kbd_input() to the plugin

jzoss commented on 2003-08-17 03:06

Finally, an update:

  1. it’s a plugin now
  2. now preserves existing unsupported ID3 tags
  3. editor now can revert and clear tags (use LEFT)

BUT – there’s a memory leak somewhere that causes
squirrelly behavior and is a pita to track down. So, feel
free to try out, but use at your own risk…

could you update this for the latest CVS? It is a great
patch… also would it be possible to show only the tags where
there is an entry for them? (and include more of the ID3v2
tags) :-)

could you update this for the latest CVS? It is a great
patch… also would it be possible to show only the tags where
there is an entry for them? (and include more of the ID3v2
tags) :-)

Project Manager
zagor commented on 2004-01-14 14:51

This looks like an excellent candidate for the new “Open
with…” feature. But it needs updating, a lot has happened
in CVS since the last patch.

Project Manager

Updated version by Henrik Backe, doesn’t apply cleanly on
recent versions.

Updated version. It crashes, and possibly doesn’t work on
Players. I marked the place of the crash in the plugin sources.

This would close RFE #577871 (man, do I wish sourceforge
could link such requests somehow)

Updated patch, I only use it to browse id3 tags so the edit
part needs more testing. …/Henrik

Added keys for new targets (iriver,ipod) and fixed keys for
ondio. The key assignments are probably not optimal, but at
least it compiles for all targets now.

The patch reduces the binary size with ~490 bytes for
recorder v1 :-)


Project Manager

Is there an updated patch of this around?

yeah, is there, cause im not sure a March of 06 patch will patch correctly with Julys builds

see  FS#5927  for an actual attempt. Currently that is ID3v1.1 only.

what i should do with the:
where to copy them? how to install?

This is not a support channel! This is about coding, so you should know the basics. Read the wiki, it’s explained there. You need to build Rockbox yourself.


Available keyboard shortcuts


Task Details

Task Editing