Merging mp3 files in Ruby

Suppose I have the following files to group and merge, according to
their filenames. How to do it on Ruby?

P.S In BASH, you can merge two mp3 files perfectly with the cat command.
# cat file1.mp3 file2.mp3 > file.mp3

01-01 Faithful Subjects.mp3
01-02 Faithful Subjects.mp3
01-03 Faithful Subjects.mp3
01-04 Faithful Subjects.mp3
01-05 Faithful Subjects.mp3
01-06 Faithful Subjects.mp3
01-07 Colonial Constitutions and Their Inspiration.mp3
01-08 Colonial Constitutions and Their Inspiration.mp3
01-09 Colonial Constitutions and Their Inspiration.mp3
01-10 Colonial Constitutions and Their Inspiration.mp3
01-11 Colonial Constitutions and Their Inspiration.mp3
01-12 Colonial Constitutions and Their Inspiration.mp3
02-01 blah blah blah.mp3
02-02 blah blah blah.mp3
etc...

···

--
Posted via http://www.ruby-forum.com/.

Qu3ry Qu3ry wrote:

Suppose I have the following files to group and merge, according to
their filenames. How to do it on Ruby?

P.S In BASH, you can merge two mp3 files perfectly with the cat command.
# cat file1.mp3 file2.mp3 > file.mp3

01-01 Faithful Subjects.mp3
01-02 Faithful Subjects.mp3
01-03 Faithful Subjects.mp3
01-04 Faithful Subjects.mp3
01-05 Faithful Subjects.mp3
01-06 Faithful Subjects.mp3
01-07 Colonial Constitutions and Their Inspiration.mp3
01-08 Colonial Constitutions and Their Inspiration.mp3
01-09 Colonial Constitutions and Their Inspiration.mp3
01-10 Colonial Constitutions and Their Inspiration.mp3
01-11 Colonial Constitutions and Their Inspiration.mp3
01-12 Colonial Constitutions and Their Inspiration.mp3
02-01 blah blah blah.mp3
02-02 blah blah blah.mp3
etc...

Open first file for write and binary, then put the cursor at the end of
the file..
Then open the second file, for read and binary, and then add it to the
end, and so on?

···

--
Posted via http://www.ruby-forum.com/\.

Hi,

···

Am Mittwoch, 04. Nov 2009, 17:57:24 +0900 schrieb Qu3ry Qu3ry:

Suppose I have the following files to group and merge, according to
their filenames. How to do it on Ruby?

P.S In BASH, you can merge two mp3 files perfectly with the cat command.
# cat file1.mp3 file2.mp3 > file.mp3

  ruby -pe '' file1.mp3 file2.mp3 >file.mp3

Bertram

--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de

Bertram Scharpf wrote:

Hi,

Suppose I have the following files to group and merge, according to
their filenames. How to do it on Ruby?

P.S In BASH, you can merge two mp3 files perfectly with the cat command.
# cat file1.mp3 file2.mp3 > file.mp3

  ruby -pe '' file1.mp3 file2.mp3 >file.mp3

Bertram

How to iterate the mp3 files according to their names, so that files
with the same names are merged together?

···

Am Mittwoch, 04. Nov 2009, 17:57:24 +0900 schrieb Qu3ry Qu3ry:

--
Posted via http://www.ruby-forum.com/\.

How about a hash or something like that?

dir = ARGV[0]
store = Hash.new

Dir.foreach(dir) do |file|
  unless file =~ /^\./
    num, name, ext = file.scan(/([0-9]+\-[0-9]+)\ ([A-Za-z0-9\
]+)(\.mp3)/).flatten
    if store[name]
      store[name][:numbers] << num
    else
      store[name] = { :extension => ext, :numbers => [num] }
    end
  end
end

store.each do |name, properties|
  filename = name + properties[:extension]
  complete_file = File.open(filename, "w")
  store[name][:numbers].each do |num|
    part_filename = num + " " + name + properties[:extension]
    File.open(dir+"/"+part_filename, "r") do |f|
      complete_file.write(f.read)
    end
  end
  complete_file.close
end

···

On Thu, Nov 5, 2009 at 1:20 AM, Qu3ry Qu3ry <thinkinstein@gmail.com> wrote:

Bertram Scharpf wrote:
> Hi,
>
> Am Mittwoch, 04. Nov 2009, 17:57:24 +0900 schrieb Qu3ry Qu3ry:
>> Suppose I have the following files to group and merge, according to
>> their filenames. How to do it on Ruby?
>>
>> P.S In BASH, you can merge two mp3 files perfectly with the cat command.
>> # cat file1.mp3 file2.mp3 > file.mp3
>>
>
> ruby -pe '' file1.mp3 file2.mp3 >file.mp3
>
> Bertram

How to iterate the mp3 files according to their names, so that files
with the same names are merged together?

--
Posted via http://www.ruby-forum.com/\.