def __init__(self, track_id, data_home=None): if track_id not in DATA.index: raise ValueError( '{} is not a valid track ID in Beatles'.format(track_id)) self.track_id = track_id if data_home is None: data_home = utils.get_default_dataset_path(DATASET_DIR) self._data_home = data_home self._track_paths = DATA.index[track_id] self.beats_path = utils.none_path_join( [self._data_home, self._track_paths['beat'][0]]) self.chords_path = os.path.join(self._data_home, self._track_paths['chords'][0]) self.keys_path = utils.none_path_join( [self._data_home, self._track_paths['keys'][0]]) self.sections_path = os.path.join(self._data_home, self._track_paths['sections'][0]) self.audio_path = os.path.join(self._data_home, self._track_paths['audio'][0]) self.title = os.path.basename( self._track_paths['sections'][0]).split('.')[0]
def __init__(self, track_id, data_home=None): if track_id not in DATA.index: raise ValueError('{} is not a valid track ID in Salami'.format(track_id)) self.track_id = track_id if data_home is None: data_home = utils.get_default_dataset_path(DATASET_DIR) self._data_home = data_home self._track_paths = DATA.index[track_id] self.sections_annotator1_uppercase_path = utils.none_path_join( [self._data_home, self._track_paths['annotator_1_uppercase'][0]] ) self.sections_annotator1_lowercase_path = utils.none_path_join( [self._data_home, self._track_paths['annotator_1_lowercase'][0]] ) self.sections_annotator2_uppercase_path = utils.none_path_join( [self._data_home, self._track_paths['annotator_2_uppercase'][0]] ) self.sections_annotator2_lowercase_path = utils.none_path_join( [self._data_home, self._track_paths['annotator_2_lowercase'][0]] ) metadata = DATA.metadata(data_home) if metadata is not None and track_id in metadata.keys(): self._track_metadata = metadata[track_id] else: # annotations with missing metadata self._track_metadata = { 'source': None, 'annotator_1_id': None, 'annotator_2_id': None, 'duration': None, 'title': None, 'artist': None, 'annotator_1_time': None, 'annotator_2_time': None, 'class': None, 'genre': None, } self.audio_path = os.path.join(self._data_home, self._track_paths['audio'][0]) self.source = self._track_metadata['source'] self.annotator_1_id = self._track_metadata['annotator_1_id'] self.annotator_2_id = self._track_metadata['annotator_2_id'] self.duration = self._track_metadata['duration'] self.title = self._track_metadata['title'] self.artist = self._track_metadata['artist'] self.annotator_1_time = self._track_metadata['annotator_1_time'] self.annotator_2_time = self._track_metadata['annotator_2_time'] self.broad_genre = self._track_metadata['class'] self.genre = self._track_metadata['genre']
def __init__(self, track_id, data_home): if track_id not in DATA.index['tracks']: raise ValueError( "{} is not a valid track ID in Salami".format(track_id)) self.track_id = track_id self._data_home = data_home self._track_paths = DATA.index['tracks'][track_id] self.sections_annotator1_uppercase_path = utils.none_path_join( [self._data_home, self._track_paths["annotator_1_uppercase"][0]]) self.sections_annotator1_lowercase_path = utils.none_path_join( [self._data_home, self._track_paths["annotator_1_lowercase"][0]]) self.sections_annotator2_uppercase_path = utils.none_path_join( [self._data_home, self._track_paths["annotator_2_uppercase"][0]]) self.sections_annotator2_lowercase_path = utils.none_path_join( [self._data_home, self._track_paths["annotator_2_lowercase"][0]]) metadata = DATA.metadata(data_home) if metadata is not None and track_id in metadata.keys(): self._track_metadata = metadata[track_id] else: # annotations with missing metadata self._track_metadata = { "source": None, "annotator_1_id": None, "annotator_2_id": None, "duration": None, "title": None, "artist": None, "annotator_1_time": None, "annotator_2_time": None, "class": None, "genre": None, } self.audio_path = os.path.join(self._data_home, self._track_paths["audio"][0]) self.source = self._track_metadata["source"] self.annotator_1_id = self._track_metadata["annotator_1_id"] self.annotator_2_id = self._track_metadata["annotator_2_id"] self.duration = self._track_metadata["duration"] self.title = self._track_metadata["title"] self.artist = self._track_metadata["artist"] self.annotator_1_time = self._track_metadata["annotator_1_time"] self.annotator_2_time = self._track_metadata["annotator_2_time"] self.broad_genre = self._track_metadata["class"] self.genre = self._track_metadata["genre"]
def __init__(self, track_id, data_home): if track_id not in DATA.index['tracks']: raise ValueError( "{} is not a valid track ID in Beatles".format(track_id)) self.track_id = track_id self._data_home = data_home self._track_paths = DATA.index['tracks'][track_id] self.beats_path = utils.none_path_join( [self._data_home, self._track_paths["beat"][0]]) self.chords_path = os.path.join(self._data_home, self._track_paths["chords"][0]) self.keys_path = utils.none_path_join( [self._data_home, self._track_paths["keys"][0]]) self.sections_path = os.path.join(self._data_home, self._track_paths["sections"][0]) self.audio_path = os.path.join(self._data_home, self._track_paths["audio"][0]) self.title = os.path.basename( self._track_paths["sections"][0]).split(".")[0]
def __init__(self, track_id, data_home=None): if track_id not in DATA.index: raise ValueError( '{} is not a valid track ID in Groove MIDI'.format(track_id)) self.track_id = track_id if data_home is None: data_home = utils.get_default_dataset_path(DATASET_DIR) self._data_home = data_home self._track_paths = DATA.index[track_id] metadata = DATA.metadata(data_home) if metadata is not None and track_id in metadata: self._track_metadata = metadata[track_id] else: self._track_metadata = { "drummer": None, "session": None, "style": None, "tempo": None, "beat_type": None, "time_signature": None, "midi_filename": None, "audio_filename": None, "duration": None, "split": None, } self.drummer = self._track_metadata["drummer"] self.session = self._track_metadata["session"] self.style = self._track_metadata["style"] self.tempo = self._track_metadata["tempo"] self.beat_type = self._track_metadata["beat_type"] self.time_signature = self._track_metadata["time_signature"] self.duration = self._track_metadata["duration"] self.split = self._track_metadata["split"] self.midi_filename = self._track_metadata["midi_filename"] self.audio_filename = self._track_metadata["audio_filename"] self.midi_path = os.path.join(self._data_home, self._track_paths["midi"][0]) self.audio_path = utils.none_path_join( [self._data_home, self._track_paths["audio"][0]])
def __init__(self, track_id, data_home): if track_id not in DATA.index['tracks']: raise ValueError( '{} is not a valid track ID in Saraga'.format(track_id)) self.track_id = track_id self._data_home = data_home self._track_paths = DATA.index['tracks'][track_id] # Audio path self.audio_path = os.path.join(self._data_home, self._track_paths['audio'][0]) # Annotation paths self.ctonic_path = utils.none_path_join( [self._data_home, self._track_paths['ctonic'][0]]) self.pitch_path = utils.none_path_join( [self._data_home, self._track_paths['pitch'][0]]) self.pitch_vocal_path = utils.none_path_join( [self._data_home, self._track_paths['pitch_vocal'][0]]) self.tempo_path = utils.none_path_join( [self._data_home, self._track_paths['tempo'][0]]) self.sama_path = utils.none_path_join( [self._data_home, self._track_paths['sama'][0]]) self.sections_path = utils.none_path_join( [self._data_home, self._track_paths['sections'][0]]) self.phrases_path = utils.none_path_join( [self._data_home, self._track_paths['phrases'][0]]) self.metadata_path = utils.none_path_join( [self._data_home, self._track_paths['metadata'][0]]) # Flag to separate between carnatinc and hindustani tracks self.iam_style = str(self.track_id.split('_')[0]) # CARNATIC MUSIC TRACKS if self.iam_style == 'carnatic': metadata = DATA.metadata(self.metadata_path) if metadata is not None and track_id == metadata['track_id']: self._track_metadata = metadata else: # annotations with missing metadata self._track_metadata = { 'raaga': None, 'form': None, 'title': None, 'work': None, 'length': None, 'taala': None, 'album_artists': None, 'mbid': None, 'artists': None, 'concert': None, } # HINDUSTANI MUSIC TRACKS if self.iam_style == 'hindustani': metadata = DATA.metadata(self.metadata_path) if metadata is not None and track_id == metadata['track_id']: self._track_metadata = metadata else: # annotations with missing metadata self._track_metadata = { 'title': None, 'raags': None, 'length': None, 'album_artists': None, 'forms': None, 'mbid': None, 'artists': None, 'release': None, 'works': None, 'taals': None, 'layas': None, } # Common attributes for Hindustani and Carnatic tracks self.title = self._track_metadata['title'] self.artists = self._track_metadata['artists'] self.album_artists = self._track_metadata['album_artists'] self.mbid = self._track_metadata['mbid'] # Carnatic specific attributes self.raaga = (self._track_metadata['raaga'] if 'raaga' in self._track_metadata.keys() is not None else None) self.form = (self._track_metadata['form'] if 'form' in self._track_metadata.keys() is not None else None) self.work = (self._track_metadata['work'] if 'work' in self._track_metadata.keys() is not None else None) self.taala = (self._track_metadata['taala'] if 'taala' in self._track_metadata.keys() is not None else None) self.concert = (self._track_metadata['concert'] if 'concert' in self._track_metadata.keys() is not None else None) # Hindustani specific attributes self.raags = (self._track_metadata['raags'] if 'raags' in self._track_metadata.keys() is not None else None) self.forms = (self._track_metadata['forms'] if 'forms' in self._track_metadata.keys() is not None else None) self.release = (self._track_metadata['release'] if 'release' in self._track_metadata.keys() is not None else None) self.works = (self._track_metadata['works'] if 'works' in self._track_metadata.keys() is not None else None) self.taals = (self._track_metadata['taals'] if 'taals' in self._track_metadata.keys() is not None else None) self.layas = (self._track_metadata['layas'] if 'layas' in self._track_metadata.keys() is not None else None)