Magnus Johansen

COMPOSER & MUSIC PRODUCER

Original music for advertising, film & visual media.

Selected Work

MUSIC FOR PICTURE

A curated selection of original music for advertising, film & visual media.

01
Aeternus
Cinematic  ·  Emotional  ·  Orchestral
00:00 / 03:33
02
Momentum
Modern  ·  Electronic  ·  Building
00:00 / 01:48
03
Closer
Piano  ·  Intimate  ·  Reflective
00:00 / 02:32
04
Impact
Hybrid  ·  Dramatic  ·  Percussive
00:00 / 02:05
(function () { const buttons = document.querySelectorAll('.mgns-play[data-audio]'); function formatTime(seconds) { if (!isFinite(seconds)) return '00:00'; const minutes = Math.floor(seconds / 60); const secs = Math.floor(seconds % 60); return String(minutes).padStart(2, '0') + ':' + String(secs).padStart(2, '0'); } buttons.forEach(button => { const audio = document.getElementById(button.dataset.audio); const track = button.closest('.mgns-track'); const icon = button.querySelector('.mgns-icon'); const progressWrap = track.querySelector('.mgns-progress'); const progress = track.querySelector('.mgns-progress-fill'); const durationDisplay = track.querySelector('.mgns-duration'); const fallbackTotal = durationDisplay.dataset.total || '00:00'; button.addEventListener('click', function () { document.querySelectorAll('.mgns-player audio').forEach(otherAudio => { if (otherAudio !== audio && !otherAudio.paused) { otherAudio.pause(); } }); /* Load MP3 only after first interaction */ if (!audio.src) { audio.src = audio.dataset.src; audio.load(); } if (audio.paused) { audio.play(); } else { audio.pause(); } }); /* Click / tap progress bar to seek */ progressWrap.addEventListener('click', function (event) { if (!audio.src) { audio.src = audio.dataset.src; audio.load(); } if (!audio.duration) return; const rect = progressWrap.getBoundingClientRect(); const clickX = event.clientX - rect.left; const ratio = Math.max(0, Math.min(1, clickX / rect.width)); audio.currentTime = ratio * audio.duration; }); audio.addEventListener('loadedmetadata', function () { const total = formatTime(audio.duration); durationDisplay.textContent = formatTime(audio.currentTime) + ' / ' + total; }); audio.addEventListener('play', function () { document.querySelectorAll('.mgns-track').forEach(otherTrack => { if (otherTrack !== track) { otherTrack.classList.remove('playing'); otherTrack.classList.remove('paused'); const otherIcon = otherTrack.querySelector('.mgns-icon'); if (otherIcon) { otherIcon.textContent = '▶'; } } }); track.classList.remove('paused'); track.classList.add('playing'); icon.textContent = 'Ⅱ'; button.setAttribute( 'aria-label', 'Pause ' + track.querySelector('.mgns-title').textContent ); }); audio.addEventListener('pause', function () { if (!audio.ended) { track.classList.remove('playing'); track.classList.add('paused'); } icon.textContent = '▶'; button.setAttribute( 'aria-label', 'Play ' + track.querySelector('.mgns-title').textContent ); }); audio.addEventListener('timeupdate', function () { if (audio.duration) { const percent = (audio.currentTime / audio.duration) * 100; progress.style.width = percent + '%'; durationDisplay.textContent = formatTime(audio.currentTime) + ' / ' + formatTime(audio.duration); } }); audio.addEventListener('ended', function () { track.classList.remove('playing'); track.classList.remove('paused'); icon.textContent = '▶'; progress.style.width = '0%'; durationDisplay.textContent = '00:00 / ' + (audio.duration ? formatTime(audio.duration) : fallbackTotal); button.setAttribute( 'aria-label', 'Play ' + track.querySelector('.mgns-title').textContent ); }); }); })();

CONTACT

LET'S WORK TOGETHER

For commissions, collaborations and music licensing enquiries.

function copyEmail(element) { const email = '[email protected]'; const label = element.querySelector('.copy-label'); navigator.clipboard.writeText(email).then(() => { label.textContent = 'COPIED'; setTimeout(() => { label.textContent = 'COPY'; }, 1600); }); }