APE, WawPack и остальные

Vyacheslav Karamov ubuntulist на yandex.ru
Пт Авг 10 09:34:41 BST 2007


Привет всем!

Люблю классику, надыбал в инете сайтик, где выложены ссылочки на 
классику в loseless-форматах, преимущественно Monkey Audio. Думал уже 
всё, капец, нельзя проиграть *.ape ничем линуксовым.
У меня коллега для этой цели скачал этот каличный SDK, который содержит 
синтаксические (!!!) ошибки, поправил исходники и написал свой 
консольный плеер.
Но я нашёл способы получше:
1.1 Идём сюда http://www.netswarm.net/misc/    и качаем последнюю версию 
плагина к Audacious для Monkey Audio  
http://www.netswarm.net/misc/audacious-mac-0.3.5.tar.gz
1.2 Качаем Audacious http://audacious-media-player.org/Downloads  и собираем
1.3 Собираем   и ставим плагин из п. 1.1.
1.4. Смотрим на всякий случай http://audacious-media-player.org/FAQ

2. Идём сюда 
http://aidanjm.wordpress.com/2007/02/04/converting-monkey’s-audio-ape-files-to-flac-in-ubuntu/  
и читаем


3. Качаем виндовый бинарь http://nimo.internux.ch/MAC.exe  и пишем 
скриптик на перле:
#!/usr/bin/perl
use strict;
my @checkIn = ('Album','Artist','Genre','Title','Track','Year');

foreach my $file (@ARGV) {
  my %fileInfo = (Album => 'unknown',
                  Artist => 'unkonwn',
                  Year => 1972,
                  Genre => 'J-Pop',
                  Title => 'unknown',
                  Track => 00);
  my $Tempfile = 'tags';
  print "Processing $file...\n";
  my $TempInfo = qx/apetag -i "$file" 2>&1/;
  #print "$TempInfo\n";
  foreach my $line (split(/\n/, $TempInfo)) {
    foreach my $check (@checkIn) {
      #print $line."\n";
      if($line =~ s/^"$check" "(.*)"/$1/i) {
        $fileInfo{$check} = $line;
        last;
      }
    }
  }
  print "uncompressing.... ";
  `wine MAC.exe "$file" audio.wav -d`;
  print "done!\n";
  my $OutName = `basename "$file" .ape`;
  chomp($OutName);
  print "\n||$OutName||\n\n";
  print "compressing into flac format... ";
  `flac -f -8 audio.wav -T Album="$fileInfo{'Album'}" \\\
   -T Artist="$fileInfo{'Artist'}" \\\
   -T Date="$fileInfo{'Year'}" \\\
   -T Genre="$fileInfo{'Genre'}" \\\
   -T Title="$fileInfo{'Title'}" \\\
   -T Tracknumber="$fileInfo{'Track'}" \\\
   --endian=big --bps=24 --sign=unsigned --channels=2 \\\
   --sample-rate=44100 -o "$OutName.flac"`;
  `rm audio.wav`;
}
exit(0);


Называем его, например, ape2flac, а затем
$ chmod +x ape2flac
$ for i in *.ape; do ape2flac '$i'; done



Подробная информация о списке рассылки ubuntu-ru