A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.
  • 0 Votes
    1 Posts
    262 Views
    A

    So basically if u install chromium media edition on your rpi and use Spotify web as the music player and run magic mirror on top of it u might be able to use magic mirror with any Spotify control module to contol playback on the web play.

    Please someone develop a module for this

    Or just guide me with the first step in creating a module for Spotify

  • Music Player Module

    Development
    3
    0 Votes
    3 Posts
    2k Views
    N

    @maukoell said in Music Player Module:

    Hello,
    I am trying to create a module which plays music from a directory. I wanted to use two buttons to control it. One for Pause/Play and one to skip the current song. But unfortunately when I start the MM2 I always get the message that it is not able to find the helper for my module. I’m new to node.js so maybe there are just some basic mistakes.

    My module:

    Module.register("MMM-MusicPlayer",{ defaults: { playButtonPIN: 10, nextButtonPIN: 12, clickDelay: 500, musicPath = "/home/pi/MagicMirror/modules/MMM-MusicPlayer/music", }, start: function() { this.sendSocketNotification("BUTTON_CONFIG", this.config); Log.info('Starting module: ' + this.name); } });

    My node_helper:

    "use strict"; const NodeHelper = require("node_helper"); const gpio = require("onoff"); var path = require('path'); var fs = require('fs'); const { Howl, Howler } = require('howler'); var sound; var musicList = []; var index = 0; var started; var config; module.exports = NodeHelper.create({ start: function () { started = false; }, // Subclass socketNotificationReceived received. socketNotificationReceived: function (notification, payload) { const self = this; if (notification === 'BUTTON_CONFIG' && started === false) { config = payload; self.fromDir(config.musicPath, "mp3"); self.createSound(); var GPIO = require('onoff').Gpio; var button1 = new GPIO(config.playButtonPIN, 'in', 'both', { persistentWatch: true, debounceTimeout: config.clickDelay }); button1.watch(function (err, state) { // 1 == pressed, 0 == not pressed if (state === 1) { if (sound.playing()) { sound.pause(); } else { sound.play(); } } }); var button2 = new GPIO(config.playButtonPIN, 'in', 'both', { persistentWatch: true, debounceTimeout: config.clickDelay }); button2.watch(function (err, state) { // 1 == pressed, 0 == not pressed if (state === 1) { self.playNext(); } }); started = true; } }, fromDir: function(startPath, filter) { if (!fs.existsSync(startPath)) { Log.info("no dir ", startPath); return; } var files = fs.readdirSync(startPath); var i; var fullPath; var filename; var stat; for (i = 0; i < files.length; i+=1) { fullPath = path.join(startPath, files[i]); filename = files[i]; stat = fs.lstatSync(fullPath); if (stat.isFile()) { if (filename.indexOf(filter) >= 0) { musicList.push(fullPath); } } } }, playNext: function() { if (sound.playing()) { sound.stop(); } index += 1; if (index === musicList.length()) { index = 0; } sound.play(index); }, createSound: function() { sound = new Howl({ src: musicList }); } } );

    Maybe someone can help me.
    Thanks in advance

    I don’t think that your code respects helpers as described in official documentarion,
    Or we are not talking about the same helpers Pnr Status.TextNow

  • 0 Votes
    3 Posts
    3k Views
    jstameyJ

    @jasondreher

    Hey Jason - Currently as soon as the track changes, the IFTTT trigger fires and the web request places a new memo on my MMM-Memo mirror module so I’d say within about 5-10 seconds of the new track playing via any Echo device, it’s showing on my mirror. I think that solves for the first “currently playing” part.

    And then your second - much trickier - question…I am not aware of any way to have the JSON formatted request carry the album art information over from IFTTT via webhooks to be displayed in MMM-Memo. I started down the track of creating a custom Alexa skill using Amazon ASK to then try and find a way to display Alexa cards (like what show up on Echo Show) to the mirror but ran into multiple roadblocks.
    Open to ideas though! Like you, I’m curious if anyone else out there on the boards has found a more elegant solution? I posted this idea/pieced-together solution after hours of trying to find something to work hoping I might not be the only one struggling with the concept.

  • 2 Votes
    15 Posts
    11k Views
    R

    Thanks for the modules works well, instructions were to the tee!.

  • 6 Votes
    9 Posts
    11k Views
    L

    @PtrBld This is genius. THANK YOU!

  • Simple Music Player Module

    Entertainment
    41
    1 Votes
    41 Posts
    40k Views
    aro28A

    @Rolandb
    Hi, are you still facing the issue?