Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Music Media Technology

Track Separation Detection for Streaming Media? 22

manavendra asks: "I have been using a couple of streaming audio rippers for about a week now (StreamRipper and StationRipper, most notably), but most of them seem to be afflicted with the same problem - inconsistent track separation. I've read about the Shoutcast Metadata Protocol, but I haven't properly understood how the silence-detection mechanism of track separation works. There have been users who have observed that since most tracks are skewed by a few seconds (depending upon the radio station), they advise adding provision to delay or advance the timing. Has anyone implemented a better mechanism, since basing breaks on silence detection seems dodgy in first place? Can someone can shed some light on the inherent problems of reliable track separation?"
This discussion has been archived. No new comments can be posted.

Track Separation Detection for Streaming Media?

Comments Filter:
  • by TheRealMindChild ( 743925 ) on Friday January 23, 2004 @05:57PM (#8070252) Homepage Journal
    How do YOU know the difference between two tracks? You talk like there HAS to be SOMETHING that identifies track seperation, but this simply is not true. I bet if you pop in Pink Floyd's: Dark side of the moon, you can't tell when it is the next track, without looking at the track indicator. This is because you look for a pause... an inconsistancy in the flow of sound, or perhaps a seperation of audio by silence. Eliminate these, and you have nothing to work with, but again, you can't count on these.
    • I definitely agree there has to be SOMETHING that identifies track separation. As you said, you look for an inconsistency in the flow of sound, and given that these rippers do detect some inconsistency based upon which they determine track separation, which means this inconsistency is either not good enough, or there is no inconsistency at all, since they terminate the track at the wrong place. I wish I had the knowledge of how to identify this track separation, but I don't - which is why I posted this he
  • by szyzyg ( 7313 ) on Friday January 23, 2004 @06:01PM (#8070310)
    If you really care about the music being offered then you'd manually do the track editing yourself. And if you care that much you should be paying for the stuff, or, if it's something truly unique then the extra effort that it takes to do the splitting manually is the price you have to pay. What happened to people loving music?

    Of course I personally dislike many of those radio stations that just sequence a playlist on winamp and let it run. Gaps between tracks just doesn't make good radio, it's lazy on the part of the 'DJ'.

    Yes there are better ways, depending on the metadata protocol (shoutcast has a really broken metadata system) and on the source streamer. I wrote code for it a long time ago, but it was just at odds with any notion that I was a music fan.
    • Yes I did think of doing that - but dont you think that makes the whole process more tedious - not only would I have to keep track of the sequence in which the tracks are downloaded (and to the best of my knowledge none of the rippers keep a sequence).

      I dont mind paying for tracks, but as I have had this discussion in the past with several othere ppl (especially related to those RIAA lawsuits), but dont you think the recording industry makes you pay for the whole album when only a single track is what yo
  • by lightspawn ( 155347 ) on Friday January 23, 2004 @06:02PM (#8070317) Homepage
    Can you separate tracks based not only on audio but also on the title/artist data displayed?

    If you had software that did that and combined it with a ripper, you could leave it running all day and have a repository of free (well, already-paid-for) legally owned music.
  • Hmph (Score:3, Funny)

    by Giant Ape Skeleton ( 638834 ) on Friday January 23, 2004 @06:03PM (#8070329) Homepage

    If God had meant us to separate tracks, He wouldn't have invented crossfading!

  • Here can you handle this?

    Did you think about your bills, your ex, your deadlines...

    and so on.

    I bet "2:35 of silence" would be a whole lot of tracks.

    • Nah. Zero tracks. New track starts on the leading edge of non-silence. So, the "track" containing "2:35 of Silence" would get silently merged with the gap that precedes it and follows it. It will also get silently dropped.

      --Joe
  • here's the skinny (Score:5, Informative)

    by Naikrovek ( 667 ) <jjohnson@pWELTYsg.com minus author> on Friday January 23, 2004 @06:33PM (#8070660)
    if you're using streamripper or streamripper32, they simply use the metadata that comes down the stream to split the tracks. on most stations (only the ones WITH the metadata, don't forget) this works perfectly and splits the tracks exactly at the right time. Nice & Easy.

    the separation doesn't come from detecting silence, it comes from winamp (or a supporting media player) TELLING the server that the track has changed, and what the data is for the new track. the server then sends this down in the stream along with the music and that's how you see what's playing.

    now, on stations that have a lot of listeners, the metadata seems to start coming down AFTER the song actually starts, which cuts off the front of the song, and at the end of the track you hear 10-15 seconds of the next song. Club 977's stream does this VERY bad, for example.

    other than resplitting the files and joining them again there doesn't seem to be any easy way to correct the mis-separation.

    you could force the stream ripper to check the metadata every single second (if the software supports it) so that it will catch the new data as soon as it comes down, but if the server only updates this data every 15 seconds there is nothing you can do. if i were a server operator i would do this purely because it would make it difficult to cleanly rip my stream, something i think that i would like.
    • Lucky in stream ripper you can use offsets, for tricky stations.
      Also the new patched version (check the forums) supports http authentication.

      I also burn the tracks in order of ripped, so if its ever off by a few seconds of metadata, it still plays back without the annoying changes.

    • As the FAQ [sourceforge.net] says (the Why does one track bleed into another), streamripper uses a combination of metadata and silence detection (upon metadata track change, it searches for the most recent silent point and splits there). So even if the metadata is a few seconds late, there shouldnt be a problem. The problem is with stations that use crossfading, or some other technique that means there is no silence between tracks.

      Also, I really don't see the problem with allowing people to rip streams however, except for

    • Thanks for your reply

      Its interesting that you mention that track separation is also assisted by the media player requesting the metadata for a new track. I did notice winamp changing the track title a few seconds before the actual track started. May this happens because of cross-fading?

      Well, the radio stations that I listen to, apparently the meta-data comes BEFORE the song actually starts, even though they have a fairly large number of listeners...

      Still, thanks anyway. I need to examine the proto
  • Shoutcast Metadata (Score:3, Informative)

    by gtrubetskoy ( 734033 ) * on Friday January 23, 2004 @07:12PM (#8071039)
    FWIW - The shoutcast method of track separation does not rely on silence.

    The shouldcast metadata protocol works by inserting special data every X (usually 8192) bytes. The data looks something like "StreamTitle=blah; StreamUrl=bleh".

    Since 8192 bytes is about half a second at 128Kbps (128000/8192/8 = 1.95), a detection of a change of track using this method is usually pretty accurate.

    • Thanks for the info

      I wonder why the rippers that I use have a problem in track separation then. I will implement something of my own this weekend and post an update later

      Cheers
      • I would check to make sure that the rippers speak the shoutcast protocol. The request that they send must contain an "Icy-Metadata" header, in order for the server to start sending a shoucast stream.

        Personally I'd just fire up a sniffer (e.g. tcpflow) to see what the request looks like. Or point the ripper to a listening socket that you have control over to see what it sends. Or perhaps grep the sourcecode for "Icy".

  • ... the tracks seem to be separated just fine on the CDs I purchase.
  • Has anyone ever authored an application that can take ONE "song"/audio track, and separate each INSTRUMENT out into a separate track?

    I know you can separate by frequency using Fast Fourier Transformations.... But that does not compensate for the fact that, for example, the highest note on a bass guitar is higher than the lowest note on a normal guitar.

Real Users know your home telephone number.

Working...