Comments (16)
See also beetbox/beets#505 for inspiration.
from mopidy-local.
Actually considered to be of minor priority, since media files containing multiple artist/composer/performer tags are rare. Practically non-existant, IMHO.
from mopidy-local.
Officially deferred until Mopidy gets its new Metadata API, which will require a redesign of the whole database schema anyway.
from mopidy-local.
Current plans for Mopidy Core v1.0 have tracks and albums only contain artist URIs and no longer full Artist
models. This better fits the current schema, since the main issue with this is efficiently generating the list of artist models for each track. So track.artists
could remain a TEXT field containing ws-seperated URIs as originally planned.
from mopidy-local.
I guess that's Mopidy v2.0 now.
from mopidy-local.
how so solve the bug?
mopidy_local_sqlite.schema: Ignoring multiple artists: frozenset ....
mopidy is not starting anymore
from mopidy-local.
@tatoosh: Could you please provide more information, logs for example...
from mopidy-local.
@tkem here my mopidy.log. Is this enough?
2015-07-29 11:09:44,859 ERROR [23010:MpdSession-6005] pykka: Unhandled exception in MpdSession (urn:uuid:d9d49b34-ee99-40c1-9617-0d855767b8c9):
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 200, in _actor_loop
response = self._handle_receive(message)
File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 303, in _handle_receive
return self.on_receive(message)
File "/usr/lib/python2.7/dist-packages/mopidy/utils/network.py", line 367, in on_receive
self.on_line_received(line)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/session.py", line 33, in on_line_received
response = self.dispatcher.handle_request(line)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 46, in handle_request
return self._call_next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
return next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 75, in _catch_mpd_ack_errors_filter
return self._call_next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
return next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 88, in _authenticate_filter
return self._call_next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
return next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 104, in _command_list_filter
response = self._call_next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
return next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 133, in _idle_filter
response = self._call_next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
return next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 146, in _add_ok_filter
response = self._call_next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
return next_filter(request, response, filter_chain)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 158, in _call_handler_filter
response = self._format_response(self._call_handler(request))
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/dispatcher.py", line 172, in _call_handler
return protocol.commands.call(tokens, context=self.context)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/protocol/__init__.py", line 178, in call
return self.handlers[tokens[0]](context, *tokens[1:])
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/protocol/**init**.py", line 140, in validate
return func(_args, *_kwargs)
File "/usr/lib/python2.7/dist-packages/mopidy/mpd/protocol/music_db.py", line 284, in list_
return [(name, value) for value in result.get()]
File "/usr/lib/python2.7/dist-packages/pykka/future.py", line 299, in get
exec('raise exc_info[0], exc_info[1], exc_info[2]')
File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 200, in _actor_loop
response = self._handle_receive(message)
File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 294, in _handle_receive
return callee(_message['args'], *_message['kwargs'])
File "/usr/lib/python2.7/dist-packages/mopidy/core/library.py", line 99, in get_distinct
for r in pykka.get_all(futures):
File "/usr/lib/python2.7/dist-packages/pykka/future.py", line 330, in get_all
return [future.get(timeout=timeout) for future in futures]
File "/usr/lib/python2.7/dist-packages/pykka/future.py", line 299, in get
exec('raise exc_info[0], exc_info[1], exc_info[2]')
File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 200, in _actor_loop
response = self._handle_receive(message)
File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 294, in _handle_receive
return callee(_message['args'], *_message['kwargs'])
File "/usr/lib/python2.7/dist-packages/mopidy/local/library.py", line 29, in get_distinct
return self._library.get_distinct(field, query)
File "/usr/local/lib/python2.7/dist-packages/mopidy_local_sqlite/library.py", line 117, in get_distinct
return set(schema.list_distinct(self._connect(), field, q))
File "/usr/local/lib/python2.7/dist-packages/mopidy_local_sqlite/schema.py", line 209, in list_distinct
return itertools.imap(operator.itemgetter(0), c.execute(sql, params))
OperationalError: database is locked
2015-07-29 11:15:25,624 WARNING [23690:MainThread] mopidy_local_sqlite.schema: Ignoring multiple artists: frozenset([Artist(name=u'Avicii', uri=u'local:artist:md5:a25bfb4652487ad50c73e8ddf2cfc1de'), Artist(name=u'Nicky Romero', uri=u'local:artist:md5:f6492038ee4f67d0645a37331a324ece')])
2015-07-29 11:15:27,581 WARNING [23690:MainThread] mopidy_local_sqlite.schema: Ignoring multiple artists: frozenset([Artist(name=u'Avicii', uri=u'local:artist:md5:a25bfb4652487ad50c73e8ddf2cfc1de'), Artist(name=u'Nicky Romero', uri=u'local:artist:md5:f6492038ee4f67d0645a37331a324ece')])
2015-07-29 11:15:48,365 WARNING [23690:MainThread] mopidy_local_sqlite.schema: Ignoring multiple artists: frozenset([Artist(name=u'Avicii', uri=u'local:artist:md5:a25bfb4652487ad50c73e8ddf2cfc1de'), Artist(name=u'Nicky Romero', uri=u'local:artist:md5:f6492038ee4f67d0645a37331a324ece')])
from mopidy-local.
@tkem: i delete the 2 tracks and did a restart. now it works ... it was a mp3 and mpeg4 file. i can send you the files for testing if you are interested in?
from mopidy-local.
@tatoosh: could you explain "not starting any more" a little further; a logfile of a fresh restart, maybe. So far, all I see is expected warnings and an error due to a database lock, which is also not unusual when accessing Mopidy during a local scan. Nothing hinting at "not starting anymore"
from mopidy-local.
@tkem i did a "sudo service mopidy" restart and nothing happend. i can actually not reproduce this, so you can handle it as solved, sry and thx.
from mopidy-local.
@tatoosh: thanks!
from mopidy-local.
@tatoosh: would you mind telling me how you got the multi-artist files? I have music files from a variety if sources and using various taggers, but never actually came across an mp3 that included multiple artist tags. That's the main reason why I chose to ignore multiple artists in MLSqlite for now...
from mopidy-local.
@tkem: I've send you an example via email.
from mopidy-local.
So what about this? Any news or (further) implementation plans?
To explain my situation: I use (self-tagged) multiple artist tags mostly because of Kodi, which allows me to have all artists to be listed in the artist category, but the albums to be listed with the artists from album-artist tag if present. Since ID3v2.4 (and APEv2) multiple tags are an officially supported scheme.
from mopidy-local.
I just updated to mopidy 3 and I swear I remember multiple artists working, but I can't find any reference to it being implemented, so I actually don't know why they used to work? In any case, I'd like to request this feature or at least start some discussion about it. I might be able to work on it myself if I can get a few pointers.
from mopidy-local.
Related Issues (20)
- UTF-8 error with local extension HOT 3
- Always provide tags from Mopidy-Local if the track is indexed in the database
- TypeError: '<' not supported between instances of 'NoneType' and 'int' HOT 2
- Concept of 'local/directories'? HOT 3
- Prefer embed album art to folder album art HOT 3
- Support MusicBrainz ID queries
- get_distinct does not support field 'track'
- where is the SQLite database saved HOT 4
- Browsing directories by type 'date' returns incorrect names when format is not YYYY-MM-DD HOT 2
- Limit of searchresults are hardcoded HOT 5
- Multiple Music Directories HOT 1
- Doesn't Add any Music to Library HOT 6
- Compiling for nanoPi M4 (AArch64) – How? HOT 3
- Artist sort order HOT 7
- Not extracting images from m4a files when scanning HOT 11
- Not load from global config file HOT 1
- Prompt for confirmation when local library is empty HOT 5
- 'mopidy local scan' is using the wrong config file HOT 1
- Folder directory HOT 1
- Multiple filtering criteria when browsing
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mopidy-local.