Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. sox --norm infile outfile
  2.  
  3. mp3gain -r *.mp3
  4.  
  5. mp3gain -c -r *.mp3
  6.  
  7. #!/bin/bash
  8.  
  9. find "$1" -iname "*.""$2" > $HOME/file_list
  10.  
  11. cat $HOME/file_list | while read line; do
  12. # echo "$line"
  13. orig_gain="$(normalize-mp3 -n "$line" | cut -d 'd' -f1)"
  14. larger=$(echo "$orig_gain"'>'-12 | bc)
  15. if [[ larger ]]
  16. then
  17. gain_difference=$(echo "$orig_gain"*-1-12 | bc)
  18. else
  19. gain_difference=$(echo "$orig_gain"-12 | bc)
  20. fi
  21. echo "Gain Difference will be: $gain_difference""db"
  22. normalize-ogg --mp3 --bitrate "$3" -g "$gain_difference""db" -v "$line"
  23. done
  24.  
  25. normalize-mp3 <directory> <file extenstion(with no leading dot)> <bitrate>
  26.  
  27. replaygain --force *.mp3
  28.  
  29. #!/usr/bin/python
  30. """
  31. Parallel normalize gains
  32. """
  33.  
  34. from subprocess import Popen, PIPE
  35. from multiprocessing.dummy import Pool as ThreadPool
  36. from os import listdir
  37.  
  38. def regain(target):
  39. '''regain'''
  40. proc = Popen(['normalize-ogg', '-n', target["name"]],
  41. stdin=PIPE, stdout=PIPE, stderr=PIPE)
  42. output, err = proc.communicate()
  43. print output
  44. level = output.split()[0]
  45. if "dBFS" in level:
  46. level = level.split("dBFS")[0]
  47. level = level.replace(',', '.')
  48. level = int(round(float(level)))
  49. delta = target["gain"] - level
  50. if delta is 0:
  51. return 0
  52.  
  53. proc = Popen(['exiftool', target["name"]],
  54. stdin=PIPE, stdout=PIPE, stderr=PIPE)
  55. output, err = proc.communicate()
  56. bitrate = '0'
  57. for line in output.split('n'):
  58. if 'Nominal Bitrate' in line:
  59. bitrate = line.split(':')[1].split()[0]
  60. break
  61. if bitrate is '0':
  62. return -1
  63.  
  64. proc = Popen(['normalize-ogg', '--ogg', '--bitrate', bitrate,
  65. '-g', str(delta) + 'db', target["name"]],
  66. stdin=PIPE, stdout=PIPE, stderr=PIPE)
  67. output, err = proc.communicate()
  68. return proc.returncode
  69.  
  70. # function to be mapped over
  71. def parallelregain(gain=12, threads=60):
  72. '''parallelregain'''
  73. pool = ThreadPool(threads)
  74. targets = []
  75. files_list = listdir(".")
  76. for filename in files_list:
  77. if filename.endswith("ogg"):
  78. target = {
  79. "name":filename,
  80. "gain":gain,
  81. }
  82. targets.append(target)
  83. pool.map(regain, targets)
  84. pool.close()
  85. pool.join()
  86.  
  87. if __name__ == "__main__":
  88. parallelregain(gain=-12, threads=10)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement