"""Audio File Constants""" # All known formats WAVE_PCM_FORMAT = 'WAV' FLAC_FORMAT = 'FLAC' WAVEX_FORMAT = 'WAVEX' AIFF_FORMAT = 'AIFF' WAVEFLOAT_FORMAT = 'FLOAT' # All known subtypes PCM_32_SUBTYPE = 'PCM_32' PCM_24_SUBTYPE = 'PCM_24' PCM_16_SUBTYPE = 'PCM_16' # All known channels STEREO = 2 # All known samplerates CD_AUDIO = 44100 DAT_AUDIO = 48000 HD_AUDIO = 96000 HDCD_AUDIO = 176400 PRO_AUDIO = 192000 # File Extensions WAV_FILE_EXT = 'wav' FLAC_FILE_EXT = 'flac' # Acceptable file extensions VALID_EXTENSIONS = [ WAV_FILE_EXT, FLAC_FILE_EXT ] GOOD_SAMPLERATES = { PCM_16_SUBTYPE: [ CD_AUDIO, DAT_AUDIO ], PCM_24_SUBTYPE: [ CD_AUDIO, DAT_AUDIO, HD_AUDIO, HDCD_AUDIO, PRO_AUDIO ] } # Samplerates accepted for 16-bit audio GOOD_16_SAMPLERATES = [ CD_AUDIO, DAT_AUDIO ] # Samplerates accepted for 24-bit audio GOOD_24_SAMPLERATES = [ CD_AUDIO, DAT_AUDIO, HD_AUDIO, HDCD_AUDIO, PRO_AUDIO ] # Acceptable audio containers - These definitely work. GOOD_FORMATS = [ WAVE_PCM_FORMAT, FLAC_FORMAT ] # We include BAD_FORMATS instead of just the inverse"not GOOD_FORMATS", as we # don't want to automatically exclude a "maybe it works" type of file. # # Explicitly bad audio containers - Auto re-encode BAD_FORMATS = [ WAVEX_FORMAT, AIFF_FORMAT ] # Acceptable WAV/Flac Subtypes GOOD_SUBTYPES = [ PCM_16_SUBTYPE, PCM_24_SUBTYPE ] # Acceptable numbers of channels GOOD_CHANNELS = [ STEREO ] def good_audio_specs(): """Present the list of good audio specs.""" good_spec_list = [] for f in GOOD_FORMATS: for t in GOOD_SUBTYPES: for r in GOOD_SAMPLERATES[t]: for c in GOOD_CHANNELS: good_spec_list.append((f, t, r, c)) return good_spec_list # Files with these combinations bypass all transcoding in audio_spec_check(). GOOD_AUDIO_SPECS = good_audio_specs() # [ # (WAVE_PCM_FORMAT, PCM_16_SUBTYPE, CD_AUDIO, STEREO), # (WAVE_PCM_FORMAT, PCM_16_SUBTYPE, DAT_AUDIO, STEREO), # (WAVE_PCM_FORMAT, PCM_24_SUBTYPE, CD_AUDIO, STEREO), # (WAVE_PCM_FORMAT, PCM_24_SUBTYPE, DAT_AUDIO, STEREO), # (WAVE_PCM_FORMAT, PCM_24_SUBTYPE, HD_AUDIO, STEREO), # (WAVE_PCM_FORMAT, PCM_24_SUBTYPE, HDCD_AUDIO, STEREO), # (WAVE_PCM_FORMAT, PCM_24_SUBTYPE, PRO_AUDIO, STEREO), # (FLAC_FORMAT, PCM_16_SUBTYPE, CD_AUDIO, STEREO), # (FLAC_FORMAT, PCM_16_SUBTYPE, DAT_AUDIO, STEREO), # (FLAC_FORMAT, PCM_24_SUBTYPE, CD_AUDIO, STEREO), # (FLAC_FORMAT, PCM_24_SUBTYPE, DAT_AUDIO, STEREO), # (FLAC_FORMAT, PCM_24_SUBTYPE, HD_AUDIO, STEREO), # (FLAC_FORMAT, PCM_24_SUBTYPE, HDCD_AUDIO, STEREO), # (FLAC_FORMAT, PCM_24_SUBTYPE, PRO_AUDIO, STEREO), # ] NEW_ROOT_SUBFOLDER = 'transcoded_bulk_assets' if __name__ == '__main__': print(good_audio_specs())