Multi-genre tagging
Music rarely fits in a single box. A track might be Rock and Electronic and Ambient all at once. BitDek reads all three, from FLAC, MP3, and M4A alike. What changes between formats is how your tagger writes them, and one common setting loses genres on the way in.
How BitDek reads multiple genres
Section titled “How BitDek reads multiple genres”Whatever the format, BitDek splits the genre field on four separators. Commas are the usual choice.
Example:
GENRE=Rock, Electronic, AmbientThis track appears when you browse Rock, Electronic, or Ambient. Three genres, one track. The same string in an MP3 or an M4A gives the same result.
FLAC has one extra capability. Vorbis comments let you store genres as genuinely separate GENRE tags rather than one delimited string, and BitDek reads every one of them. That’s the most robust way to tag multiple genres, because nothing depends on a separator surviving your tagging tool.
Separator formats
Section titled “Separator formats”BitDek recognizes four separators in genre fields, in every format:
Comma (preferred): Rock, Alternative, Grunge
Semicolon: Rock;Alternative;Grunge
Forward slash: Electronic/Ambient/Downtempo
Backslash: Electronic\Ambient\Downtempo
All work. Commas are the most readable and match BitDek’s edit fields. Pick one separator and be consistent across your collection.
Spaces around separators are trimmed:
Rock , Alternative→ “Rock” and “Alternative”Rock,Alternative→ “Rock” and “Alternative”
Primary genre
Section titled “Primary genre”When multiple genres exist, the first one listed is the primary genre. This affects:
- Default sort order in some views
- Any future features that need a single “main” genre
Order your genres from most to least descriptive:
GENRE=Jazz, Fusion, Instrumental“Jazz” is the primary. “Fusion” and “Instrumental” provide additional categorization.
The one setting that loses genres
Section titled “The one setting that loses genres”ID3v2.4 offers taggers a second way to store multiple values: as a list inside a single frame, with the values separated by null bytes rather than visible characters. BitDek reads MP3 metadata through iOS AVFoundation, and AVFoundation stops reading that frame at the first null byte. Everything after the first genre is lost before BitDek ever sees it.
This matters because it’s the default in a popular tool. MusicBrainz Picard has written ID3v2.4 by default since version 2.9, and it uses the null-separated form for multiple values.
What you’ll see:
- MP3 tagged
Rock, Electronicin one field → both genres import - MP3 tagged by Picard with Rock and Electronic as separate values → only “Rock” imports
The limitation is in the iOS metadata API, not in BitDek, and it affects every iOS app that reads tags this way.
Getting multiple genres into MP3 and M4A
Section titled “Getting multiple genres into MP3 and M4A”Write ID3v2.3 instead
Section titled “Write ID3v2.3 instead”In Picard, open Options and set the ID3v2 version to 2.3. Picard joins multiple values with a separator when it writes v2.3, which is exactly the form BitDek reads. This is the smallest change with the biggest effect.
Type the separators yourself
Section titled “Type the separators yourself”In Mp3tag or Kid3, enter your genres as one string: Rock, Electronic, Ambient. A single delimited value always survives the trip.
Check your work
Section titled “Check your work”Import a couple of files and look at the Genres screen. If a track shows one genre where you tagged three, your tagger is writing the null-separated form. Switch to v2.3 and re-save those files.
Playlist-based organization
Section titled “Playlist-based organization”Genres are not the only way to group music. A “Chill Electronic” playlist can hold tracks tagged Electronic, Ambient, or Downtempo, whatever their genre fields say. See Smart Rules for playlists that fill themselves.
Tagging multiple genres
Section titled “Tagging multiple genres”Using MusicBrainz Picard
Section titled “Using MusicBrainz Picard”- Load your files
- Select a track
- Find the Genre field in the tag editor
- Enter multiple genres separated by commas:
Rock, Alternative - Save
Picard can fetch multiple genres from MusicBrainz automatically if you configure it to. For MP3s, set the ID3v2 version to 2.3 in Options first, or Picard writes the null-separated form BitDek can’t read.
Using MP3Tag
Section titled “Using MP3Tag”- Load your files
- Select tracks to edit
- In the Tag Panel, edit the GENRE field
- Enter multiple genres:
Electronic, Ambient, Downtempo - Save
Using Kid3
Section titled “Using Kid3”- Load your files
- Select tracks
- Find Genre in the tag list
- Enter your genres as one delimited string rather than separate values, unless the files are FLAC
Genre organization strategies
Section titled “Genre organization strategies”Broad categories
Section titled “Broad categories”Use high-level genres: Rock, Electronic, Jazz, Classical, Hip-Hop
Pros: Simple, easy to maintain, good for quick browsing Cons: Loses nuance, large genre buckets
Detailed subgenres
Section titled “Detailed subgenres”Use specific genres: Progressive Rock, Ambient Techno, Bebop, Baroque, Boom Bap
Pros: Precise categorization, better for focused listening Cons: Many small categories, harder to maintain consistency
Combined approach
Section titled “Combined approach”Tag with both broad and specific:
GENRE=Rock, Progressive RockThe track appears in “Rock” for quick browsing and “Progressive Rock” for specific mood.
Mood-based
Section titled “Mood-based”Add mood tags as genres:
GENRE=Electronic, Ambient, Relaxing, Late NightThis blurs the line between genre and mood but can be useful for discovery.
Common pitfalls
Section titled “Common pitfalls”Inconsistent naming
Section titled “Inconsistent naming”“Rock” vs “ROCK” vs “rock” - BitDek treats these as the same genre (case-insensitive matching).
But “Hip-Hop” vs “Hip Hop” vs “HipHop” creates three separate genres. Pick one spelling and stick with it.
Too many genres
Section titled “Too many genres”Every track tagged with 10 genres defeats the purpose. Aim for 1-3 genres per track. More than that usually means at least one doesn’t really apply.
Empty primary genre
Section titled “Empty primary genre”If your first genre is empty or whitespace, you get unexpected results:
GENRE=;Rock;Alternative ← Empty first genreAlways start with an actual genre name.
Mixed separators
Section titled “Mixed separators”This works but looks messy:
GENRE=Rock,Alternative;Grunge ← Multiple separatorsPick one separator (commas recommended) and use it consistently.
Browsing by genre in BitDek
Section titled “Browsing by genre in BitDek”When you select a genre in BitDek, you see all tracks tagged with that genre. For multi-genre tracks, this means:
- Select “Rock” → Shows tracks tagged Rock (including multi-genre)
- Select “Electronic” → Shows tracks tagged Electronic (including multi-genre)
A track tagged Rock, Electronic appears in both lists.
The Genres view shows all genres present in your library, with track counts. Multi-genre tracks are counted in each genre they belong to.
Technical details
Section titled “Technical details”Genre field parsing
Section titled “Genre field parsing”Every genre value BitDek reads goes through the same splitter, whatever the format: commas, semicolons, forward slashes, and backslashes all divide one string into several genres.
FLAC gets a second pass. Vorbis comments allow repeated GENRE tags, so BitDek collects every one and splits each in turn. A file with three GENRE tags, one of which is Rock, Alternative, yields four genres.
Each resulting segment is trimmed of whitespace and stored as a separate genre entity. The track maintains relationships to all of them.
Genre entity deduplication
Section titled “Genre entity deduplication”Genre names are deduplicated during import. “Rock” entered on multiple tracks creates one SDGenre entity with multiple track relationships.
Case-insensitive matching prevents “Rock” and “rock” from creating duplicate entries. The display preserves the case from the first occurrence.
AVFoundation and null-separated values
Section titled “AVFoundation and null-separated values”iOS AVFoundation exposes tag data through AVMetadataItem, which hands back text frames as a single String. The ID3v2.4 specification allows a text frame to hold several strings in a null-separated list, and the string BitDek receives is truncated at the first null byte. The remaining values are not exposed by any part of the API, so no iOS app reading tags this way can recover them.
Delimited values are unaffected, because a comma or a slash is ordinary text inside a single string. That’s why the fix is a tagger setting rather than a code change.
Further reading
Section titled “Further reading”- Supported audio formats - Format capabilities comparison
- How BitDek reads your tags - Tag extraction details
- Recommended tagging tools - Software for multi-genre tagging