Files
feedBack/static/v3/venue-instrument-pov.js
T
2026-06-16 18:47:13 +02:00

37 lines
1.3 KiB
JavaScript

/*
* fee[dB]ack v0.3.0 — Venue instrument POV resolver.
*
* Maps arrangement / instrument labels to venue background POVs.
* Vocals/karaoke routing uses the active arrangement name only — not
* lyrics overlay visibility during guitar practice.
*/
(function (root) {
'use strict';
const POV_IDS = Object.freeze(['guitar', 'bass', 'drums', 'piano', 'vocals']);
function resolveVenueInstrumentPov(input) {
const s = String(input == null ? '' : input).trim().toLowerCase();
if (!s) return 'guitar';
if (/\b(drums?)\b/.test(s)) return 'drums';
if (/\b(bass)\b/.test(s)) return 'bass';
if (/\b(piano|keys|keyboard)\b/.test(s)) return 'piano';
if (/\b(karaoke|vocal|vocals|lyric|lyrics|sing|singing)\b/.test(s)) return 'vocals';
if (/\b(lead|rhythm|guitar|combo)\b/.test(s)) return 'guitar';
return 'guitar';
}
function isVocalsKaraokeArrangement(input) {
return resolveVenueInstrumentPov(input) === 'vocals';
}
const api = {
POV_IDS,
resolveVenueInstrumentPov,
isVocalsKaraokeArrangement,
};
if (root) root.v3VenueInstrumentPov = api;
if (typeof module !== 'undefined' && module.exports) module.exports = api;
}(typeof window !== 'undefined' ? window : (typeof globalThis !== 'undefined' ? globalThis : null)));