Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sox --norm infile outfile
- mp3gain -r *.mp3
- mp3gain -c -r *.mp3
- #!/bin/bash
- find "$1" -iname "*.""$2" > $HOME/file_list
- cat $HOME/file_list | while read line; do
- # echo "$line"
- orig_gain="$(normalize-mp3 -n "$line" | cut -d 'd' -f1)"
- larger=$(echo "$orig_gain"'>'-12 | bc)
- if [[ larger ]]
- then
- gain_difference=$(echo "$orig_gain"*-1-12 | bc)
- else
- gain_difference=$(echo "$orig_gain"-12 | bc)
- fi
- echo "Gain Difference will be: $gain_difference""db"
- normalize-ogg --mp3 --bitrate "$3" -g "$gain_difference""db" -v "$line"
- done
- normalize-mp3 <directory> <file extenstion(with no leading dot)> <bitrate>
- replaygain --force *.mp3
- #!/usr/bin/python
- """
- Parallel normalize gains
- """
- from subprocess import Popen, PIPE
- from multiprocessing.dummy import Pool as ThreadPool
- from os import listdir
- def regain(target):
- '''regain'''
- proc = Popen(['normalize-ogg', '-n', target["name"]],
- stdin=PIPE, stdout=PIPE, stderr=PIPE)
- output, err = proc.communicate()
- print output
- level = output.split()[0]
- if "dBFS" in level:
- level = level.split("dBFS")[0]
- level = level.replace(',', '.')
- level = int(round(float(level)))
- delta = target["gain"] - level
- if delta is 0:
- return 0
- proc = Popen(['exiftool', target["name"]],
- stdin=PIPE, stdout=PIPE, stderr=PIPE)
- output, err = proc.communicate()
- bitrate = '0'
- for line in output.split('n'):
- if 'Nominal Bitrate' in line:
- bitrate = line.split(':')[1].split()[0]
- break
- if bitrate is '0':
- return -1
- proc = Popen(['normalize-ogg', '--ogg', '--bitrate', bitrate,
- '-g', str(delta) + 'db', target["name"]],
- stdin=PIPE, stdout=PIPE, stderr=PIPE)
- output, err = proc.communicate()
- return proc.returncode
- # function to be mapped over
- def parallelregain(gain=12, threads=60):
- '''parallelregain'''
- pool = ThreadPool(threads)
- targets = []
- files_list = listdir(".")
- for filename in files_list:
- if filename.endswith("ogg"):
- target = {
- "name":filename,
- "gain":gain,
- }
- targets.append(target)
- pool.map(regain, targets)
- pool.close()
- pool.join()
- if __name__ == "__main__":
- parallelregain(gain=-12, threads=10)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement