This repository has been archived by the owner on Feb 17, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathacxi.1
1139 lines (893 loc) · 44.4 KB
/
acxi.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.TH ACXI 1 "2021\-09\-24" acxi "acxi manual"
.SH NAME
acxi \- Command line audio conversion tool
.SH SYNOPSIS
Most of the commonly used options have short forms to make typing the commands
faster.
.IP * 2
Directories: \fBacxi\fR
[\fB\-\-destination\fR, \fB\-d\fR {destination-path}]
[\fB\-\-source\fR, \fB\-s\fR {source\-path}]
[\fB\-\-source\-glob\fR, \fB\-g\fR {relative path}]
.IP * 2
Checksums: \fBacxi\fR [\fB\-\-analyze\fR, \fB\-Z\fR]
[\fB\-\-checksum\fR, \fB\-K\fR] [\fB\-\-checksum\-delete\fR, \fB\-D\fR]
[\fB\-\-checksum\-ffps\fR, \fB\-\-ffps\fR]
[\fB\-\-checksum\-verify\fR, \fB\-V\fR]
[\fB\-\-duplicates\fR, \fB\-\-dupes\fR]
[\fB\-\-no\-ffp\fR] [\fB\-\-no\-md5\fR]
.IP * 2
Syncing: \fBacxi\fR [\fB\-\-append\fR, \fB\-a\fR {extensions}]
[\fB\-\-clean\fR] [\fB\-\-codec\fR {aac|libfdk_aac2}]
[\fB\-\-copy\fR, \fB\-c\fR {extensions}] [\fB\-\-dot\fR]
[\fB\-\-exclude\fR, \fB\-x\fR {filename|extension}]
[\fB\-\-exclude\-append\fR, \fB\-y\fR {filename|extension}]
[\fB\-\-force\fR, \fB\-f\fR] [\fB\-\-fork\fR, \fB\-F\fR {0-xx}]
[\fB\-\-input\fR, \fB\-i\fR {flac|raw|shn|wave}]
[\fB\-\-output\fR, \fB\-d\fR {flac|mp3|ogg|opus}] [\fB\-\-no\-dot\fR]
[\fB\-\-quality\fR\fR, \fB\-q\fR {NUMBER}]
[\fB\-\-resample\fR {bit-depth:sample-rate}]
.IP * 2
Tagging: \fBacxi\fR [\fB\-\-autotag\fR, \fB\-A\fR]
[\fB\-\-autotag\-create\fR, \fB\-C\fR]
[\fB\-\-autotag\-create\-single\fR, \fB\-S\fR]
[\fB\-\-autotag\-create\-multi\fR, \fB\-M\fR {filename start ID}]
[\fB\-\-image\fR, \fB\-I\fR {cover image filename}]
[\fB\-\-infofix\fR, \fB\-X\fR [d|l|n|q|t|u|w]]
[\fB\-\-info\-rating\fR {2\-xxx}
[\fB\-\-prefill\fR, \fB\-E\fR]
[\fB\-\-prefill\-file\fR {release info file name}]
[\fB\-\-no\-replaygain\fR] [\fB\-\-recurse\fR {-1-xx}]
[\fB\-\-remove\-images\fR, \fB\-R\fR] [\fB\-\-remove\-padding\fR, \fB\-P\fR]
[\fB\-\-start\fR {0-xx}]
[\fB\-\-tag\fR, \fB\-T\fR] {"TAG1%:tag value^^TAG2%:tag value"}]
.IP * 2
Info: \fBacxi\fR [\fB\-\-help\fR, \fB\-h\fR] [\fB\-\-version\fR]
.IP * 2
Miscellaneous: \fBacxi\fR [\fB\-\-aggregate\fR, \fB\-G\fR [file name|extension]]
[\fB\-\-update\fR, \fB\-U\fR]
.IP * 2
Output Controls: \fBacxi\fR [\fB\-\-verbosity\fR, \fB\-v\fR {0-3}]
[\fB\-\-quiet\fR]
.IP * 2
Debugging: \fBacxi\fR [\fB\-\-debug\fR] [\fB\-\-nlink\fR]
[\fB\-\-no\-nlink\fR] [\fB\-\-test\fR]
.SH DESCRIPTION
\fBacxi\fR is a command line audio conversion program and audio processing
program. It converts and syncs all desired source lossless files to the desired
output format, and to a different directory location.
.PP
Supports lossless input formats aiff/flac/raw/shn/wav. Output formats are flac,
ogg, opus, aac/m4a, or mp3. aif/raw/shn can only output to flac. aac, m4a, mp3
can only have flac as input format. Resampling can only have flac as input and
output formats.
.PP
By default, syncing will also copy over most common filetypes like gif, jpg,
png, and txt. You can change the defaults using a configuration file, or using
the \fB\-c\fR or \fB\-a\fR options.
.PP
The destination directory cannot be the same as the source directory, but it can
be inside of the source directory.
.PP
It can also generate or verify md5 and ffp checksum files if required, as well
as tag/embed images using \fBauto.tag\fR or \fB\-\-tag\fR / \fB\-\-image
[filename]\fR methods.
.PP
\fBacxi\fR runs pretests on each start to make sure input and output directories
are valid, conversion programs for input and output formatting programs are
present, and other user values are correct.
.SH DEPENDENCIES
For backward compatibility, acxi requires only Perl 5.010 (or newer), so it
should run on anything. Several features (copy, make directory, find files) were
moved from *nix commands to Perl native commands in version 3, which should make
acxi fully platform agnostic.
.IP * 2
\fBAAC/M4A\fR encoding requires \fBffmpeg\fR with either \fBlibfdk_aac\fR
(Debian/Ubuntu package: \fBlibfdk_aac2\fR) or native \fBffmpeg aac\fR codec.
Source file must be flac. To transfer tags, \fBm4a\fR must be used.
.IP * 2
\fBFLAC\fR resampling requires \fBffmpeg\fR.
.IP * 2
\fBMP3\fR encoding requires: \fBlame\fR and \fBflac\fR. Source file must be
flac. MP3 encoding does not support wav or raw input formats.
.IP * 2
\fBOgg\fR encoding requires \fBoggenc\fR (Debian/Ubuntu package:
\fBvorbis-tools\fR).
.IP * 2
\fBOpus\fR encoding requires \fBopusenc\fR (Debian/Ubuntu package:
\fBopus-tools\fR).
.IP * 2
\fBSHN \-> \fBFLAC\fR conversion requires the codec \fBshorten\fR and
\fBffmpeg\fR.
.IP * 2
\fB\-\-analyze\fR, \fB\-\-duplicates\fR, \fB\-\-ffps\fR, and \fB\-\-infofix q\fR
require \fBmetaflac\fR.
.IP * 2
\fB\-\-autotag\fR, \fB\-\-tag\fR, \fB\-\-image\fR, and \fB\-\-image\-remove\fR
require \fBmetaflac\fR for \fBVORBIS\fR tagging.
.IP * 2
\fB\-\-checksum\fR and \fB\-\-checksum\-delete\fR require \fBmetaflac\fR and
\fBmd5sum\fR (or any comparable program that generates md5sums).
.IP * 2
\fB\-\-checksum\-verify\fR requires the \fBflac\fR executable and \fBmd5sum\fR
(or any comparable program that generates md5 hashes).
.IP * 2
\fB\-\-fork\fR requires Perl module \fBParallel::ForkManager\fR.
.IP * 2
\fB\-\-infofix [t|u]\fR require Perl module \fBText::Autoformat\fR.
.IP * 2
\fB\-U\fR Self-updater requires \fBcurl\fR.
.PP
In theory, acxi 3.x should run on Windows and Macs, but I have not tested that,
but as long as the source/destination directory paths and the
application/configuration paths are correct, it should 'just work'.
.SH USING OPTIONS
For example:
.EX
\fBacxi \-o mp3\fR or \fBacxi \-fo opus\fR or \fBacxi \-d /home/you/music\fR
.EE
.PP
Note that some options have long and short forms. The short form is used when
available in examples in order to keep things simple.
.PP
All tagging or checksum options (\fB\-A\fR, \fB\-C\fR, \fB\-\-dupes\fR,
\fB\-D\fR, \fB\-E\fR, \fB\-\-ffps\fR, \fB\-G\fR, \fB\-I\fR, \fB\-K\fR,
\fB\-M\fR, \fB\-P\fR, \fB\-R\fR, \fB\-S\fR, \fB\-T\fR, \fB\-V\fR, \fB\-Z\fR)
must have an explicit source (\fB\-s\fR) location supplied to avoid errors.
.SH OPTIONS
.TP
.B \-\-aggregate, \fB\-G\fR [filename|extension]\fR
Collect all the \fBauto.tag\fR files in a source directory and send to a target
directory. Useful to collect data for a large collection. You can supply a list
of comma separated items: jpg,info.txt,myart.png
Creates the directories the files were found in in the destination directory.
If no extra argument is supplied, it will default to collecting all the
\fBauto.tag\fR files in the source directory.
Sample 1 (collects all auto.tag files):
.EX
\fBacxi \-\-aggregate \-s my\-music -d music\-data\fR
.EE
Sample 2 (collects all supplied filename):
.EX
\fBacxi \-\-aggregate info.txt \-s my\-music -d music\-data\fR
.EE
Sample 3 (collects all files of type jpg):
.EX
\fBacxi \-\-aggregate jpg \-s my\-music -d music\-data\fR
.EE
Sample 4 (collects multiple values):
.EX
\fBacxi \-\-aggregate jpg,info.txt,png \-s my\-music -d music\-data\fR
.EE
.TP
.B \-\-analyze\fR, \fB\-Z\fR
Similar to \fB\-Xq\fR, except creates per file/directory reports with screen
output. Shows flac file quality (sample bit size, sampling rate, and channels),
size, duration, kb/s, and also per directory summaries of those values. In
directory summary, if more than one flac quality type found in directory, will
print out each type found, which can be useful to see if different sampling
rates or sample bit sizes were used.
To write to a file, use something like this:
.EX
\fBacxi -s./ \-\-analyze 2&>1 | tee analyze.txt\fR
.EE
The tee will allow the output to also scroll on screen while it runs, which is
helpful in many cases. Otherwise just redirect output to file directly.
\fB\-v 2\fR wraps per file data to key: value pair lines, adds ffp signature;
\fB\-v 3\fR adds raw non rounded seconds and file size in bytes to all size /
time results.
.TP
.B \-\-append\fR, \fB\-a {extensions}\fR
Takes one or more comma separated extensions. Do not use whitespaces in this
list. These will be appended on to the current list being used on a one time
basis. This can be useful if you want to copy over a specific file type for one
sync action without having to make a full list with \fB\-c\fR.
Sample: \fBacxi \-a md5\fR will add md5 file type to copy list.
.TP
.B \-\-autotag\fR, \fB\-A\fR
Requires specially formatted file, default name \fBauto.tag\fR, to be put into
each music collection directory. See the file for explanations.
FLAC input files only. OGG/Opus may be added. Will search source directory for
\fBauto.tag\fR and update each collection/album that has that file present with
the tagging information contained in it.
Note that all existing tags are removed. Default is to preserve the existing
\fBREPLAYGAIN\fR tags in the \fBauto.tag\fR file since the assumption is those
were generated for a reason.
See github acxi page for a blank sample file, but make sure to use
\fB\-\-autotag\-create\fR, \fB\-\-autotag\-create\-single\fR, or
\fB\-\-autotag\-create\-multi [prefix]\fR because it's a LOT faster that way,
and you don't have to find the file. These file builders also preserve existing
\fBREPLAYGAIN\fR and \fBWAVEFORMATEXTENSIBLE_CHANNEL_MASK\fR data found in the
track file.
Notes on \fBIMAGE\fR: Avoid using large images, and as far as I can tell,
there's no point in using anything other than the standard 'cover' type image
(type 3). Keep sizes down by optimizing the image down to around 30\-60 KiB,
300\-400 pixel width.
If you make a mistake, or want to undo the images, use \fB\-\-remove\-images
\-\-autotag\fR after updating the \fBauto.tag\fR file by either removing the
value for \fBIMAGE\fR or changing the value. Most media players I tested on only
pay attention to the main image, and only one of them. Don't use a flac file as
a way to store large high resolution images as a general rule, it just makes the
entire collection pointlessly bloated.
Can be used with \fB\-K\fR or \fB\-D\fR for all in one tag checksum actions.
See \fB\-\-tag\fR or \fB\-\-image\fR for updating/modifying existing FLAC
comment values, or adding images to your FLAC files.
.TP
.B \-\-autotag\-create\fR, \fB\-C\fR
Creates the \fBauto.tag\fR file in the directory, and populates it with field
names, and per track blocks that include the track file name so you can just
fill out the fields you want. Not recommended.
if you use the \fB\-\-autotag\-create\-single\fR or
\fB\-\-autotag\-create\-multi\fR options instead Will also populate the
\fBTRACKNUMBER\fR and \fBTRACKTOTAL\fR fields.
All existing \fBREPLAYGAIN\fR tags for the audio files are preserved and used in
the auto.tag file. If want to remove those, use the \fB\-\-no\-replaygain\fR
option.
.TP
.B \-\-autotag\-create\-multi\fR, \fB\-M {file prefix}\fR
Similar to \fBautotag\-create\-single\fR except it includes a prefix argument
which is the unique per disk track file name ID. Uses \fB%\fR to indicate a
number between 1 and 9, or \fB@\fR to indicate an upper/lower case letter from A
to Z.
Use together with \fB\-E\fR (\fB\-\-prefill\fR) To prepopulate the \fBALBUM,\fR
\fBARTIST\fR, \fBALBUMARTIST\fR, \fBPERFORMER\fR, \fBDATE\fR, \fBYEAR\fR, and
\fBTITLE\fR fields as well.
Samples:
\fB\-M d%\fR [d1track02.flac]; \fB\-M d%\-\fR [d2\-track04.flac];
\fB\-M %\fR [112.flac]; \fB-M 2015-03-21.d%.\fR [2015-03-21.d1.track03.flac]
\fB\-M d@\-\fR [dAtrack02.flac]; \fB\-M d@\-\fR [dB\-track04.flac];\n";
\fB\-M @\fR [a12.flac]; \fB-M 2015-03-21.d@.\fR [2015-03-21.da.track03.flac]
This will create prepopulated \fBDISCTOTAL\fR, per disk
\fBDISCNUMBER\fR and \fBTRACKTOTAL\fR, and per track \fBTRACKNUMBER\fR fields.
This saves a lot of time when tagging multi disk sets.
Caveat: does not work with per disk subfolders, sorry.
.TP
.B \-\-autotag\-create\-single\fR, \fB\-S\fR
When creating \fBauto.tag\fR file, as well as populating the per track file
names, it also fills in the \fBTRACKTOTAL\fR and \fBTRACKNUMBER\fR fields.
Do not use for multidisk recordings since the totals per disk and the track
numbering for the second or more disks will be wrong, but for single disks, it
will speed up slightly the time required to manually populate the \fBauto.tag\fR
file.
Use together with \fB\-E\fR (\fB\-\-prefill\fR) To prepopulate the \fBALBUM,\fR
\fBARTIST\fR, \fBALBUMARTIST\fR, \fBPERFORMER\fR, \fBDATE\fR, \fBYEAR\fR, and
\fBTITLE\fR fields as well.
.TP
.B \-\-checksum\fR, \fB\-K\fR
Create \fB.ffp\fR and \fB.md5\fR checksum files in your source directory.
Checksum files are only created inside directories where flac files are found.
Use \fB\-\-checksum\-delete\fR if you also want to delete existing checksum
files before creating new ones. Only flac input type is supported.
This will not create md5 sums for for files in directories that do not contain
flac files, because that creates a very complicated logical puzzle which is hard
to accurately or reliably resolve in code.
Do not use together with other cleaning/syncing options. Can be used with
\fB\-A\fR.
.TP
.B \-\-checksum\-delete\fR, \fB\-D\fR
Will first delete all \fB.md5\fR, \fB.md5.txt\fR, \fB.ffp\fR, and \fB.ffp.txt\fR
files before creating new checksum files. Note that some audio processing tools
add \fB.txt\fR to the checksum file name, which creates undesirable outcomes
since some tools that use \fB.ffp\fR or \fB.md5\fR files don't recognize the
files if they have the \fB.txt\fR extension added on.
I can think of very few reasons to want to preserve \fB.ffp\fR or \fB.md5\fR
files, since they should in general reflect what the actual files you have are.
Do not use together with other cleaning/syncing options. Can be used with
\fB\-A\fR.
.TP
.B \-\-checksum\-ffps\fR, \fB\-\-ffps\fR
Prints checksums to screen, disables md5 generation and output. Useful for
generating large lists of ffps for a collection.
Similar to: \fBacxi \-K \-\-no\-md5 \-\-test\fR
Sample (prints to screen, redirects stderr to stdout, prints to file):
.nf
\fBacxi \-s ./ \-\-ffps 2>&1 | tee ffps.txt\fB
.fi
.TP
.B \-\-checksum\-verify\fR, \fB\-V\fR
Will read existing .md5 files and compare md5 hash of files listed in the md5
file with the actual checksums of those files. Also will verify FLAC integrity
(this is pretty slow, so be patient).
Note that when reading md5s, it does not matter if they are windows or *nix path
styles (/ or \/), it translates them to the one on your system. It also ignores
line endings, which makes reading windows generated md5 files on *nix systems a
breeze.
.TP
.B \-\-clean [sync]\fR
Clean directories and files from destination (compressed) directories which are
not present in the source music directories. Will show you the directories or
files to be removed before deleting them, and you have to confirm the deletion
of each set two times before it will actually delete it. If used with optional
value \fBsync\fR, will proceed to sync actions, otherwise exits after cleaning.
Take care with this one, if you have other compressed formats in your compressed
directory than your default $OUTPUT_TYPE format, it will want to delete all
those, so do not use this option unless your compressed directories are literal
true copies of your source directories.
To confirm deletion of each group, you must first type 'delete' then hit enter,
then type 'yes' to confirm the deletion. This should avoid errors and unintended
deletions.
Note that this feature does not run in silent/quiet mode because it should never
be used automatically, or without explicit confirmation by the user. It can be
enabled using the CLEAN configuration option below so that acxi always cleans up
before it starts syncing.
.TP
.B \-\-codec {libfdk_aac|aac}\fR
Currently only supported for aac/m4a output using ffmpeg.
.TP
.B \-\-copy\fR, \fB\-c {extensions}\fR
Comma separated list of extensions for file types you want to sync to your lossy
music directory. Overrides default values. Use lowercase, but it's case
insensitive internally. Do not include the period in the extension.
Default values are: bmp doc docx gif jpg jpeg odt pdf png tif txt
If you use no value, it will not copy anything.
Sample: \fB\-c txt,pdf,png,jpg,jpeg,gif\fR
.TP
.B \-\-debug\fR
Activate specialized debugger output. Don't use unless you are asked to, or are
a developer or something like that.
.TP
.B \-\-destination, \fB\-d {path}\fR
Full path to the directory where you want the processed lossy (eg, ogg) files to
go.
.TP
.B \-\-dot\fR
Disables the default behavior when creating file/directory syncing/action lists
of excluding dot files and directories (like \fB/home/user/.config\fR). Added by
request, but use at your own risk, I take NO responsibility for any unintended
consequences. Note that if you do find unintended consequences, you should be
able to filter those out using additional \fB\-\-exclude\fR lists.
.TP
.B \-\-duplicates\fR, \fB\-\-dupes\fR
Check your collection for duplicated flac files or releases, helpful to find
repeated items in your collection. Note that in cases of only 1 file matching,
it's in theory possible for that to be a random coincidence, so always confirm
before deleting anything!! But it's pretty rare for an ffp hash to be
duplicated.
For larger directories/collections, use
\fBacxi -s./ \-\-dupes 2>&1 | tee duplicates.txt\fR
The tee will allow the output to also scroll on screen while it runs, which is
helpful to see what's going on. Otherwise just redirect output to file directly.
.TP
.B \-\-exclude\fR, \fB\-x {items}\fR
Exclude a list of unique strings separated by ^^, or a full path to an exclude
file whose name includes the value set in \fB$EXCLUDE_BASE\fR.
Excludes sync/copy action to destination directory. Replaces \fBEXCLUDE\fR
values if present. Anything matching in any part of the source directory file
path will be excluded or removed from the destination directory.
If it's a path to a file of excludes, use one exclude string per line.
Samples:
.nf
\fB\-\-exclude='artwork^^Daisy Queen^^Bon Jovi'
\-\-exclude='/home/me/music/excludes/acxi-excludes-phone.txt\fR
.fi
If you want to temporarily suspend exclude actions one time, use:
\fB\-\-exclude='UNSET'\fR
.TP
.B \-\-exclude\-append\fR, \fB\-y {items}\fR
Append an item to the list of excludes or file. Only accepts string values, not
a file path.
Sample: \fB\-\-exclude\-append='My Sharona^^Dancing Queen'\fR
.TP
.B \-\-force\fR, \fB\-f\fR
Overwrites all the mp3/ogg/opus/jpg/txt etc. files, even if they already exist.
This is useful if you for example want to change compression quality on existing
files.
.TP
.B \-\-fork\fR, \fB\-F {0-xx}\fR
Uses Perl module \fBParallel::ForkManager\fR to allow for forking of audio file
conversions actions. This can speed up your syncing a lot depending on how many
threads your CPU can support and how many you assign with this option.
Supports integer values \fB0\fR or greater, but tests show 1 is slower than not
using forking at all. \fB0\fR is default, and disables forking.
Some debugging features will be slightly distorted if fork is used, but it is
only cosmetic.
See also configuration file option \fBFORK\fR if you want to set this
permanently.
Please note that this can have strange consequences if you run it on a huge job,
even if you use only half your threads, the system can still act strange as a
result of running it with multiple forks.
.TP
.B \-\-help\fR, \fB\-h\fR
The help / options menu.
.TP
.B \-\-image\fR, \fB\-I {cover image file name|remove}\fR
Flac only. Use only on a single directory. Takes the supplied cover image file
and embeds it into the existing flac files. Use with \fB\-\-remove-images\fR if
you want to remove existing embedded images. If this option is not used, it will
not add images to the file if images are found in it (image embedding is
cumulative in FLAC files).
Do not use if you are using an \fBauto.tag\fR file, thise is is intended only to
add an image to an already tagged .flac file without retagging it.
Only use \fB.png\fR or \fB.jpg\fR image types, otherwise the results may be
inconsistent. If you use the value '\fBremove\fR' all embedded images and their
padding will be removed.
Only run this in a single recording directory, do not use globally!!
Samples:
.nf
\fBacxi \-s ./ \-\-image='cover.jpg'
acxi \-s ./ \-\-image remove
acxi \-s ./ \-I cover.jpg \-\-remove\-images
acxi \-s ./ \-RI cover.jpg\fR
.fi
.TP
.B \-\-infofix\fR, \fB\-X [d|l|n|q|t|u|w]\fR
Correct common corruptions to info.txt files. Only to correct these common
issues:
* Entire file is uppercase (this happens surprisingly often). Applies smart
Autoformat fix (\fBu\fR) for Upper/lower case, not recommended if the file has a lot of
text in it. Perfect for titles and most standard values, but not for paragraghs
of text.
* Track numbering is defective or inconsistent, and there is not too much extra
text.
* Dates are non ISO YYYY\-MM\-DD, like May 23, 1983; 4/12/78; 2011-8-12;
18.4.21. Always double check file to make sure they aren't using some really
silly date format, and confirm with d option before using wd to make sure it
is as expected.
* Trim white spaces off line ends and get rid of extra new lines (default
action always).
Values (can be combined):
* no option \- clean white space issues. Default action, always runs.
* \fBd\fR \- set date to ISO format YYYY\-MM\-DD
* \fBl\fR \- more simplistic upper case first, lower case rest. Good for info
files that have all upper case, but a lot of sentences. You will have to go back
in and correct items. Good in combination with \fBt\fR.
* \fBn\fR \- fix track numbering to be consistent '0X. ' or 'Y-0X'
* \fBq\fR \- add in 2 technical quality info lines after top header. Reads flac
file in directory to determine bit rate, sampling frequency, and channels.
Requires track file name starts with D-NN or ends with D-NN.flac. Exits if it
can't find a match. Quality is /[rating] number and can be changed from default
if desired.
.nf
\fBFLAC: 16/44.1 (2 channels)
Quality: /4 ()\fR
.fi
* \fBt\fR \- smart upper case first track titles only. Requires Perl module
\fBText::Autoformat\fR.
* \fBu\fR \- run upper case first smart fix. Requires Perl module
\fBText::Autoformat\fR.
* \fBw\fR \- write changes to info file.
With no \fBw\fR supplied, will just show what would have happened, with \fBw\fR,
writes fixes to file.
Info file fixes would be used before running \fB\-E\fR, and not with any other
option.
See \fB\-\-prefill\-file\fR for using alternate info txt file names.
Samples: \fBacxi \-s./ -X dtn\fR (to test) \fBacxi \-s./ -X dtnw\fR (to apply)
.TP
.B \-\-info\-rating {2\-xxx}\fR
Any number greater than 1 for the \fB\-\-infofix q\fR item \fBQuality: /[rating
number]\fR line if you want to change from default of 4. Some people like rating
by x/100, others x/10, etc. Use with \fB\-X q\fR or set in configurations.
.TP
.B \-\-input\fR, \fB\-i {aif|flac|raw|shn|wav}\fR
Input type. Supported types: flac, wav, raw, shn.
\fBaif/raw/shn\fR \- only support flac output.
\fBshn\fR \- requires the shorten codec, which you usually have to build
yourself unless you can find a package for it. Use \fB\-v 3\fR to test the
first time to make sure you have shorten codec installed.
Some other input types may be active for testing purposes occasionally, but acxi
does not promote, advocate, or officially support those types (like mp3 to
flac).
Supports flac to flac for cases where you might want to redo flac files to known
quality/compression levels, or redo them using current flac codecs.
Tags transfer from AIF files that are tagged to FLAC files in my tests.
.TP
.B \-\-nlink\fR
Set \fB$File::Find::dont_use_nlink = 0\fR. Default is \fB1\fR. Only change this
if you have a reason to do so. Setting value to \fB0\fR may make \fBcifs\fR type
file system reads fail, on a \fBsamba\fR network share for example. If you
encounter issues with the default value, please post an issue on the acxi github
page.
See this PerlMonks thread for an explanation:
\fIhttps://www.perlmonks.org/?node_id=1180606\fR
.TP
.B \-\-no\-dot\fR
Overrides user configuration \fBDOT\fR. Basically restores default behavior for
acxi in terms of skipping all dot files. Only useful if you have set \fBDOT\fR
to true in your configuration file and want to do a one time override of that
setting.
.TP
.B \-\-no\-ffp\fR
Skips FLAC ffp checks and generation on \fB\-\-checksum\fR,
\fB\-\-checksum\-delete\fR, and \fB\-\-checksum\-verify\fR. Useful if you have
already verified or created ffp/flac data and only want to check md5 sums.
.TP
.B \-\-no\-md5\fR
Skips md5 checks and generation on \fB\-\-checksum\fR,
\fB\-\-checksum\-delete\fR, and \fB\-\-checksum\-verify\fR. Useful if you only
want to check / create ffp data, which is much faster to generate than md5
checksums.
.TP
.B \-\-no\-nlink\fR
Set \fB$File::Find::dont_use_nlink = 1\fR. This is the default value. See
\fB\-\-nlink\fR for details.
.TP
.B \-\-no\-replaygain\fR
Remove any existing \fBREPLAYGAIN\fR and \fBWAVEFORMATEXTENSIBLE_CHANNEL_MASK\fR
tags when creating a new \fBauto.tag\fR file. See \fB\-\-autotag\-create\fR for
details.
.TP
.B \-\-output\fR, \fB\-o {aac|flac|m4a|mp3|ogg|opus}\fR
Output type. Supported types: aac, flac, ogg, opus, m4a, mp3
\fBaac\fR \- only supports flac input type, To preserve flac tags, use m4a.
\fBflac\fR \- only supports flac, shn, or raw input types.
\fBm4a\fR \- only supports flac input type, Container around aac data. Use if
you want to preserve flac tags in your aac audio file.
\fBmp3\fR \- only supports flac input type
.TP
.B \-\-prefill\fR, \fB\-E\fR
Will attempt to populate \fBauto.tag\fR file using data from \fBinfo.txt\fR file
located in flac directory. Note that the data must have an extremely specific
syntax for the prefill feature to work:
* Band name must be first line in file.
* Date must be iso \fBYYYY-MM-DD\fR formatted, and must be the first thing on its
line, and must be in first 6 lines of file.
* Location can be 1 or more lines not starting with \fB19|20XX\fR on lines 2-6.
* No non Band name, Date, Location info can be on first lines of file before
first blank line.
* Performers list must be preceded by a line starting with \fBBand:\fR,
\fBLineup:\fR, \fBLine\-up:\fR, or \fBBand Lineup\fR, \fBBand Line\-up\fR,
\fBMembers:\fR, or \fBBand Members\fR, and must be followed by a blank line,
with no empty lines between performers.
* Track numbers must start with either \fBX-X.\fR, \fBX-XX.\fR (for multidisc),
\fBX.\fR or \fBXX.\fR where \fBX\fR is a number. The number of tracks listed
must correspoond to the total number of actual track files present. If they do
not match in counts, acxi will exit with an error.
Should always be run in the flac folder with \fB\-s./\fR or unexpected results
could occur.
Use together with \fB\-M\fR or \fB\-S\fR to prepopulate the \fBALBUM,\fR
\fBARTIST\fR, \fBALBUMARTIST\fR, \fBPERFORMER\fR, \fBDATE\fR, \fBYEAR\fR, and
\fBTITLE\fR fields as well. Note that \fBALBUMARTIST\fR is filled with
\fBARTIST\fR name.
Use the \fB\-\-test\fR option to make sure the data will prefill as expected
before actually creating the \fBauto.tag\fR file.
Samples:
\fBacxi \-s./ \-ES\fR [single disc]
\fBacxi \-s./ \-EM d%\-\fR [multi disc, file name sample: d2\-track04.flac];
.TP
.B \-\-prefill\-file {file name}\fR
An alternate file name to use for prefill. Note that file MUST be .txt, and
should not be anything other than ASCII or UTF8, otherwise you will get ungood
results.
.TP
.B \-\-quality\fR, \fB\-q {number}\fR
Set compression quality level.
\fBaac/m4a\fR \- n can be an integer between 10\-500 (bitrate). 500 is largest
file/highest quality.
\fBflac\fR \- n can be an integer between 0\-8, 0 is largest file / fastest
conversion time, 8 is smallest file, longest time. Note that tests show there is
very little point in using anything over 4.
\fBmp3\fR \- n can be an integer between 0\-9 (variable bit rate), 0 is largest
file / highest quality.
\fBogg\fR \- n can be between \-1 and 10. 10 is the largest file/highest
quality. Fractions are allowed, e.g. \fB\-o ogg \-q 7.54\fR
\fBopus\fR \- n can be an integer between 6\-256 (bitrate). 256 is largest
file/highest quality.
Note that using a higher or lower quality than you used to create the compressed
files will not result in redoing those files unless you use the \fB\-f\fR /
\fB\-\-force\fR option to force the overwrite of the existing files.
.TP
.B \-\-quiet\fR, \fB\-\-silent\fR
Turns off most screen output, except for error messages. Same as \fB\-v 0\fR.
Not used for all features since it makes no sense to turn off screen output for
features that require screen output, like \fB\-Z\fR.
.TP
.B \-\-recurse {number}\fR
There may be cases where you want a certain action to NOT recurse beyond the
number of steps you supply as an argument for this option. Default recursion
level is infinite (-1). If you use 0, it will only return files for the current
directory.
This can be useful if you for example do not want to create ffp or md5, or sync
files in a sub directory.
In general, use the \fB\-\-test\fR option to verify the results are what you
expected before actually proceeding with this option for real.
.TP
.B \-\-remove\-images\fR, \fB\-R\fR
Use with \fB\-\-autotag\fR or \fB\-\-image\fR. Will remove all embedded image data,
and the associated padding, prior to tagging (and adding new image if
applicable) audio file. Note that simply removing image data will leave the
padding in place, which makes the file get bigger each time a new image is
added.
This is the full command required to fully restore a flac file size. Failure to
use \fB\-\-dont\-use\-padding\fR leaves the file size unchanged.
\fBmetaflac \-\-remove \-\-block\-type=PICTURE,PADDING \-\-dont\-use\-padding
file.flac\fR
.TP
.B \-\-remove\-padding\fR, \fB\-P\fR
Use with \fB\-\-autotag\fR and \fB\-\-tag\fR if you want to remove padding. My
tests showed inconclusive results with this, and it slows down the tagging a
lot, especially over network connections.
.TP
.B \-\-resample {bit depth:sample rate khz}\fR
Allows for standard resampling options: 16|20|24 bit depth and
44.1|48|88.2|96|192 khz sampling rate.
To get best results, always make sure to resample to a sampling rate that
divides evenly into the original sampling rate, for example, if the original is
96khz sampling rate, 24 bit, resample to 48khz, 16 bit (96/2 == 48).
If you use values that do not divide evenly, you have to deal with dithering
issues and other headaches, and your audio will not be as good as it could be.
Note that 44.1 is only required for Audio CDs, and in most cases, the cd burning
software can deal with that itself, unless you want to force it using acxi.
In short, if you have 192 or 96 khz originals, resample them to 48 khz. If you
have for some strange reason 88.2 khz, resample it to 44.1. Do not sample
upwards, it's just wasted bytes, for example, there is no reason to resample
from 44.1 to 88.2. In almost all cases, if you need to work like that, use a
dedicated DAW program like Audacity and let it do the resamplings to higher
levels in its native mode, then after you have worked on the project, save it,
and export to normal sampling rates and bit depths.
IMPORTANT: use the \fB\-Z\fR analyze option first to make sure what the bit
depth and sampling rate of your files are before using this resampling option.
\fB\-\-resample\fR and \fB\-\-analyze\fR are meant to be used together to avoid
errors, and so you always can be sure of what you are actually dealing with.
Sample:
.nf
\fB# to get sampling rates etc:
acxi \-s ./ \-Z
[.... output...]
# then run resampling once you have determined sampling rates etc
acxi \-s working \-d results \-i flac \-o flac \-\-resample 16:48\fR
.fi
.TP
.B \-\-resample\-override\fR
Allows users to select any supported bit depth (4\-32) and sample rate, in khz
(1\-655). Why you would want to do this is beyond me, but if you want to, you
can if you add this override switch.
.TP
.B \-\-source\fR, \fB\-s {path}\fR
Path to the top-most directory containing your source files (eg, flac).
.TP
.B \-\-source\-glob\fR, \fB\-g {path relative to \-s path}\fR
Accepts wild card paths if you only want to update or check certain directories
within the main \fB\-\-source\fR working directory. Requires \fB\-\-source\fR,
wild card path must be within \fB-\-source\fR.
Sample:
.nf
\fBacxi -s ./ \-g 'BandName*' \-V
acxi -s ./ \-g '{BandName,Band Name,Band_Name}*' \-V\fR
.fi
Will only verify folders tarting with BandName. Remember to always quote the
value otherwise your shell will expand the wild cards!!
Uses standard globbing patterns: * one or more of anything; {one,two,three}
matches one of the comma separated values inside {...}. Note that * only matches
directory names or files, not the path separator, like /.
Works with all options except \fB\-\-clean\fR and \fB\-\-prefill\fR.
.TP
.B \-\-start {number}\fR
This option is ONLY used with the \fBauto.tag\fR file creation options:
\fB\-M\fR, \fB\-S\fR and \fB\-C\fR.
For creating the track number tag, start \fBauto.tag\fR track numbering at a
different value than default 1. This lets you handle cases where there was for
example:
\fB00.intro.flac\fR
This will subtract 1 from track totals, so output is as expected, say for 0
start, then 1-14 tracks, you will see 14/14 when your media player shows x/yy
counts for track listings.
For values greater than 1, will add that number to the real found track totals,
so that, for example, if first track is 03.flac, you will see 15/15 for track
15.flac as you'd expect.
These are not normal circumstances, but they do happen, so now you can handle
those. Check your work carefully, check the auto.tag file
Note: some media players get confused by the track tag number 0, I beileve they
are doing a type of if not test, and the 0 registers in some cases as not, so the
player may show no track number, not the expected 0.
In general, use the \fB\-\-test\fR option to verify the results are what you
expected before actually proceeding with this option for real.
.TP
.B \-\-tag\fR, \fB\-T {"TAG1%:tag value^^TAG2%:tag value"}\fR
Modify one or more tags in a single recording or group of recordings. FLAC only,
use standard FLAC tag values for best results. Separate \fBTAG\fR and \fBtag
value\fR with \fB%:\fR, and separate tag/value sets with \fB^^\fR. This lets you
retag entire blocks of artist/recordings at once if you only want to modify (or
create) one or more FLAC tags.
Removes all existing tags of that type before updating since FLAC just adds the
new tag to the already existing set of tags by default.
Sample: \fBacxi \-s ./ \-\-tag "GENRE%:Heavy Metal^^ARTIST%:Black Sabbath"\fR
If tag value is \fBUNSET\fR it will just remove that tag and its contents.
Sample: \fBacxi \-s ./ \-\-tag "COMMENT%:UNSET^^ARTIST%:Black Sabbath"\fR
.TP
.B \-\-test\fR
Test your configurations, copy, sync, checksum, and tagging actions without
actually doing the operations.
.TP
.B \-\-update\fR, \fB\-U\fR
Self updater, will update acxi and its man page. Non GNU/LInux will probably
require changing the default values, which are set in \fBUSER VARIABLES\fR for
curl, acxi and man page acxi.1. Requires \fBcurl\fR.
.TP
.B \-\-verbosity\fR, \fB\-v {0-3}\fR
Dynamically set . Helps for debugging certain types of issues where you might
advanced highly verbose debugging information.
\fB0\fR \- shuts off most output except errors. Same as \fB\-\-quiet\fR. Not
useful or used for all features.
\fB1\fR \- basic single line output.
\fB2\fR \- more verbose output.
\fB3\fR \- full output, incuding all conversion tool output.
For other technical data, use \fB\-\-debug\fR, but not unless you know why you
are doing it, that output can vary widely.
.TP
.B \-\-version\fR
Show acxi version.
.SH CONFIGURATION FILE
You can see by running \fBacxi \-h\fR the configuration file locations.
acxi will read its configuration/initialization files in the following order.
.TP
.B STANDARD DETECTION
\fB/etc/acxi.conf\fR contains the default configurations. These can be
overridden by user configurations found in one of the following locations, in
this order of priority: \fB$XDG_CONFIG_HOME/acxi.conf\fR,
\fB$HOME/.conf/acxi.conf\fR, and, as last default, \fB$HOME/.acxi.conf\fR,
i.e.:
\fB$XDG_CONFIG_HOME/acxi.conf\fR > \fB$HOME/.conf/acxi.conf\fR >
\fB$HOME/.acxi.conf\fR
.TP
.B MANUALLY SET
\fB$CONFIG_DIRECTORY\fR \- Sample:
\fB$CONFIG_DIRECTORY='/path/to/configuration/directory'\fR
NOTE: only use this method if you are running Windows, or any OS without
\fB$HOME\fR or \fB$XDG_CONFIG_HOME\fR environmental variables, or if you want
the configuration file to be located somewhere else.
This value must be set on top of acxi in the \fBUSER MODIFIABLE VALUES\fR
section because that is what it will use to locate the configuration file. acxi
will look for acxi.conf inside that directory. This path value will
override/ignore all other configuration files.
.SH CONFIGURATION OPTIONS
The following corresponds to the \fBUSER MODIFIABLE VALUES\fR section in the top
comment header of acxi.
Sample contents of a configuration file:
.nf
\fBDESTINATION_DIRECTORY=/home/fred/music/opus
SOURCE_DIRECTORY=/home/fred/music/flac
COPY_TYPES=gif,jpg,jpeg,png,txt
OUTPUT_TYPE=opus
QUALITY_OPUS=160
EXCLUDE=/doc/^^/docs/^^/images/^^/pictures/^^/artwork/^^/photos/^^\fR
.fi
.TP
.B APPLICATION PATHS
The following set your system path for the required applications:
\fBCOMMAND_FFMPEG\fR \- Sample: \fBCOMMAND_FFMPEG=/usr/bin/ffmpeg\fR (default
path)
\fBCOMMAND_FLAC\fR \- Sample: \fBCOMMAND_FLAC=/usr/bin/flac\fR (default path)
\fBCOMMAND_LAME\fR \- Sample: \fBCOMMAND_LAME=/usr/bin/lame\fR (default path)
\fBCOMMAND_METAFLAC\fR \- Sample: \fBCOMMAND_METAFLAC=/usr/bin/metaflac\fR
\fBCOMMAND_OGG\fR \- Sample: \fBCOMMAND_OGG=/usr/bin/oggenc\fR (default path)
\fBCOMMAND_OPUS\fR \- Sample: \fBCOMMAND_OPUS=/usr/bin/opusenc\fR (default path)
.TP
.B SOURCE/DESTINATION/CONFIGURATION DIRECTORIES
NOTE: \fBDESTINATION_DIRECTORY\fR cannot be the same as \fBSOURCE_DIRECTORY\fR.
\fBCLEAN\fR \- Sample: \fBCLEAN=true\fR Switches on/off \fB\-\-clean sync\fR to
apply cleaning action to your destination directories. Accepted values:
\fB[enable|on|true|yes]\fR or \fB[disable|off|false|no]\fR. Default is false.
\fBDESTINATION_DIRECTORY\fR \- Sample:
\fBDESTINATION_DIRECTORY=/home/fred/music/ogg\fR
This is the processed compressed music files, ie, ogg, opus, or mp3. Destination
cannot be the same as Source directory, although it can be inside of the source
directory.
\fBSOURCE_DIRECTORY\fR \- Sample: \fBSOURCE_DIRECTORY=/home/fred/music\fR
This the original, working, like flac, wav, etc.
.TP
.B EXCLUDE LISTS/FILES
\fBDOT\fR \- Disables default behavior of skipping all files starting with a
\fB.\fR. Takes values true or false. Note that false is the acxi default so there's
no point in using that.
\fBEXCLUDE\fR \- Sample (if list): \fBEXCLUDE=artwork^^Daisy Queen^^Bon Jovi\fR
Sample (if exclude file):
\fBEXCLUDE=/home/me/music/excludes/acxi-excludes-phone.txt\fR
Excludes these matches from destination directory in sync or clean operations.
\fBEXCLUDE_BASE\fR \- Sample: \fBEXCLUDE_BASE=massive-exclude-list\fR
This is the part of the file name minus the .txt that will be matched to see if
it's an exclude list or an exclude file. Default: \fBacxi-excludes\fR
This lets you use multiple exclude files, as long as they all contain the value
found in \fBEXCLUDE_BASE\fR acxi will know it's an exclude file, not a list.
.TP
.B INPUT/OUTPUT
The following are NOT case sensitive,ie flac/FLAC, txt/TXT will be found.
INPUT_TYPE and OUTPUT_TYPE will be forced to lower case internally.
Changing quality levels will not redo existing files.
\fBCODEC_AAC\fR \- Sample (default value): \fBCODEC_AAC=libfdk_aac\fR
\fBCOPY_TYPES\fR \- Sample: \fBCOPY_TYPES=doc,docx,bmp,jpg,jpeg\fR Use this to
override the default file types acxi will sync. Set to 'none', if you only want
to sync the music files, not copy over images, text files, etc.
\fBINPUT_TYPE\fR \- Sample: \fBINPUT_TYPE=flac\fR
\fBOUTPUT_TYPE\fR \- Sample: \fBOUTPUT_TYPE=mp3\fR