#musicbrainz

/

      • CallerNo6 wouldn't vote against yoasif's edit, but is curious about the underlying principles.
      • yoasif
        :)
      • CatQuest, i actually do happen to agree with the style guide in this case
      • CatQuest
        I on the other side was a bit unaware of that guideline change, if the underlying tracks where infct real mashups and if this was a ganhe to the tracklsit or what
      • yoasif
        like i said, i have disagreed with it in the past
      • CatQuest
        I make change following sryleguidelines if I don't agree with them, if they make "sense" still
      • even if i don't agree*
      • i need ot eat and its late
      • hmn
      • i mean I remember styleguide disaster no 5
      • i hated that
      • but alas I had to follow it
      • yoasif
        which was that?
      • CatQuest
        oh that
      • uuuhh
      • pre-ngs an pre advanced relationships
      • it was in 2006 or something
      • awesome
      • oh it should have been Max_Gentleman
      • yoasif
        what was the guideline?
      • okay, go have your... dinner? good chat, CatQuest
      • hawke1
        CallerNo6: I assume the principle is that the release in MB should reflect the release in real life…certain formatting and correction aside.
      • yoasif
        kepstin-laptop, do you use opus on mobile?
      • hawke1 joined the channel
      • kepstin-laptop
        I use opus on my laptop and on my ipod, which runs the rockbox open-source firmware
      • yoasif
        heh, havent used rockbox in ages
      • hawke1 joined the channel
      • kepstin-laptop
        they added 2048 as a game recently.
      • the "iPod Classic" that I have isn't one of their officially supported platforms yet, but that's only because they don't have an automatic installer yet
      • and nobody's figured out how to make it dualboot the original firmware either, it's a replacement only thing.
      • yoasif
        i need a new battery for my ipod classic
      • it's oold
      • just using my smartphone for that stuff now
      • kepstin-laptop
        heh. the replacement batteries are pretty readily available online
      • kepstin-laptop hasn't yet seen a smartphone that can hold 160GB of music
      • although I spend a lot of time in wifi range, and could use music streaming then
      • yoasif
        hmm.... $43 for the drive
      • kepstin-laptop
        some people have actually replaced the drive in these ipod classics with modern msata SSDs
      • can get up to 512gb
      • (at some battery life cost)
      • warp
        wow, that's really nice
      • yoasif
        why opus instead of stuff that gets better battery life?
      • or does opus get good battery life now
      • Freso
        Because Opus.
      • kepstin-laptop
        opus lets me fit more music on the drive, mostly
      • it's still more cpu hungry than other formats
      • rockbox folks have been steadily optimizing it; a few mhz here and there
      • CallerNo6
        hawke1: information always needs to be parsed, whether we realize we're doing it or not. and when we don't realize we're doing it, we're probably making assumptions.
      • dave_
        So...I'm exploring relationships and I cannot find any documentation on the various types, or what 'direction' means, etc. Where is this documentation? :D
      • kepstin-laptop
        I think my ipod can decode most of my music at an (average) 60-70mhz now
      • with mp3 and vorbis, rockbox runs at the minimum processor speed of 54mhz constantly tho
      • CallerNo6
      • _Dave_
        "beta"? ;)
      • CallerNo6
        oh, should be the same, beta or non-beta
      • yoasif
        is opus better than aac now?
      • _Dave_
        it is...I wonder why google did not find this page?
      • CallerNo6
        _Dave_: direction only applies to some relationships. For example, if I'm your sibling, you're my sibling. direction is irrelevant.
      • but if I'm your parent, you're probably not my parent.
      • In the second case, direction matters.
      • kepstin-laptop
        yoasif: the open-source opus encoder produces way better quality than any open-source aac encoder. for what that's worth.
      • _Dave_
        I see
      • Freso usually sets the elder sibling as the start of the relationship though, FWIW
      • hawke1
        kepstin-laptop: not that that says much, since the open-source AAC encoders are kinda shit by my understanding
      • _Dave_
        lol
      • encoding data like that is bound to be missed by some programmer ;)
      • kepstin-laptop
        yoasif: in some lowish bitrate (64kbit?) comparisons between opus and a good aac encoder (nero?), I think opus came out a tiny bit ahead in most samples
      • at more useful cd-transparent bitrates, i doubt you could tell them apart.
      • but the fun thing is that opus can do this with only ~25ms of delay, which is good enough for a phone call. And if you push the bitrate up a bit, that can go below 10ms.
      • yoasif
        yeah, i don't mind using free (non open source) encoders
      • kepstin-laptop
        opus was originally designed for realtime stuff, the fact that it's also good for general music is just a bonus.
      • yoasif
      • kepstin-laptop
        ah, yeah, that's the one I was remembering. so it was apple's encoder, not nero.
      • CallerNo6
        _Dave_: Okay, I'll rephrase. Each relationship has a direction, and can be "reversed". So e.g. [recording b]<is a remix of>[recording a] is one direction. The reverse, also true, is [recording a]<has remix>[recording b].
      • kepstin-laptop
        oh, they had both
      • _Dave_
        I guess there's not enough information on the relationship documentation page to enable me to parse this "relations" array from a JSON query ... no doc on 'type-id' for example
      • for reference, I'm trying to get at the work through the recording
      • I just realized you are probably handling medleys this way ;)
      • kepstin-laptop
        hmm? that shouldn't be too bad to do
      • the only issue with the webservice responses is that relationship attributes aren't represented well.
      • _Dave_
        It isn't in the general case. It's the edge cases I'm concerned about (and as most of you are acutely aware, this is where most of the work goes)
      • yoasif
        yeah, apple has beat nero for years now... was a pain to use it without quicktime installed (on a linux system ;))
      • kepstin-laptop
        _Dave_: medleys are a bit special, since we're currently in the middle of switching from a separate medley relationship to an attribute on the standard recording-work relationship
      • but for example, i'm parsing http://mbjs.kepstin.ca/?release=bef90838-a09d-4... out of the json webservice
      • (that website is a json webservice frontend, but rather incomplete)
      • _Dave_
        and it didn't give me json
      • or anything really
      • am I supposed to type stuff in the search box? :D
      • kepstin-laptop
        hmm? if you have javascript enabled in a reasonably modern browser, that should show a web page for a japanese album
      • _Dave_
        it doesnt, but I'm not allowing twitter code to run in my browser either
      • kepstin-laptop
        bah, I might have a bug that makes it fail if the twitter doesn't load
      • _Dave_
        I love noscript :)
      • kepstin-laptop
        which would be strange, since I'm not even using twitter on that page
      • _Dave_
        -why- do we need twitter code?
      • CallerNo6
        You shouldn't need to use the relationship type-id for anything, should you?
      • _Dave_
        I dont know
      • yoasif
        kepstin-laptop, that is super fast
      • _Dave_
        the type-id matches the id in the work array
      • kepstin-laptop
        hmm? this is my personal page, nothing to do with musicbrainz. But I use twitter code to display twitter links on artists with such.
      • _Dave_
        so there's a relations array, and I'm assuming that could have many hashes inside it
      • kepstin-laptop
        yoasif: I'm running a clever caching proxy in front of the musicbrainz webservice to speed it up. But results can be up to 24h old.
      • _Dave_
        each of these hashes has a 'type-id' (no clue what that means really)
      • and then there's what I want, a work key in the hash
      • CallerNo6
        _Dave_: I mean for parsing the json (or xml), the type-id corresponds to the type, which is also given.
      • kepstin-laptop
        the type ID corresponds to the UUID of the relationship type, which you can get from the relationships list page.
      • you go through the relationships array looking for the one with the uuid of the rel type you're trying to find
      • _Dave_
        so if I did a ?inc=work-rel I should only expect to see works in the relationship array?
      • kepstin-laptop
        yep.
      • _Dave_
        ok so...what if there is more than one?
      • kepstin-laptop
        then the recording might be linked to more than one work
      • for example, if it's a medley
      • derwin
        wat
      • kepstin-laptop
        _Dave_: http://musicbrainz.org/ws/2/recording/b3d51fe2-... is an example of a medley, all of the link works are songs included in the medley
      • _Dave_
        is it lame because there is a depedency? :D
      • SporkWitch joined the channel
      • I can't read japanese LOL
      • but I see what you are saying
      • kepstin-laptop
        notice the UUID in the type-id field, that corresponds to https://musicbrainz.org/relationship/a3005666-a...
      • which tells you what the relationship means
      • _Dave_
        but..it's the same as the work id in my case
      • does this mean "it's a related work"?
      • kepstin-laptop
        that shouldn't happen - you have an example query?
      • the "type-id" is the UUID of the relationship type, it has nothing to do with any entities in musicbrainz
      • the entity id will always be in e.g. relationship['work']['id']
      • for the related work
      • _Dave_
        ok give me a moment to spit this out in my code
      • sam_d joined the channel
      • kepstin-laptop
        so "relations" is an array, each array entry is a "relation". A relation has a "type-id", which tells you how to interpret the other contents.
      • in this case, the type id "a3005666-a872-32c3-ad06-98af558e99b0" means "this is a link between a recording and a work, so there's a work entry here"
      • then you look in the work entry, and get the work id
      • _Dave_
        ?
      • kepstin-laptop
        (and also has some stuff like the title, language, type, etc)
      • _Dave_
        so that id is not a work id?
      • arh
      • kepstin-laptop
        the type-id is a type id
      • the id in the work is the work id
      • the work id here is "aef39ce6-69b9-4184-bdf8-a92d7d8eec3b", because that's the "id" field in the "work"
      • _Dave_
        ok for some reason those IDs weren't different for the query I was looking at
      • but when I access now it works
      • kepstin-laptop
        you might see some recording-work relations with type-id="12ac9db0-ec26-3567-be3a-2e662e617803", these are old medley ones.
      • _Dave_
        I'll put some code in to detect this condition at any rate
      • kepstin-laptop
        but most should be "a3005666-a872-32c3-ad06-98af558e99b0"
      • _Dave_
        all this to get the song title
      • kepstin-laptop
        what are you starting with? a release? a search query?
      • _Dave_
        Thanks, btw, for your help :D
      • kepstin-laptop
        you can do a query to get works directly from the release query, if that's what you have. Saves a bunch of steps.
      • _Dave_
        an arbitrarily encoded music file
      • through acoustid
      • gives me a recording