1
- # mp3
1
+ # mp3repair
2
2
3
- [ ![ GoDoc Reference] ( https://godoc.org/github.com/majohn-r/mp3 ?status.svg )] ( https://pkg.go.dev/github.com/majohn-r/mp3 )
4
- [ ![ go.mod] ( https://img.shields.io/github/go-mod/go-version/majohn-r/mp3 )] ( go.mod )
5
- [ ![ LICENSE] ( https://img.shields.io/github/license/majohn-r/mp3 )] ( LICENSE )
3
+ [ ![ GoDoc Reference] ( https://godoc.org/github.com/majohn-r/mp3repair ?status.svg )] ( https://pkg.go.dev/github.com/majohn-r/mp3repair )
4
+ [ ![ go.mod] ( https://img.shields.io/github/go-mod/go-version/majohn-r/mp3repair )] ( go.mod )
5
+ [ ![ LICENSE] ( https://img.shields.io/github/license/majohn-r/mp3repair )] ( LICENSE )
6
6
7
- [ ![ Release] ( https://img.shields.io/github/v/release/majohn-r/mp3 ?include_prereleases )] ( https://github.com/majohn-r/mp3 /releases )
8
- [ ![ Code Coverage Report] ( https://codecov.io/github/majohn-r/mp3 /branch/main/graph/badge.svg )] ( https://codecov.io/github/majohn-r/mp3 )
9
- [ ![ Go Report Card] ( https://goreportcard.com/badge/github.com/majohn-r/mp3 )] ( https://goreportcard.com/report/github.com/majohn-r/mp3 )
10
- [ ![ Build Status] ( https://img.shields.io/github/actions/workflow/status/majohn-r/mp3 /build.yml?branch=main )] ( https://github.com/majohn-r/mp3 /actions?query=workflow%3Abuild+branch%3Amain )
7
+ [ ![ Release] ( https://img.shields.io/github/v/release/majohn-r/mp3repair ?include_prereleases )] ( https://github.com/majohn-r/mp3repair /releases )
8
+ [ ![ Code Coverage Report] ( https://codecov.io/github/majohn-r/mp3repair /branch/main/graph/badge.svg )] ( https://codecov.io/github/majohn-r/mp3repair )
9
+ [ ![ Go Report Card] ( https://goreportcard.com/badge/github.com/majohn-r/mp3repair )] ( https://goreportcard.com/report/github.com/majohn-r/mp3repair )
10
+ [ ![ Build Status] ( https://img.shields.io/github/actions/workflow/status/majohn-r/mp3repair /build.yml?branch=main )] ( https://github.com/majohn-r/mp3repair /actions?query=workflow%3Abuild+branch%3Amain )
11
11
12
- - [ mp3 ] ( #mp3 )
12
+ - [ mp3repair ] ( #mp3repair )
13
13
- [ Purpose] ( #purpose )
14
14
- [ Commands] ( #commands )
15
15
- [ about] ( #about )
51
51
52
52
## Purpose
53
53
54
- The purpose of the ** mp3 ** project is to help manage _ mp3 _ sound files in
55
- Windows.
54
+ The purpose of the ** mp3repair ** project is to repair the metadata contained in
55
+ _ mp3 _ sound files in Windows.
56
56
57
57
## Commands
58
58
59
- The ** mp3 ** program supports the following commands:
59
+ The ** mp3repair ** program supports the following commands:
60
60
61
61
### about
62
62
63
- The ** about** command provides information about the ** mp3** program, including:
63
+ The ** about** command provides information about the ** mp3repair** program,
64
+ including:
64
65
65
66
- The program version
66
67
- The build timestamp
@@ -83,25 +84,25 @@ Argument Name | Value | Default Value | Description
83
84
84
85
##### -empty
85
86
86
- If ** true** , ** mp3 ** ignores the ** -albumFilter** and ** -artistFilter**
87
+ If ** true** , ** mp3repair ** ignores the ** -albumFilter** and ** -artistFilter**
87
88
settings. An _ artist_ directory is any subdirectory of the ** -topDir**
88
- directory, and ** mp3 ** considers it to be empty if it contains no
89
+ directory, and ** mp3repair ** considers it to be empty if it contains no
89
90
subdirectories. An album directory is any subdirectory of an artist directory
90
- and ** mp3 ** considers it empty if it contains no mp3 files.
91
+ and ** mp3repair ** considers it empty if it contains no mp3 files.
91
92
92
93
##### -gaps
93
94
94
- ** mp3 ** assumes that the mp3 files in an album directory are numbered as tracks,
95
- starting with ** 1** and ending with ** N** where ** N** is the number of mp3 files
96
- in the directory. If any mp3 files have an associated track number outside the
97
- range of ** 1..N** , ** mp3 ** lists them in the output, as well as any track
98
- numbers in the expected range that are not associated with any mp3 files in the
99
- directory.
95
+ ** mp3repair ** assumes that the mp3 files in an album directory are numbered as
96
+ tracks, starting with ** 1** and ending with ** N** where ** N** is the number of
97
+ mp3 files in the directory. If any mp3 files have an associated track number
98
+ outside the range of ** 1..N** , ** mp3repair ** lists them in the output, as well
99
+ as any track numbers in the expected range that are not associated with any mp3
100
+ files in the directory.
100
101
101
102
##### -integrity
102
103
103
- ** mp3 ** reads the ** mp3 tags ** for each track file; the ** -integrity** check
104
- looks for discrepancies between that data and the files:
104
+ ** mp3repair ** reads the ** mp3 metadata ** for each track file; the ** -integrity**
105
+ check looks for discrepancies between that data and the files:
105
106
106
107
- Verify that the track file name begins with the track number encoded in the
107
108
_ TRCK_ (track number/position in set) frame of the ID3V2 tag and the track
@@ -143,7 +144,8 @@ illegal in WIndows file names:
143
144
144
145
### export
145
146
146
- The ** export** command provides a means for exporting data to the file system. It is governed by these command arguments:
147
+ The ** export** command provides a means for exporting data to the file system.
148
+ It is governed by these command arguments:
147
149
148
150
Argument Name | Value | Default Value | Description
149
151
---------------+---------+---------------+-------------
@@ -154,8 +156,8 @@ Argument Name | Value | Default Value | Description
154
156
155
157
##### -defaults
156
158
157
- If true, ** mp3 ** writes the command defaults to a file named ** defaults.yaml **
158
- in the ** %APPDATA%\mp3 ** directory.
159
+ If true, ** mp3repair ** writes the command defaults to a file named
160
+ ** defaults.yaml ** in the ** %APPDATA%\mp3repair ** directory.
159
161
160
162
### list
161
163
@@ -176,17 +178,17 @@ Argument Name | Value | Default Value | Description
176
178
177
179
##### -annotate
178
180
179
- If true, ** mp3 ** provides the following annotations:
181
+ If true, ** mp3repair ** provides the following annotations:
180
182
181
183
1 . Album names will include the recording artist if artists are not included
182
184
(** -includeArtists=false** )
183
185
2 . Track names will include the album name if albums are not included
184
- (** -includeAlbums=false** ), and the recording artist if artists are also not included
185
- (** -includeArtists=false** )
186
+ (** -includeAlbums=false** ), and the recording artist if artists are also not
187
+ included (** -includeArtists=false** )
186
188
187
189
##### -details
188
190
189
- If true, ** mp3 ** provides the following details, if available:
191
+ If true, ** mp3repair ** provides the following details, if available:
190
192
191
193
1 . Composer, which corresponds to the _ TCOM_ (Composer) frame of the track's
192
194
ID3V2 tag.
@@ -207,15 +209,15 @@ Allowed values are **numeric** and **alpha**. If **numeric** sorting is
207
209
reqested, track and album listing must both be enabled; otherwise, it makes no
208
210
sense.
209
211
210
- If any value other than ** numeric** or ** alpha** is used, ** mp3 ** will be
212
+ If any value other than ** numeric** or ** alpha** is used, ** mp3repair ** will be
211
213
replace it with an appropriate value as follows:
212
214
213
- 1 . If tracks are not listed (** -includeTracks=false** ), ** mp3 ** ignores the
214
- value.
215
+ 1 . If tracks are not listed (** -includeTracks=false** ), ** mp3repair ** ignores
216
+ the value.
215
217
2 . If tracks and albums are listed (** -includeTracks=true** and
216
- ** -includeAlbums=true** ), ** mp3 ** replaces the value with ** numeric** .
218
+ ** -includeAlbums=true** ), ** mp3repair ** replaces the value with ** numeric** .
217
219
3 . If tracks are listed (** -includeTracks=true** ) but albums are not listed
218
- (** -includeAlbums=false** ), ** mp3 ** replaces the value with ** alpha** .
220
+ (** -includeAlbums=false** ), ** mp3repair ** replaces the value with ** alpha** .
219
221
220
222
### postRepair
221
223
@@ -251,7 +253,7 @@ command has edited at least one mp3 file since the last time the
251
253
If you need to reset the database (for instance: because you used another
252
254
program such as ** WinAmp** to edit mp3 file metadata) and the ** resetDatabase**
253
255
command insists that it doesn't need to do anything, simply create a file named
254
- ** metadata.dirty** in the ** %APPDATA%\mp3 ** directory and run the
256
+ ** metadata.dirty** in the ** %APPDATA%\mp3repair ** directory and run the
255
257
** resetDatabase** command again.
256
258
257
259
The ** resetDatabase** command has the following command arguments:
@@ -322,11 +324,11 @@ to specify different values for those command arguments.
322
324
The user may find that she is constantly overriding some command arguments on
323
325
the command line with the same values. The user can simplify their usage and
324
326
override the default command argument values by placing a text file named
325
- ** defaults.yaml** in the ** %APPDATA%\mp3 ** directory. By default, there is no
326
- such directory, and the user must create it; the ** export** command can be used
327
- to create a baseline version of the file, in the correct directory.
327
+ ** defaults.yaml** in the ** %APPDATA%\mp3repair ** directory. By default, there is
328
+ no such directory, and the user must create it; the ** export** command can be
329
+ used to create a baseline version of the file, in the correct directory.
328
330
329
- See [ YAML] ( #yaml ) for a brief description of how the ** mp3 ** program uses _ YAML_
331
+ See [ YAML] ( #yaml ) for a brief description of how the ** mp3repair ** program uses _ YAML_
330
332
and a link to _ YAML_ documentation.
331
333
332
334
The ** defaults.yaml** file may contain seven blocks, all of which are optional:
@@ -423,16 +425,16 @@ A few comments concerning argument values:
423
425
424
426
Argument values may contain references to environment variables. These can be
425
427
specified either in **Windows** format (**%VAR_NAME%**) or in **\* nix** format
426
- (**\$ VAR_NAME**), such as **$APPDATA/mp3 ** or **%APPDATA%\m p3 **.
428
+ (**\$ VAR_NAME**), such as **$APPDATA/mp3repair ** or **%APPDATA%\m p3repair **.
427
429
428
430
The referenced environment variables must exist. Referring to a non-existent
429
431
(e.g., misspelled) variable will result in the program failing with one or more
430
432
error messages specifying the missing variable.
431
433
432
434
#### File Separators
433
435
434
- File separators, as in a path to the music files, may be forward slashes (**/**) or
435
- backward slashes (**\\ **).
436
+ File separators, as in a path to the music files, may be forward slashes (**/**)
437
+ or backward slashes (**\\ **).
436
438
437
439
#### Numeric Values
438
440
@@ -447,15 +449,15 @@ _F_, _false_, _FALSE_, or _False_.
447
449
448
450
## Environment
449
451
450
- **mp3 ** depends on the following environment variables being set:
452
+ **mp3repair ** depends on the following environment variables being set:
451
453
452
- 1. **TMP** or **TEMP** - the system temporary directory. mp3 looks for **TMP**
453
- first, and, if that variable is not defined, then mp3 looks for **TEMP**. One
454
- of them must be set so that log files can be written.
454
+ 1. **TMP** or **TEMP** - the system temporary directory. mp3repair looks for
455
+ **TMP** first, and, if that variable is not defined, then mp3repair looks for
456
+ **TEMP**. One of them must be set so that log files can be written.
455
457
456
458
## Dependencies
457
459
458
- **mp3 ** uses the following third party libraries:
460
+ **mp3repair ** uses the following third party libraries:
459
461
460
462
- Basic command structure and logging implementation:
461
463
[https://github.com/majohn-r/cmd-toolkit](https://github.com/majohn-r/cmd-toolkit).
@@ -480,21 +482,23 @@ libraries.
480
482
MP3 files contain metadata in the form of ID3V2 tags and ID3V1 tags; ID3V1 is
481
483
the older tag format and is severely constrained compared to ID3V2, but it is
482
484
still widely supported and it is common to find MP3 files that contain both.
483
- While the **mp3** program primarily deals with the richer ID3V2 metadata, the
484
- **check** and **repair** commands will notice when ID3V1 tags are not in sync
485
- with the files and rewrite them as necessary. Information about the **ID3V1**
486
- tag formt can be found here: [https://id3.org/ID3v1](https://id3.org/ID3v1).
485
+ While the **mp3repair** program primarily deals with the richer ID3V2 metadata,
486
+ the **check** and **repair** commands will notice when ID3V1 tags are not in
487
+ sync with the files and rewrite them as necessary. Information about the
488
+ **ID3V1** tag formt can be found here:
489
+ [https://id3.org/ID3v1](https://id3.org/ID3v1).
487
490
488
491
### ID3V2.3.0
489
492
490
- The **mp3** program depends heavily on the MP3 files containing an **ID3V2.3.0**
491
- tag, which stores information about the audio file, particularly metadata, such
492
- as the title and performer. Information about the **ID3V2.3.0** tag format can
493
- be found here: [https://id3.org/id3v2.3.0](https://id3.org/id3v2.3.0).
493
+ The **mp3repair** program depends heavily on the MP3 files containing an
494
+ **ID3V2.3.0** tag, which stores information about the audio file, particularly
495
+ metadata, such as the title and performer. Information about the **ID3V2.3.0**
496
+ tag format can be found here:
497
+ [https://id3.org/id3v2.3.0](https://id3.org/id3v2.3.0).
494
498
495
499
### YAML
496
500
497
- The **mp3 ** program reads user-supplied files, written in YAML, for purposes
498
- such as configuring default argument values. For information on writing such
499
- files, the **YAML** specification can be found here:
501
+ The **mp3repair ** program reads user-supplied files, written in YAML, for
502
+ purposes such as configuring default argument values. For information on writing
503
+ such files, the **YAML** specification can be found here:
500
504
[https://yaml.org/spec/1.2.2/](https://yaml.org/spec/1.2.2/).
0 commit comments