Giter VIP home page Giter VIP logo

mirada-tangodj's Introduction

mirada-tangodj

A now-playing and next-tanda visualizer for tango DJs on macOS using Music or Embrace

What Mirada does

Mirada launches a standalone application that displays the following info for your dancers for use on an external monitor or projection screen:

  • When a song is playing, Mirada displays the following:
    • Current song's genre, artist and title (with parenthetical items at the end of title moved to their own line, for those who store year/singer info in the title field).
    • How many songs are in the current tanda, and what number the current song is.
    • The genre and artist of the first song in the next tanda or, if the next tanda is an announcement or the last tanda, the appropriate legend.
    • If the current tanda is the last tanda, the next-tanda area simply displays "Last Tanda".
  • When a cortina is playing, Mirada displays the legend "UP NEXT ..." with the genre and artist of the first song in the next tanda. If the next tanda is an announcement or the last tanda, that legend displays instead.
  • When an announcement is playing, Mirada displays the title of the track (this is useful for demos, background music, etc -- simply rename the title to a welcome message or similar).
  • For mixed alternative/traditional milongas, Mirada enables you to replace the artist info in the next-tanda area and the cortina screen with "Alternative".
  • If "La Cumparsita" has been played anytime in the last 10 tracks, Mirada displays a thank-you message (useful if you play background music after the end of a milonga).
  • If no music is playing, a background image of your choice appears.
  • A variety of color schemes are available to customize for light conditions, holiday themes, etc.
  • The source player can be switched to either Music or Embrace as desired.

How to make Mirada work for you

Mirada more or less works automagically, but does require a bit of configuration in your source library:

  • For cortinas, tanda lengths, and next-tanda info to be correctly detected, your cortinas must have a genre tag of Cortina
  • For announcements to be correctly detected, announcement tracks' grouping tag must contain announcement
  • For the alternative-anonymization feature to work correctly, alternative tracks' grouping tag must contain #nu

Tech details and thanks

Mirada is built using Electron Forge and relies heavily on a few Node modules to do its thing:

It also subscribes to com.apple.Music.playerInfo and/or com.iccir.Embrace.playerUpdate to detect change events and kick off the screen refresh.

Huge thanks are in order to Eric Scace for invaluable development assistance and to Ricci Adams, creator of Embrace, for making enhancements to his already-fantastic app in order to allow Mirada to converse with it better.

Why "Mirada"?

Most tango dancers are familiar with the concept of cabeceo, in which the leader "asks" the follower to dance by making eye contact. The concept of mirada may be less known, but grants the follower the same power to seek out a leader's gaze -- thereby leveling an often-gendered playing field. This Mirada app also seeks to level the field for dancers by giving everyone at a milonga musical information that makes for a better experience ... and encourages dancers to learn about tango music in the process!

License

GNU General Public License v3.0

mirada-tangodj's People

Contributors

dependabot[bot] avatar jessicaschilling avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mirada-tangodj's Issues

Rework querying and DOM stuff

Examples from Pichuca:

  • Cortinas after Cumparsita
  • Don't write song attributes if it's a cortina (this in AppleScript; other similar examples?)

UI tweaks after La Pichuca test run

Reverse order in "Up Next" so genre is the important thing
Line-height on artists too high (ie two lines with y in), may need to adjust padding
Song ribbon slightly wonky
Do I really like that font?

Enable color schemes

Set up multiple color schemes using SCSS that can be swapped by some means (later to be an Electron menu item).

Package the app

  • Including icons
  • First-run stability may bork this from the beginning; need to get that solid first
  • What about jQuery?
  • Were store issues the result of the store being empty on first run, or something more sinister?
  • And rewrite the README to refer to Embrace and remove single-song mode
  • Rename to mirada-tangodj

Son of "fix vulnerabilities without breaking electron-forge CSS"

Issue #94 tried updating for security vulnerabilities, but stopped with electron-forge 5.2.4 and electron-prebuilt-compile 2.0.8 due to losing support for CSS preprocessors. To quote:

Many security vulnerabilities have crept up since last major changes to Mirada. Fix what can be fixed without going so far as to upgrade electron-forge itself, because there's a known issue with CSS preprocessors: cf electron-userland/electron-forge#601 .

Electron-forge still doesn't support CSS preprocessors, so need to work around.

General UX fixes

Default image of bando
Fonts
Font sizes
Improve color schemes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.