DRC(1)
π NAME π
drc β a program for acoustic compensation of audio systems π§β¨
π SYNOPSIS π
drc [options] DRCFile
DRCFile is name of DRC configuration file
so bestie, DRCFile is just the name of your DRC configuration file. that's the whole thing. you hand it a config, it does the thing π
π¦ DESCRIPTION π¦
okay so this page is a quick lil rundown of the drc program. fun fact for the lore girlies: this manual page was written for the Debian distribution because the original program doesn't ship a manual page at all π so we made one. you're welcome.
drc is the program you use to generate correction filters for acoustic compensation of HiFi and audio systems in general β including listening room compensation. yes, room correction. it's giving physics but make it cute π
here's the important part though: the program generates just the FIR correction filters β¨ and those filters can then be used with a real time or offline convolver to give you real time or offline correction. the filters are the product. the convolution is somebody else's job.
and speaking of which β drc does not provide convolution features. nope, none, zero, not even a little π
ββοΈ what it does provide is some simplified β although really accurate β measuring tools. so it's the filter-baker, not the filter-player. iconic division of labour, honestly π
β OPTIONS β
--helpβ Show the full options list
then, bestie, here's the whole rest of the list, and I mean the whole list. the original page gives you the flag and the type of value it wants and nothing else β no per-flag prose, no defaults, no little story. so I'm not making any of that up, because lying to you would be the opposite of slay. the details live in the manual and the samples, fr fr.
--BCBaseDirβ<STRING>--BCInFileβ<STRING>--BCInFileTypeβ<STRING>--BCSampleRateβ<INTEGER>--BCImpulseCenterModeβ<STRING>--BCImpulseCenterβ<INTEGER>--BCInitWindowβ<INTEGER>--BCPreWindowLenβ<INTEGER>--BCPreWindowGapβ<INTEGER>--BCNormFactorβ<FLOAT>--BCNormTypeβ<STRING>--MCFilterTypeβ<STRING>--MCInterpolationTypeβ<STRING>--MCMultExponentβ<INTEGER>--MCFilterLenβ<INTEGER>--MCNumPointsβ<INTEGER>--MCPointsFileβ<STRING>--MCMagTypeβ<STRING>--MCFilterFileβ<STRING>--MCFilterFileTypeβ<STRING>--MCOutWindowβ<INTEGER>--MCNormFactorβ<FLOAT>--MCNormTypeβ<STRING>--MCOutFileβ<STRING>--MCOutFileTypeβ<STRING>--BCDLTypeβ<STRING>--BCDLMinGainβ<FLOAT>--BCDLStartFreqβ<FLOAT>--BCDLEndFreqβ<FLOAT>--BCDLStartβ<FLOAT>--BCDLMultExponentβ<INTEGER>--HDMultExponentβ<INTEGER>--HDMPNormFactorβ<FLOAT>--HDMPNormTypeβ<STRING>--HDMPOutFileβ<STRING>--HDMPOutFileTypeβ<STRING>--HDEPNormFactorβ<FLOAT>--HDEPNormTypeβ<STRING>--HDEPOutFileβ<STRING>--HDEPOutFileTypeβ<STRING>
still with me?? okay good, hydration check, sip some water, we're only getting started π«Ά
--MPPrefilterTypeβ<STRING>--MPPrefilterFctnβ<STRING>--MPWindowGapβ<INTEGER>--MPLowerWindowβ<INTEGER>--MPUpperWindowβ<INTEGER>--MPStartFreqβ<FLOAT>--MPEndFreqβ<FLOAT>--MPWindowExponentβ<FLOAT>--MPFilterLenβ<INTEGER>--MPFSharpnessβ<FLOAT>--MPBandSplitβ<INTEGER>--MPHDRecoverβ<STRING>--MPEPPreserveβ<STRING>--MPHDMultExponentβ<INTEGER>--MPPFFinalWindowβ<INTEGER>--MPPFNormFactorβ<FLOAT>--MPPFNormTypeβ<STRING>--MPPFOutFileβ<STRING>--MPPFOutFileTypeβ<STRING>--DLTypeβ<STRING>--DLMinGainβ<FLOAT>--DLStartFreqβ<FLOAT>--DLEndFreqβ<FLOAT>--DLStartβ<FLOAT>--DLMultExponentβ<INTEGER>--EPPrefilterTypeβ<STRING>--EPPrefilterFctnβ<STRING>--EPWindowGapβ<INTEGER>--EPLowerWindowβ<INTEGER>--EPUpperWindowβ<INTEGER>--EPStartFreqβ<FLOAT>--EPEndFreqβ<FLOAT>--EPWindowExponentβ<FLOAT>--EPFilterLenβ<INTEGER>--EPFSharpnessβ<FLOAT>--EPBandSplitβ<INTEGER>--EPPFFlatGainβ<FLOAT>--EPPFOGainFactorβ<FLOAT>--EPPFFlatTypeβ<STRING>--EPPFFGMultExponentβ<INTEGER>--EPPFFinalWindowβ<INTEGER>--EPPFNormFactorβ<FLOAT>--EPPFNormTypeβ<STRING>--EPPFOutFileβ<STRING>--EPPFOutFileTypeβ<STRING>--PCOutWindowβ<INTEGER>--PCNormFactorβ<FLOAT>--PCNormTypeβ<STRING>--PCOutFileβ<STRING>--PCOutFileTypeβ<STRING>--ISTypeβ<STRING>--ISPETTypeβ<STRING>--ISPrefilterFctnβ<STRING>--ISPELowerWindowβ<INTEGER>--ISPEUpperWindowβ<INTEGER>--ISPEStartFreqβ<INTEGER>--ISPEEndFreqβ<INTEGER>--ISPEFilterLenβ<INTEGER>--ISPEFSharpnessβ<FLOAT>--ISPEBandSplitβ<INTEGER>--ISPEWindowExponentβ<FLOAT>--ISPEOGainFactorβ<FLOAT>--ISSMPMultExponentβ<INTEGER>--ISOutWindowβ<INTEGER>--ISNormFactorβ<FLOAT>--ISNormTypeβ<STRING>--ISOutFileβ<STRING>--ISOutFileTypeβ<STRING>--PTTypeβ<STRING>--PTReferenceWindowβ<INTEGER>--PTDLTypeβ<STRING>--PTDLMinGainβ<FLOAT>--PTDLStartβ<FLOAT>--PTDLStartFreqβ<FLOAT>--PTDLEndFreqβ<FLOAT>--PTDLMultExponentβ<INTEGER>--PTBandWidthβ<FLOAT>--PTPeakDetectionStrengthβ<FLOAT>--PTMultExponentβ<INTEGER>--PTFilterLenβ<INTEGER>--PTFilterFileβ<STRING>--PTFilterFileTypeβ<STRING>--PTNormFactorβ<FLOAT>--PTNormTypeβ<STRING>--PTOutFileβ<STRING>--PTOutFileTypeβ<STRING>--PTOutWindowβ<INTEGER>--PLTypeβ<STRING>--PLMaxGainβ<FLOAT>--PLStartβ<FLOAT>--PLStartFreqβ<FLOAT>--PLEndFreqβ<FLOAT>--PLMultExponentβ<INTEGER>--PLOutWindowβ<INTEGER>--PLNormFactorβ<FLOAT>--PLNormTypeβ<STRING>--PLOutFileβ<STRING>--PLOutFileTypeβ<STRING>--RTTypeβ<STRING>--RTPrefilterFctnβ<STRING>--RTWindowGapβ<INTEGER>--RTLowerWindowβ<INTEGER>--RTUpperWindowβ<INTEGER>--RTStartFreqβ<FLOAT>--RTEndFreqβ<FLOAT>--RTWindowExponentβ<FLOAT>--RTFilterLenβ<INTEGER>--RTFSharpnessβ<FLOAT>--RTBandSplitβ<INTEGER>--RTOutWindowβ<INTEGER>--RTNormFactorβ<FLOAT>--RTNormTypeβ<STRING>--RTOutFileβ<STRING>--RTOutFileTypeβ<STRING>--PSFilterTypeβ<STRING>--PSInterpolationTypeβ<STRING>--PSMultExponentβ<INTEGER>--PSFilterLenβ<INTEGER>--PSNumPointsβ<INTEGER>--PSPointsFileβ<STRING>--PSMagTypeβ<STRING>--PSOutWindowβ<INTEGER>--PSNormFactorβ<FLOAT>--PSNormTypeβ<STRING>--PSOutFileβ<STRING>--PSOutFileTypeβ<STRING>
okay you're doing amazing, this is the home stretch, we're SO close π
--MSMultExponentβ<INTEGER>--MSOutWindowβ<INTEGER>--MSFilterDelayβ<INTEGER>--MSNormFactorβ<FLOAT>--MSNormTypeβ<STRING>--MSOutFileβ<STRING>--MSOutFileTypeβ<STRING>--TCNormFactorβ<FLOAT>--TCNormTypeβ<STRING>--TCOutFileβ<STRING>--TCOutFileTypeβ<STRING>--TCOWFileβ<STRING>--TCOWFileTypeβ<STRING>--TCOWNormFactorβ<FLOAT>--TCOWNormTypeβ<STRING>--TCOWSkipβ<INTEGER>--TCOWPrewindowβ<INTEGER>--TCOWLengthβ<INTEGER>
and that's the whole list, no cap π§
Refer to the manual and samples for options details and file format.
(yes, that line is doing a lot of heavy lifting. it's the original's way of saying "the good stuff is over there." respect.)
π AUTHOR π
This manual page was written by JaromΓr MikeΕ‘ mira.mikes@seznam.cz, for the Debian project β but it may be used by others π so go off, use it, it's fine, we're all friends here.
and that's the page, bestie! it lives in the General Commands Manual as DRC(1), and this version is dated August 30, 2011 β so it's vintage, it's a classic, it's lowkey a piece of history πΈπ thanks for reading all 185 of those flags with me, you're the real main character π«Άβ¨
π¦ where this page comes from
- debian bookworm: drc 3.2.3~dfsg0-1 Β· GPL-2.0-or-later
- debian trixie: drc 3.2.3~dfsg0-1 Β· GPL-2.0-or-later
- ubuntu jammy: drc 3.2.3~dfsg0-1build1 Β· GPL-2.0-or-later
- ubuntu noble: drc 3.2.3~dfsg0-1build1 Β· GPL-2.0-or-later
- ubuntu resolute: drc 3.2.3~dfsg0-1build2 Β· GPL-2.0-or-later
- ubuntu stonking: drc 3.2.3~dfsg0-1build2 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms