public
Description: A collection of audio handling programs which work from the command line.
Homepage: http://audiotools.sourceforge.net
Clone URL: git://github.com/tuffy/python-audio-tools.git
100755 107 lines (81 sloc) 3.346 kb
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
#!/usr/bin/python
 
#Audio Tools, a module and set of tools for manipulating audio data
#Copyright (C) 2007-2009 Brian Langenberger
 
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
 
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
 
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
 
import os.path
import audiotools
import sys
import gettext
 
gettext.install("audiotools",unicode=True)
 
if (__name__ == '__main__'):
    parser = audiotools.OptionParser(
        usage=_(u"%prog [options]"),
        version="Python Audio Tools %s" % (audiotools.VERSION))
 
    parser.add_option('-c','--cdrom',action='store',
                      type='string',dest='cdrom',
                      default=audiotools.DEFAULT_CDROM)
 
    (options,args) = parser.parse_args()
    msg = audiotools.Messenger("cd2xmcd",options)
 
    cdda = audiotools.RawCDDA(options.cdrom)
    tracks = list(cdda)
 
    if (len(cdda) == 0):
         msg.error(_(u"No CD in drive"))
         sys.exit(1)
 
    msg.new_row()
    msg.output_column(_(u"Total Tracks"),True)
    msg.output_column(_(u" : "))
    msg.output_column(unicode(len(cdda)))
 
    msg.new_row()
    msg.output_column(_(u"Total Length"),True)
    msg.output_column(_(u" : "))
    msg.output_column(_(u"%2d:%2.2d (%d frames)" % (cdda.length() / 75 / 60,
                                                    cdda.length() / 75 % 60,
                                                    cdda.length())))
 
    msg.new_row()
    msg.output_column(_(u"FreeDB disc ID"),True)
    msg.output_column(_(u" : "))
    msg.output_column(unicode(str(audiotools.DiscID.from_cdda(cdda))))
 
    msg.new_row()
    msg.output_column(_(u"MusicBrainz disc ID"),True)
    msg.output_column(_(u" : "))
 
    msg.output_column(unicode(str(audiotools.MBDiscID.from_cdda(cdda))))
 
    msg.blank_row()
    msg.output_rows()
 
    msg.new_row()
    msg.output_column(_(u"#"),True)
    msg.output_column(u" ")
    msg.output_column(_(u"Length"))
    msg.output_column(u" ")
    msg.output_column(_(u"Frames"))
    msg.output_column(u" ")
    msg.output_column(_(u"Offset"))
 
    msg.new_row()
    msg.output_column(_(u"--"))
    msg.output_column(u" ")
    msg.output_column(_(u"------"))
    msg.output_column(u" ")
    msg.output_column(_(u"------"))
    msg.output_column(u" ")
    msg.output_column(_(u"------"))
 
    for track in tracks:
        msg.new_row()
        msg.output_column(unicode(track.track_number),True)
        msg.output_column(u" ")
        msg.output_column(u"%d:%2.2d" % (track.length() / 75 / 60,
                                         track.length() / 75 % 60),True)
        msg.output_column(u" ")
        msg.output_column(unicode(track.length()))
        msg.output_column(u" ")
        msg.output_column(unicode(track.offset()))
 
    msg.output_rows()
 
 
    cdda.close()