24/7 RADIO

Out of Bounds Entertainment

The live relay point for Tower 3. Built by DJ Nopheros, carrying the spirit of Everlook Broadcasting into a continuous station for listeners in every time zone.

Listeners: --
Peak: --
Record Night 1,706 listeners May 14, 2026 — Legacy Towers (Tower 1/2 retired)
Tower 3 Peak -- Awaiting telemetry sample
Out of Bounds Entertainment logo
Signal Partner Brand

Tower 3 — Out of Bounds Entertainment

Offline
Ready to play — click Play

Loading…

Connecting to stream…

M3U
🔊 70%
Bitrate: —

Forward Channels

Jump directly into live platforms and community touchpoints.

Legacy Archive: Everlook to Out of Bounds

A memorial of broadcast years, event work, and world-built programming.

Everlook Broadcasting Co. has ended as an operating chapter, but the body of work remains the foundation of this station. The projects below are kept as portfolio proof of live programming, atmosphere design, poster campaigns, and community-facing broadcast continuity.

  • 2018-Present Independent DJ and online broadcaster across MMO and nightlife communities.
  • Everlook Era Hosted Pilgrim of the Signal and multi-show rotation, events, and radio storytelling.
  • Event Portfolio Produced branded show flyers, themed nights, and collaborative scene-driven broadcasts.
  • Current Chapter Out of Bounds Entertainment: a 24/7 relay with live DJ intersections and curated continuity.
var heroPeakListenersEl = document.getElementById('hero-peak-listeners'); var honorTower3PeakEl = document.getElementById('honor-tower3-peak'); var nowPlayingEl = document.getElementById('now-playing'); var audioEl = document.getElementById('tower3-audio'); var playLiveEl = document.getElementById('play-live'); var pauseLiveEl = document.getElementById('pause-live'); var resyncLiveEl = document.getElementById('resync-live'); var popoutPlayerEl = document.getElementById('popout-player'); var volumeControlEl = document.getElementById('volume-control'); var volumeValueEl = document.getElementById('volume-value'); var directStreamLinkEl = document.getElementById('direct-stream-link'); var honorTower3PeakDateEl = document.getElementById('honor-tower3-peak-date'); var STREAM_BASE_URL = 'https://romeblue7.myvnc.com:8443'; var METADATA_ENDPOINTS = [ 'https://romeblue7.myvnc.com:8443/status-json.xsl', 'https://romeblue7.myvnc.com:8443/status.xsl', 'https://romeblue7.myvnc.com:8088/status-json.xsl', 'https://romeblue7.myvnc.com:8088/status.xsl', 'http://romeblue7.myvnc.com:8088/status.xsl' ]; var SHARED_STATS_ENDPOINTS = [ 'https://nopheros.com/nopheros-listener-dashboard-main/data/data_all.json', '/data/data_all.json' ]; var AUTODJ_MOUNT = '/autodj'; var LIVE_MOUNT = '/stream'; var currentMount = AUTODJ_MOUNT; var LEGACY_RETIREMENT_NOTE = 'Tower 1/2 retired May 14, 2026'; var popoutWindow = null; var sharedPeakRecord = null; var sharedPeakLastLoadedAt = 0; var SHARED_PEAK_REFRESH_MS = 10 * 60 * 1000; function toNumber(value) { var parsed = Number(value); return Number.isFinite(parsed) ? parsed : null; } function formatListeners(value) { return typeof value === 'number' ? value.toLocaleString() : '--'; } function formatDateStamp(isoDate) { if (!isoDate) { return 'Date unknown'; } var d = new Date(isoDate); if (Number.isNaN(d.getTime())) { return 'Date unknown'; } return d.toLocaleDateString(undefined, { year: 'numeric', month: 'short', day: 'numeric' }); } function findTower3Series(data) { var series = data && data.series; if (!Array.isArray(series)) { return null; } return series.find(function(entry) { var name = (entry && entry.name ? String(entry.name) : '').toLowerCase(); return name.indexOf('tower 3') !== -1 || name.indexOf('tower3') !== -1 || name.indexOf('out of bounds') !== -1; }) || null; } function getSeriesPeakRecord(seriesEntry) { if (!seriesEntry || !Array.isArray(seriesEntry.points) || !seriesEntry.points.length) { return null; } var peak = null; var timestamp = null; seriesEntry.points.forEach(function(point) { if (!Array.isArray(point) || point.length < 2) { return; } var ts = toNumber(point[0]); var value = toNumber(point[1]); if (value === null) { return; } if (peak === null || value > peak) { peak = value; timestamp = ts; } }); if (peak === null) { return null; } return { peak: peak, date: timestamp ? new Date(timestamp).toISOString() : null, source: 'archive' }; } function fetchSharedPeakFromEndpoint(endpoint) { return fetch(endpoint, { cache: 'no-store' }) .then(function(res) { if (!res.ok) { throw new Error(endpoint + ' HTTP ' + res.status); } return res.json(); }) .then(function(data) { var t3Series = findTower3Series(data); var peakRecord = getSeriesPeakRecord(t3Series); if (!peakRecord) { throw new Error('No Tower 3 series in shared archive (' + LEGACY_RETIREMENT_NOTE + ')'); } return peakRecord; }); } function refreshSharedPeakTruth(force) { var now = Date.now(); if (!force && sharedPeakLastLoadedAt && now - sharedPeakLastLoadedAt < SHARED_PEAK_REFRESH_MS) { return Promise.resolve(sharedPeakRecord); } var chain = Promise.reject(new Error('No shared endpoint checked yet')); SHARED_STATS_ENDPOINTS.forEach(function(endpoint) { chain = chain.catch(function() { return fetchSharedPeakFromEndpoint(endpoint); }); }); return chain .then(function(record) { sharedPeakRecord = record; sharedPeakLastLoadedAt = Date.now(); return record; }) .catch(function(err) { sharedPeakLastLoadedAt = Date.now(); console.warn('Shared peak archive unavailable:', err.message); return null; }); } function setOfflineTelemetry(message) { statusEl.classList.add('offline'); statusTextEl.textContent = 'Stream info unavailable'; heroPeakListenersEl.textContent = '--'; honorTower3PeakEl.textContent = '--'; if (!sharedPeakRecord) { honorTower3PeakDateEl.textContent = 'Awaiting Tower 3 shared archive sample'; } nowPlayingEl.textContent = 'Now playing data unavailable. Use Play Tower 3 to keep listening.'; if (message) { console.warn(message); } } function normalizeSources(data) { var source = data && data.icestats && data.icestats.source; if (!source) { return []; } return Array.isArray(source) ? source : [source]; } function getMountFromSource(source) { if (source && source.mount) { if (source.mount.indexOf(LIVE_MOUNT) !== -1) { return LIVE_MOUNT; } if (source.mount.indexOf(AUTODJ_MOUNT) !== -1) { return AUTODJ_MOUNT; } } if (!source || !source.listenurl) { return ''; } if (source.listenurl.indexOf(LIVE_MOUNT) !== -1) { return LIVE_MOUNT; } if (source.listenurl.indexOf(AUTODJ_MOUNT) !== -1) { return AUTODJ_MOUNT; } return ''; } function hasLiveDjSignal(source) { return !!(source && ((toNumber(source.listeners) || 0) > 0 || source.title || source.server_name || source.server_description)); } function getPreferredSource(sources) { var liveSource = sources.find(function(source) { return getMountFromSource(source) === LIVE_MOUNT; }) || null; var autodjSource = sources.find(function(source) { return getMountFromSource(source) === AUTODJ_MOUNT; }) || null; if (liveSource && hasLiveDjSignal(liveSource)) { return liveSource; } return autodjSource || liveSource; } function parsePreferredSource(data) { var sources = normalizeSources(data); var source = getPreferredSource(sources); if (!source) { return null; } return { mount: getMountFromSource(source) || AUTODJ_MOUNT, current: toNumber(source.listeners), peak: toNumber(source.listener_peak), nowPlaying: (source.title || source.server_name || 'Track metadata not available').trim() }; } function parseStatusTableRows(rows, mountPath) { var source = { mount: mountPath, listenurl: mountPath ? STREAM_BASE_URL + mountPath : '' }; rows.forEach(function(row) { var cells = row.querySelectorAll('td'); if (cells.length < 2) { return; } var label = cells[0].textContent.trim().toLowerCase(); var value = cells[1].textContent.trim(); if (label.indexOf('listeners (current)') !== -1) { source.listeners = toNumber(value); } else if (label.indexOf('listeners (peak)') !== -1) { source.listener_peak = toNumber(value); } else if (label.indexOf('currently playing') !== -1) { source.title = value; } else if (label.indexOf('stream name') !== -1) { source.server_name = value; } else if (label.indexOf('stream description') !== -1) { source.server_description = value; } else if (label.indexOf('stream url') !== -1) { var link = cells[1].querySelector('a'); if (link && link.href) { source.server_url = link.href; } } }); return source; } function parseStatusXsl(html) { var parsed = new DOMParser().parseFromString(html, 'text/html'); var cards = Array.from(parsed.querySelectorAll('.roundbox')); if (!cards.length) { return null; } var sources = cards.map(function(card) { var mountHeader = card.querySelector('.mount'); var mountText = mountHeader ? mountHeader.textContent : ''; var mountMatch = mountText.match(/\/[^\s<]+/); var mountPath = mountMatch ? mountMatch[0] : ''; var rows = Array.from(card.querySelectorAll('.mountcont tr')); return parseStatusTableRows(rows, mountPath); }).filter(function(source) { return !!source; }); return parsePreferredSource({ icestats: { source: sources } }); } function parseMetadataResponse(text, contentType, endpoint) { var wantsJson = endpoint.indexOf('status-json.xsl') !== -1 || contentType.indexOf('application/json') !== -1; if (wantsJson) { var asJson = JSON.parse(text); return parsePreferredSource(asJson); } return parseStatusXsl(text); } function fetchTelemetryFromEndpoint(endpoint) { return fetch(endpoint, { cache: 'no-store' }) .then(function(res) { if (!res.ok) { throw new Error(endpoint + ' HTTP ' + res.status); } var contentType = (res.headers.get('content-type') || '').toLowerCase(); return res.text().then(function(text) { return parseMetadataResponse(text, contentType, endpoint); }); }) .then(function(parsed) { if (!parsed) { throw new Error('No usable data from ' + endpoint); } return parsed; }); } function fetchTelemetry() { var chain = Promise.reject(new Error('No endpoint checked yet')); METADATA_ENDPOINTS.forEach(function(endpoint) { chain = chain.catch(function() { return fetchTelemetryFromEndpoint(endpoint); }); }); return chain; } function updatePeakDisplay(livePeak) { var displayPeak = sharedPeakRecord && typeof sharedPeakRecord.peak === 'number' ? sharedPeakRecord.peak : livePeak; heroPeakListenersEl.textContent = formatListeners(displayPeak); honorTower3PeakEl.textContent = typeof displayPeak === 'number' ? formatListeners(displayPeak) + ' listeners' : '--'; if (sharedPeakRecord && sharedPeakRecord.date) { honorTower3PeakDateEl.textContent = 'Shared archive peak on ' + formatDateStamp(sharedPeakRecord.date); } else if (sharedPeakRecord && !sharedPeakRecord.date) { honorTower3PeakDateEl.textContent = 'Shared archive peak (date unavailable)'; } else if (typeof livePeak === 'number') { honorTower3PeakDateEl.textContent = 'Tower 3 live peak (shared archive pending)'; } else { honorTower3PeakDateEl.textContent = 'Awaiting Tower 3 shared archive sample'; } } function getCurrentStreamUrl(withCacheBuster) { var streamUrl = STREAM_BASE_URL + (currentMount || AUTODJ_MOUNT); if (withCacheBuster) { streamUrl += '?_t=' + Date.now(); } return streamUrl; } function syncPopoutTelemetry(data) { if (!popoutWindow || popoutWindow.closed) { return; } var popDoc = popoutWindow.document; var popStatus = popDoc.getElementById('popout-status'); var popNowPlaying = popDoc.getElementById('popout-now-playing'); var popAudio = popDoc.getElementById('popout-audio'); if (!popStatus || !popNowPlaying || !popAudio) { return; } popStatus.textContent = 'Listeners: ' + formatListeners(data.current) + ' | Peak: ' + formatListeners(data.peak); popNowPlaying.textContent = data.nowPlaying; if (popAudio.dataset.mount !== currentMount) { popAudio.dataset.mount = currentMount; popAudio.src = getCurrentStreamUrl(true); } } function renderTelemetry(data) { var prevMount = currentMount; currentMount = data.mount || AUTODJ_MOUNT; statusTextEl.textContent = 'Listeners: ' + formatListeners(data.current); updatePeakDisplay(data.peak); nowPlayingEl.textContent = '\u25B6 ' + data.nowPlaying; statusEl.classList.remove('offline'); directStreamLinkEl.href = STREAM_BASE_URL + currentMount + '.m3u'; syncPopoutTelemetry(data); // If the active mount changed, refresh the audio source if (prevMount !== currentMount) { var wasPlaying = !audioEl.paused; setAudioSource(currentMount); if (wasPlaying) audioEl.play().catch(function() {}); } } function pollTelemetry() { refreshSharedPeakTruth(false) .finally(function() { fetchTelemetry() .then(function(parsed) { renderTelemetry(parsed); }) .catch(function(err) { setOfflineTelemetry('Station info unavailable: ' + err.message); }); }); } function setAudioSource(mount) { currentMount = mount || currentMount || AUTODJ_MOUNT; audioEl.src = getCurrentStreamUrl(true); audioEl.load(); } // Pre-load the audio source so the browser knows what to play before // the user hits Play. The poll will update currentMount if a live DJ // is on /stream, then we refresh the src automatically. setAudioSource(AUTODJ_MOUNT); audioEl.volume = 0.7; volumeControlEl.addEventListener('input', function() { var volume = Number(volumeControlEl.value) / 100; audioEl.volume = volume; volumeValueEl.textContent = volumeControlEl.value + '%'; }); playLiveEl.addEventListener('click', function() { // Always load a fresh source before play to avoid stale buffer setAudioSource(currentMount); audioEl.play() .then(function() { statusEl.classList.remove('offline'); statusTextEl.textContent = 'Listening live on ' + currentMount; }) .catch(function() { statusEl.classList.add('offline'); statusTextEl.textContent = 'Playback blocked — try the M3U link'; }); }); pauseLiveEl.addEventListener('click', function() { audioEl.pause(); statusEl.classList.add('offline'); statusTextEl.textContent = 'Playback paused'; }); resyncLiveEl.addEventListener('click', function() { var wasPlaying = !audioEl.paused; setAudioSource(currentMount); if (wasPlaying) { audioEl.play().catch(function() {}); } statusEl.classList.remove('offline'); statusTextEl.textContent = 'Resynced to live'; }); popoutPlayerEl.addEventListener('click', function() { if (popoutWindow && !popoutWindow.closed) { popoutWindow.focus(); return; } popoutWindow = window.open('', 'oobeTower3Player', 'width=430,height=280,resizable=yes'); if (!popoutWindow) { statusTextEl.textContent = 'Pop-out blocked by browser'; return; } var popoutHtml = [ '', '', '', '', '', 'Tower 3 Pop-Out Player', '', '', '', '
', '

Tower 3 Pop-Out

', '

Listeners: -- | Peak: --

', '

Loading metadata...

', '
', '', '', '', '', '
', '', '
', '', '' ].join(''); popoutWindow.document.open(); popoutWindow.document.write(popoutHtml); popoutWindow.document.close(); var popDoc = popoutWindow.document; var popAudio = popDoc.getElementById('popout-audio'); var popPlay = popDoc.getElementById('popout-play'); var popPause = popDoc.getElementById('popout-pause'); var popLive = popDoc.getElementById('popout-live'); var popVolume = popDoc.getElementById('popout-volume'); popAudio.src = getCurrentStreamUrl(true); popAudio.dataset.mount = currentMount; popAudio.volume = Number(volumeControlEl.value) / 100; popPlay.addEventListener('click', function() { popAudio.play().catch(function() {}); }); popPause.addEventListener('click', function() { popAudio.pause(); }); popLive.addEventListener('click', function() { popAudio.src = getCurrentStreamUrl(true); popAudio.play().catch(function() {}); }); popVolume.addEventListener('input', function() { popAudio.volume = Number(popVolume.value) / 100; }); syncPopoutTelemetry({ current: null, peak: null, nowPlaying: nowPlayingEl.textContent.replace(/^▶\s*/, '') }); }); refreshSharedPeakTruth(true).finally(function() { pollTelemetry(); }); setInterval(pollTelemetry, 60000); var modal = document.getElementById('flyer-modal'); var modalImg = document.getElementById('flyer-modal-image'); var closeBtn = document.getElementById('flyer-modal-close'); var posterButtons = document.querySelectorAll('.poster-btn img'); posterButtons.forEach(function(img) { img.addEventListener('click', function(e) { e.stopPropagation(); modalImg.src = img.src; modal.classList.add('active'); modal.setAttribute('aria-hidden', 'false'); document.body.style.overflow = 'hidden'; }); }); function closeModal() { modal.classList.remove('active'); modal.setAttribute('aria-hidden', 'true'); document.body.style.overflow = 'auto'; } closeBtn.addEventListener('click', closeModal); modal.addEventListener('click', function(e) { if (e.target === modal) { closeModal(); } }); document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && modal.classList.contains('active')) { closeModal(); } }); })();