Announcement
Collapse
No announcement yet.
Announce: MusicIP DSTM Mixer
Collapse
X
-
Announce: MusicIP DSTM Mixer
Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.Tags: None
-
Announce: MusicIP DSTM Mixer
This is a heavily modified fork of the DSTM part of the standard LMS MusicIP/MusicMagic plugin. The following enhancements have been made:- Only the DSTM part of the plugin remains. This means no support for ‘Create Mix’, and the plugin will not query MusicIP for a list of supported files when LMS starts
- Tracks chosen by MusicIP can be excluded from a mix if they are not within the same ‘genre group’ as the seed tracks. ‘Genre groups’ are defined in a separate JSON file. e.g. you can have a group with ‘Rock, Hard Rock, Metal’ – if a seed track contains one of these genres, then only tracks which also have one of these will be used. Likewise if a track in the mix is in one of these groups, but the seed tracks are not, then the track is also excluded.
- Filter out tracks with matching artist from last 15 tracks
- Filter out tracks with matching album from last 25 tracks
- Filter out tracks with matching artist from 5 seed tracks
- Prevent tracks from repeating within 100 tracks
- Exclude tracks whose artist is in a configured set of ‘exclude artists’
- Exclude tracks from albums in a configured set of ‘exclude albums’
- Optionally exclude tracks based on min/max duration
- Optionally exclude ‘Christmas’ tracks (based on genre – ‘Christmas’, ‘XMas’, ‘xmas’, or ‘Xmas’) if not in December
- Convert LMS paths to MusicIP path, and vice versa
The plugin will ask MusicIP to create a mix of 50 tracks. These tracks will then be filtered using the rules above until 12 are remaining. From these 12 tracks 5 will be chosen at random. If the filtering removes too many tracks (so there are less than 5) then tracks filtered by 3, 4, and 5 (above) will be added to make 5 tracks.
This plugin can be installed by using a release ZIP file from github, or by adding my repo file to LMS.Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.
-
Originally posted by mherger View Post....and it doesn't use sync calls to MIP any more? :-)
Originally posted by mherger View Post
Originally posted by mherger View PostIf only the analysis didn't take that long... I gave up using MIP a few
years ago, even though its mixes were better than anything I've come up
with since.Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.
Comment
-
Originally posted by slartibartfast View PostWill this work if there is only one track in the seeding playlist?Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.
Comment
-
Intrigued
I'm a longtime MusicIP user, along with SpiceFly SugarCube. I'll give this one a good go to compare it.Main System: Marantz SR-5015 + Adam Audio T8V + Teufel Ultima 20 Mk 3 + BK Monolith+ FF + Lenovo T560 + Kodi + LG OLED65B26LA + UP-Board running Daphile
Kitchen: Touch + Ikea ENEBY 30
Home-Office: SqueezeLite-X + Topping DX3 Pro + NAD 312 + TMA Premium 905
Comment
-
Originally posted by cpd73 View PostYes. It chooses up to 5 - well it asks DSTM for the seed tracks, and I'm pretty sure that is up to 5 seeds.
Sent from my Pixel 3a using TapatalkLiving Room: Touch or Squeezelite (Pi3B) > Topping E30 > Audiolab 8000A > Monitor Audio S5 + BK200-XLS DF
Bedroom: Radio
Bathroom: Radio
Comment
-
Originally posted by slartibartfast View PostIt doesn't seem to add anything to the queue. I am just using the default settings.
Sent from my Pixel 3a using Tapatalk
Sent from my Pixel 3a using TapatalkLiving Room: Touch or Squeezelite (Pi3B) > Topping E30 > Audiolab 8000A > Monitor Audio S5 + BK200-XLS DF
Bedroom: Radio
Bathroom: Radio
Comment
-
Originally posted by slartibartfast View PostAfter trying this mixer DSTM doesn't seem to work at all even with song mix.
It works fine for my system, but then that's always the case when developing something...
Also, are you sure you've seleceted "MusicIP Mixer" (this plugin) not "MusicIP Mix" (the existing LMS plugin)?Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.
Comment
-
Originally posted by slartibartfast View PostJust had a thought. Do I need to input a path to Music IP? If so what would the format be?Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.
Comment
-
Originally posted by cpd73 View PostI admit I have not tested without a path. I'll test later. I analyse my music files on my latop, with a path of "/home/craig/MusicIP" and LSM is on my pi (with "/media/Disk/Music") - so I have "/home/craig/MusicIP" set as the path in this plugin's settings. The trailing slash (if any) should be the same on both. I'm 100% Linux, so have not tested on Windows. However, the path replacement code is very trivial.
Sent from my Pixel 3a using TapatalkLiving Room: Touch or Squeezelite (Pi3B) > Topping E30 > Audiolab 8000A > Monitor Audio S5 + BK200-XLS DF
Bedroom: Radio
Bathroom: Radio
Comment
-
The way my MusicIP is set up is that I analyse tracks on a Windows laptop with a portable HDD holding a version of my music library. I then synchronise the music files to another HDD attached to the Pi server which also has MusicIP running on it. I add the analysed music to the MusicIP cache on the server via the MusicIP web interface.
I have no idea how to get your mixer plugin to work with this.
Sent from my Pixel 3a using TapatalkLiving Room: Touch or Squeezelite (Pi3B) > Topping E30 > Audiolab 8000A > Monitor Audio S5 + BK200-XLS DF
Bedroom: Radio
Bathroom: Radio
Comment
-
Originally posted by slartibartfast View PostThe way my MusicIP is set up is that I analyse tracks on a Windows laptop with a portable HDD holding a version of my music library. I then synchronise the music files to another HDD attached to the Pi server which also has MusicIP running on it. I add the analysed music to the MusicIP cache on the server via the MusicIP web interface.
I have no idea how to get your mixer plugin to work with this.
/home/craig/MusicIP/Artist-Album/track.mp3
on my Pi, I would have:
/media/disk/Music/Artist-Album/track.mp3
LMS's music folder is set to:
/media/disk/Music
The 'MusicIP path' is:
/home/craig/MusicIP
Therefore when LMS asks MusicIP to create a mix based on a track it sends "/media/disk/Music/Artist-Album/track.mp3" (as this is the location LMS sees). But this needs to be converted to "/home/craig/MusicIP/Artist-Album/track.mp3" for MusicIP to know what track it is. The plugin converts "/media/disk/Music" to "/home/craig/MusicIP", and vice versa.
The existing LMS MusicIP plugin does not do path conversion - so if that plugin works for you, then not setting a 'MusicIP path' in this plugin's settings should work. (But as stated, I don't think I have tested this). But without logs its hard to know what is or is not working,Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.
Comment
-
Originally posted by cpd73 View PostWhen I use the term "MusicIP path" I mean the path that MusicIP sees for your music. For instance, on my latop I might have:
/home/craig/MusicIP/Artist-Album/track.mp3
on my Pi, I would have:
/media/disk/Music/Artist-Album/track.mp3
LMS's music folder is set to:
/media/disk/Music
The 'MusicIP path' is:
/home/craig/MusicIP
Therefore when LMS asks MusicIP to create a mix based on a track it sends "/media/disk/Music/Artist-Album/track.mp3" (as this is the location LMS sees). But this needs to be converted to "/home/craig/MusicIP/Artist-Album/track.mp3" for MusicIP to know what track it is. The plugin converts "/media/disk/Music" to "/home/craig/MusicIP", and vice versa.
The existing LMS MusicIP plugin does not do path conversion - so if that plugin works for you, then not setting a 'MusicIP path' in this plugin's settings should work. (But as stated, I don't think I have tested this). But without logs its hard to know what is or is not working,
Code:[20-08-06 12:51:45.0827] Slim::Plugin::DontStopTheMusic::Plugin::dontStopTheMusic (228) 0 songs remaining, songIndex = 0 [20-08-06 12:51:45.0911] Slim::Plugin::DontStopTheMusic::Plugin::getMixableProperties (355) Auto-mixing from random tracks in current playlist [20-08-06 12:51:45.0997] Plugins::MIPMixer::Plugin::__ANON__ (120) Seed /media/usb-drive/MyMusic/Lindisfarne/Lindisfarne... Back and Forth(1979)[FLAC]/01 - Juke Box Gypsy .flac id:259631 genres:() [20-08-06 12:51:45.1018] Plugins::MIPMixer::Plugin::_getMixUrl (439) Filter Filter 1 in use. [20-08-06 12:51:45.1030] Plugins::MIPMixer::Plugin::_convertToMip (367) TO MIP: /media/usb-drive/MyMusic/Lindisfarne/Lindisfarne... Back and Forth(1979)[FLAC]/01 - Juke Box Gypsy .flac -> /media/usb-drive/MyMusic/Lindisfarne/Lindisfarne... Back and Forth(1979)[FLAC]/01 - Juke Box Gypsy .flac.mp3 [20-08-06 12:51:45.1038] Plugins::MIPMixer::Plugin::_getMixUrl (453) Request http://localhost:10002/api/mix?song=%2Fmedia%2Fusb-drive%2FMyMusic%2FLindisfarne%2FLindisfarne...%20Back%20and%20Forth(1979)%5BFLAC%5D%2F01%20-%20Juke%20Box%20Gypsy%20.flac.mp3&mixgenre=0&rejectsize=25&sizetype=tracks&variety=0&size=50&rejecttype=tracks&style=20&filter=Filter%201 [20-08-06 12:51:45.1288] Slim::Networking::IO::Select::__ANON__ (130) Error: Select task failed calling Slim::Networking::Async::_async_read: Can't locate object method "error" via package "500 Internal Server Error" (perhaps you forgot to load "500 Internal Server Error"?) at /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/MIPMixer/Plugin.pm line 162. ; fh=Slim::Networking::Async::Socket::HTTP=GLOB(0x8b086c8)
Living Room: Touch or Squeezelite (Pi3B) > Topping E30 > Audiolab 8000A > Monitor Audio S5 + BK200-XLS DF
Bedroom: Radio
Bathroom: Radio
Comment
Comment